Compared to any other OOPL, C++ is simply ghastly -- a grossly overcomplex mishmash of hacks in the key of C inspired to repent for the multitude of sins that historically bedeviled C, and have since led to a never ending cascade of ill-fated hacks to shoehorn a nearly 50 year old unsafe high level assembly language into the guise of a modern type safe OOPL. History has since shown this to have been a tragically quixotic quest which inevitably and catastrophically spun wildly out of control, mutating and metastasizing into a disgusting chimeric monster that now strikes fear and loathing into the soul of even the most stouthearted digital denizen, who only when lit by the faint glow of a failing CRT, oft have been heard to admit furtively and only under duress in the faintest of whispers:
"Yes. I admit it. I code in C++".
Ahem. Anyway, that's why I use Pascal.Here are some "whys":
1. https://news.ycombinator.com/item?id=11005203
2. http://ian.hixie.ch/programming/
3. http://ziotom78.blogspot.com/2015/01/lfi-data-analysis-with-...
4. http://freepascal.org/advantage.var
5. https://www.embarcadero.com/products/delphi/features
Object Pascal has changed a lot in the last 25 years. You should check out modern Object Pascal. It's pretty nice.
Too bad that memory management is still tedious and categorically unsafe with all sorts of crazy hacks like a TComponent hierarchy and reference counting that exists only for interface.
It was a reasonable trade-off for me back in the days where the best thing C++ had was auto_ptr and a bunch of incompatible vendor specific classes. Nowadays, it's a world I wouldn't want to come back to (or I would happily programming C).
I don't find it onerous. It also depends which compiler you're using. Delphi uses Automatic Reference Counting for Android and iOS:
http://blog.marcocantu.com/blog/delphi_arc_android.html
http://docwiki.embarcadero.com/RADStudio/Berlin/en/Automatic...
I also wonder why C++ is claimed to have no instance function pointers even though std::bind was available since TR1 and boost::bind was available aeons ago. Did the author confuse C++ style function references with C function pointers? But this is like confusing the C++ std::string (which exist only as a library feature) with C-style char arrays.
But the Turbo Pascal 6.0 from 25 years ago certainly was more expressive, feature rich and safer than C of today.
The verbosity of Pascal is welcomed by those that had to maintain programs written by others.
I don't see why anyone would like to implement its own WriteLn.
You have the same issue with professional languages and I never saw anyone complaining about it.
Also C needs Assembly for its IO library and everyone is ok with it.
Don't actually feeling the need to go back though. It's not about language properties anymore, but the library ecosystem. I hated when anything useful in Delphi was a C dll port. You're never a first class citizen.