3 ms·
PART III C++? It totally sucks: Syntax is awful; semantics are clear only for the simplest things and otherwise are bizarre and byzantine. Exceptional condi
by HilbertSpace 16y ago
PART III
C++? It totally sucks: Syntax is awful; semantics are clear only for the simplest things and otherwise are bizarre and byzantine.
Exceptional condition handling can't do the right things where PL/I did do the right things with what it called 'dynamic descendancy'. Uh, to handle an exceptional condition, commonly have to kill some threads, free some memory, close some communications sessions, release some locks, close some files, otherwise 'free resources', pop the stack of the relevant thread by several layers, and do a non-local GOTO, and a pre-processed language on C has a tough time doing all these, and that's just for the simple cases where don't have to 'roll back' work to resolve concurrency deadlocks. Begin to see the suckage? These are now ANCIENT points, guys.]
The C++ memory management is so primitive and obscure that each programmer has to write their own (suckage), accept what someone else wrote (more suckage), or put up with high risk of difficult to debug 'memory leaks' (total suckage). Net, shouldn't try to use C++ for anything important or now for anything. And that tends to leave the Unix world a bit short on compiled languages.
Google asked me what my favorite programming language was. I guessed that the recruiter-drone had a sheet with the correct answer "C++", but I gave a good answer, "PL/I". Ada would have been good also. No way would I want to say something totally incompetent such as C++ -- I have some pride and don't want to work with total idiots. Oops, I gave the wrong answer! Poor Google!
Visual Basic .NET? It's just 'syntactic sugar' to provide access to the Microsoft 'common language runtime' (CLR) and .NET.
Want a slightly different flavor of syntactic sugar, say, to remind you of the masochism you enjoyed with C++? Sure, then use C#.
Don't like those two? Sure, write your own flavor of syntactic sugar for access to the CLR and .NET. Lexical scan and parsing? Solved problems. E.g., consider DeRemer's LALR tools. Then just walk the parse tree, handle the symbols and semantics, write out the Microsoft 'intermediate language', and let Microsoft software handle the rest. "Look, Ma, my own language!". Go for it!
But the CLR and .NET are serious pieces of computing, and what Microsoft does with these in the future for many cores, etc. also stands to be serious.
Software development environment? Can spend a lot of time learning and doing mud wrestling with that nonsense. Instead, the coveted source code of essentially all software development is just text. So, I just use my favorite (programmable) text editor, the same one I use whenever possible, i.e., for nearly everything. I also use a nice command line scripting language. All REAL programmers hate graphical user interfaces and LOVE command lines!