|
|
Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
There's no two ways about it—this article is ambitious. In it, I set out to define the perfect technology platform and see how the Java platform measures up. Then the article flicks into solution mode, proposing both tactical and strategic changes to the Java platform to address any identified weak points.
First, why should you care whether Java is a perfect programming platform? It works well enough at the moment, doesn't it? In short, no. I believe that by the end of this article I will have showcased well-defined weaknesses in the Java platform that can be put right. Addressing these weaknesses will result in a platform that is easier (read faster) and more intuitive to develop against, takes advantage of deployment platform strengths as appropriate, and in short becomes the de facto technology standard across all industry verticals and market segments—a universal language for programmers.
I should define my vision of the perfect technology platform before I go much further. Simply put, I believe the perfect technology platform is a software system programmable by both novice and advanced developers, admits the creation of both simple and advanced applications, is available on all hardware platforms, and at runtime, operates in native or close to native mode.
With an article like this, it's important to set the scope right away. First, this article does not consider any technology platform other than Java. Is that being too blinkered? I don't think so. The scope I've set for the article is simply to look at the Java platform in isolation, not as part of a competitive lineup. I'm interested in creating constructive criticism for the Java platform with a view to strengthening that platform. Ideally, avid supporters of other technology platforms will perform and publish similar exercises for their preferred technologies.
In addition, I will make the assumption up front that the core Java programming language is already the best programming language to build any technology platform around. I have no issues with the extensions planned for Java 2 Platform, Standard Edition (J2SE) 1.5, although I do feel that some changes are simply "keeping up with the Joneses" modifications aimed squarely at the C# language. The stability of the language specification itself over the last eight years bears testimony to its strong initial design. New features implemented in J2SE 1.5 (see Resources) such as autoboxing, enumerations, and static imports are widely regarded in the development community as syntactic sugar, although the availability of parameterized collections is a noteworthy addition to the core specification.
Making this assumption also removes any discussion over the fact that Java is inherently an object-oriented programming language with a strong C and C++ heritage, and that in my opinion, this is the right core programming language around which to base a technology platform for the future. Technically, I could examine other object-oriented languages from Eiffel to Smalltalk, and expanding the dragnet further, why not see if fundamentally different languages such as functional programming languages like LISP or Haskell or declarative programming languages like SQL could form the semantic core of the perfect technology platform? Because that debate my dear friends would require a book in its own right! But make no mistake: If a major player like Sun Microsystems, Hewlett-Packard, or Microsoft decided to take one of those languages and base the next technology platform around it, it would stand a reasonable chance of success; support and commitment is everything to nurturing a technology through its infancy.
Archived Discussions (Read only)