Sunday, October 30, 2011

Programming, Languages, and Tools of the 21st Century

I just got dragged into a discussion on LinkedIn's EGL Group discussion called "What is the future of EGL?".  For those that don't know EGL (or Enterprise Generation Language) is a 4th generation language that generates Java and/or COBOL code.  It is an IBM proprietary product that supports advanced web development.

EGL is one tiny example of dozens of web or other application development tools available in the marketplace today.  In addition to dozens of proprietary products from various vendors (from IBM to virtually unknown little software houses operating out of the owner's garage) is open source.  In terms of web development the leader is clearly PHP.

PHP is this nasty little programming language (I really don't care for it very much), with millions of users and over a million companies building incredibly sophisticated web sites with PHP!

Why is PHP successful?  It is free and open source, but more importantly, there are thousands of free applications ranging from sophisticated e-commerce web stores to just about anything else you can imagine free for the download.  You can download and customize these applications and have sophisticated web applications up and running in days (often in less than a day).

If you don't have the expertise to customize or implement your own PHP applications you can rent the expertise.

You may still need more speed, power, or sophistication than PHP can offer, so you should use Java or C++.  Again, don't hire programmers, rent them from India.  You get superbly skilled people at a fraction of the price.  You also get a business dynamic that is easy to manage and costs that can easily be contained and controlled.

For years many developers and IT people or even business users frustrated with IT people have looked at products and tools like EGL, or many others to rapidly build new systems or solutions not coming out of the IT department.

Some of these tools are excellent, the question becomes how long will they last, will they be bought up by some major company and then what happens to them?  Computer Associates or CA has become the biggest dumping ground for old software companies.  IBM is close behind snatching up just about everyone it can.  Oracle has jointed the buying frenzy and Microsoft is there too.

Interestingly C++ was a language that was used to create compilers and operating systems and seemed to be way too complex to ever serve as a business language.  Java was a good alternative.  With Oracle's acquisition of Sun Microsystems, Inc. the future of Java is questionable.  Java despite its popularity was never an "open source" product.  It was always a proprietary product owned by Sun and now by Oracle.  Oracle can modify Java, or change its licensing at their whim.  Will they?  Who knows?  Oracle has risen from a small database company to a major computer systems giant.  They are causing IBM and other major companies major headaches. 

Today, I would strongly recommend outsourcing all programming and development to offshore companies.  I say India but there are some great and inexpensive folks in other countries too.  Be sure they have good communication skills.

Avoid specialty or development tools unless you do so with the idea that you will throw them away when your situation changes.  Do not invest in some tools that require extensive staff training or hiring new people.  If you can buy a tool and use it with a minimal learning curve, especially if it is used by business people and not IT programmers then go for it.

Sadly, the corporate staff programmer is a dinosaur and expense that you probably should not be investing in.

No comments:

Post a Comment