10 good reasons to switch to Ruby

I've been working for three months with ruby now, I feel like I need to write down a list of the top 10 things I loved about the language.

Writing ruby code is a pleasure

Before switching to ruby I did lost my interest in writing software, I was totally bored of writing lots of bolier template patterns stuff, lots of lines of code, maintaining huge deployment scripts, build files. With ruby I rediscovered the passion for writing software, the syntax is just awesome and very rich: tasks that may require a lot of ugly silly code in java/c# can be written in a very expressive form in a line.

Deployment

Capistrano is just magically wonderful, it gives you for free so many features that are missed in the not ruby world, you can be up and running with a capistrano deploy script in minutes, deploy is safe, predictable, repeatable.

Available libraries and dependency management

Gems are just the best system for dependency management I ever seen, and the gems that are generally popular for ruby are definitely powerful.

Write less, do more

With ruby you write less code, less code means less maintenance, code more readable, less tests to write, less tests to maintain, you will go live quicker.

Quicker development cycle

An obvious consequence of all the other points listed in this blog post but also, since the language is dynamic you won't wait for compilation or to reload the application in your server.

No xml, really no xml

No more xml, what a win

No (n)ant

There must have been a day where ant has been good but I can't remember when it was. Ant scripts are a pain to maintain and write, it's one of the biggest fail of the Apache Foundation (Maven is another big fail)

Microframeworks

Another big difference with the usual C#/Java world is that you don't get huge beasts frameworks like what it is Spring now, gems (a part from Rails) are usually quite small and they just do the job they are supposed to do.
To mention few: Sinatra, Haml, mongo...

It's dynamic

You'll be faster, it's guaranteed

Fan Programming Language

I'm just having a look to Fan and it seems quite a cool language, soon more posts on this.

Fan Programming Language: "Portability Write code portable to both the Java VM and the .NET CLR.

Familiar Syntax Java and C# programmers will feel at home with Fan's curly brace syntax.

Concurrency Tackle concurrency with built-in immutability, message passing, and REST oriented transactional memory.

Static and Dynamic Typing Don't like the extremes - take the middle of the road.

Elegant APIs We're quite obsessive about providing all the key features required for a standard library, but with much less surface area than the APIs found in Java or .NET.

Object Oriented Everything is an object.

Mixins Interfaces but with implementation.

Functional Functions and closures are baked in.

Serialization Built-in 'JSON like' serialization syntax makes Fan ideal for declarative programming too.

REST Model data with a unified namespace of resources identified with URIs.

.net infected

Day by day I'm always more .net infected, today I've found 4 good links. One is DZone which provides good quality links every day. From here I found this where the author tries to convince the reader that Java 6.0 has something cool and new inside... Bah! Through the good mailing list on Yahoo about Domain Driven Development I've read this article about using LINQ, DDD and so on with .net, indeed. And while writing the post, always through DZone I see that JRuby 1.0 is out. So more than a .net infection maybe is a Java depression.

ChadFowler.com XML* and J2EE*: Commodity Skills

ChadFowler.com XML and J2EE: Commodity Skills Very interesting post of Chad Fowler. In which technology I should Invest my time? Usually I invest my time in the technologies that I like more, I did that in the past for Java, then Java Micro Edition, at the moment I have a strong interest for what's going on around Ruby. I don't care so much about money. But it's interesting to see that looks like it's trendy now to go for Ruby :-) If you search for J2EE* with Google Trends you will see that India is the Country number one searching for that. If you search for Ruby on Rails you will find a lot of searches from USA & Canda.
The offshore market has injected its low-cost programmers into a relatively narrow set of technologies. Java and .NET programmers are a dime a dozen in India. India has a lot of Oracle DBAs as well. Less mainstream technologies are very much underrepresented by the offshore development shops. When choosing a technology set to focus your career on, you should understand the effects of increased supply and lower prices on your career prospects.
As a .NET programmer, you may find yourself competing with tens of thousands of more people in the job market than you would if you were, for example, a Python programmer. This would result in the average cost of a .NET programmer decreasing significantly, possibly driving demand higher (i.e., creating more .NET jobs). So, you'd be likely to find jobs available, but the jobs wouldn’t pay all that well. The supply of Python programmers might be much smaller than that of .NET programmers with a demand to match.
(*)I hate J2EE and XML, but this is another, old, story.

is RoR good for the enterprise?

Thanks to Bertini Maurizio from the Italian Ruby ML I know that yes, maybe it's good!
Blue Fountain Systems Blue Fountain Systems are this years winner of the Supply Chain Management Category of the British Computer (BCS) Information Management Awards. Open Source Ruby on Rails application scoops award. Blue Fountain Systems beat off stiff competition from Marks & Spencer and the FOCUS DIY chain to win the award for their Blue Sequence solution which forms part of Toyota Motor Manufacturing's own "sequence in time" production process. The system, which is used by Futaba Industrial UK Ltd at their new factory in Derbyshire, has been written with open source technologies and uses the Ruby on Rails web framework as the web front end for the application to handle real time data from the Toyota production line, processing signals to manufacture and deliver the right part, to the right point, at the right time in the manufacturing process with the whole process taking less than 8 hours.

Beyond Test Driven Development: Behaviour Driven Development - Google Video

Beyond Test Driven Development: Behaviour Driven Development - Google Video I've just sow this interesting presentation by Dave Astels on BDD. Interesting the quotation on the last slide:
“I always thought Smalltalk would beat Java, I just didn’t know it would be called ‘Ruby’ when it did.” — Kent Beck
A good start for BDD can be rSpec, take a look to this tutorial. There's also a good article by Dan, here: http://dannorth.net/introducing-bdd/ I think that I'll try to join the prj asap 8-) Another Article here: http://abc.truemesh.com/archives/000467.html from the blog of Chris Matts. I was spiking a bit with Jbehave today and I really like it, thanks also to Elizabeth Keogh for explaining me how the stuff works! She's really a cool dev!