Original URL: http://www.theregister.co.uk/2014/01/20/towards_the_fondleslabfriendly_intranetofthingies/

Eight EXCELLENT languages for the fondleslab-friendly Intranet of Thingies

Shifting software paradigms and so forth

By Verity Stob

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.

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?

Fab technology #1: the dominant browser-side language will be JavaScript.

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.

No, wait, come back. You misunderstand. I'm saying that it's ok to ignore these JavaScript-as-the-assembly-language-of-the-internet compilers. You don't need to recompile your Ruby routines for FireFox, nor massage your Clipper programs to run under Chrome.

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?

Werl, now...

And by the same system, your reluctance to touch SOAP suggests Fab technology #3 is REST?

200 - OK.

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.

No?

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?

Nope. Donglegate.

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.

And your dongles look positively huge today, honey. Amen. Let's get on with it. Fab Technology #5 is C++, again, just because it always is, and Fab Technology #6 is a Javascript library...

JQuery?

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.

Number seven?

Fab Technology #7 is NodeJs.

The mad server-side JavaScript that avoids thread blocking by having callbacks passed as the last argument?

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.

That can be a problem now, but maybe not for long. And with Node you can ditch Apache and PHP and all that limp LAMP stuff, and stick with one language both client and server side.

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...

As is well known, is web scale. Indeed. Have seen that old vid, been unfairly influenced, cowering in the bosom of Maria for the time being.

No, my final choice, Kirsty, Fab Technology #8, is the TypeScript language, combining the flexibility of JavaScript with the sanity of static typing.

JavaScripters bang on about automated testing not because they believe in BDD or other testing-is-nicer-than-food approaches, but because otherwise they have no way of picking up on elementary typos. TypeScript fixes this.

But... but you've flatly contradicted yourself. Your Dud #2 was 'No Microsoft', your Fab #1 was 'No compile-to-JavaScript languages'. TypeScript falls into both these categories.

Um. Um, yes, but it's open source, which mitigates the MS contamination, and, um, it's not so much another language, more a sort of JavaScript++ (may Crockford forgive me), um...

Pah! Cop-out.

And a happy new year to you too. ®