Nothing Special   »   [go: up one dir, main page]

Saturday, November 05, 2016

Movin' on up to the Top

Maybe it was the death of Pieter Hintjens, or maybe just (late) middle age that has me mentally reviewing the type of programming that I’ve done and how I’ve gone about it.

But here’s the thing: I remember paper tape and VT420s and CP/M and 8" floppies.  I am a dinosaur.

When I started programming, I started with the high-level language of the 1980s: plain old C.  And I did it on the high-level platforms of the day: MS-DOS and UNIX. This was a great choice, in hindsight, because after 30 years, I’m still programming on C in UNIX-like systems.

But as technology advanced, my niche, which was once the top level of the stack -- CLI programs of the old UNIX philosophy – is now basically two levels up from the bottom.  And many, many layers have been built atop the layer where I make my living.

I’m down in the weeds, so to speak.  And as a consequence, none of my non-tech friends have ever understood what I do because there is nothing I can show them that has any connection to their understanding of technology: phone apps, webpages, or desktop applications.  Talking about DO178B or writing device drivers at dinner is a bit of a snoozefest.

There’s another thing that has held me down in the weeds: free software.  For most of my career I’ve been working in free software: GNU, GCC, Linux.  It places a high value on stability.  I have programs that I've been maintaining for over a decade with not a huge amount of effort.  That stability is so comforting.

Maybe it might be fun to climb my way back to the top of the stack: this highest level languages and toolkits.  In the GUI space, the amount of churn is rather amazing, but, then again, the amount of churn in the UX patterns form factors is also very high.

I'm not really sure what is at the top of the stack these days.  I did some searching.

Likely the highest level toolkit and language out there right now is Unity, but, it is a bit specialized for the game space.

The highest level language out there right now is undoubtedly Perl 6, but, its GUI toolkit hooks seem to be rather raw.

For Windows 10, C# on UWP is probably the winner.

Among the maintained languages for the GTK/Gnome stack, the high level language is probably Python.  Among the maintained languages for the Qt stack, is it QML and C++.

I don't know much about mobile, but, Android seems to be C# via Xamarin, and iOS is Swift.

In the web space, it is obviously JavaScript of some description. I have no clue what the top level GUI toolkit is.  Maybe it is the React JavaScript library.  As for the language itself, plain old JavaScript seems to be coming back in fashion.  The back end is mysterious.  It used to be Java.  Now it seems to be one of a dozen languages and rail-like things.

After Unity, Qt seems to be the most multiplatform native toolkit, with HTML5 being the most multiplatform of all.

The real question is, if I wanted to write a stupid program that my friends could run, what platform would it be?

HTML5 would be the best, followed by native mobile, followed by desktop Windows 10. It is a shame that the HTML5 development experience is such a mess.

It is interesting how there is so much fragmentation in the high level. I wonder how many of these toolkits will still be relevant in five years?  Microsoft toolkits have the highest level of churn. Remember WinForms or XNA?

Maybe I should stick with Unix-like CLI in C, where I belong.

What do you think?  Do you have a different opinion on what is the high-level language and toolkit on your favorite platform?

No comments:

Post a Comment