MATLAB is a really wonderful software package. My experiences with it a few days back helped me realize many things about a commercial product. I am NOT talking about only software products though. Here’s the thing.

Any product that you manufacture or wish to commercialize someday should have the following minimum features:

1) A clear-cut goal/market – Whether it be MATLAB or a vacuum cleaner, they have clear-cut applications. I know tablet PCs are running amok in the market. But, I consider them a one-off case. (Can someone explain to me the purpose of a tablet PC?!) Only the meaningful products survive, the rest fade off. There is a reason why Samsung Note, Dell Streak etc. (the ‘phablets’) bummed. Nobody knew what they were there for. The manufacturers oversaw the importance of the product and just packed in the features.

2) A solid ground-level integration – There are MANY software packages for computation available today. But, MATLAB stands apart because of its ground level cohesiveness. Every package that it supports – commercial or open-source, uses the same concept and matrix operations. MATLAB has the ever-so-elegant command-line from where you can invoke your packages, the matrices, the granularity that you get from MATLAB is just unbelievable. I realized this today as I was able to use three different toolboxes (Neural Network, File I/O and Graphics) and the data was not high-level – no pointers, no classes, no data buffers. It was all matrices. I think even LabVIEW is far behind MATLAB in this aspect because in the bid to make the interface user-friendly, it compromises on the plug-n-play features. For instance, I can’t just throw data from the Internet Toolkit to the Realtime toolkit. There is the insipid conversion of data involved which is not very alluring for a user.
Take another example, the same cohesiveness is probably the reason Windows is SO successful and Linux isn’t (even though it is FREE!). Linux is just not an integrated product. I agree – different developers develop the product and distribute – standardization is tough. But, if Canonical can take care of so many things (talking about Ubuntu as an example here), like maintaining the repositories and upgrades (which is not an easy job, I presume), why not go one step ahead and standardize!

3) Support – Customer support, especially AFTER a certain time-period matters. 1-year free servicing is an offer that every company makes to you, be it Eureka Forbes for its Aquaguard or Hyundai for its Santro. But, its the time after this honeymoon period that matters – when the durability of your product is really tested. As far as softwares are concerned, the official forums speak volumes about the product. Microchip is a world-leader in embedded systems hardware and it was really astounding to see the inferior quality and quantity of forums. This may be a subjective opinion – but having 100+ forums for LED blinking and GPIO compared to just 1 for MRF24J40 – that too, a largely inactive thread – is not the best sign. I dislike.

4) Compatibility – Again, this might relate mostly to software products only but if you come to think of it, a lot of products like vacuum cleaners, microwave ovens, a simple pen for that matter etc. – are not available in the best possible forms. I would like to use a particular paper bag in all cleaners. Similarly, I would like to use the grill I bought for Rs. 150 in all possible ovens I might have access to. I would like to use my spare Parker refill in my other pen. Compatibility is slowly but surely being ensured in the new softwares. Most of the XP softwares work in Windows 7. Again, Windows scores over Linux distros. A simple plotter software works in Ubuntu Natty but not in Ubuntu Ocelot. Similar cases for Natty and Meerkat and Heron and others. I agree – it is FREE. And, I am talking about commercial softwares, but, in the next two years, when you will start paying for your Linux distros too (again, I am presuming this), my point shall be valid (a conclusion from aforesaid assumption).

5) Aesthetics – Needless to say, it is an integral part to invite and hold the customer. But, I have realized, as a customer and an observant one I like to think, that the most successful products – the Aquaguard (and not the Kent water purifiers), the simple CRTs and the LCDs (and not the revolutionary Candy TV), Eclipse IDE (and not the ultra-packed Netbeans IDE) – are all the most simple products in their class – they do the job and they do it without the shock-and-awe looks. Again, this might be a subjective opinion, but simplicity and class go hand-in-hand. A simple interface (software or hardware) will always attract the largest customers. Add to it, it is often very tough to develop a fully-functional yet simple interface. No wonder, Google has rocked the worlds of so many classes of people – the unification and the simplification hit the bull’s eye!

PS: I can easily quote Python for the aesthetics point – the code looks so clean. But, I don’t know much about other languages. So, I did not mention.

This was my take. I have a lot more to say. But, I would rather do than say 🙂