[LRUG] What will the post-Rails contraction be ?

Paul Robinson paul at 32moves.com
Wed Feb 20 02:34:12 PST 2013


On 19 Feb 2013, at 20:22, Stephen Masters <stephen.masters at me.com> wrote:

> To avoid badly implemented Rails applications, people need to either learn to write Ruby better (GOOS) or give up and switch to a trendy new  functional/OO hybrid (Functional Revolution) language, where there will surely be a framework which makes it impossible to implement a web app badly.


I sense I heard this argument many years ago: the conclusion from those blaming the languages back then was that everything should be written in Pascal.

As the recent release of Photoshop v1.0 source code demonstrates, a lot of people actually ran with that theory for quite a long time.

Even now, I know very experienced guys who did some coding back in the 1980s and 1990s who haven't kept up with fads, who if you ask them to throw something together they'll go with Pascal or Bash. They didn't even get to Perl...


> But to my mind, in the context of web frameworks, Rails was a 'contraction'.


Not sure I agree with that specific word, but I think the idea is right. 

When I got into Rails when it was very shiny new (pre v1.0) in 2005, the big selling point was this: here are some highly opinionated conventions that mean you spend less time doing configuration. DRY is an important aspect of good OO coding, so we've done a load of stuff that you will just end up repeating yourself anyway across multiple projects (probably badly), and we've laid out everything in a way that makes sense. Here's an ORM. Here's a routing engine. Here's an MVC configuration. etc.

I'm not sure that's a contraction, as such, it was a convention laid down by a loose standard that when it evolved (as it needed to), people complained about. Taking pre-1.0 apps up to Rails 1.0 best practices was a fair bit of work. Going to Rails 2.0 even more. Rails 3.0? So painful there is still a ton of production 2.x code out there, and we all know it...


> By accepting the limitation of a defined project structure, developers could avoid many of the pitfalls and inconsistencies which were prevalent in web applications built in other technologies.


True, and it meant there was less time arguing about how to structure an application within your team, and so more time just getting on with it. Result: a sense of rapidly increased productivity.

Interestingly, this has led to developers quickly being able to put together much more complex applications in a shorter time frame than if they'd used other technologies, and many apps have to break out of the convention, and you immediately feel the pain because it's not a "standard" Rails app and developers scratch their heads getting up to speed.


> FORTRAN is still used heavily in real-time systems such as robotics


It's also still hugely popular in physical sciences. I am friends with a recently retired doctor of Physics whose big research area was ice nucleation in clouds (snow formation). He once showed me his code (not that long ago), and it was all FORTRAN. When I expressed surprise he said that not only was it the way he worked, it was how most weather modelling systems still work (seriously: the forecast you see after the news? Based on FORTRAN models), but new PhDs at one of the most prestigious Physics departments in the UK are told that if they don't code in FORTRAN, their models are probably going to be broken.


> C is still popular in gaming


Don't forget Objective-C has caused many iOS devs I know to take an interest in "raw C", as they sometimes call it. C is ridiculously popular. And non-portable C is about as fast as you can go before you start writing assembler.


> So this is more a history of fashion in programming languages than an indication that each step was an improvement on the previous step. :)


There's a quant trading house not far from Old Street that uses OCaml. I've seen people write commercially successful applications in Runtime Revolution. One of the guys behind a leading global logistics firm got his initial VC investment based on a self-annealing solution useful to the industry which he wrote in Lisp. 

I am certain that there is some production code out there in numerous languages that would make many of us wonder "why?".

http://xkcd.com/305/ applies to bizarre coding/solution sets as much as it does anything else on the net. I haven't looked, but I will guarantee that somewhere there is an IRC client written in Lisp, a web browser in Shakespeare (http://en.wikipedia.org/wiki/Shakespeare_(programming_language)), an email client in LOLCODE, and worse...


More information about the Chat mailing list