Stories
Slash Boxes
Comments

SoylentNews is people

posted by Fnord666 on Friday November 10 2017, @06:23PM   Printer-friendly
from the C,-C-Rust,-C-Rust-Go,-Go-Rust-Go! dept.

In which ESR pontificates on the future while reflecting on the past.

I was thinking a couple of days ago about the new wave of systems languages now challenging C for its place at the top of the systems-programming heap – Go and Rust, in particular. I reached a startling realization – I have 35 years of experience in C. I write C code pretty much every week, but I can no longer remember when I last started a new project in C!
...
I started to program just a few years before the explosive spread of C swamped assembler and pretty much every other compiled language out of mainstream existence. I'd put that transition between about 1982 and 1985. Before that, there were multiple compiled languages vying for a working programmer's attention, with no clear leader among them; after, most of the minor ones were simply wiped out. The majors (FORTRAN, Pascal, COBOL) were either confined to legacy code, retreated to single-platform fortresses, or simply ran on inertia under increasing pressure from C around the edges of their domains.

Then it stayed that way for nearly thirty years. Yes, there was motion in applications programming; Java, Perl, Python, and various less successful contenders. Early on these affected what I did very little, in large part because their runtime overhead was too high for practicality on the hardware of the time. Then, of course, there was the lock-in effect of C's success; to link to any of the vast mass of pre-existing C you had to write new code in C (several scripting languages tried to break that barrier, but only Python would have significant success at it).

One to RTFA rather than summarize. Don't worry, this isn't just ESR writing about how great ESR is.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2, Insightful) by Ethanol-fueled on Friday November 10 2017, @08:21PM (4 children)

    by Ethanol-fueled (2792) on Friday November 10 2017, @08:21PM (#595321) Homepage

    C++ is used for Arduino because Arduino is for babies and assembler makes babies cry.

    99% of Arduino code is essentially dumbed-down C/C++ anyway. When was the last time you saw any pointers in any hobbyist-written Arduino code?

    Starting Score:    1  point
    Moderation   +1  
       Insightful=1, Total=1
    Extra 'Insightful' Modifier   0  

    Total Score:   2  
  • (Score: 4, Funny) by RS3 on Friday November 10 2017, @08:28PM

    by RS3 (6367) on Friday November 10 2017, @08:28PM (#595329)

    C++ is used for Arduino because Arduino is for babies and assembler makes babies cry.

    Very funny

    When was the last time you saw any pointers in any hobbyist-written Arduino code?

    You mean intentional ones?

  • (Score: 2) by forkazoo on Saturday November 11 2017, @12:53AM (2 children)

    by forkazoo (2561) on Saturday November 11 2017, @12:53AM (#595423)

    When was the last time you saw any pointers in any hobbyist-written Arduino code?

    If a microcontroller environment is extremely memory constrained, it may be impractical to have a sensible malloc implementation and a normal free store. It may not be useful to do anything that requires bare pointers in that kind of environment, especially if you just need to blink an LED.

    • (Score: 1) by Ethanol-fueled on Saturday November 11 2017, @01:04AM

      by Ethanol-fueled (2792) on Saturday November 11 2017, @01:04AM (#595427) Homepage

      Bare pointers in baby's first Arduino code are most often associated with timers and other mechanisms to have non-blocking clumps of logic. They are most certainly a good idea but abstracted away in libraries that babies don't bother to read.

      As far as Arduino hobbyists go, you can tell an O.G. Nigga from a baby because the O.G. Niggas use long instead of int.

    • (Score: 2) by crafoo on Saturday November 11 2017, @01:51AM

      by crafoo (6639) on Saturday November 11 2017, @01:51AM (#595440)

      indirect addressing on a micro-controller? you think this is uncommon? I've changed my mind. No place is safe from the javashit and python cancer.