Minimalistic ProgrammingTue, 7th Oct '03, 1:00 am::
For programmers only: I'm extremely weary of the whole get-a-real-job-with-multinationals situation and have forever shunned making a resume. Now, I think I'm gonna make a resume like this one. How about... "I am a super-god high-end extremely advanced Minesweeper..." Anyways, when it comes to programming, I'd like to classify myself as a serious minimalist aimed at providing the highest usefullness/effort ratio. By the ratio I mean, I will put in enough effort to give a high level of satisfaction and then stop. I could put in twice more effort, but since the users will NOT be twice as happy from the extra effort, I don't bother. This means my work will never be 100% perfect, rather just good enough for the purpose. Perfection in my eyes is only viable when there is only one goal. If one has to work on 5 projects at the same time and achieve good results, it's best to do considerably well in each than perfect in one and intolerable in the rest.
Coming back to minimalistic programming, I have found a natural love for no-frill technologies which require the least amount of effort from the developer and the user side. I am drawn to simple php scripts and RAD languages like Visual Basic, instead of all powerful and mighty C++ or Java. Every day some new thing comes along in the IT field, a new language, a new development platform - from EJB to CORBA to SOAP to XML. I could if I really wanted, spend time to learn these tools but often I read an introductory tutorial, just to be aware how it works and then don't bother anymore. Mainly because there is no immediate use for any of these for me. Sure, object-driven databases offer a horde of features over the current relational dbs, however I hardly ever need to make a system that makes ten million queries an hour. Also I highly doubt that most people who DO use these hyped-up technologies really need them.
Yesterday a friend of mine from Newark - Arpit, came to see me with his business partners to get some idea on how to proceed with their new venture: Books for Lease. It's a good concept - why buy/sell new or used books each semester - why not just rent them for $10-15 and then return them in same condition? I might redesign the front-end for the site, which has been functional for over a year now. Other than design, I mainly explored ways by which they expand the site's usefullness by concentrating on the core concept - books for lease. While they can build in new wonderful features that only 5% of the people will use, they are better off creating custom tools that help the other 95%. That means giving up the use of pre-written packages like shopping-carts, that they purchased and write their own code to make the site work they way THEY want. It'll require a bit more effort, but the results will surpass the costs.
The most efficient programming style, lies somewhere in the middle of using tools that are very difficult to implement but very useful once in place and scripts that are really easy to write but have limited uses. They don't need EJB or Struts. But they can't get away with using pre-written packages like E-cart. They need to write some of their own code, and use the stuff that's cheaper to buy than write themselves. And I think this is where most of the IT world lies today. There are millions of websites doing business online, and from personal experience, the most successful ones are those with straight-forward systems - like Amazon and eBay. The concepts are simple, the sites are easy to use, and the back-ends are pretty run-of-the-mill too. Amazon still uses Perl! Yahoo's gonna use PHP from now on. However, Morgan Stanley uses EJBs and Struts and they definitely should. But Google doesn't need to, as it works great with Python.
Big complex technologies come and go, but the simple ones are still here - C and assembly :) Perl, PHP, and Python are going to stay for a while too. But bubye .NET and C#. Hope it goes exactly where Push-technology and Virtual Reality have gone. Here's a good article that says everything I said and more, quite beautifully: "Like any industry, the software world suffers its own fashions..." - Software Reality. Glad to see I'm not the only one who likes simple straight-forward languages and tools. Although subconsciously I'm always a bit nervous that not jumping-onto-the-bandwagon of some cool breakthrough might be a bit of a hindsight. Must admit I am risk-averse on the short run and don't get too excited at mega-world-changing-cool-corporate-tools, though hopefully in the long run, my desire to seek stability, simplicity, and balance will benefit me.