The Source for Java Technology Collaboration
User: Password:



John D. Mitchell's Blog

Community: Java Tools Archives


JavaOne 2008: Day 1, The Good, The Bad, and The Lame

Posted by johnm on May 07, 2008 at 06:13 PM | Permalink | Comments (4)

Another year, another JavaOne.

It's always great to see so many old friends again.

This year seems to be continuing the attendance growth trend of the last couple of year so that's a good sign. Also, I've been able to find enough actually interesting and useful talks to keep from going back to sleep and that's an even better sign. In particular, this is starting to show how the "Java community" is growing up and outwards to encompass more than just the same old things.

Here's my list of the key things from Day 1:

JavaFX... NOT!

What a joke. JavaFX was announced with great fanfare at last year's JavaOne and yet what has actually been released in a year? Nothing of value. Just more hoopla and blah blah blah. Way too little, way too late. Especially now that Adobe has started opening up Flash and friends.

Indeed, with all of the improvements to the world of JavaScript/Ajax libraries, frameworks, and tools and most especially with the growing capabilities around the support of canvas in browsers, there's very little real reason to use those wretched "Rich Internet Application" packages like Flash and JavaFX.

JavaScript

Yep, there are now a number of sessions at JavaOne covering various aspects of JavaScript. Large rooms filled with Java developers who are using JavaScript is an interesting site to see.

As Roberto Chinici said in his talk, JavaScript Programming Language: The Language That Everybody Loves to Hate, JavaScript is basically yet another Lisp-1 language. Alas, as was so clearly shown in his talk, JavaScript is a really horrible implementation of Lisp-1 -- so many nasty corners, gotchas, and just plain bizarre things. That said, given JavaScript's ubiquity in web clients and its growing use on the server, it is pretty much required for all web developers to learn JavaScript.

JAX-RS: RESTful services in Java

Yes, REST is here to stay. JAX-RS is the attempt to standardize how to build RESTful services in Java. Basically, the approach is to use a number of new bits of library (such as the URI builder that makes working with URIs actually not a completely bug-inducing nightmare) and a bunch of new annotations.

There are already at least a few implementations out in the wild including the "Jersey" reference implementation and one for the Restlet framework.

The JAX-RS (aka JSR-311) draft specification has just been released for public review -- check it out and send in your comments.

As with JavaScript, everybody doing any web services in Java needs to at least check out JAX-RS (and Restlet).

Concurrency

Is there anybody left out there in Java-land that hasn't yet gotten the memo that concurrency is a big issue today and is becoming a huge issue moving forward?

Brian Goetz's talk, Let's Resync: What's New for Concurrency on the Java Platform, Standard Edition, was primarly about one key way to solve a number of problems was very well attended and people should check it out online.

Basically, coming in Java v7 is an addition to the java.util.concurrent library which adds a lot of support for building Fork-Join style concurrency solutions. For those who can't wait, check out Doug Lea's existing implementation that is part of his util.concurrent library.

Java v7 looks to have some nice features that both allow for very general Fork-Join solutions as well as things like the ParallelArray class which makes it ridiculously easy to concurrently process arrays of information. Joe Bob says: Check it out.



DSLs feelin' groovy (or, graduating from elementary school)

Posted by johnm on November 17, 2005 at 11:04 AM | Permalink | Comments (8)

Ben Galbraith has posted the first of a series of blog entries about How I Learned to Love Domain-Specific Languages. It's great that more and more people are starting to see the value of explicit, focused languages over ridiculously inhumane "formats" like XML. Hopefully, we're finally reaching a tipping point.

Explicit DSLs feel weird to a lot of programmers because there's been so little mainstream focus on them. I.e., as shown by one of the comments, developers have been herded and otherwise sucked in by shiny-looking tools (by poor education, management, laziness, peer-pressure, ignorance, lack of training, marketing hype, etc.) and haven't (consciously) realized the power of domain languages. It's amazingly odd to me how little energy has been applied to languages among mainstream developers given how much programmer time is spent arguing about the minutia of programming languages and tools.

The fact is that we're already surrounded by and are constantly implementing "DSLs". Look at the "language" of printf and friends, the declarative "specification" of makefiles, the myriad "protocols" that we deal with everyday like HTTP, SMTP, SSH, and FTP, the "APIs" of code libraries, the "design patterns" embodied in frameworks, the analogies and "metaphors" we use to described software architectures, the implicit languages that we create each time we define a class, the jargon we use to talk with each other, etc.

A big part of the problem that I see happening right now is that too much of the discussion around "DSLs" is being framed as some sort of "either/or" / "black/white" conflict when it's really just a more conscious and explicit approach to things that we've already been doing. Whether it's the hype juggernaut of Ruby on Rails or the Java is old, boring, bloated, etc. ideas exemplified by Beyond Java or the "IDE" wars between Eclipse, NetBeans, IntelliJ IDEA, and Emacs, or whatever, the biggest issue with this "us/them" thinking, IMHO, is that people are fighting the wrong fights. The leverage that matters most is the ability of developers to think and communicate clearly with themselves, each other, systems, business folks, and users. Biologically and sociologically, human are built to be linguistic.

That is, languages are fundamental to how we work internally and with each other. Sure, we have various tools to help us communicate but isn't it clear that e.g., PowerPoint isn't the point, it's just a tool — and, alas, a tool that usually induces poor communication rather than enriching conversations). On the other hand, look at the "modern" killer apps and how they are all about helping us (manage our) communicating: email, web, blogs, P2P, wifi, cell phones, faxes, VoIP, agile/XP, open source, etc. I.e., we've graduated from the elementary school building blocks (word processing, spreadsheets, databases, Belief of Control, etc.) to the middle school of communication. Now, we just need to learn and develop languages and tools built around this new level of understanding and put aside our old, comfortable, but ultimately dead-end habits.



GCC turns 4.0

Posted by johnm on April 22, 2005 at 10:08 AM | Permalink | Comments (0)

The GNU folks have released version 4.0 of the venerable GCC compiler with built-in support for the C, C++, Objective-C, Ada, Fortran, and Java programming languages.

The biggest general change is the completely new intermediate language representation based on tree SSA. SSA (Static, Single Assignment) is a modern approach to the intermediate representation of the parsed programs which allows for a much more sane and aggressive approach to optimization.

On the Java front, the GCJ sub-project has made major improvements including better support of AWT and Swing and a lot more of the other Java libraries such as java.util.regex. If you didn't know, GCC can generate native (machine-specific) binaries directly from Java code.

Check out the ChangeLog for more details.



MacWorld 2005: Boom and Bust

Posted by johnm on January 12, 2005 at 01:22 PM | Permalink | Comments (5)

MacWorld Expo 2005 is the consumer-focused show/exhibit/conference for all things related to Apple Computers. I've been going to the show for the last two years because Steve Jobs is funny as a keynote speaker and because I switched to a 17" Al-PowerBook when they came out. Alas, in stark contrast from years past, Apple seems to have stopped giving out goodies to attendees of the keynote (which, lets face it, is the real reason that a geek would want to sit through hours of rah rah marketing amongst a sea of Apple fanatics :-). Now that you have some idea of my bias, here's my take what did and did not get announced...

iLife vs. iWork

Lots of improvements to the various applications which are part of the "iLife" suite (iTunes, iMovie, iDVD, iPhoto, and GarageBand). Basically, the key takeaways are that Apple is lowering the price to $79, they seem to be listening to the user base and actually implementing a lot of features that people have been clamoring for (such as multi-track recording in GarageBand) while redesigning the internals (to better support e.g., RAW image formats and Hi-Definition Video) and externals (to actually make the programs easier to use). There's definitely a lesson in there for software developers.

Apple also introduced the new iWork suite of so-called productivity applications. [I qualify such things as "so-called" because of the inordinate amount of time and effort that we spend using them but that doesn't result in anything useful.] iWork consists of a significantly upgraded Keynote presentation maker and the new Pages document maker. I call Pages a document maker rather than a word processor because it's really targeted at the user who wants to quickly create various types of complete documents. How so? One of the areas that Steve Jobs hammered on in the keynote is how all of the Apple applications are trying to help users get started via e.g., "Themes" (ala Keynote), "Books" (aka photo albums in iPhoto), and "Templates" in Pages. I.e., Apple is working to help kickstart their users. That way, users can quickly focus on (a) adding content and (b) tweak the look rather than getting stuck in the purgatory that is a blank page. Yes, other folks have tried the same thing but it's definition instructional to see how a bit of extra focus on the aesthetics and actual user experience goes a long way. Lest I become repetitive, I'll refrain from saying that there's a lesson in there for software developers.

From a gossip- and conspiracy-addict's point of view, it's quite interesting to note how iWork does not contain either a spreadsheet or a personal-scale database. This is a deft deflection of the whole question of whether Apple is going to war with Microsoft in the work applications space. As with the iPod strategy, Apple is playing from their strengths and can slowly encroach into the MS Office market with each new generation of the suite. I don't know what Apple may be playing with in terms of spreadsheets but they certainly have a strong, existing community around the FileMaker database system. At $79 for the suite, there's hope yet that ridiculous pricing for office suites will be improving in the future -- but I won't be holding my breath.

mini-Mac

Oh, yeah, well that's what the new Mac mini should be called. There's plenty of folks getting all excited about this but I'm a bit skeptical. $499 sounds like a good price but that's for a machine which only has 256MB of RAM. Going to a realistic 1GB of RAM will cost you another $425 (buying it from Apple) -- that's highway robbery. To get a "Super" CD/DVD drive instead of the baseline "Combo" drive adds another $100. Apple is pitching the mini-Mac as a good machine for things like build farms (and hence, cheap render farms and the like) but note that the mini-Mac doesn't have gigabit-ethernet -- only 100Mbit.

Now, all that said, I think there are a couple of interesting markets where the mini-Mac will be effective. The first is to upgrade the machines of the relatives who are always bugging you to keep their MS Windows boxes running (but aren't anywhere near ready for e.g., Linux). If they already have a nice monitor then getting them a mini-Mac seems like a very reasonable option. I switched my Dad and one of my Aunts to 17" iMacs awhile back and even with the transition pains, my support load has dropped dramatically (i.e., it's almost all just senile user errors these days :-). The second interesting use is for people who travel but don't really need or can't afford a desktop replacement laptop. If you're not a power user then having a nice monitor, etc. at work and at home and just throw the mini-Mac in a bag and you're all set.

iPod Kerfluffle

Well, Apple finally answered my complaint about the high price of the iPod mini... Apple has released the iPod Shuffle. This time, they hit the price points spot on with a $99 base model which has 512MB of flash memory and a 1GB version for $149. The iPod shuffle is a brilliant answer to the flash-base MP3 player market. It's tiny, it has a very competitive price/capability ratio, and it's simple. The genius is that Apple simplified the entire model of how a flash-based player works. How? They completely got rid of the general purpose display. How can they do that and still create a usable device? They realized that all of the heavy lifting with the tiny device would be done in the iTunes software when you've connected the device to your computer. That is to say that Apple looked at the notion of mobile music playing as a complete system and focused making the systemic experience better. The iPod Shuffle is going to decimate the competition. There's a big lesson here for people who consider themselves architects.

Now, for some balance, the prices and capabilities of the iPod mini and the full-scale iPods still a bit sore spot. Given the unit volumes that Apple is selling iPods, the price/capability ratio sucks. I was hoping for a shock and awe announcement of a new high-end iPod that had built-in WiFi and support for WiFi delivered VOIP telecommunications. Now that would be a brilliant bit of sidestepping of the whole cellular carrier wars and would drive the mobile communication market into new territory.

Java Developers Get the Shaft

In the past, Apple has said that they care about Java. Alas, the patterns of fact show that to be a very arguable point. Java support on the Apple platform has always been and continues to be a third-class citizen. Heck, developers in general are only, at best, considered second-class citizens by Apple. The fact is that the Mac OS X 10.4 ('Tiger') release is at least 6 months late and that Apple has locked Java v1.5 to the Tiger release. Jobs was extremely vague about the release date for Tiger, saying that it will be out in the first half of 2005. That means that Java v1.5 support on the Apple platform will be about 1 year behind the Sun FCS release. Yeah, sure, that's commitment to Java and Java developers. Various folks have been pestering Apple to release a version that runs under the current Mac OS X 10.3. The gossip that I've heard is that Apple has cut back on the staffing of the Java team and just doesn't have the resources to make that happen. For shame! Of course, there are lessons in here about how backwards businesses are in their indignant misunderstanding of the value of developers as business catalysts but I won't bore you with that rant. :-)



Java J2SE v1.5.0 FCS Released

Posted by johnm on September 29, 2004 at 09:17 PM | Permalink | Comments (0)

Java J2SE v1.5.0, aka "Tiger", has been officially released by Sun.

Is this all that you hoped it would be?





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds