I'm currently thinking about revising my Intro to Java Programming Course to split across two semesters, one focusing on basic object oriented principles and techniques and the other focusing on GUI design and programming. Right now I'm thinking about the first semester, and part of what I'd like to do is use better tools such as debuggers, profilers, black and white box testers and so forth. This is in an academic setting where I can't require students to purchase anything, and where I don't want them to depend on proprietary systems. Students are about evenly split between Unix and Windows with an occasional Mac thrown in for spice. Consequently I am looking for free, preferably open source, and preferably cross-platform tools including:
Before responding, please note what I am not looking for. I am aware of the various payware solutions like Visual Cafe, JBuilder, Visual Age for Java, NetBeans, and so forth (including their watered down academic and evaluation versions). These most definitely do not suit my needs for this project. Beyond that, any suggestions you have are greatly appreciated. Please email them to email@example.com. No free books this week, but I hope to eventually incorporate the responses into an improved course for everyone to learn from.
There were many suggestions for various tools, though most of them failed to fit my needs for one of three reasons:
There were some good and useful tools suggested, however. I've winnowed down the list to a few I'll be looking more closely at in the future.
A lot of IDEs were suggested but most of them were payware, and not usable in a class setting. The exceptions were
I'm going to keep an especially close eye on BlueJ.
From: Jeff Rogers <firstname.lastname@example.org> To: "'email@example.com'" <firstname.lastname@example.org> Subject: Open Source Dev Tools Date: Tue, 6 Jul 1999 14:03:07 -0400
A course I recently attended used an IDE called "Kawa". Most of the engineers in the class liked it fairly well, and these are people who've worked with JBuilder, Visual Cafe, etc. I liked it too (though not as well as CodeWarrior). Not sure how well it works on a Mac. See <http://www.tek-tools.com/> for more info. From their web site: "KAWA is currently available for a 30-day free evaluation at www.tek-tools.com. Pricing for KAWA starts at $59 for a single developer license. Special academic and volume quantity pricing is also available."
The company also offers a separate GUI-builder product. I've tried it out but didn't care for it much. I found it to be one of the more awkward of the interactive GUI-builders. My comparisons are with JBuilder and Visual Cafe.
Have you considered trying to work out a deal with a tool provider where they let you use time-limited versions in return for the publicity? Just a thought.... Best of luck....
-- Jeff Rogers email@example.com
Sender: firstname.lastname@example.org Date: Tue, 06 Jul 1999 09:00:32 -0700 From: Nicky Sandhu <email@example.com> To: firstname.lastname@example.org Subject: tool suggestions
Hello, Some of the other tools that are freely available and might be useful are
From: Olivier Dedieu <Olivier.Dedieu@inria.fr> Content-Transfer-Encoding: 7bit Date: Wed, 7 Jul 1999 08:17:37 +0200 (MEST) To: email@example.com Subject: Open Source Development Tools
Here are some entries of our 'Java Channel' (which is a kind of shared bookmarks) concerning :
Profilers : http://webtools.dyade.fr:8888/Java/search?term=s1:88
Testing Tools : http://webtools.dyade.fr:8888/Java/search?term=s1:2433
Debuggers : http://webtools.dyade.fr:8888/Java/search?term=s1:60
IDEs : http://webtools.dyade.fr:8888/Java/search?term=s1:68
If you are looking for other tools (lexer/parser, compiler, disassembler, scripting, ...) or anything about Java, check out the home page of the Java Channel : http://webtools.dyade.fr:8888/Java/
Feel free to subscribe the Java Channel and publish your own annotation about tools you experimented (with the link 'edit your own annotation' or 'publish annotation'). The aim of the JavaChannel is to share knowledge about Java through good or bad Web pages/tools/...
(You may also be interested by a similar channel about XML : http://webtools.dyade.fr:8888/XML/)
--------------------------------------------------------------- Olivier Dedieu - INRIA - WebTools web: http://www-sor.inria.fr/~dedieu Pharos team: http://webtools.dyade.fr/pharos/ JavaChannel: http://webtools.dyade.fr:8888/Java/ ---------------------------------------------------------------
I have used JInsight, from alphaWorks, to profile an application. The graphical display makes it very easy to pinpoint where the time is going. I recommend it.
Kent Johnson Transparent Language, Inc. firstname.lastname@example.org http://www.transparent.com
Date: Tue, 6 Jul 1999 22:19:56 -0400 (EDT) From: ENGEL <email@example.com> Subject: Classtools Apparently-To: firstname.lastname@example.org Status:
One tool that I have found is fantastic is grasp. What I like best about it is that you can set up all the classpath and path variables from the editor and they don't disturb the system settings. Also the control structure diagramming is very cool. Also handles projects well. http://www.eng.auburn.edu/grasp/
I also recommend wipeout although that is only for unix/linux. This thing is great for maintaining projects. I love the class browser. http://www.softwarebuero.de/wipeout-eng.html
Thanks for posting your class notes. They are great and I've been recommending them.
Greg Engel email@example.com http://members.xoom.com/apostle1
Date: Wed, 07 Jul 1999 12:48:49 +0100 From: David Warnock <firstname.lastname@example.org> Organization: Sundayta Ltd To: email@example.com Subject: Classtools
re: Question of the Week: Open Source Development Tools
I will watch with interest the answers you get. Here are my 2 cents
In JDK 1.1 java has the -prof option. I have seen in the past tools to analyse the output but could not find them today. Does JDK 1.2 lose this from java?
I used to use kawa which had an OK debugger but then they tried to interface to the jdk debugger api and it seemed hopeless.
The IBM jikes debugger looks OK does not seem to have been improved for a while and does not seem to support jdk 1.2
I think you have some good points here. I used to find kawa good on the windows platform but it had 4 problems
It seems to me that these should be relatively simple to replace in a java tool but that will raise extra problems
My feeling is that we should start with a XML format configuration file that could be a standard for free IDE's. Henc, we need and example file and a DTD initially. This needs to support plugable everything ie
it will need to know
If we could design the XML file then we could start adding wrappers that take their configuration from it. We could obviously write this in java but the resource requirements might be high (multiple vm's running at the same time) and you have the problem of installing that tool initially.
I wonder if we could help that by making the tool to build the initial configuration file an applet so that there was no install complication. I realise that it cannot save a file locally very easily so maybe it just displays the output in the browser for users to "save as" them selves. The home web site would allow the jar file for the ide to be downloaded, would have a wizard to build the configuration file and also the script/batch file/whatever to execute the ide.
Some of the wrappers are really simple like compile (parse xml build command line for compiler [eg jikes] and then execute).
Others already exist at least in part (I have seen tools to build make files - but jikes dependency checking is pretty good so I have not needed them)
More complex but really useful wrappers would be for the profile output and jdb.
Other obvious things include a user interface to manage the configuration and then a user interface to allow all the wrappers to be called.
It seems to me that this might be a userful free software project that could be tackled at least in part as a project for your course.
By the way I totally agree on NOT having visual RAD tools as I think it makes learning artifically simple and just puts off learning the basics. It does not promote real understanding and in any event we find ourselves more productive working without visual RAD.
We are currently recruiting a new member of staff and I intend that they will work through your course as a starting point. I will pass on any comments that result from that.
Thanks and sorry for the long message.
-- David Warnock Sundayta Ltd
Sender: firstname.lastname@example.org Date: Wed, 07 Jul 1999 13:34:27 +0100 From: David Warnock <email@example.com> Organization: Sundayta Ltd To: firstname.lastname@example.org Subject: Classtools
I found the tool to look at the profiles created by java -prof it is at
-- David Warnock Sundayta Ltd
Date: Wed, 07 Jul 1999 13:33:37 -0400 From: John Richardson <email@example.com> X-Mailer: Mozilla 4.07 [en] (WinNT; U) To: firstname.lastname@example.org Subject: Classtools
Debuggers: try DDD at http://www.cs.tu-bs.de/softech/ddd/, I've used this with C,C++ code with great results, it claims to work with java as well, but I haven't tried it personally. Testing: DejaGNU at http://www.gnu.org/manual/dejagnu-1.3/html_chapter/dejagnu_toc.html
Sender: email@example.com Date: Wed, 07 Jul 1999 13:47:03 -0400 From: Mark Donahue <firstname.lastname@example.org> Organization: VIA To: email@example.com
Konstantin Knizhnik has a tool called Jlint available at http://www.ispras.ru/~knizhnik/
-- -=============================- Mark Donahue VIA v. 207.828.8680 x3038 f. 207.828.8645 -=============================-
Date: Thu, 08 Jul 1999 08:50:51 +0200 From: Ottone Maurizio Grasso <firstname.lastname@example.org> To: email@example.com Subject: Classtools
For writing test code that spans more than a single unit I'm experimenting with aspects (which have a broader scope I haven't understood yet): http://www.parc.xerox.com/aop/aspectj/
AnyJ is an IDE which is free for Linux use and is based around a modular architecture: http://www.netcomputing.de/
Looking forward to read about your opinions ...
Date: Fri, 09 Jul 1999 01:14:30 -0700 From: Harish Singh <firstname.lastname@example.org> To: email@example.com Subject: Classtools
Mr. Harold. I've used Jipe available from http://www.users.globalnet.co.uk/~eis/jipe.htm. This is a rudimentary IDE available with source which may be very attractive for your purpose. I've used it with jdk without swing installed and it seems to do the job very well. And most of all it supports projects and classpath overriding which is extremely important to me as well. I work with many packages and use the "project->properties" menu to include classpath for the packages I use in the current project. In short, a real gem of an IDE.
Best wishes , Harish
From: "Jim Jackl-Mochel" <firstname.lastname@example.org> To: <email@example.com> Subject: Classtools Date: Fri, 9 Jul 1999 10:42:05 -0400 Content-Transfer-Encoding: 7bit
Hey There, fan of it so far since I find that my retentive coding process catches most of what it catches.
for a Java equivalent.
to interrogate a class about its methods and then run short tours on the methods and basically exercise it a bit. To set up the data structures is not really that difficult. Managing the output and configuration will take a while.
Good luck in the hunt and please post the results on Cafe...
Date: Sat, 10 Jul 1999 22:42:59 -0400 To: firstname.lastname@example.org From: Rich LaMarche <email@example.com> Subject: Classtools
Here are two more for your list:
Profilers Jinsight from IBM http://www.alphaworks.ibm.com/formula/jinsight/
Debuggers Jikes Debugger http://www.alphaworks.ibm.com/formula.nsf/toolpreview/FD69B7E20C32011A882565 340002EC13
Rich -- Rich LaMarche Good programmers write code, firstname.lastname@example.org great programmers steal code. -- Anon
From: "Ken or Pat Siberz" <email@example.com> To: <firstname.lastname@example.org> Subject: Classtools Date: Sun, 11 Jul 1999 09:09:36 -0700
Elliotte: � I am currently teaching an introductory Java course for C programmers at UC Berkeley Extension.� You may recall I talked to at the CityJava meeting in San Francisco.� � I, too, am looking for an inexpensive development environment for my students.� Here's what I've settled on: � For development I have them download the Sun JDK 1.2 and run it from the command line. � For an editor I have them download TogetherJ >from
From: "Booth, Peter" <email@example.com> To: "'firstname.lastname@example.org'" <email@example.com> Subject: Classtools Date: Sun, 11 Jul 1999 15:52:46 -0400
You mention that you're looking for a free, open source IDE that isolates students from CLASSPATH issues. I can't suggets anything that is perfect, but an imperfect product that I have been using is the recent Visual Age Java 1.2 Tech Preview edition. It's a nice IDE for anyone who has a big fast machine and is freely available. Of course, it's a commercial product, it is limited to 500 user written classes (will your students write more than 500?), and it doesn't use files.
Good luck, whatever you decide. After 8 years of C (and Fortran) programming I still found CLASSPATH issues a bear for weeks.
PS - i liked the XML book, it helped me.
From: "Booth, Peter" <firstname.lastname@example.org> To: "'Elliotte Rusty Harold'" <email@example.com> Subject: RE: Classtools Date: Mon, 12 Jul 1999 07:17:30 +0900
The limit appears to be 500 classes imported into the workspace from the repository. This stops me from using it for real work, because I import a bunch of third-party stuff in addition to the work I do. IBM also have a Visual Age 3.0 beta Java 1.1.8 product that doesn't have the class size limitation, also available as free download.
I use this latter version 8 hours a day, and am very happy with it.
Date: Tue, 13 Jul 1999 15:29:19 -0400 From: Reginald Braithwaite-Lee <firstname.lastname@example.org> Organization: KL Group Inc. To: email@example.com Subject: Classtools
We do not currently have any 'academic' versions of JProbe. I was interested in your comment that academic versions of other products do not suit your classroom needs. Could you explain?
I would like to understand what you, as a teacher and 'thought leader' need from tools for the classroom.
p.s http://www.ispras.ru/~knizhnik/ This guy wrote JLint, the Lint for java you were asking about.
-- Reginald Braithwaite-Lee KL Group Inc. +1 416 594 1026 x 358 <firstname.lastname@example.org> "Bad artists copy. Great artists steal." --Pablo Picasso "Real artists ship." --Steve Jobs
Date: Tue, 13 Jul 1999 16:07:30 -0400 From: email@example.com (JQW) Subject: Classtools To: firstname.lastname@example.org
Probably a million people already mentioned jlint. I had some trouble loading the page -- IE told me I need to load some PanEuropean language support. But then with the right magic combination of clicking and "back" it showed up.
I saw the link through the Gnu-Java page, which lists some good packages you should know about if you don't already:
Thanks for your great page,
--Jeff Williams (usually email@example.com)
Date: Wed, 14 Jul 1999 07:38:55 -0500 From: "Sears, William D" <William.Sears@navistar.com> Subject: Classtools To: "'firstname.lastname@example.org'" <email@example.com>
I have been enjoying your collection of Java news for some time and you finally had a question that I could actually contribute to.
Profilers - no idea
Testing Tools - JUnit is what I use.� Great stuff. My partner and I have made a few modifications which we need to send back to the original authors - things like NotEquals and EqualsRel (which checks for a relative tolerance).� Also, note that the original tests only "fail" if things are demonstrably false - there are some cases where it is not "true", but the test passes. (e.g. null's).
Debuggers - jdb (but see below)
IDE - JDE (
From: firstname.lastname@example.org X-Lotus-FromDomain: CSC To: email@example.com Date: Wed, 7 Jul 1999 13:56:46 -0400 Subject: Question of the week - OS Dev Tools
Profilers - ProfileViewer Uses output of java -prof. Does not work with Java2 http://www.capital.net/~dittmer/profileviewer.html
Testing Tools - Jlint Source code provided, must be built for deployment platform. http://www.geocities.com/SiliconValley/Orchard/5802/
Testing Tools - BeanLint Analyzes and alerts you to potential problems with your JavaBeans. http://www.javaworld.com/javaworld/jw-12-1998/jw-12-beans.html
IDE - BlueJ BlueJ is an integrated Java environment specifically designed for introductory teaching. http://www.sd.monash.edu.au/bluej/
IDE - ElixirIDE The only difference between the Lite (free) version and the pay version is that you can only open 10 java sources files concurrently per project. Probably okay for your purposes. http://www.elixirtech.com/index.html
Hopefully, you'll publish the results next week. I'd be interested in what other people suggest. Keep up the great work on your site. You have one of the best sites to keep up to date with Java.
Date: Wed, 7 Jul 1999 10:46:05 -0700 (PDT) From: "G. Barnes" <firstname.lastname@example.org> To: email@example.com Subject: Re: Question of the Week: Open Source Development Tools
I saw you question about open source Java development tools on the Cafe au Lait website (http://metalab.unc.edu/javafaq/).
At JavaOne, Cygnus gave a talk about gcj, their new frontend to gcc for Java. It's not clear to me that it's completely finished (I don't think Swing is implemented yet), but it would give you the ability to use gdb to debug.
To use gdb, you'd have to compile to native object code (gcj compiles to either native code or .class files), but I presume you could debug in native code, and then recompile into .class and everything would work.
I also presume that if this idea works, you could use any other gcc-based tools, like a profiler if there is one, although presumably you'd have to be more careful in trusting that a profiler on native code would give the same results as on .class code.
For more information, their website is http://sourceware.cygnus.com/java/ On this page, they claim to be 'developing a complete free software toolkit for developing in the Java Language.'