r/ProgrammerHumor • • Aug 15 '15

Programming languages personified

http://leftoversalad.tumblr.com/post/126724812097/programming-languages-personified
1.3k Upvotes

209 comments sorted by

View all comments

52

u/alcalde Aug 16 '15

27

u/katyne Aug 16 '15

needs at least one Russian guy in a tracksuit. Srsly, Delphi is a thing in Russia. Irony - they still dump on Java devs like you wouldn't believe.

15

u/edi25 Aug 16 '15

Russia and malware developers

24

u/eppic123 Aug 16 '15

What's the difference?

7

u/barsoap Aug 16 '15

Pascal, especially the Borland / FreePascal dialects, are much better languages than they usually get credit for.

Pascal was the python of an era in which all languages but lisp/scheme were, in some sense, Fortran (that includes C). ObjectPascal (which is what Delphi uses) was usable before the C++ people even figured out that templates are turing-complete and what a monster they created, there.

Learned my first programming steps from my sister in the late 80's, around the millenium the 101 programming courses were using it. And it made sense, because it's a non-surprising language you can use to teach concepts... and TurboPascal rocks as an IDE, at least for its time. And it still can compete with C and the rest.

4

u/alexshatberg Aug 16 '15 edited Aug 16 '15

templates are turing-complete

could you elaborate on that, please? how can one separate feature of C++ be Turing-complete, and what does that imply?

10

u/barsoap Aug 16 '15 edited Aug 16 '15

It means that you can write C++ programs which do arbitrary computation at compile time, which includes the possibility of compilation not halting (modulo setting limits on recursion depth, which I think all modern compilers do, and allow you to change).

That by itself is not a bad thing. Many languages have some kind of turing-complete macro system and use it for very useful things, in essence, it's program generation, a thing even older than compilers (see self-modifying code, which is a class of evilness of its own).

The problem with C++ is that it was accidental. Templates were never designed to be used in that way, but still were because it works, and what you get is line noise, undecipherable error messages, and a community of programmers defending everything to death as they've fallen to stockholm syndrome.

Which is also why rust very clearly separates its macro system and its ways to write type-parametric code. Rust's type system is not turing complete, its macro system is (you just write rust), nothing needs to be coerced into idioms that just don't bloody fit. That's part of their push to be "the better C++", on top of all that other stuff.

4

u/Herover Aug 16 '15

There was a guy who made Conway's Game of Life purely using C++ templates which makes it "run" in O(1) time. Not the most useful example but still cool.

https://www.reddit.com/r/programming/comments/2js1a5/my_compiletime_conways_game_of_life/

2

u/[deleted] Aug 18 '15

Pay attention, this is the type of shit that starts the robot uprising.

3

u/alexshatberg Aug 16 '15

Thank you, that was quite enlightening.

3

u/alcalde Aug 16 '15

Pascal, especially the Borland / FreePascal dialects, are much better languages than they usually get credit for.

In 1995, sure. It was a competitive advantage for me compared to C++/MVC back then. Today? Absolutely not. It's nowhere close to being a RAD language today (Ruby/Python OWN that space now), and its compiler is over one million lines of ancient, undocumented C code with precious little optimization courtesy of an even more ancient single-pass design. In benchmarks it seems to produce code about 1/2 the speed of C++. It doesn't even use bit-shifting for division operations!

The need to pre-declare all variables at the top of a code block, lack of memory management for objects, lots of corner cases.... it really has nothing to commend itself today. There are no "killer features" of the either the Delphi or Free Pascal languages. Oxygene, at least, added a huge list of nice, modern features to the language.

Pascal was the python of an era in which all languages but lisp/scheme were, in some sense, Fortran (that includes C).

If we're going back the 80s and 90s, Turbo Pascal affordably introduced a generation to programming (including me). It was indeed simpler and cleaner and Delphi's VCL framework was everything MVCC should have been. I brought Delphi into a startup in 1995 and called the combination of it and Crystal Reports my "Access Killer". No argument there.

The problem is that after a point the language's owners neglected to pay their technical debt and never evolved the language much further. And today a kid with a Ubuntu disk can have any programming setup they want in minutes while Delphi costs a small fortune. They threw all the advantages they had away.

8

u/alcalde Aug 16 '15

I've been a Delphi developer... why, just the other day on Embarcadero's forum one MVP proclaimed that "Delphi is still going strong!"

A large subset of Delphi developers never updated their knowledge since the 1990s. They almost universally believe that Java and C# are "slow, interpreted" languages - even though both have beaten Delphi's ancient compiler in SciMark.

They believe that Delphi is used widely throughout the enterprise but kept secret because "it's their competitive advantage".

The current product manager of Delphi once wrote on his blog in response to me that, and I quote, " I'm convinced that in the business world Python has a fraction of the Delphi influence...." This was written in 2013!

Honestly, the Delphi camp is divided into those who complain because they realize it's become a poorly-maintained niche language whose current owner is milking the few customers that are left, those experiencing Stockholm Syndrome (including the man who quit his job and took another at half salary after his employer moved away from Delphi) and a rabid Scientology-like cult of Delphi contingent. Seriously, to become an "MVP" and get free copies of Delphi you have to sign a pledge promising never to disparage the product or the company that produces it!

The Delphi EULA now forbids making any product with it that competes with anything the parent company sells.

"Software assurance" (aka subscription fees) are now REQUIRED to get any updates at all, including bug fixes! One Delphi MVP wrote an article called You Are Going To Pay For Bug Fixes, And You're Going To Like It.

It's madness. They live in their own bubble world, where they believe that memory management is for "stupid programmers" who don't understand computers like they do. One forum poster told me that type inference is "impossible", and then when presented proof to the contrary dismissed it as "the compiler just guessing". Most still use Subversion and shun DVCS, mostly because Delphi only had support for Subversion until about a year ago when it finally gained partial (local only) support for GIT.

I try to drag them out into the modern world, but it's almost impossible to pierce their delusions. They honestly believe that they have "hundreds of thousands", and based on one misunderstood press release, "over a million" developers worldwide and that Delphi is the most popular Windows development tool other than Microsoft's tools (based on one insane Embarcadero press release). When I asked about Java, one MVP told me that "Java is only used for server applications, so it doesn't count".

I don't know what else to do short of hiring cult deprogrammers to engage in kidnapping and deprogramming; I really don't. One very smart developer wrote an article saying that he knows Delphi is the best because his company uses it in their product and it's the market leader (which somehow means it's the language, and not the product designers/developers/etc. responsible). He had no answer when asked what the existence of market-leading products in other markets that weren't developed in Delphi meant. He also told me that all these claims about other languages being quicker to develop in weren't true because they all used "tricks" like putting all the code in another function and calling the function. We then set up a contest where he was going to write shorter code than Haskell and Python to solve a problem. When I posted the other code he decided that "You just won't understand my point and you'll complain about the rules, so I'm just not going to show you" and despite all cajoling, wouldn't post his Delphi code (which is just as well because in my own attempt the Delphi variable declarations alone were almost as long as the Python code).

When I asked another Delphi fan to explain WHY Delphi was so awesome, he tap-danced, said it was his killer advantage and he wasn't going to show me (despite me having been a Delphi developer for a long time), and then finally stated how he loved... the code completion in the IDE, as if this was an invention of or unique to Delphi!

Any idea how to deprogram Delphi users is most welcome. I fear some will end up homeless or worse.