Archive for May, 2009

How did you make this software?

Saturday, May 30th, 2009

I finished a software assignment for a client. It was a web based application using Tomcat server under Linux. The application was developed in Java. It went on quite well and the customer was quite pleased with the end product. Till he asked the question,

“How did you make the software?”

I was at a loss of words. Or did not understand the question. I asked him to elaborate.

“I mean how did you build this software? Which tools did you use?”. He said.

I was not sure but this seemed to go in the wrong direction. Especially, since the customer had not made the payment (yet). So I tried to be clear and factually correct.

“Well, I first designed the user interface by writing HTML and checking it in a browser. Then I wrote the servlets around the HTML. I build the software using ant. Finally, I tested the software by running the servlets with Tomcat.”, I said, hoping that it would settle the issue.

It didn’t. “But how did you write the code? Which IDE did you use?” He asked.

“I did not use any IDE. I wrote the code in vi editor, compiled and made a war file using ant and deployed. After the testing was clear, I sent the software to you”, I said.

“What??? How did you write the code without an IDE?”. He asked, showing shock and disappointment.

And after the conversation, the software project status changed from “successful” to “not successful”.

I wondered that if the end product was good, without bugs and meeting customer’s requirements, why should he worry about the tools used to create it? If I did not feel the need of an IDE and was happily coding from the command line and was meeting the project requirements in terms of quality and meeting the deadline, what was the problem? Maybe, I was missing something, so I spoke to a friend.

“Is it better to develop software with an IDE or just using vi from shell?”, I asked.

“What?? Anybody will tell you that you should use an IDE.”, He said.

“But why? What are the advantages of using an IDE over writing code using a text editor?”. I wanted to be objective and get the facts.

“There are lots of advantages. You can be really efficient. I tell you, it is a little difficult in the beginning, but as you learn, you will get the benefits”. He sounded big and patronising without stating the actual benefits.

But I wondered. If the end product was good, why should someone worry about the tools used to create it? IDE does too many things. What about the original Unix philosophy that tools should be simple and one should combine simple tools in an ingenious manner to get the end-result?

And why can’t I let go this vi and use the graphical editors that everyone gushes about? Well, I find it faster to use a keyboard than a mouse. And the dot command of vi is indispensable. Although I do not use 26 buffers for cut and paste, I often use two or three at a time. And it is difficult to think of changing case of text without the tilde command. The list is endless…