From: Tim Greer Date: 2008-12-30T17:24:34+09:00 Subject: Re: Why Ruby? Mike Stephens wrote: > I have never seen or heard of Ruby in a corporate context. The single > exception (where I first came across it) was a supplier who was using > it with Watir for testing a Java application. > > If you supply services to corporates, what sort of case can you make > for using Ruby rather than Java, which is in use everywhere? (I'm not > thinking of Rails here, which is a rather specialized). Why Java? Why Python? Why Perl? Why PHP? Why _fill in the blank_? There is no why. Ruby has been around a while. Some people like the syntax of the language. Some people don't. Ruby has been getting more popular compared to some languages that have been around longer, or that have seen they busiest days. I doubt any of them are going anywhere, and at some point, maybe soon or maybe not soon, some other language will be the more hyped one, and people will start using it more. It might be a new one, or one with a new service or framework, or just something else to make it more exciting (even if it's been around a while). People might see it as more interesting, more aligned with their ideal of how a language should be designed, or think it's the next big thing. If you don't like ruby, that's cool. There are a lot of good, effective languages. Maybe you'll never see a request or demand for ruby development in the companies you work for, or when you look for a job? Maybe you'll end up looking for a job and find that a bunch of companies you're considering all want ruby developers? Maybe they'll say "or another language" or they might have their entire project dependant upon you knowing it really well. The same can be true of any language, it might depend on the job and company, or the specific field, though. There's no reason to learn ruby if you don't want to. Plenty of people still use other languages and will continue to. You might not ever miss an opportunity, but you also can't try and excel at all of the most used or hyped languages (regardless if they deserve the hype of not), because you'll never get really good at all of them and new stuff comes out all of the time. I first started looking into ruby probably back in '95 or '96, but never got into it then. I dabbled a little, but didn't get into it. I liked Perl too much (I still like it better than Ruby, Python or PHP), but when the ruby on rails framework buzz hit, a lot of people jumped on it quickly (at least it seemed). I don't recall anyone I knew that programmed knowing what ruby was in around 2001 or 2002, but in 2003-ish, it started to take off. Don't let the popularity of a language make you think it's more of less worthy. It might be worth investigating if it gets popular, so you're not at a disadvantage though. I worked for a company that had a project in Perl. Worked fine, Perl is a great language. They wanted it all changed to heavily OO Perl code. Fine, so that is nearly done. Then they said they wanted it in mod_perl with Mason. Fine. Then it was a project in PHP. Okay. Then they dropped that and wanted it done in Python. I'm not great at Python coding, so that wasn't fun, but that was short lived and the company owner got all hot and bothered about Ruby on Rails when it was really first hitting sites like slashdot. My head sunk. Instead of getting the job done, the owner was more interested in new, interesting things (to him), and out of all of the coders on the team that were experts in C, C++, Python, Perl, PHP, we all had to stop and learn ruby. I quit that week. I mean, I get paid, I'll do whatever the boss wants, but when things are ignored and projects never get done and you have a company owner telling his entire client base that this massive project will be done in 1 to 2 weeks time, expecting everyone to learn a new language and have the code be secure, stable and efficient, from scratch, that's too much stress. We literally got the news one day in a meeting and were told we'd get bonuses if we stayed up through the night, in some vain hope we could roll out a major update in a new language (to us), using a new web framework, and actually have a working, productive project. I slept that night while everyone spent the next 2 months straight trying to get a handle on that one single portion of the project that would have taken a matter of hours in a language everyone knew already. Obviously this wasn't the fault of ruby, but it really made me dislike the whole idea of it. The point is, sometimes you have to ask yourself "why"? Sometimes it's to add another language to your resume, sometimes it's to actually work in it, see what the benefits are, and sometimes just to be prepared to be able to handle what's thrown at you. Some people enjoy it a lot and even despise languages I personally like better. Maybe they had a boss with their heads in the clouds that went the way of the latest buzz, too? I think the initial exposure to certain technologies are what primarily affect a person's view. However, at some point, you have to (hopefully it'll be quick) just take it for what it is and try and look at it without bias or comparing it to the languages you already know. That is, needless to say, few people have a good reason to learn another language (to the point where they are truly good at it), if they already know other languages where they can do anything they want, and do it well (being efficient, secure and stable). So, don't let anyone or any buzz or web sites that are for or against it sway you. For whatever reason, you're here, so you've heard of it. If you feel it might be something in demand in your field, maybe look into it. Maybe it'll be a language you'll enjoy, or maybe it'll just never agree with you? Personally, I like it, but I like a lot of languages. Ruby isn't my favorite, though. Same with PHP -- it's not my #1 choice, but I like it enough to use it. Knowing them (and others) comes in pretty handy regarding web related programming topics and projects. Be it a client asking for help because their script isn't working, or maybe a project you got because you at least showed the company that you have an open mind and are willing to work with the choices they've made? I've found that a little goes a long way with things like that. I've told people point blank that "I can code this in PHP or Ruby", but that I "strongly prefer Perl", and thus can develop the project faster, and feel more confident about my code. That's not to say I suck at PHP or ruby, but that I've been coding in Perl since maybe 1992-ish, and I'm probably always going to know it better and feel more comfortable with it over something like PHP, Ruby, Python or whatever else. I find that, so far, except that one company being the exception, they ultimately don't care as long as the results are quality and you don't create some alien spaghetti code, and make good, relevant comments. Perhaps one day, something else might be my #1 language... maybe it'll be ruby? Probably not, but I don't think it's going anywhere, so enjoy using it, if you have the time and desire (or motivation). -- Tim Greer, CEO/Founder/CTO, BurlyHost.com, Inc. Shared Hosting, Reseller Hosting, Dedicated & Semi-Dedicated servers and Custom Hosting. 24/7 support, 30 day guarantee, secure servers. Industry's most experienced staff! -- Web Hosting With Muscle!