8 ms·
Cardelli's Modula-3, a C++ alternative, also illustrates excellent balance of simplicity, programming in large, compile time, and run time. Expanding on that ca
by nickpsecurity 8y ago
Cardelli's Modula-3, a C++ alternative, also illustrates excellent balance of simplicity, programming in large, compile time, and run time. Expanding on that carefully like with macros, a borrow checker, and LLVM integration would have made for a simpler, safer, systems language. Give it a C-like syntax with C compatibility, too, for adoption.
https://en.m.wikipedia.org/wiki/Modula-3 https://en.m.wikipedia.org/wiki/Modula-3
- noir_lord 8y agoI always liked the look of modula (Turbo Pascal was my first true language, I don’t count BASIC). Same with Ada I just have no use case for it alas. At least C# (amongst others) borrowed a fair amount of the concepts.
- pjmlp 8y agoYou mean C# I guess. :) Actually with .NET Native, the GC improvements in .NET 4.6 (TryStartNoGCRegion() and other companion methods), and the C# 7.x improvements taken from Midori, it is quite close.
- nickpsecurity 8y agoC# looked a lot more complex than Modula-3 when I last looked at it. The book was thick. They definitely did nice things in C#. I just don't know it's fair to equate it with the simplicity vs get shit done vs small runtime of Modula-3. I am up for you elaborating a bit on the second sentence since it sounds interesting. Not doing .NET, I don't know what any of those are except the middle one which sounds like SYSTEM/UNSAFE sections.
- pjmlp 8y agoIt is more complex, but Modula-3 isn't that tiny either, around Algol 68/Ada 83 "tiny". They integrated the improvements from M#/System C# (Midori) into C#. Namely return ref, ref for local variables, stack allocation for arrays in safe code, spans (slices) across all memory types, allocation free pipelines.
- fanf2 8y agoModula-3 is most comparable to Golang, of currently popular languages, especially the lightweight concurrency and obligatory GC.
- nickpsecurity 8y agoThat seems like a good comparison. I'll add you could easily do systems programming in Modula-3 with SPIN OS using it. It also had a standard library with some formal verification of some properties. That it was easy to do systems programming is the big difference. That said, Go follows the Wirth tradition most among the popular languages. People are learning it fast, coding stuff fast, and the apps are safer. Definitely a success. :)