Thursday, July 14, 2005

Questioning Everything, Scripting Languages...

I've been having an email discussion with a friend (and former colleague), Jeff Marder, about development languages. He is compentent in PHP, Coldfusion, and Perl (not sure to what extent for Perl - but I'd call him a "developer" for the others.). He has recently done two things.

  1. Got serious about learning Java, and developed a real app with it.
  2. Experimenting with Ruby on Rails (RoR), and is building a small sample app with it.
So far, this is what he has to report.

It takes him twice as long to do anything in Java as it did in PHP or Perl, and RoR is really fast to develop in. (But we all knew that about RoR because that's what everyone is saying about it.)

I've noticed a couple of job postings from a couple of companies that make really cool software. Panic and SixApart. Both of the companies' software development posistions require expierence with Perl and PHP. SixApart actually lists: Python, Ruby, PHP, C, C++. I have no earthly idea how C and C++ fit into their development efforts, but the first 3 are scripting languages.

I was recently at the, No Fluff Just Stuff, Central Florida Software Symposium, which is a Java-centric conference. All of the session speakers were talking about RoR. Heck 95% of the expert-panel session was about RoR.

This is far from a broad survey of the development landscape, but this is what I'm "feeling".

  • Java is for "big system" guys. (Think big, slow-to-develop, IT systems.)
  • Scripting languages are for writing cool applications that developers (myself included) really want to work on.
I don't know if it would be a good idea to build a financial application in something like RoR. I'm not aware of any specific limitations of RoR (or the Ruby language) that would stop you from it. But no one has been brave enough to put the "Enterprise" stamp on it. (By the way, does anyone know if Ruby maintains type safety of numbers? I.e. Yeah know how in some scripting languages a number can accidently be converted into a String? Then when you do math with it, the numbers are concatenated? 2+2=22)

But is it a bad idea to build a shopping cart application with RoR or another scripting language? With the advent of web services (REST or SOAP), "integration" can be achieved by any language that knows how to parse XML. (Yeah, I know about the overhead. But you can only put so much on 1 box anyway - for remoting to other systems that integrate with it you may have to go that route anyway.)

PHP, Ruby and Python are all object oriented languages. (Well, PHP now has "real" objects and it's probably more "object capable" than object-based.) I don't know enough about Perl to say if it is or not. But my point is, OO is a good thing. And these languages can do it.

Personally, for the software company I'm trying to form, I've already invested a lot in Java technology. Both from a training and a time-spent-writing-code standpoint. Will I switch now? No - I can't. It will cost me too much time.

But have I made a mistake? Will I spend more time dorking around with XML files than banging out awesome applications with RoR? I don't know. If I ever make enough money from this project and try to hire people, will the company be less attractive to the best web developers out there because of Java? I don't know. (I'll want awesome application developers, not "IT programmers" - in my (extremely) limited experience there is a difference. :P )

Am I once again over-analyzing everything? Possibly? ;)

(Update: In my first blog post for this site I gave my reasons for going with Java. If you're interested.)

6 Comments:

Blogger Maxim Porges said...

Cost you too much time to switch to RoR? But, I thought development in it was so fast? :)

- max

Thursday, July 14, 2005 10:23:00 PM  
Anonymous Ian said...

Interestingly I have a half completed article on the idea of switching from the programming language you choose for a project to one that seems newer and sexier. Unfortunately with things heating up with HelpSpot it's probably going to be half finished for a while. The main thrust of it though was that you shouldn't be lured by the sexiness of new languages when they come along. It's oh so tempting, but if you choose you language for a good reason before then it's probably still the right choice.

Thursday, July 14, 2005 10:29:00 PM  
Blogger Michael Sica said...

Max,
I know, right? :)

Ian,
I know, right? :)

Thursday, July 14, 2005 10:33:00 PM  
Blogger Cubicle Coder said...

I've been doing some work in rails. And yes it is cool, sexy, and doesn't feel nearly as painful as doing the equivalent work in J2EE land. At least it feels that way to me, a non-expert in either technology.

But - my experience is that massive productivity claims are almost always BS. What happens is that something new comes along, the best and brightest flock to it, and announce to the world how fantastic it was to work in this new [language, framework, IDE ...]. All true so far. But when you get the more average cubicle coders into play, all of that evaporates. Why? Turns out the massive productivity comes from the great developers who are early adopters. People matter more than languages, frameworks and tools. Rails isn't going to make a bad programmer into a good one.

Also, IMO, the bigger the app the less advantage to doing Ruby/Rails. For me, coding business logic is where most time ends up being spent. The language you use isn't really going to change that. The scripting languages feel nicer to work with since you're not spoon-feeding the compiler. But for me I don't spend most of my development time doing that. I'm puzzling over the business logic, making sure its correct.

Smarter people than me (e.g., Paul Graham) argue languages like Lisp and Ruby are different. If you can seemingly extend the language itself (macros in Lisp, and various tricks in Ruby), you can do a lot more. I'm not good enough in Ruby yet to evaluate this, so I can't say one wau or the other.

Of course, since I'm doing my app in rails, I hope Graham is right, and I'm wrong. ;)

Thursday, July 14, 2005 11:05:00 PM  
Blogger Michael Sica said...

I don't want to take this post off topic (famous last words), but Cubicle Coder - I want to follow your blog but I didn't see an XML feed. Did I miss it? I would have emailed you this question, but I didn't see any contact info on your blog!

Max, do the same. Get an XML feed!

Thursday, July 14, 2005 11:17:00 PM  
Blogger Cubicle Coder said...

There's a feed, but blogger doesn't put an icon up for it. Sorry, I didn't realize that. The feed is here. Blogger only lets me publish atom. Looks like I've got to learn more about feedburner if I want to publish RSS. And figure out how to get an icon up.

Friday, July 15, 2005 6:45:00 AM  

<< Home