"Historically, RailsDjango applications have been an amalgamation of RubyPython, HTML and snippets of Javascript. Add an API to the mix, include a ton of conditional rendering logic, and you’ve got your classic RailsDjango spaghetti"

This is an adapted quote from Alex MacCaw. Django, in its current incarnation, also makes sense for websites but not for web applications.

I’m writing this up as we are currently transitioning to API-based de-coupling of back-end and front-end. In other words: a client-side user interface which talks to an API for data. This web app should just be one of the api-consuming clients, not privileged in any way compared to an iPhone or Android native client.

“The caveat in moving state/user interface to the client is that it’s a huge perceptual shift for developers, with a steep learning curve”.

I could not agree more. I’m witnessing this as I speak. When someone has worked on traditional websites using Django, Rails, PHP, Plone or you name it, the paradigm shift to API based application design is incredibly hard to wrap your head around.

In my modest career as a developer, I’ve seen several examples of a very scary syndrome: ‘technnological conservatism’. I don’t intend to offend anyone here, it’s just my observation most programmers develop some this syndrome to some degree as they age. Perhaps it’s natural, and perhaps I’m not immune to this either.

The first time I noticed it was with a colleague who started his programming career using Perl. He was comfortable with Perl, and had built some applications that were important to the company. Perl, however, was undeniably superseded by more web-geared solutions like PHP. PHP made templating, database querying and deployment a picknick in comparison to Perl. Yet he refused to learn PHP. The company hired additional programmers, and organically transitioned to PHP and Java. Frustration eventually led him to quit programming entirely.

I have two more similar examples, and they’ve taught me one thing very clearly: As a programmer, either go with the flow or you lose.

That’s not to say you should always go for the latest and greatest. Just evaluate the right tool for the job, be ready to learn new things. That’s the biggest curse of IT: a paradigm shift will happen at least every ten years. If you’re a conservative person, you should have chosen law or history. Those fields never change.