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

Stephen Masters stephen.masters at me.com
Tue Feb 19 12:22:58 PST 2013


Paraphrasing (with tongue only slightly in cheek) the conclusion…

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.

;)

It's a shame that he doesn't really explain why he thinks that Rails was a capability expansion. I can understand such a belief with respect to Ruby and the associated trend towards dynamic languages, from the 'safer' world of statically typed OO. But to my mind, in the context of web frameworks, Rails was a 'contraction'. I'm not aware of any increased capability introduced by Rails. Previously you could do pretty much anything you pleased using Java Servlets, bloated PHP pages, Perl, or even C if you really wanted. The convention over configuration introduced by Rails meant that you were no longer able to structure your web projects any way you pleased. 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.

If he had stayed away from Rails, and stuck with just Ruby, then it might have made more sense. i.e. 

Assembly
  -> FORTRAN
    -> Lisp (Functional Programming)
      -> Algol 68 / C (Structured Programming)
        -> C++ (make C safer by merging Structured programming with OO)
          -> Java (make C++ safer by enforcing OO (mostly), and removing pointers)
            -> Ruby (make dev easier/faster by removing the safety harness of static typing)
              -> Clojure / Scala / F# (maybe static typing wasn't so bad, but we'll claim it's because we want to do multi-core more efficiently)

However, I'm pretty sure that Assembly is still popular in the genetic algorithms space, FORTRAN is still used heavily in real-time systems such as robotics, C is still popular in gaming, C++ and Java are still used in all sorts of systems. So this is more a history of fashion in programming languages than an indication that each step was an improvement on the previous step. :)




More information about the Chat mailing list