5 ms·
I have never worked with Wirth languages, so I would like to know why you think Wirth languages deserve a comeback.
by foo101 8y ago
I have never worked with Wirth languages, so I would like to know why you think Wirth languages deserve a comeback.
- pjmlp 8y agoThey were like Rust in the 80 and 90's, but then security was seen as irrelevant in software. About 80% of ways of doing memory corruption in C are just not possible, unless one explicitly turns off safety constructs. The developer culture was also that workable software and quality comes before performance tricks. Many OSes were written in Pascal variants, Modula-2, Modula-2+, Modula-3, Oberon, Oberon-2, Active Oberon, Component Pascal, Concurrent Pascal. There are still very few programming languages that can match Delphi RAD capabilities, while producing a fat free executable. We were quite productive in them before UNIX took over the industry and brought C with it. The JavaScript and PHP of systems programming languages.
- dom96 8y agoI personally see Nim as a modern Wirth language :)
- pjmlp 8y agoYep, it has many similarities.
- nickpsecurity 8y agoIt's too complex for that from what Ive seen. Two, key parts of Wirth's philosophy in judging language design are favoring simplicity of compiler implementation over app implementation and using heuristic of is how long compiler takes to compile itself. Although useful, I think both of these are wrong when considering performance optimization, high-productivity approaches like DSL's, benefits of stronger typing, and so on. Nim is a good counterexample to Wirth's philosophy showing program readability, dev speed, and runtime performance can all go up if we increase language/compiler complexity where it makes sense. So, the reason Nim is a great project is that it's not a Wirth language. Look at Component Pascal if you want to see one like he'd want for industrial use. It was even commercialized with Blackbox at one point.
- amelius 8y ago> We were quite productive in them before UNIX took over the industry and brought C with it. The JavaScript and PHP of systems programming languages. Why didn't anyone write a Wirth-language -> C translator, and wasn't it successful?
- pjmlp 8y agoThere are lots of such translators. Eiffel works just like that, JIT/VM for development, compilation via C for deployment. P2C was a famous one https://www.gsp.com/cgi-bin/man.cgi?section=1&topic=p2c https://www.gsp.com/cgi-bin/man.cgi?section=1&topic=p2c http://www.zi.biologie.uni-muenchen.de/~enger/SC22WG13/im2c-981130.html http://www.zi.biologie.uni-muenchen.de/~enger/SC22WG13/im2c-... https://github.com/jtempl/ofront https://github.com/jtempl/ofront But beyond Eiffel, most developers ended up moving mostly to C++ (like myself back then) as it provided the C compatibility, with most of the Pascal's safety if one cared to use the C++ features. Then Java took over the show for security minded developers during a couple of years, until we finally arrived at Go, D, Swift, Rust, .NET Native, SubstrateVM.
- deleted 8y ago[deleted]
- eterps 8y agoThere were many. IMO they weren't successful because you actually need good 'marketing' to make a strict and safe language popular. For most people it will feel like having to fight the compiler to accept your code. The Rust community does a really good job informing developers that it is definitely worth the trouble.
- mhd 8y agoI'd say that Wirth himself was/is more a fan of the "80%" part than the "Rust" part, as making things fool-proof would complicate language design and implementation too much, with all the follow-up effects this has. I can't think of anything "modern" that comes close to that, most languages these days are quite feature sink-y. And yes, that includes Go, if we consider Oberon to be somewhat of a baseline. Heck, even his successor's language (Eiffel) is more minimal than what's hip these days.
- noir_lord 8y agoBack when I was learning programming as a kid I read a quote in a pascal book > Pascal generally has one way to do a thing, the right way. Right up through Object Pascal I always felt that was the case and in 2018 it's only now that VS2017 feels nearly as productive as Delphi 6 did nearly 20 years ago.
- MageSlayer 8y agoReally fast incremental compiler due to module system done right. That's the reason why projects scale nicely. 1e6+ lines of code can still easily be a project you can be productive in.
- nickpsecurity 8y agoOn top of other answers, I'll add he balanced language power/complexity to make them easy to learn and compile super-fast. The latter boosted productivity by almost eliminating the waiting time compiles would give you in something like C++. Then, they'd crash instead of get hacked on many common errors. And if you needed, building a compiler for them was easy enough that it was a project for compiler students in colleges. Free Pascal, although more complex than those, is likely so portable partly due to simplicity/power ratio of Pascals. Aside from Free Pascal w/ Lazarus, the closest thing to that experience today is Go language with Oberon-like style, safer-by-default, and fast compiles. One of its inventors stated a design goal was realizing the fast-paced, smooth experience he had with Oberon-2 in the past.