Atom Feed SITE FEED   ADD TO GOOGLE READER

VB on the JVM

For years, we Javaers have been comparing Swing to VB, particularly with respect to ease of development. The conclusions usually involve Swing being much more difficult and much more powerful. I agree with this, but I also think Swing left out some critical APIs for way too long which made the platform more difficult:
  • no easy to hand code, tight syntax, predictable LayoutManager in the core?
  • no built-in components that are universally necessary: a JDateField, a JIntegerField, a JPhoneField, a JMoneyField etc. JFormattedTextField is not an alternative, it is very difficult to use
  • no easy-to-use all powerful table support out of the box. I don't like having to write fireXXX() methods by hand, and I don't like having to dig around and manually add the curious TableSorter.java

    These problems are easily remedied by open source libraries. But finding, evaluating and learning open source libraries adds a huge amount of difficulty to the process. This is particularly painful for me as a contributor to the best JTable API ever, Glazed Lists.

    Anyway, enough ranting. Project Semplice is Sun's new project, the VB language on the JVM. It's an ambitious project and they've got some smart people working on it. My big complaint with it is that there's this VB programmer guy named Jesse Wilson who is not me. Go on, check out the first comment on this blog entry. If their community interops with ours, I've got to share my name. He's probably not a bad guy, but come on, he's a VB programmer! Couldn't Sun have courted a more academic community? Maybe Lisp, OCaml or Haskel? I would much rather be confused for an old Lisp hack than a VB codemonkey. Or perhaps they could have tried to involve another type of community altogether! Maybe they could have written JVM extensions for extreme athletes, mercinaries, rockstars or brain surgeons. Imagine the conversations:
    Confused Person: "Are you a super awesome rockstar?"
    Jesse: "Well, kinda..."

    Another Confused Person: "It's amazing how you have the guts to snowboard out of a helicopter on ungroomed terrain!"
    Jesse: "Well, kinda..."

    Yet Another Confused Person: "You're so compassionate, dedicating yourself to fixing other people at the hospital"
    Jesse: "Well, kinda..."

    Of course to contrast, here's the conversations I'm currently fearing in actual reality:
    Confused Person: "1-based arrays suck, and by association so do you!"
    Jesse: "umm... it... not me...."

    Enough kidding aside, VB is a very productive language and I'm excited to follow the developments on this project. I'm also excited to see Sun coming to the rescue of a programming community that's been abandoned by Microsoft.
  • If I am to be candid, Project Semplice boggles my mind. I continue to ask myself "Why on earth will anyone care about it?"

    The question seems to imply two answers:

    1. Existing VB apps can be executed on a JVM
    2. Future apps could be coded in the VB language but executed on a JVM

    I have a tough time believing anyone cares about running ancient VB apps under a JVM. These old apps will undoubtedly run under Windows for the forseeable future, and presumably cross-platform support was never a consideration (why else was VB chosen in the first place?).

    If the idea is instead that future applications should be written in VB because "the language was so much simpler and more powerful", then I seriously think it's the wrong approach. The solution to this problem isn't bolting a half-assed translator onto an antiquated language that resembles a sinking vessel off which rat-like VB developers are jumping. The solution is creating higher level component abstractions IN SWING that give developers VB-like power.

    Mark my words. Come JavaOne 2007 Project Semplice will either no longer exist, or will officially be relegated to the box of "quaint and whimsical 'what-if' experiments" conducted at SUN.
    I disagree. Strong typing, object orientation, exceptions, model/view/controller etc. are concepts understood and loved by computer science types, the core Java market.

    But VB is a hobbyist language, and that's the new market. I think Semplice is an attempt to grow the Java platform's share of the casual developer market.
    Happened upon this entry, and as the 'other' Jesse Wilson, I feel I need to correct your assumption that I, personally, am a VB programmer.

    If you would take the time to reread my comment on the other blog, you might realize I was referring to others within our development team. Yes, I know VB, but that has more to do with having had to work with it in the past than any sort of personal preference. I am a Java programmer by profession.

    Easy mistake to make.
    I hate to come back with a "Nostradamus complex", but I figured I'd post this follow up, buff my nails on my shirt, and say "I told you so."