Thursday, November 22, 2007

Eclipse 3.3 for Rich Client Platform Applications

I discarded Java/SWT (Standard Widget Toolkit) as an application development language option a few years back (like, somewhere around 1999-2001). I remember trying to build even a simple application in Java, using Borland's JBuilder 3 product, and discovering how bad the overall development experience in Java was - slow, buggy, under-powered, lacking features, and just generally painful. This went for both the JBuilder 3 IDE (which ran at a snail's pace back then), as well as the resulting Java "application" (presuming one could ever be created, beyond the simplest of applications that actually worked).

At the time, I was comparing Java to the powerful and robust Win32 applications I built using the exceptional Borland Delphi development products (now owned by CodeGear) - there was no comparison. Native Windows applications built using Delphi were robust, stable, fast, and relied on a mature object-oriented framework (the VCL - Visual Component Library). Java - well, to summarize, it sucked. Now, I am once again looking at cross-platform development options, and as such, I am reconsidering Java (as well as Python, C++, and perhaps even Ruby - though I think the latter is just a fad til proven otherwise long-term).

Well, things have improved considerably for Java-based software development from what I can tell. I think the main driver of this change is Eclipse. It seems that much of the work on the Java classes has to do with the Eclipse framework's own requirements, and the Eclipse Community has some major players behind it - like IBM, Borland/Codegear, and other major technology vendors, researchers, and independent developers.

After digging into the latest version Eclipse 3.3, and the latest enhancements to the Java SWT, I am seriously reconsidering it as a development platform (with "it" being the combination: Eclipse + Java). I also will use Eclipse as my Python development platform of choice, but I am going to focus on the Java development tool portion of things mainly here.

One of the first things I think any good software development tool, framework, and environment need in order to succeed is a good set of "getting started" code samples to help developers quickly hit the ground running and productive. Eclipse now provides a nice set of code snippets for Java / SWT that will certainly help anyone get started with Eclipse/Java/SWT development. The source-code samples are all rather straight forward, and that concise and well-categorized (by type of functionality) library of code chunks should be enough to get a developer going, as many common-tasks are clearly coded.

Next, did you realize that Eclipse has turned into not just a platform for IDE's (Integrated Development Environments - for software programming / coding), but also into an application-development-framework? They are pushing it as an application-platform totally, and you can customize any programs built with it to where nobody even knows it is Eclipse underneath. Per their (Eclipse Foundation's) own description:

"The Eclipse for RCP/Plug-in Developers contains what you need to build Eclipse applications, including plug-ins for the development environment and Eclipse Rich Client Platform (RCP) applications. Designed specifically for the task, this is the best tool available for building Eclipse plug-ins and applications (it is also considered by many to be the best Java development tool available)."

Now, I MAY be speaking prematurely, since I have yet to build any RCP Applications with it, but, I downloaded Eclipse RCP/plug-in development version from here with high hopes of doing so: http://www.eclipse.org/downloads/moreinfo/rcp.php

I THINK it can help me do exactly what I want with my existing Developer StemCells Studio (tm) program — an updateable language-neutral template-based software programming tool:

1) give me a cross-platform reach. I am currently limited to Windows development since the tool is a Windows-32 native executable now.

2) provide a "host" into which my code processor/plug-ins can be installed, and then make my StemCells(tm) technology available to any developer, using ANY language hosted inside Eclipse. It seems the Eclipse infrastructure will make many things EASY (or easier), if I can figure out how to use them to my advantage. Like, did you know they have a neat little "diff" control that makes it easy to show visual side-by-side compare (of two files or text-sources)? That's cool. Basically, any feature in Eclipse can be used in your apps.

Since C++, Python, Java, JavaScript, PHP, Ruby, and so many other languages can be worked with inside Eclipse through various open-source (and commercial) editor plug-ins, Eclipse provide the "common ground" that I am looking for in a programming tool. I wish Delphi was also supported as well as Microsoft DotNet like C# and VB.net (maybe Mono has something supporting that, though any C# plugins I found seem rather old and lacking active development - I need to look further)... then, I'd have ALL the languages I want access to for my StemCells to "target". (note: Codegear now offers JBuilder 2007 built on Eclipse, which makes me wonder if eventually Delphi will become Delphi on Eclipse too).

There are a lot of neat "plugins" also available at Eclipse Plugin Central, like this Jigloo SWT/Swing GUI Builder that seems interesting and gets high marks from users. I plan to try this one out, as well as the PyDev Eclipse Plugin (Python Development assistant), and a few others. I'll play with those things to see how far the platform can be pushed, though my main interest right now is being able to use Eclipse as a Java development platform.

I just felt like sharing some excitement about modern Java software development, using Eclipse... now, here's hoping it lasts :)

Continue to read this Software Development and Technology Blog for computer programming articles (including useful free / OSS source-code and algorithms), software development insights, and technology Techniques, How-To's, Fixes, Reviews, and News — focused on Dart Language, SQL Server, Delphi, Nvidia CUDA, VMware, TypeScript, SVG, other technology tips and how-to's, plus my varied political and economic opinions.

No comments: