My Photo
Name:
Location: Toronto, Ontario, Canada

I've been online since 1971 and I like to smoothe the way for everyone else. Among other things I co-founded Sympatico, the world's first easy-to-use Internet service (and Canada's largest).

View Rohan Jayasekera's profile on LinkedIn Rohan Jayasekera's Facebook profile twitter / RohanSJ
Subscribe in a reader

Or enter your email address:

Powered by FeedBlitz

Wednesday, August 16, 2006

Software hasn't become easier to develop

In an earlier post I referred to the common belief in the Web 2.0 world that software is now much easier to develop than it used to be, and my disagreement with that belief. In this post I look at why this belief might have come into existence.

1. A lot of the new applications are fine for demoing, but don’t meet the requirements of a commercial product (in the pre-2.0 world we called these “toy programs”), so they’re relatively easy to develop. (I think it’s wonderful that these things are being created; let’s just not kid ourselves about what they are and are not.)

2. The fact that large numbers of applications are now being created makes people assume that this is because software development has become easier. I would argue that while there is indeed a case of lowered barriers to entry, the particular barriers are not software development. Specifically:

2(a). In the past, a user needed to have a computer where s/he could install something, and then be willing and able to go through an (often arduous) installation process. Now, to use an application, just type in the application’s URL, or, even easier, just click on a link. So there is a lowered barrier to becoming a potential user for an application, resulting in a skyrocketing number of potential users, increasing the incentive to create the application.

2(b). In the past, an author had to create an installation package, and then distribute it. Now, to publish an application, just put it on your site (which is now dirt cheap to host). So there is a lowered barrier to becoming a potential author, resulting in a skyrocketing of their numbers as well. That is, publishing (not developing) software has become so much easier.

Those of you who are programmers, feel free to comment. Just don’t say anything like “Ruby on Rails is wonderful” unless you can argue why it’s so much better than what’s been around for a long time (please compare against something with high productivity, not something like JEE).

2 Comments:

Anonymous Andrew Turner said...

I've developed applications in C/C++, Objective-C, Python, and Ruby on Rails. I would definitely say that software is easier to develop than it used to be.

Your points are good, but I disagree with them somewhat:

'Toy Programs' are useful too. A color finder, todo app, etc. have good examples in 'pre-2.0' and 'post-2.0'. I don't think b/c they may be small/single use that they should be disdained. They can still be very useful. I also think that you're just *seeing* more of these programs because they're easier to distribute, and get up and running quickly (as you point out in 2). Before, distribution was slow, difficult, expensive. How would I get my "todo" application on a store shelf? Now I can toss it on the web!

The rest of the reasons aren't really saying that software development isn't easier, you're just stating why simple programs show up in greater numbers. I think this does have the effect of showing off lots of programs that maybe shouldn't have seen the light of day.

But to address the real issue, Software Development is easier because tool/language designers have learned from what works and doesn't work. They've gotten much better.

Using an interpreted language (Python, Ruby, et al.) I don't have to spend hours figuring out compiler flags, cross-compiling, link libraries, endianess. I can just focus on my problem and specific application. Someone has done the hard-stuff once and written an intepreter I can re-use. That interpreter is work I don't have to do now in every application.

User interfaces are much simpler. Again, using HTML, and even better, templates such as Rails, Cheetah, or Kid, I can just say something like "textbox" with a name/id, and then get that value in my POST handler. A web application is very easy to write the UI for because again, someone has done the hard-stuff and written a platform for me to reuse (the browser).

And this isn't just web applications - C# and Forms, Obj-C and Cocoa, have all made desktop development much easier.

Personally, its reassuring to know that developers can get better tools and become more effective over time.

Wednesday, August 16, 2006 at 7:21:00 AM EDT  
Blogger Rohan Jayasekera said...

Thanks for the comment, Andrew!

Apparently I made a mistake I warned others about in my last paragraph: I made a comparison without being careful what I was comparing against.

I was comparing 2.0-type software development against what I built when I was a professional programmer (some time ago): non-GUI applications built in an interpreted language (specifically APL). Things aren't any easier now (I fully agree about the advantage of using an interpreted language).

By contrast, you are comparing against GUI-based applications built in compiled languages. I agree with you that things are much easier now.

I keep forgetting that to so many people the personal computer is the baseline against which all current activity is compared, while to me the personal computer was simply a case of temporary insanity which I'm thrilled is in decline as we sensibly return to the server-based applications I used and built before the 1980s came along. My age is showing. (To clarify: I see nothing wrong with PCs if they're used as rich clients to network-based applications. Using them as datacentre-on-a-desktop is what I have a problem with.)

Thursday, August 17, 2006 at 2:24:00 AM EDT  

Post a Comment

Links to this post:

Create a Link

<< Home