TPPL or T™P™P™L™, is a dream that many companies with too little user respect and too much greed have chased.
Oracle and Java, later Microsoft and C#, have YAPL’d(yet another programming language) harder than a cat whose kittens are being taken from her. Apple and Objective C, Google and Kotlin, and I’m sure quite a few others who didn’t reach enough fame to enter this bill, have all come and gifted the World with their superb Techno-babble that would somehow manage something better than others.
It would now be entirely unfair of me to stop at such a sour judgement. Java is, in my not-so-humble opinion, the most brilliant example of a YAPL done in and out of the bank vault: a language whose main quality was to be big, to be portable, and to scratch that perfect itch that every big tech company had back when everyone had to recompile their program on every computer in the 90s. Java is that creation that managed to succeed so greatly on commercial values that it’s as if its technical prowess was completely worthless. Which it sort of was for a long time.
One day, I will be good!– Java, somewhere around 1995.
Has Microsoft managed to fly over Oracle’s nest, steal the cuckoo and fly away with it, rebranded as C#? Maybe. But for some reason, and that’s coming from a rather fierce Microsoft hater, I don’t even mildly dislike C#.
Has the upgrade from Java’s horrid syntax and the mixture of C++ and Java OOP somehow wooed me? Maybe. Has C#’s surprising performance and efficiency of use despite that ever-so-present Microsoft patte managed to excuse its origin as a Java clone? Maybe.
Has C# simply won me over because it satisfied the Three Great: syntax, big, but not bloated, performance, good but not brilliant, and size, large enough to satisfy most needs, but not I-Was-Born-For-Boilerplate-Java?
But if Java is easily the programming language I would literally refuse jobs offers over, C# isn’t making me squeal out in joy either.
Ultimately, YAPL will YAPL. There is only so much that can be reached when your goals try to cover the Three Bores: a generic/well known syntax, a codebase large enough to cover Web and all basic functions, and the expected OOP patterns and everything at its place like it was in the last 50 YAPLs that tried to appeal to the market.
Well, THAT is different from what I’m used to…Said Mr Progman, after seeing 1/20th of his new YAPL being different from his old YAPL.
Yet the point of this bill is also not to simply complain about big tech, or big bank, making uninventive technical decisions to woo throngs of programmers to come code in their fields. This problem is also a dream that many great programmers have chased.
Problem yet, is that we have been dreaming and chasing since at least the 1980s. When OOP became the standard of the future and we all had to come out of C Prehistory, everyone ran their wagon and built their tracks. Bjarne, the maddest of all mad scientists, decided to make an OOP based on C that would cover literally every single use case in the multiverse. He named it C++.
You have 20 seconds to tell me if I have to use a char, unsigned char, signed char, char8_t, char16_t, char32_t, wchar_t.A professor who really needed his students to fail that test.
Larry walked on the White beach and found a Perl laying there.
$warnings = optional; $strict = optional;And then PHP ate it.
Much later, Guido explained that we needed neither languages without warnings nor languages with every single atom of the universe incorporated into the syntax. He unzipped his skills and let out the Python. And there was much rejoicing.
But since Guido, much like all of us, is imperfect, he designed his TPPL as a scripting language, that handled objects through files, called modules. Which didn’t really fit all that well, and made it quite annoying to have 25 files whenever you wanted to have something complicated done. So he too branched into classes. And there was much confusion.
I could go on with many, many more.
We can even commit the sin of searching through D’s brilliant mix of Python, Ruby, C++, C, and find complaints about something there.
Even Crystal, Ruby’s someday-I’ll-reach-V1 little brother, but compiled, may have some things to poke at.
But if after 40 years almost, we’ve all fallen into traps and pits and tried too hard to understand what was TPPL, perhaps we have to admit that TPPL cannot exist. That it is important to have multiple languages and multiple tools for multiple needs.
However, nothing proves that we need multiple syntaxes. Or that we need to have multiple tools that are incompatible with one another.
I will use this blog to try to dig up ideas on how to built TPPL, or at least, how to build the multiple blocks that should make TPPL.