Hacker News new | past | comments | ask | show | jobs | submit login

Really?!?

Modula-2 was created in 1978! Just to cite one memory safe systems programming language.




Common practice programming languages like Go are getting into the 1980s or so, research-wise. The Haskell community is into the 90s, along with some genuinely new stuff. Both have a long way to go before they're accepted common practice.

For as fast and as furious a pace as the world of computer programming likes to think it runs at, there is an unbelievably long line to get something from research to common practice. It's literally decades long.

Though there are some reasons for this; there's a difference between doing a research compiler and doing something that can actually be deployed in the harsh environment of the real world. Still, the world of computer programming does not advance anywhere near as quickly as it fancies itself doing.


> Common practice programming languages like Go are getting into the 1980s or so, research-wise. The Haskell community is into the 90s, along with some genuinely new stuff. Both have a long way to go before they're accepted common practice.

Rust actually uses new stuff; the borrow checker builds on old ideas from Cyclone and others from the 90s, but it mixes it with some interesting research ideas of its own (using C++ destructors to get region typing at the level of individual values, not of regions) to come up with something that's actually fairly novel.


Well, I hardly set out to show the entire range of new stuff in two paragraphs... :) But I'd also observe that Rust has a ways to go before being common practice, too. More power to you, for the love of all that's holy please put a bullet in C and C++, but even in the best case scenario you're still at least three or four years away from even being solid B-list (Perl, Python, etc... Go isn't there yet either, FWIW).


Getting from a research compiler to "something that can actually be deployed in the harsh environment of the real world" seems to be an order of magnitude simpler and quicker than gaining a critical amount of developers and a competitive ecosystem of libraries, tools, tutorials, mindshare and ubiquitous (commoditized?) hireable employees for that language.


Except for those of us that were already coding in the 80s.

Modula-2, Turbo Pascal and Ada weren't research languages, rather well known languages, while C was mainly UNIX only one, slowly spreading alongside UNIX into the enterprise.

I think the problem is that many young developers never experienced those days and think C and C++ are the only game in town for systems programming languages.


> Modula-2 was created in 1978! Just to cite one memory safe systems programming language.

If you opt into garbage collection for the whole program. That's not the same overhead as C++. (I know you believe that GC is faster than manual memory management, but let's sidestep that debate by defining "the same overhead" as "the same memory management practices that C++ uses, with the same tradeoffs".)


Who mentioned GC?

Modula-2 also uses manual memory management just like C.

So by using it, there is a whole class of C errors that are not exploitable:

- Buffer overflows

- Pointers that go astray, injure some critical data structure, only to die minutes later in another totaly unrelated place.

- Strings without null terminator

- No implicit conversions between types

- Proper enumerations

- Arrays are properly bound checked by default (unless explicitly disabled)

Still problems like memory leaks and double free exploits do prevail. However the set of possible exploits is surely smaller than C and C++ offer to hackers.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: