Skip to main content

Strung Out on Strings

Posted by editor on July 21, 2005 at 7:16 AM PDT

Rethinking how to teach programming

For some time, it's been clear that Java is not the most straightforward thing to teach. Specifically, how can you stress object orientation and then tell students the first thing they have to write is the procedural public static void main (String[]), which has the unpleasant side effect of prematurely introducing Strings, static methods, and arrays? Teaching Java is in serious need of a rethink, as previously noted by Daniel Steinberg, among others.
Many of the solutions involve introducing Java by way of an environment that puts classes and objects front and center and hides some of the extraneous "yeah but"s that will only confuse things at first.

One of these environments is the subject of today's Feature Article. In Java Tech: The Sweet Song of the BlueJ, Part 1, Jeff Friesen takes an initial look at BlueJ, an educational development environment. He says:

BlueJ is easy to use; students can begin working with BlueJ without needing a lengthy introduction to the environment. BlueJ lets students visually and interactively create classes and interconnect them. Students can then instantiate objects from those classes, invoke methods, specify arguments to those methods via dialogs, view return values via dialogs, and visually inspect object state. This product is freely available, a benefit to students who cannot afford costly licenses (BlueJ cannot be sold for profit).

Joshua Marinacci is wowed by Fold N' Drop in today's Weblogs: "This has to be one of the coolest frame hacks I've run across. I also think this is a great use of a gestural interface techniques. The idea is that you can fold windows down to access what is behind them."

Brian Leonard asks Are there GlassFish in Prague, and can you buy them on eBay?, explaining: "I'm talking about Project GlassFish. It has relevance to Prague because it was during our team trip there in May that I worked feverishly to ensure the project didn't go live without tools support - a necessity to any successful project, right? "

Bob Lee has a question about
Package Scoping And Unit Testing: Why don't more programmers use package-private scope? Package scoping can ease testing without cluttering your public API."

In Also in
Java Today
Artima blogger Eric Armstrong writes: "Now that I've gotten myself onto the Groovy mailing list, I'm getting involved in language discussions again. I love those. The axe I generally grind in those discussions is readability. To me, that is an overlooked strength of the Java language that goes a long way towards explaining its popularity as a vehicle for production applications and for teaching. A recent discussion reminded me of a trick I use to make method calls more readable in Java--which can become something of a problem when the list of parameters contains booleans and numeric primitives." In Readable Method Calls in Java, he shows how this trick works.

Thanks to JDBC, it's possible to bridge to a database. In Hooking OOo to MySQL, Rob Reilly writes: "by combining the power of these two open source applications you can do things like generating personalized sales letters from the customer data stored on your servers. Let's walk through the process using OOo's database wizard."

In Projects and
the Mac Java Community home page is linking to Apple CocoaComponent sample code: "The QDCocoaComponent shows how to use QuickTime's SequenceGrabber to get captured video into a Java component, and QCCocoaComponent shows how to use a QCView in order to view Quartz Composer files in Swing."

The JavaDesktop page is publicizing a "Swing Sighting":

Kinabaloo Software

makes a standalone javadoc viewer called Java Guru,

which is also available as part of their TJI IDE. Kinabaloo folks say:

"Java Guru provides a fast and versatile way to access the Java API

and API documentation... suitable for beginners and advanced users


In today's Forums,
hr_stoyanov has a lot of questions about
Things in the JAX-WS EA2 docs:
Here are a few additional findings, you might want to look into:1) APT docs: Is the sourcePath attribute always required? It does look so, even though there can be nested 2) APT docs: Is the -Averbose=true used at all? There seems to be a verbose attribute anyway... 3) The sun-jaxws.xml has urlpattern, but there is another standard one in the web.xml descriptor for the servlet. What is the relation between the two? Do we need to specify the servlet class (and context listener) in web.xml at all? 4) Are the portable beans generated by APT and WSGEN (keep="true") the same? 5) There are a bunch of references to "JAX-RPC 2.0" in the jaxws 2.0 docs.