[Swlug] C Programming Book Recommendations

Alan Gray alan at grayhs.org
Thu Oct 24 12:51:04 UTC 2024


Hello Dave,

I am not sure Pascal ever had much of a market except education. It was taught to encourage good structuring after many had spent time with the early Basics The version we used was good internally, but pretty useless dealing with the  outside  world. I do not think C had any bearing on it's demise.

Most languages exist because they are strong in a specific niche: JavaScript with html, Go in network systems, or Rust and C++ in a systems environment.

The discussion so far recognises all the strengths and weaknesses of these languages, but hasn't considered  their use in combination. In that situation 'C', rather than the extended versions, remains useful. I can certainly see, say, Python being used to handle a complex object oriented program with some modest routines in 'C' to speed things up. I am not sure how Rust and Go compare in this sort of environment. My best guess is that 'C' remains ahead.

Regards
Alan Gray

On 23 October 2024 22:44:15 BST, Dave Cridland via Swlug <swlug at mailman.lug.org.uk> wrote:
>The obvious "modern" replacement for C is Go, which was essentially
>designed as a "C for bad programmers" - that's not really as bad as it
>sounds, as you do need to be an astonishingly careful programmer to write C
>that's both safe and good. Go has quite a lot more to it than C, but it is
>at heart a Structured Programming language - the paradigm that most modern
>C is written in - and its general "feel" is much the same.
>
>Rust is more of a replacement for C++, but it lacks so much of C++'s power
>that it's really quite the tradeoff. There's finally the beginnings of a
>serious movement to bring a lot of the core Rust concepts to C++ - if this
>happens, then it'll be very good news for C++ (where you still can end up
>with a null pointer dereference, or a buffer overrun, or a dangling
>reference).
>
>Pascal died out really because of C; though as a teaching language, Python
>has taken it over.
>
>JavaScript - and TypeScript ("JavaScript but it looks a bit like.NET") -
>are pretty weird languages. It's generally best not to look too closely at
>them, as they turn out to be a pile of weird behaviours and strange hacks
>layered unevenly on each other.
>
>Dave.
>
>On Wed, 23 Oct 2024 at 20:15, Alan Gray via Swlug <swlug at mailman.lug.org.uk>
>wrote:
>
>> Hello Huw
>>
>> Nicely said. I started on 6809 then 6502. Like you, it helped
>> understanding pointers.
>>
>> Wasn't Erlang developed for use in telephone exchanges?
>>
>> Computer languages are tools. As always it is best to select the right
>> tool for the job. Without knowing the job it's all speculation.
>>
>> As a first serious language I am reminded that years ago in college I was
>> taught 'C' and Pascal. They had quite different characteristics and were
>> considered complementary. Probably Python would replace Pascal, but I am
>> not so sure about 'C'. Maybe Rust, but there are others that could be
>> considered.
>>
>> Regards
>> Alan Gray
>>
>>
>> On 23 October 2024 18:52:53 BST, "Huw Ford (ConceptPC) via Swlug" <
>> swlug at mailman.lug.org.uk> wrote:
>>
>>> Hi,
>>>
>>> I agree that C might not be the ideal 'first' serious programming
>>> language, but after 40 years of programming, I’m still not entirely sure
>>> which one would be.
>>>
>>> I started with assembler on the 6502 CPU, then moved on to the 68000.
>>> From there, I learned K&R C (Kernighan and Ritchie). My background in
>>> assembler, especially with memory addressing, helped me make sense of C’s
>>> pointers. Later, I transitioned to ANSI C.
>>>
>>> After that came C++. Once I got my head around object-oriented
>>> programming (OOP), I really fell in love with it.
>>>
>>> Eventually, I got into PHP and JavaScript, both of which are
>>> syntactically similar to C in many ways.
>>>
>>> But the language that really expanded my thinking was Erlang. It was so
>>> different from anything else I’d ever used. That said, I wouldn’t recommend
>>> Erlang unless you had a specific use case for it.
>>>
>>> I’ve worked with people who recommend Java as a good first language—it’s
>>> quite similar to C but without the headaches of manual memory management.
>>> However, I haven’t had any first-hand experience with it myself.
>>>
>>> Hope this helps.
>>>
>>> Huw
>>>
>>>
>>> On 23/10/2024 10:16, Neil Greenwood via Swlug wrote:
>>>
>>> On Wed, 23 Oct 2024, 10:04 Morgan Green via Swlug, <
>>> swlug at mailman.lug.org.uk> wrote:
>>>
>>>> Hi,
>>>>
>>>> I am very new to programming, but I want to start out on C to grasp the
>>>> fundamentals of all programming languages. Can anyone recommend me any
>>>> paperbooks on C programming that is suitable for complete beginners?
>>>>
>>>> Kind regards,
>>>> Morgan Green
>>>>
>>>
>>> Hi Morgan,
>>>
>>> I'm not sure C is the best language for a beginner. You have a lot of
>>> extra work to do managing memory - my first C program (after I had 8 years
>>> experience with 2-3 other languages) just segfaulted, and I never fixed it!
>>>
>>> If you are just starting out, my recommendation is to look at Python -
>>> apart from the strict indentation requirement, it's much more friendly.
>>> This will give you a good understanding of the fundamentals that are
>>> present in most languages.
>>>
>>> If you want dead-tree books, Pragmatic Press make a good series of
>>> introductory titles for both C and Python, as well as a wife range of other
>>> languages.
>>>
>>> Hope this helps,
>>> Neil
>>>
>>>>
>>>> Sent from Outlook for Android <https://aka.ms/AAb9ysg>
>>>> --
>>>> Swlug mailing list
>>>> Swlug at mailman.lug.org.uk
>>>> https://mailman.lug.org.uk/mailman/listinfo/swlug
>>>>
>>>
>>> --
>> Swlug mailing list
>> Swlug at mailman.lug.org.uk
>> https://mailman.lug.org.uk/mailman/listinfo/swlug
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.lug.org.uk/pipermail/swlug/attachments/20241024/ec1c18c5/attachment.htm>


More information about the Swlug mailing list