It’s really hard to name the trend in internet programming so I’m going to make some fairly crude groupings up and try not to repeat too much of what’s already been said:
LAMP
Linux, Apache, MySQL and Perl/Python. This is the open source suite for web development. All the software’s free, right down to the OS, which makes it popular with hobbyists and small-scale operations.
MySQL, while surprisingly good for a free database server, isn’t up to competing against Sybase, Oracle and MS SQL Server, which makes it currently a bit of a niche market.
At larger scales MySQL is usually replaced by Oracle; more rarely by Sybase ASE. Whichever of the database servers you pick about 90% of your skills will transfer to the others - the trick is knowing which 90%.
LAMP occupies, at the moment, the lower end of the marketplace. Small operations, niche applications in large enterprises. Currently I’m not seeing a vast amount of movement of larger sites to this platform (even substituting Oracle as a DB) since J2EE takes over the Unix webserver market fairly quickly.
J2EE
J2EE is Sun’s proprietary Java development framework, usually deployed in conjunction with Oracle for larger scale applications. Frequently found running on some variant of Unix, often Linux/Apache, but you can find pretty much any mixture of Unix OS and webserver if you look hard enough.
It occupies a wide spread of the marketplace since, on Linux with MySQL, the entry cost is low for the capability it provides.
Development tools are widely available from a number of manufacturers and open source projects, however Sun seems strangely obsessive about retaining control over Java and has resisted all attempts to make the system standards compliant. The attitude’s baffling, but there y’go.
A lot of financial institutions use J2EE as their primary development platform.
MS-DNA
This is Microsoft’s older web development model comprising ASP, transactional COM under MTS or COM+ and MS SQL Server. Effectively deprecated and supplanted by .Net, I only mention it because there’s still lots of it around.
Largely based around VB (for the components) and VBScript (for the ASP scripting) .
IIS, ASP and the transactional system are provided for free with all versions of Windows since NT4 (on NT4 you need the free option pack to get most of the stuff). The entry cost is low since ASP can be written in Notepad, but forking out for Visual Studio 6 to take full advantage can be expensive.
Largely proprietary to MS, but there have been implementations for other platforms made by third party companies. No open source or standards support of note.
MS .Net
This is the new MS system. Often accused of being a copy of J2EE (not entirely without justification).
The language of choice is usually C#, similar to C++ and Java in syntax, but the system is pretty agnostic about the actual language you code in and you can get .Net versions of many languages now.
Visual Basic.Net is the other main development language, falling into an odd syntactic gap between C# and Visual Basic 6. Not that you should ignore it - it compiles into the same code (more or less) as C# and can be a very effective language.
C# and the .Net framework are ECMA standards and are available in open source versions for Linux and other operating systems as the Mono project (recently released by arch MS rival Novell, of all people).
Open source development tools are available, but Visual Studio .Net 2003 is the current (and expensive) standard.
MS SQL Server 2000 is usually the back-end. A free version of MS SQL Server 2000, the MSDE, can be downloaded from Microsoft’s website. It’s a complete copy of the full version of the software with the addition of a performance throttle that prevents it being used in high-volume applications.
Java generates the most demand for workers, but my experience working for a large jobs board has shown me that the competition is fierce. The ratio of applicants to jobs is nearly double that of any of the other technologies. I believe it’s now commonly taught in university Computer Science courses, so the uptake by developers is very high.
Beware of the statistic stating 70% of all webservers run Apache. While this is true, it can be misleading. Many of the Apache installations are the large web farms ISPs and other providers use for hosting personal web pages. Others are big web caches.
This is not to say that Apache isn’t a big player, or even the biggest player, but the platform split for commercial website development is much closer to a three way tie than that statistic would suggest.
For the kind of work you seem to be interested in I’d look into either ASP.Net or J2EE/JSP. Your existing skills in Java would suggest J2EE as the natural solution, but you should be able to adjust to C# quite quickly if you so choose.
J2EE skills can usefully carry over into the J2ME (mobile edition) to write apps for things like mobile phones. There’s a mobile framework for .Net as well, but most of the market penetration there is in handheld computers rather than mobile phones. Demand for J2ME skills is quite high at the moment, but it’s hard to say if this bubble will burst or continue to grow.
I’d also seriously look into XML and XSL/T since these are becoming almost as ubiquitous as HTML.