« The RIAA's Days Are Numbered | Main | JavaBlogs Is For... JAVA! Not Your Vet Visits »

Playing Catch-Up Assumes You Can Catch-Up

For some bizarre reason I see people write this little meme periodically about how C# and .NET will "catch-up" to where Java is now in the next year or two so while there might be social or philosophical reasons to go with one or the other, there won't be any tech reasons.

Whoa, whoa whoa, whoa whoa. I hope that I didn't give the impression that I believed any such nonsense the other day when I gave my list of reasons I hope .NET fails. I just said that I don't think the arguments get anybody anywhere. But if you are deluding yourself into believing that .NET is somehow going to magically "catch-up" to where Java is today in the next year, 18 months or even longer, you need to open your eyes.

What follows is a quick dump from an outline I keep using the Java Outline Editor. I call it my "Java Toolbox" and I keep and categorize links to technology that looks promising in it, this is a short list that skips mounds of stuff I have never had reason to look at and it also blows by reams of excellent commercial tools as well. Look at the length of this list and imagine the veritable army of open source .NET developers (who are apparently going to have to thicken from etherial vapor because I haven't seen them yet) required to build all of this stuff. But, and here's the part that I can't seem to figure out why people don't see it, do you think that Java developers are just going to sit there and watch them do it? Are we just supposed to halt all development and sit on our hands for a couple of years so they can catch-up? No. Catching-up implies that they have to be able at some point to outpace us and I've yet to see anything that has proven to me that that is even a possibility.

My Java Toolbox
Agents
Aglets
http://aglets.sourceforge.net/
Artificial Intelligence/Expert Systems
JGAP: The Java Genetic Algorithms Package
http://jgap.sourceforge.net/#overview
JESS
http://herzberg.ca.sandia.gov/jess/
JOONE - Java Object Oriented Neural Engine
http://joone.sourceforge.net/
JSR-94
http://jcp.org/aboutJava/communityprocess/review/jsr094/
Weka
http://sourceforge.net/projects/weka/
Clients
Email
Java POP3 Email Proxy
http://www.zenadsl2993.zen.co.uk/proxy.html
MAILMILL
http://www.metamagix.net/mailmill.html
HTTP
HttpClient
http://jakarta.apache.org/commons/httpclient/index.html
URLFetch Java
http://www.screen-scraper.com/urlfetchjava/doc.shtml
HTTP Proxies
Surfboard Proxy Framework
http://surfboard.sourceforge.net/
PAW
http://paw-project.sourceforge.net/
RSS
News retrieval from hundreds of websites via their RSS syndication files.
HotSheet
http://www.johnmunsch.com/projects/HotSheet
Informa
https://sourceforge.net/projects/informa/
Connected Graphs
GEF
http://gef.tigris.org/
JGraph
http://jgraph.sourceforge.net/
Arakne Network Editor
http://www.arakhne.org/neteditor/
Database
Java based
McKoi
http://www.mckoi.com/database/
HSQLDB
http://hsqldb.sourceforge.net/
Redbase
http://www.bungisoft.com/html/redbase.html
IDEs
DbVisualizer
http://www.ideit.com/products/dbvis/index.html
Squirrel
http://squirrel-sql.sourceforge.net/
Reporting
Generation of reports from databases or other data sources.
Jasper Reports
http://jasperreports.sourceforge.net/
JFreeReport
http://www.object-refinery.com/jfreereport/index.html
DataVision
http://datavision.sourceforge.net/
Documentation
Bouvard & Pecuchet
http://web.tiscali.it/farello/bp/intro.html
Xref-java2html
http://www.xref-tech.com/java2html/index.html
Embedded Editors
http://www.hexidec.com/ekit.php
Encryption
The Bouncy Castle Crypto API
http://www.bouncycastle.org/
Frameworks
Web Application
Cocoon
http://xml.apache.org/cocoon/index.html
Struts
http://jakarta.apache.org/struts/index.html
Tapestry
http://tapestry.sourceforge.net/
WebMacro
http://www.webmacro.org/
Socket Communications
SocketTalk
http://www.lightdev.com/template.php4?id=4
Graphics
Batik
http://xml.apache.org/batik/index.html
Charting
JFreeChart
http://www.object-refinery.com/jfreechart/index.html
Chart 2D
http://chart2d.sourceforge.net/
JOpenChart
http://jopenchart.sourceforge.net/
EXIF
Jhead
http://www.sentex.net/~mwandel/jhead/
exifExtractor
http://drewnoakes.com/code/exif/
Images
Links
http://www.geocities.com/marcoschmidt.geo/java-image-coding.html
OpenMap
http://www.openmap.org/
Piccolo
http://www.cs.umd.edu/hcil/jazz/download/index.shtml
Icons
Links
http://sourceforge.net/projects/icon-collection/
http://developer.java.sun.com/developer/techDocs/hi/repository/
LDAP
http://salt.sourceforge.net/
Logs
Tools for creating your logs in the first place and tools for looking at the generated logs.
Logging
Log4j
http://jakarta.apache.org/log4j/docs/index.html
Log View/Filtering
Chainsaw
Now bundled with Log4J (see Logging).
Lumbermill
http://traxel.com/lumbermill/
Look and Feel
Want to change the look of your Java application. Here are some ways to do it.
Oyoaha lookandfeel
http://www.oyoaha.com/lookandfeel/
SkinLF
http://www.l2fprod.com/
Metouia look & feel
http://mlf.sourceforge.net/
Misc
screen-scraper
http://www.screen-scraper.com/screen-scraper/doc.shtml
Browser Launcher
http://browserlauncher.sourceforge.net/
Java Conduit Manager (for Palm Conduits)
http://www.xngr.org/cmanager/
Yenc
http://ktulu.8k.com/
Spell Checking
http://sourceforge.net/projects/jazzy
Plugins
Lookup Library
Handles loose coupling so you can build plug-ins.
http://openide.netbeans.org/lookup/
Discovery
http://jakarta.apache.org/commons/discovery/
Command Line Handling
CLI
http://jakarta.apache.org/commons/cli/
Gnu Getopt
http://www.urbanophile.com/arenn/hacking/download.html
jcmdline
http://jcmdline.sourceforge.net/
Multimedia
VorbisSPI, JavaLayer, jlGui
http://www.javazoom.net/projects.html
Java libraries to playback both MP3 and OGG formats and a sample GUI for them that is similar to WinAmp.
FreeTTS
http://freetts.sourceforge.net/docs/index.php
Peer-to-Peer
Jabber
Echomine Muse
http://sourceforge.net/projects/muse/
JXTA
http://www.jxta.org
JavaGroups
http://www.javagroups.com/javagroupsnew/docs/index.html
Persistence
Object-XML Binding
There are more object to XML bindings in existence than you can even count. This a far from complete list.
Jato
http://krumel.com/jato/
Castor
http://castor.exolab.org/
Prevayler
http://www.prevayler.org/index.html
TJDO
http://tjdo.sourceforge.net/
Program Distribution
IzPack
http://www.izforge.com/izpack/
Java Web Start/JNLP
http://java.sun.com/products/javawebstart/index.html
Packlet
http://packlet.sourceforge.net/
Reading and Writing XML
Utilities
txt2xml
http://txt2xml.sourceforge.net/
NekoHTML
http://www.apache.org/~andyc/nekohtml/doc/index.html
jaxen
http://www.jaxen.org/
Element Construction Set
http://jakarta.apache.org/ecs/
Parsing
JAXP
http://java.sun.com/xml/jaxp/index.html
JDOM
http://www.jdom.org
dom4j
http://dom4j.org/
Pipelines
xBeans
http://www.xbeans.org/
Clover ETL
http://members.rogers.com/cloveretl/
Transmorpher
http://transmorpher.inrialpes.fr/
Remote Procedure Calls
SwitchRMI
http://switchrmi.sourceforge.net/
SOAP
Apache Axis
http://xml.apache.org/axis/index.html
GLUE
http://www.themindelectric.com/glue/index.html
XML-RPC
Apache XML-RPC (formerly the Helma XML-RPC library)
http://xml.apache.org/xmlrpc/
Scheduling
Jcrontab
http://jcrontab.sourceforge.net/
Scripting
BeanShell
http://www.beanshell.org
Bean Scripting Framework
http://jakarta.apache.org/bsf/index.html
Searching
Lucene
http://jakarta.apache.org/lucene/
Server Administration
JMX
JMX offers a simple way for you to package server components so you can make them administrable locally or remotely. JBoss and many other server packages now make their components MBeans (managable beans) just to get this functionality.
Consider it seriously for any server software you might be building.
MC4J Management Console
http://mc4j.sourceforge.net/
XtremeJ
http://www.xtremej.com/index.php
MX4j
http://mx4j.sourceforge.net/
JBossMX
http://www.jboss.org/developers/jboss-jbossmx.jsp
JMX Homepage (Reference JMX Implementation Available Here)
http://java.sun.com/products/JavaManagement/index.html
AdventNet Agent Toolkit Java/JMX Edition
http://www.adventnet.com/
Servers
Email
MrPostman
http://mrbook.org/mrpostman/
HTTP
Jetty
http://jetty.mortbay.com/jetty/index.html
Jo
http://www.tagtraum.com/jo.html
J2EE
JBoss
http://www.jboss.org/
Templates
FreeMarker
http://freemarker.sourceforge.net/
Velocity
http://jakarta.apache.org/velocity/index.html
XSLT
http://www.w3.org/Style/XSL/
Tools
Swing GUI Testing
Marathon
http://marathonman.sourceforge.net/
Workflow
Open For Business
http://www.ofbiz.org/
Jakarta Commons Workflow Project
http://cvs.apache.org/viewcvs/jakarta-commons-sandbox/workflow/
OSWorkflow
http://www.opensymphony.com/osworkflow/
werkflow
http://werkflow.werken.com/

Comments

Very impressive list, and I share your optimism about Java. It has an enormous momentum that can't be stopped.