Top 10 in 2008
5 popular archives:
All selections are based on page views.
JW hot topic: Tech careers in a slump
Seems like new layoffs are announced every week, projects are dying and software developers are feeling the IT budget squeeze.
Being nervous isn't a crime, but you're better off with information, advice, and a plan.
From the IDG News Network:
Being a Java programmer is way cool. Experienced C++ programmers (at least those who consider Java a viable alternative) suddenly are in the limelight and smiling broadly. "You see," they say, "we were right all along. Just a little ahead of our time. Consulting contract? Hey, man, talk to my agent." No longer perceived as the hirsute hackers of the computer set, they are magically transformed into Internet Royalty.
The hype machine works 24 hours a day. Java is everywhere. Java is everything, Java rules! Bill Gates has retreated to a bunker in Seattle. It's all over for Microsoft. The boys and girls from JavaSoft are off to do their start-up. Venture capitalists are throwing checks at them like teenage boys lobbing room keys at Madonna.
What's going on here? And when?
Java is a programming language. People use it to write programs that run in a client/server configuration and over remote networks. Java code also can run within a virtual machine in a browser. Nearly all the programs written in Java today are applets, small programs designed to perform simple functions. All the Java code in the world would probably fit on one CD-ROM. (All right, maybe two.)
So far, Java is a programming language primarily for clients; server support is weak. The best Java development tools are currently found in press releases. Existing Java compilers produce executables that run ten times slower than equivalent C or C++ code. Downloading Java applets over the Internet to a remote client is just as slow as downloading a GIF image; for executables over 30 or 40 kilobytes, it can be painful.
Currently, developers typically employ Java to animate logos, sketch cute cartoon characters, and emulate stock tickers from static data. People are writing simple applets, that's about it. True, there are some brave souls trying to write full-fledged applications software for client/server environments. Nearly every software company in the world is trying (or claiming) to develop a Java product of some sort. But the market remains in its early-adopter phase.
Today's reality is that most developers are making hard trade-offs about where to use Java and where to use another language, especially C++. Many developers are designing applications that use Java to manage all or portions of their user interface, and C++ code where performance is critical. The belief is that an intelligently designed program, with components written in C++, can be rewritten (or translated) to Java when compiler performance improves.
This is a logical assumption, but it comes with a few warning flags. As a new language, Java has weak links to legacy systems. C++, on the other hand, has ten years of C and C++ development behind it. While the commercial market for C++ class libraries is not robust, it is easy to find code, code fragments, and class libraries within a corporation or in the public domain. Java can employ a C interface library to talk to legacy applications, but the existing code base is small. Similarly, some of Java's strengths create some new challenges. For example, while Java eliminates the need to understand the complexities of pointers, it has created a nearly equal need to understand and manage threads.