Eight EXCELLENT languages for the fondleslab-friendly Intranet of Thingies
Shifting software paradigms and so forth
Posted in Verity Stob, 20th January 2014 10:01 GMT
Stob What are you up, Verity? Ensconced in one of your comfortable, miles-from-any-critical-path projects?
Actually, I have been sussing out an upgrade path for our longstanding customer x. Do you remember?
Certainly I do. It is quite easy to remember 'x'. Even in this age of companies with stupid names, it is unusual. As I recall, they are the people who run a fleet of dusty, crusty XP Dells. CD-ROM drives covered in pre-Clean Air Act cigarette burns.
Just so. Thing is, x has come into a great chunk of IT budget, and Santa brought all the executives iPad Hot Airs. They want us upgrade their software to a Web 3.1, smartphone- 'n' fondleslab-friendly, intranet-of-thingies compatible, virtual smartcloud-hosted, platform-neutral system.
Congratulations. Tell me, do the folks at x realise that most of your web stuff up until now was developed in phone-hostile Flash?
Hush your wee mouth. This is why I have been kicked out the door to conduct a survey of modern development tools and platforms, especially web stuff.
We have spent too long encamped on Windows beach, and now the tide is lapping around our Cnutish feet. We have allowed ourselves to be overtaken by the receding hairline of male pattern mediocrity. We have drifted too far from bleeding edge, and too close to the weeping scab.
There's a great rumbling in the distance; it is the sound of the paradigms of software development, shifting. The fickle finger of fashion has written a dirty word on the steamy window of technology and, and...
If you are about to use the phrase 'tipping point', that's me off to mumble my tweets and good riddance.
Hush. I have been working out which skills and tools should be acquired or nurtured, and which may be placed on the compost heap, alongside such formerly important crafts as Z80 machine coding by hand, Reordering your DOS TSRs to get >620kb free at the Command Prompt, and Perl.
Uh-huh. Don't suppose, by any chance, you have drafted two lists, categorising the technologies into eight of each?
Funny you should mention that. Get your touch-slate juiced up, petal; you will probably want to dob down the highlights.
Forlorn for fourteen
Dud technology #1: Java, language and runtime. Oracle has been sending you a message, delivered every time Java updates itself, and the installer attempts to inflict the dreadful Ask toolbar. Not so much 'bye bye' as 'eff right off'.
Apart from this, you might consider such issues as depending on a language that belongs to a company more famous round here for its aggressive commercialism and litigation than its engineering, Java's ongoing security holes, inability to track the programming Zeitgeist - eg the still ongoing lambda fiasco and so on.
A tough call if you have 2.7 billion lines of crufty middleware sitting on your VM farm, all wanting maintenance. Besides, there's this not entirely unsuccessful thing called Android...
Doesn't matter. Still doomed. And, by the way, that goes for the Scala language too; it's just Java in functional frock.
I see. That's clear enough. So you are backing C# ftw, are you? Hadn't got you down as part of the ASP spectrum.
This is a stressful time for Microsoft, what with Windows 8 struggling, being stuck with a lame duck CEO and so on. The company has responded bravely, and achieved a fantastically delicate and nuanced balance. It has divided its technologies between 1) those that are popular - or at least accepted as inevitable - and generally used (Start menu, Win32 API, .NET runtime etc), and 2) new stuff that nobody cares about (Metro, Surface, WinRT API, Windows App Store).
It feeels like the former are, in general terms, being de-emphasised by Microsoft, and therefore are not sensible choices for fresh development. Sweeping? Ask any user of the last-but-one database API (OLE DB anybody?).
The latter are, in general terms, not being taken up, and are therefore are not sensible choices for fresh development. Sweeping? Ask any veteran casualty of the OS/2 wars ('Better DOS than DOS', anybody?).
Thus dud technologies #2: Everything bearing Ballmer's meaty paw-print. I hope my fellow rats - sorry 'Windows programmers' - find this tip useful.
Right. Nothing from MS then. So what will we be putting into Subversion in this brave new world?
Nothing? We programmers are all out of work? Software will write itself henceforth, in the style of The Last One?
Nope. I am saying that Dud technology #3 is Subversion.
That's a vertiginous descent from general to specific. Nay, nay and 2.67 times na. You have this all wrong. Subversion is the version control system for the twenty-first century.
I'd love to agree. More in sorrow, and all that. But there it is. Dear old svn is as fashionable as a portable Blackberry-and-not-Apple telephone.
What other well-loved, popular, successful and growing technologies you are blithely going to cast into darkness?
Dud technology #4 is XML.
<colour me not terribly surprised/>
Dud technology #5 is SOAP.
Now you're just being obvious. If you have nothing to say, I can go water my Bitcoin generator.
Perhaps I could interest you in a trio of scripting languages?
Go on, then.
Dud technology #6 is PHP. I've always liked PHP. I love its quality of not so much being designed as fag-packeted one Saturday afternoon through a thickish hangover. I love the retroactive object-oriented extensions, adroitly nailed on to the language just as OO became unfashionable. I love the fact it still has the cleanest, most useful docs in the business.
Most of all, I love the fact that you always know where you are with PHP: either a) coding your way into a pickle, or b) already in a pickle and burrowing deeper. I will miss it.
If nothing else, that should buy you a few dozen @STOBCREEP U NO NUTHIN LOOSER MR SO-CALLED SNOB #PHP4EVER! tweets to the Twitter account you have neglected to set up.
Dud technology #7 is Python, somehow the Waitrose of scripting languages; smug and elegant and curly-bracketless as a young fawn in a BBC Bristol documentary. It flatters the user. Coding in Python is like handwriting with an italic nib: all but the most inept efforts look good.
But Python is also a victim of late-blooming OO extras; there is a schism between V2 and V3 users which is losing it momentum. The other day, I saw somebody refusing to install some utility '<sigh> because it needs Python'. This is the beginning of the end.
Eight trillion young Raspberry Pi users say you are wrong, and good luck to 'em. And the third?
Dud technology #8 is Ruby. Its doom is neatly encapsulated in the title of this talk.
Fresh for 14, faded by 15?
If all your aspersions are safely cast, what horses are you actually backing? Compulsory Objective C for toddlers? Malbolge?
As opposed to the dialect of VBScript supported by IE5, I suppose? Astonishingly prescient. Definitely worth reading you just for that.
Tell you what: you stay sat there and continue picking your nose while I go pluck my North Face from its hook.
I urge you to be suspicious of compiling one high level language to another. You put an extra layer or interpretation and bother between yourself and the machine, and one not necessarily that will increase your control or expressiveness.
Hum. Are you really just trying to say 'Don't bother your head with CoffeeScript', and so sneak in a negative prediction masquerading as a positive one?
I don't know how you can think that.
Fine. Let me see if I can infer your other blazingly-obvious deductions. You've done down XML so I guess Fab technology #2 is JSON, right?
And by the same system, your reluctance to touch SOAP suggests Fab technology #3 is REST?
Like shooting Type II diabetic fish in an undersized barrel. And you'll be backing git for Fab technology #4? On account of its distributed model, speed and ease of merging?
No. I'm backing it because it has been compulsory since 17th March 2013.
Huh? Compulsory? What happened? A conciliatory gesture from the Elders of the Internet to git-meister Linus on the occasion of the ten thousandth 'Is this the year of the Linux desktop' article?
Double-u tee eff? Oh, wait, I see. The 'forking' innuendo. Good point. To avoid the wrath of the demons of 4chan, we had perhaps better perform the formal nerdal responses. I'd love to fork your repo, Verity.
Nah, JQuery is, as it were, the BIOS of the client-side webstack. I'm talking about which of the dozens of MVC frameworks to choose.
'BIOS of the client-side webstack' indeed. All right then, which MVC framework?
Fab Technology #6 is a AngularJS. Because it is clever, elegant, Google-backed and has really taken off. And seems to work pretty well. Season it with a hint of Bootstrap and you can knock up a SPA in no time.
Fab Technology #7 is NodeJs.
Yup. It's fantastic: efficient, versatile and...
...and you quickly end up indented off the right hand margin, imprisoned inside a huge stack of nested lambdas.
Wait a moment. I've heard of this. You are just describing the MEAN stack. Your last nomination will therefore be MongoDB which, as is well known, is...
And a happy new year to you too. ®