Slashdot Mirror


ESR Sees Three Viable Alternatives To C (ibiblio.org)

An anonymous reader writes: After 35 years of programming in C, Eric S. Raymond believes that we're finally seeing viable alternatives to the language. "We went thirty years -- most of my time in the field -- without any plausible C successor, nor any real vision of what a post-C technology platform for systems programming might look like. Now we have two such visions...and there is another."

"I have a friend working on a language he calls 'Cx' which is C with minimal changes for type safety; the goal of his project is explicitly to produce a code lifter that, with minimal human assistance, can pull up legacy C codebases. I won't name him so he doesn't get stuck in a situation where he might be overpromising, but the approach looks sound to me and I'm trying to get him more funding. So, now I can see three plausible paths out of C. Two years ago I couldn't see any. I repeat: this is huge... Go, or Rust, or Cx -- any way you slice it, C's hold is slipping."

Raymond's essay also includes a fascinating look back at the history of programming languages after 1982, when the major complied languages (FORTRAN, Pascal, and 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."

4 of 595 comments (clear)

  1. Re:Is it time to Round Up the Muslims? by Hylandr · · Score: -1, Flamebait

    You mean world history?

    White people invented all the shit everyone else appropriates for granted.

    Fuck off.

    --
    ~ People that think they are better than anyone else for any reason are the cause of all the strife in the world.
  2. That's Beyond Fucking Retarded by NicknameUnavailable · · Score: -1, Flamebait

    His 3 viable replacements are Rust, Go, and some language nobody but him and 1 other guy have even heard of? That is beyond fucking retarded, on every point. Rust is garbage. Go is garbage. The third thing nobody has heard is apparently not even fucking done yet. If he's actively trying to raise money for it that third one is probably his own pet project. This thing reeks of marketing dribble without substance.

  3. Re:"C with safety" has been tried before by Anonymous Coward · · Score: 0, Flamebait

    The only thing I know about Rust is the Rust Code of Conduct, which was more than enough to put me off learning anything about Rust.

    A programming language needs to be free and open. If you can be excluded from interaction because people disagree with you, then it's not a viable language.

  4. C was technically obsolete by the 1970s by aberglas · · Score: -1, Flamebait

    People do not use C/++ because they have done a careful language analysis. They use it because everyone else does and they are too lazy to learn anything else.

    By the 1970s there was a general movement to type safe languages. But some of them were fascist, others just not available on all platforms. Details that force unfortunate decisions.

    But the big technology developed in the 1970s generally misunderstood by slash dotters is efficient generational garbage collection algorithms developed by the Lisp community. That makes such a difference in how one goes about using memory.

    For writing a micro-controller application then C will do. But for serious code, I want something that manages memory for me. Plus I want static type safety, and very efficient compilation. And today that means Java or C#/.Net. A bit bloated, no good for micro controllers, but so much more productive for larger systems.

    Well written C# and Java is actually more efficient than C/++. Partially because it can do whole of program optimization. Partially because it can optimize for a particular processor rather than a generic one at a separate compile time. Partly because garbage collections minimizes the need to copy data structures (particularly in C++), and smart pointers are grossly inefficient compared to generational garbage collection. Partially because it allows focus on algorithms rather than fixing nasty bugs. There are two caveats 1. They both use stupid UTF-16 for strings and 2. They both enable much more code to be written for a given amount of effort, so people write a lot more code in them.

    BTW. Probably the most evil thing that C has inflicted upon the world is counting from 0. All pre C languages count from 1, as do children. And then it all changed. And we will live with off by one errors for the rest of time.