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.
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".
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.)
- Got serious about learning Java, and developed a real app with it.
- Experimenting with Ruby on Rails (RoR), and is building a small sample app with it.
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.
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:
Cost you too much time to switch to RoR? But, I thought development in it was so fast? :)
- max
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.
Max,
I know, right? :)
Ian,
I know, right? :)
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. ;)
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!
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.
<< Home