6 ms·
This made me think of the passage below from Edsger Dijkstra's ACM Turing Lecture from 1972. Back then there was no C++. "I remember from a symposium on higher
by augustk 10y ago
This made me think of the passage below from Edsger Dijkstra's ACM Turing Lecture from 1972. Back then there was no C++.
"I remember from a symposium on higher level programming language a lecture given in defense of PL/1 by a man who described himself as one of its devoted users. But within a one-hour lecture in praise of PL/1. he managed to ask for the addition of about fifty new “features”, little supposing that the main source of his problems could very well be that it contained already far too many “features”. The speaker displayed all the depressing symptoms of addiction, reduced as he was to the state of mental stagnation in which he could only ask for more, more, more..."
https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340...
- pjmlp 10y agoAnd every time there was a language designed against PL/I like languages, with the goal of fighting complexity, its adoption by the industry lead to feature growth and becoming just as complex, usually with solutions hindering by backwards compatibility. Yes C++ is complex, but so are Python, Ruby, Ada, Fortran, C#, F#, Haskell, OCaml, Java... Even Go will get caught in the complexity game if it gets enterprise adoption at scale. If not the language, the libraries surely will.
- 0xAA55 10y agoThe big difference here is how additions in C++ tend to work - e.g. keeping all of the deprecated ill-defined legacy and growning features on it like tumors until there are no more symbols left. Unlike Ada and Python which aren't afraid of throwing away poor design and were overall more thought out in the first place (especially Ada). Its not a "complexity game" in so much as poor design being over-compensated for. C++ is like cancer infecting the minds of young programmers with buggy habits -- and no amount of features and static analysis will change what lies beneath... :p
- pjmlp 10y agoHow specially Ada?! The only thing Ada has thrown away was GC support that no compiler vendor has ever bothered to implement. What other features were thrown away across Ada83, Ada95, Ada2005 and Ada2012? If I present you Ada random code snippet X, are you sure you will be able to say which language version it requires? Also Python is the poster child of what happens when you throw compatibility away.
- 0xAA55 10y agoWhat I meant to emphasize was that Ada was well designed in the first place, and yes GC was a problem and so were some of the restrictions and aspects of the standard libraries. For example, a big one was unconstrained types for generic actuals... C is a mine-field of devastating design flaws which have caused many people to die because of decades old decisions made on a whim and any change to basic libraries to make them safer and removing dangerous functions is heresy. As far as Python, yes the two versions of the language is troublesome for users but the language is objectively better and students learning programming for the first time benefit from a more robust version. Feel free to give me a random code snippet ;p
- pjmlp 10y agoI fully agree with you regarding C, but even though C++ happens to be copy-paste compatible with it, C++ isn't C. It does provide the necessary language features for security conscious developers to write safe code, the fact that many write C++ as if it was "C with C++ compiler" is an unfortunate one. Yes it would have been great that we had Ada instead of C++, sadly that wasn't what greedy Ada compiler vendors wanted us to have.
- 0xAA55 10y agoIndeed, except for all the flaws C++ decided to add from C including is cryptic syntax (i++, ++i, <<, ::, ?) and macros it is a good language. In fact, from that list it seems like it is finally meeting parody on key Ada 95 features -- so maybe we dont have to be so sad :)
- 10y ago
- chajath 10y agoI won't necessary call out Java as a complex language. However in not being so complex a language it sacrifices a lot of expressiveness found in other languages.
- pjmlp 10y agoI advise you to have some fun trying out Java puzzles now that Winter is coming.