I am sure this is making the rounds but this seems like an appropriate place for this list: If Programming Languages Were Religions. My favorite description:
Lisp would be Zen Buddhism – There is no syntax, there is no centralization of dogma, there are no deities to worship. The entire universe is there at your reach – if only you are enlightened enough to grasp it. Some say that it’s not a language at all; others say that it’s the only language that makes sense.
Speaking of computer languages and projects and religious holy wars, in the last few weeks I have been totally intrigued by the culture being built by the Ruby on Rails “guys.” As a researcher of Free and Open Source Software, I, like others, actually tend to see the similarities more than the difference between these two poles (in part because I focus on practice, not on the purist ideologies or two ideologues, you know who I am taking about) but it seems to me—-and I could be wrong here but I suspect I am not—-that Ruby on Rails is producing a unique Open Source culture, one that really diverges from some of the core principles of Free Software, much more so than other Open Source projects like Apache.
The rail guys as I have heard, are Open Source evangelists of a certain stripe, who are quite “cultish” (you know, it is “weird if you don’t use github, a Mac, TextMate).
What do you think of Ruby on Rails? Are the attacks fair? Are they a bunch of douchebags, as this (very incisive) post argues? Is it where Open Source meets and marries, for better or for worse, the Web 2.0 craze?
If I could clone me, this is definitely one line of research, I would love to dive into right now but since I can’t, your opinions would be greatly appreciated.
I don’t think it is that different from, say, the EMACS/lisp folks; there is a very specific aesthetic preference and people who follow it are ‘in’ and everyone else is ‘out’. That is a very old story; the specific aesthetic preference here is unusual (for free software) but the implementation is the same.
Comment by luis — December 16, 2008 @ 7:50 pm
The thing about Ruby is that it has very little community uptake outside of RoR. Rails is a web development framework, which means it targets web servers and its packaging system is designed to work within that paradigm. It can work with Apache, but has done a fair amount of wheel re-invention with lighthttpd its own web server. RoR developers get presented a fairly complete environment to develop in, without having to muck about with the database, web server or operating system, and they like that.
The problem is that this paradigm has not been designed for easy integration with an OS, despite their claims to the contrary. The poor state of Rails in linux will attest to that. This means there is conflict between ruby packages and debian packages and consequently Rails and debian.
Most Rails developers came to Rails from developing JavaScript, PHP, and/or HTML so they may not have extensive experience of the underlying technology that powers these things, I mean things like TCP, kernel modules, sockets, etc. That is the purpose of Rails – to be a quick prototyping tool for the web, it abstracts away all the ugly details of the OS.
The problem occurs when these web developers come into contact with the Free Software community, which has its ways and outspoken nature. As opposed to the proprietary world where they just ignore you or are happy that you bought their hardware, Free Software developers will tell you when they think your software sucks. And unfortunately ruby gems break some established, canonical packaging practices and are poorly designed in comparison to apt, ports, etc.
While there is work already begun to fix ruby gems so it integrates better with debian, clearly the ruby community is angry that they get so much flak. Welcome to the community, if you are getting hassled, it just means we like you Rails!
Comment by Jeremiah C. Foster — December 17, 2008 @ 1:20 am
Ruby is a superb language and Rails is really a great open-source framework.
I would not say Rails is a must. Others could use Merb or any other ruby web framework they like. The only reason I can understand not using a ruby based framework is the need of closing the source, although I can’t understand why someone would need it. Usually, web applications only exist on the server side. If your deal is online services, there is no need of showing your code to anyone else. If your deal is to develop custom systems for use in Intranet or Internet, I can’t think of any company that would buy a web system with no source code included.
Ruby is very productive. And so is Rails.
I understand people are afraid of everything that is different (Mac, TextMate, Rails, Ruby). Personally, I don’t know Mac nor TextMate but I love Rails and, even more Ruby. For GUI developers I would strongly recomend that one take a look at the Shoes framework. I use Rails on the web site I’m responsible for, running on a Linux server:
http://www.fapes.es.gov.br
There has been about a year and definitely it was the best choice I could take. I was used to Perl programming for web applications when I was used to develop web applications. Then I stopped working with the web for working on my master thesis, with robotics, real-time systems (Linux+Xenomai patch), C++, kernel framegrabbers modules development and came back to web development just about a year after I’ve finished my master thesis.
Until Ruby, I knew: C, C++, Pascal, Delphi, Perl, Shell scripts, ASP and a little bit of Java, PHP and Python. Well, today, I wouldn’t use any of them for writing web applications, except from Ruby, and, maybe, Python.
Web applications are very dynamic and database tables change their structure very fast. Rails facilitates this a lot with the migration feature.
Also, the possibility of writing monkey patches is an excelent workaround for writing plugins until the main framework is changed to facilitate this task. No other language I know allows the programmer to override some classes just reopening it.
Also, git and opensource are the best friends. Developing with git is much more related to opensource than, say, subversion, cvs or any other centralized version control system. Rails understands this and organize its source code into a git repository and that’s why github is an excelent place for sharing projects. No one says it is the only place for hosting projects, but it is a good one. I just can’t understand why people get bored about another opensource great framework a free git host and another great language.
Comment by Rodrigo Rosenfeld Rosas — December 17, 2008 @ 3:36 am
Hey, rails is not a programming language.
Comment by Patrick — December 17, 2008 @ 4:11 am
RoR would be the strange little cult like Heaven’s Gate.
Merb is the only true ruby way to go. It was designed to be faster, less magical, and as agnostic as possible.
http://merbivore.com/
Comment by Jeff Schroeder — December 17, 2008 @ 4:41 am
Can’t speak to Ruby culture, as I’m a Python guy, but I’ve long been interested in the use of certain words in dev communities as a warning of an issue to avoid, including religious, political, and rat hole.
http://goatee.net/2001/11.html#_25su
Comment by Nrrrdboy — December 17, 2008 @ 5:07 am
Jeff, don’t forget Ramaze. It’s even faster, less magical and more agnostic than Merb
http://www.ramaze.net/
Comment by Zebes — December 17, 2008 @ 7:38 am
This is only semi-related, but you might also enjoy What Various Programming Languages Sound Like When You Drop Them:
Fortran crunch
Perl *thud* +bounce+ ~quiver~ (fading into silence)
C++ loud and messy, like if you took everything in a
junkyard, connected it all together with cable, and
dropped the whole mess from a cliff.
Lisp/Scheme same sound as dropping a slinky
Java no sound, already been dropped
The Inevitable Update: From Brendan.
PHP sproing sproing (“stupid blasted”) sproing (“off my
lawn”) sproing
Python Just like anything else, if air was Jell-O
Smalltalk “Ouch!”
Pascal *Crash.* Now, did you notice how that sounded? If you
were actually dropping something, it would have sounded
a lot like that. Let’s try again.
COBOL (THUD)
Visual Basic “I’m sorry, Dave, I’m afraid I can’t let you drop me.”
Comment by Karl Fogel — December 17, 2008 @ 7:56 am