Ruby, and Python, and Ajax; oh my!
A few weeks ago I got my first experience with Python, a nifty programming language seemingly for the open source crowd. Python has a strong following but I always got the sense that Python wasn’t a “real world” programming language, much less a platform for enterprise development. Well Google proved me wrong on that.
Let me clarify “real world” programming language. These days your major platforms of choice are Microsoft .NET and Java, and to a lesser extent, C++ and VB6 (yes, people still use VB6). Can you build a finance system in Perl/Ada/C/Fortran/Cobol/etc? Of course you can. Is that the first choice among professionals in the industry? In the majority, no. So, take my thoughts as that and that alone, my thoughts. ![]()
Unless you’ve been under a rock for the last year or so, you’ve heard of Ruby and, more famously, Ruby on Rails. I think everyone in the world, except for me, has explored RoR and has commented on how it’s the technology of the future, the greatest way to build web applications, etc, etc, etc.
Is this stuff for real?
I don’t know why exactly, but it seems weird that the “best web application framework” can build an enterprise web application on the double. Sounds backwards I know. I haven’t had any exposure to Ruby or Ruby on Rails but I have watched a somewhat popular video of someone building a quick web application from scratch. Sure, it makes for an awesome demo, but I can’t see real development being done there. I know that sounds bad and I’m sure someone would love to bash me in the comments, but whatever. It just seems like somewhere you’ll run into a requirement you can’t deliver because the technology is built to be so simple.What are the limitations to these technologies?
I’ve been all over Ajax myself, long before it was actually called Ajax. I’ve personally written tens of thousands of lines of JavaScript to build a full GIS client framework. I know the pains of maintenance with something like that. How does Python or RoR compare here? I’ve also worked on some sophisticated ASP.NET web applications that had custom http handlers, custom built server controls, objects that communicated back and forth with custom events, and so on. How deep do the libraries for Python and RoR go? Where is the dividing line between Python/RoR and .NET/J2EE???
I’ve seriously been considering buying a Python and/or RoR book. I actually really want to but time isn’t something I have much of these days. Can anyone give me some feedback on Python and/or RoR? Do you use it, for work or pleasure? Why? What makes it a better tool for the job than .NET/J2EE?

One reason to pick Python or Ruby over C# or Java is that they make a programmer much more productive. You don’t need to convince the compiler that you are right so much, it takes less tping to accomplish the same task.
As for Django or Rails, they build upon their respective language (Python and Ruby) and offer very fast development for web sites.
Try http://www.diveintopython.org for a nice free book on Python.
I am a long time IT guy - more than 15 years in the field - but I ahve never learned to code. Sure I used to be able to some complex things with shel and batch - but I never really knew how to code.
I decided to change that finally - and after a small fortune spent on various books about java, php, ruby, perl etc.. I finally found one that put things into a context I could wrap my head around quickly.
I dont like to “read” technical books - they make me sleepy - I like to “do” technical books, but most of the books I ahd purchased or read for 30 minutes in the book store still ddint start out with super simple building blocks.
Finally I was turned on to Djangoproject.com and realized that the site I am trying to build must be built in python on Django.
But where to start. I bought the book “Beginning Python” by WROX press. Seemed good - so I went digging for python stories and found a multitude. But several of the comments stated that the best Python book was “Python Programming Second edition - for the ABSOLUTE beginner” - (no experience required)
I am now over half way through the book and I agree with the sentiments of the other diggers - this book is perfect. Sure at times you may feel like its going a little too slow, but only a quarter of the way through some of hte examples I found I understood what I needed to code for the next step and didnt actually need to read the example. I only needed to compare to check my work.
I find it very easy to extend upon the examples and make them just a little different so they match my thinking style.
There are excercise challenges at the end of each chapter - and I admit that some of them I didnt feel comfortable attempting yet - such as coding a skill points “character sheet” ala D&D, with the ability to redistribute pouints that had already been assigned.
I am a master with AutoCAD- I have taught autocad and was previously “the fastest cad drafter in the nation” through a competition, but I only read one book on autoCAD in my life. But I read that same book 20 times in a row.
Basically I went throguh the examples in the AutoCAD book over and over until I really understood them and could build greatly upon them. I had been looking for a book on coding (in any language) that was similarly written as that autoCAD book (”The ABCs of AutoCAD”) - and this book seems to be it.
I spend a couple hours each day working through the examples (I have had it only a week) and I do it at work in my down time.
I am very jazzed about python and I appreciate this book - hopefully you can benefit from it as well. (p.s. I think Django kicks RubyORs ass - Flame on!)
Great point. I have noticed that Python is a pretty easy language to use, and that includes some of the basic things I don’t need to worry about that I would have needed to explicitly do in C#.
Phlux, great post! I was looking at the third edition of that book. I think it will be hard to choose between Python and RoR. I normally do web development everyday in ASP.NET/C#. I have enjoyed writing simple scripts in Python for my Mac though.
Chris: if you like web development, check out http://www.djangoproject.org, one of the two most popular web frameworks for Python. Guido recently picked it as his favorite.
When a co-worker and I were approached to create a web-based admin panel for an internal product, we decided to give RoR a spin. There were many other choices, but since this was a small, non-critical, time-insensitive web project, we figured it was the perfect opportunity for an experiment. Neither one of us had prior experience with this technology other than demos and what we had read, all of it online. What I have written below is based on my first and, to date, only experience with RoR.
Initially, I found the makings of RoR’s productive framework to be code generation and templates on the fly, tight data access integration (goodbye SQL statements), sweet AJAX integration, and ruby’s simplistic syntax, among others, all which seemed to make development a breeze. Basically, I thought the productivity stemmed from all of the neato features I had read about. I soon realized however, that the major benefit was not all the cool little gizmos, rather the architecture the RoR framework provides for development. RoR gives each project a foundation of standards and conventions which, in my experiences, tend to be loosely defined in most application development environments. The developer is freed from having to define these conventions and is able to focus on the meat of the problem with less coding, hence increasing productivity.
Now, I don’t believe that RoR is the right solution for all problems. It is still in its infancy. Its library is not but so deep, and if you’re building a complex, feature rich application, you’re probably better off using one of the big guys, at least for now. In my opinion, the API is not fully developed for everything you want to accomplish. .NET and J2EE are definitely frameworks designed to solve all sorts of problems.
So far, I have been pleased. However, like any development framework, RoR takes time to master. I remembered that you can’t just watch the demos and think that’s it. I say, give RoR a try in your spare time. Find a small project with the right requirements to use RoR. For the moment, RoR seems to be gaining momentum, and I personally don’t want to be left in the dust. In the end, I won’t look at my RoR experience as hopping on the bandwagon; rather I will value it as a potential weapon in my arsenal.
Graham, awesome reply. I remembered you had mentioned RoR in the past. I tend to agree with you on the reasons for playing with the technology. Personally I think it’s a neat framework and the right tool for certain jobs, no question. I hope to do a little more with it as I get projects that fit the bill. What kind of development are you doing these days? I guess we’re a long ways away from the 465 days…
Chris,
I’ve a very similar technical background as you. Have lot of experience in developing in small/medium/large scale sales/OM/CRM and financial apps either shrink-wrapped or web or systems. During these periods I’ve NOT spent my time on updating myself with emerging tools/technologies such as python/ruby/django/ror.Always trying to deliver and meet deadlines. A bad engineer case.
The fact that these(python/ruby) are new,these tools are better designed for productivity over the old C++/Java/.NET. These new technologies never had to worry about the trash (back-ward compatability) and so their design is excellent without much compromise.
It is true that the so-called “real” world don’t use them due to variety of reasons that i know..
1. Companies have already invested money in these propriety tool/technologies that we use today.
2. Team skills (people like me) does not fit with the new technologies.
3.Decision makers (not me) / influencers are outdated/feel risky to try these new technologies and stick with proven old technologies.
As I started to update myself, I do see that the design of these new languages or framework are far better than what we are used to now. Easy & fun. From my perspective,it is matter of time while “professionals in the industry” will be forced to switch to these. Guess what that force will be “biz competition”. These tools will allow people to build apps in less time with less work that the products built by “professionals in industry” had to respond.
You can check my blog if you wish to learn python…