Friday, February 16, 2007

A quick review of Knoppix 5.1, part 2

It's impossible to write a decent review of any complex distribution, let alone Knoppix. These few posts are a quick pass at features that caught my eye while I had Knoppix up and running. This time I'm going to look at two IDEs, Eclipse and MonoDevelop.

Everybody should know what Eclipse is by now. Along with Sun's NetBeans, it's one of two of the best open and free IDEs on the market. Eclipse, written in Java, started life as a Java IDE. Over time it has grown into a development platform for C and C++, SQL (and database management in general), various dynamic languages such as Perl, Python, Php, and Ruby, as well as software engineering in general. NetBeans is following a similar path. As significant as it is to find Eclipse, it's also notable that NetBeans is not a part of Knoppix. Let me also note that Java 5 is bundled with Knoppix, but not Java 6, which was released in November 2006.

The version of Eclipse bundled with Knoppix 5.1 is the latest release, 3.2.1. Starting Eclipse for the first time presents a simple but polished introductory page. Each of the five entries on the main page is a hyperlink.

Clicking 'Tutorials' presents a reasonable starting selection for the newcomer to either Java, Eclipse, or both.

Selecting 'Hello World' presents the user with the Java view, and instructions on how to write the ubiquitous Hello World program in Java within Eclipse.

Eclipse is a complete environment. Here I've finished my first Java program, and I've executed it, all within the IDE. Eclipse provides sophisticated debugging facilities such that if my Hello program had a problem I could debug and hopefully fix it.

Mono is all about developing C# applications under non-Windows operating environments, especially Linux. You can read all about Mono's history (and controversy) on the web, but suffice it to say that you can develop and build C# applications that can move with relative ease between Linux and Windows. I'm not familiar with how deep the compatibility goes between Microsoft's C# and .Net under Windows and Mono's C# and .Net implementation under Linux.

The workbench to C# and .Net under Linux is MonoDevelop. When started the first time MonoDevelop presents a more utilitarian face to the user than does Eclipse. But there's more than enough there to get anyone started.

To make the comparison to Eclipse reasonable, I've selected to create a C# console application, another Hello World variant.

If you're familiar with C-like languages (including Java), then writing for C# is very straight-forward.

Building and executing your C# assembly is dead simple.

One feature that's nice about eclipse is how the information is available right up front. Here's an example of C# information running on MonoDevelop under Suse 10.2.

Eclipse and Mono provide powerful tools for development under Linux. Many will point to emacs, make, gcc and gdb, and there's a lot to be said for the fact that the kernel is written in C. But Eclipse and MonoDevelop, with their extensible architectures, point to a level of integration that provides real benefits to complex application development over the individual warhorses. This is where Knoppix really shines. It exposes you to new, and complete, solutions without risk. And once you've kicked the digital tires a bit and taken it around the block, then you feel a lot more comfortable in installing an application or the entire distribution. For example, after playing a bit with MonoDevelop, I went and installed it on Suse 10.2.

MonoDevelop Update

After installing MonoDevelop on Suse 10.2, I was able to spend a more time investigating the IDE in greater detail. The MonoDevelop (MD) home page covers MonoDevelop. One of the news entries was how MD was approaching a 1.0 release. This is interesting when you consider that the current version is 0.12. Oh well. As good as MD appears to be, it is not as mature an IDE as Eclipse or NetBeans, but that doesn't mean it's bad. Far from it. One major feature that will be missing when MD 1.0 is released is integrated debugging. This is not to say that Mono doesn't have a debugger. It does: mdb. It's just not fully integrated into MD.