I have had nightmares of mobs hitting me with paper rockets and asking questions like what is open source, what are communities after all. So Ruby (not language) came to my dreams and inspired me to write this post, to enlighten the souls living in dark jungle of licenced software. No hard feelings.
Open Source
Here is how I would describe open source. Think about a library, (Stop thinking about DLLs and code libraries), think about a huge building with a massive collection of Books, newpapers, pamphlets, manuscripts, photos, photo-albums etcetera. Every one can freely visit that library. Read anything, copy anything, write his own manuscripts and publish his own books. There are big encyclopedias which can be edited by anyone and every visitor is free to access it and add to it. There are loads of Software available for you to use. You can use them directly or tweak their source code to suit your needs and then use, distribute, sell them. You can put in your own manuscripts, profile, photo-albums, software and showcase it so that someone on the other side of the world can benefiit from what you created the other night.
Communities
People realized the potential of such a great resource and found that working in teams would help improve this resource. So they formed Groups called Communities. It smells communist but is capitalist. So now the little guys can stand the monopolist bullies. People with similiar interest and aim joined those communities and contributed to their common aim. Since everything is (most of the time) public, it is scrutinized by many and tends to get better and better with the help of ever increasing community. There are teams which built products which can be used by anybody. Many versions of Linux (for example) were developed by such communities.
So this is about open source and communities. It has its own rules and standards. Find out more. So far so good, but i know you will have concerns.
Show me the money!!!
The biggest concern about free software is the word free. Free stands for freedom, freedom of creation, sharing and use. But, that doesnt mean there is no money involved. Hmmm the easiest way you would be able to accept the phenomenon is to think (or find out) about Google. All the services it provides you are best in class and free of cost. Worth mentioning is that it may also help you earn (Adsense) without any investment. Google is still a multi-billion dollar company. Interesting! hope that triggers you to do some sole searching, just to find out where you stand.
Agreed! So what is this Ruby on rails stuff?
Ruby ..the old stuff (Old is gold)
Per Wiki “Ruby is a dynamic, reflective, general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was initially developed and designed by Yukihiro “Matz” Matsumoto. Ruby supports multiple programming paradigms, including functional, object oriented, imperative and reflection. It also has a dynamic type system and automatic memory management; it is therefore similar in varying respects to Python, Perl, Lisp, Dylan, and CLU.” I dont think I can add more jargons to this description. IMHO its a wonderful to learn, fantastic to use scripting language.
Here are some of my experience which state why I talk about ruby so much.
High level readability: After a sharp learning curve you can start reading the code just like newspaper headlines.
Developer’s bliss: It is perfect for newbie (inexperienced) and lethargic coders like me to take up a language in which you can do in one line what I used to do in at least 10 lines in VC++. (Yes! I used to work in VC++, MFC and was trained in .Net).
Fast developement: Less number of lines of code means faster development and easier maintenance.
Powerful: So there is nothing that can be done in Java and .Net and cannot be done in RoR.
Rails..the new thing (simple and sexy)
Ruby on Rails was extracted by David Heinemeier Hansson from his work on Basecamp, a project management tool by the web design (now web application) company 37signals. It was first released to the public in July 2004. Simply put, Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern. It is conceptualized on the principles of ‘DRY’ and ‘CoC’. DRY says Dont repeat yourself, and puts a clean check on redundancy. ‘CoC’ (Convention over configuration) says you can follow a few simple conventions and avert a whole lot of configurations. This means lesser and cleaner code and more smiles.
I hope after reading this you wont, at least, drop your jaws next time you hear some developer say “I m doin Ruby these days”. Of course, to ruby or not-to-ruby is your decision afterall.