Despite the Java noisy noise about attracting Visual Basic-type developers, I retain the impression that many of us Java folks dont get it. Either we cant define this audience or we secretly dont believe in its value. But there is value here, value loftier than merely growing product revenue and stealing corporate developers away from .NET.
The VB-type clamor from our pointy-headed friends in product marketing includes the following: There are more than twice as many VB developers as there are Java developers in the world and its an obvious place to try to grow a Java product business; Java and J2EE in particular suffers from a complexity so deeply ingrained that it surfaces when realizing even the simplest of application use cases; typical JSR expert groups (the folks who write the Java standards, groups comprised of vendors and academicians rather than corporate app developers) have a historical tendency to believe that complexity should be hidden by tools instead of resolved by the application model a view that seems to have lost traction within even Sun (see Project Rave); tools for aspect-oriented and generative approaches to business process creation and integration are chief among vendor hopes for finding new value-add in the largely-commoditized J2EE platform stack.
All of this is true, but it may miss the core value of the VB-type audience, as that value premise has little to do with Java and enterprise contexts per se.
So heres the premise that many of the Java elite sadly do not seem to believe, as it vaguely seems to suggest a deterioration or dumbing-down of their craft (in much the same way that mainstream adoption of the web broke the hearts of Internet elitists years ago):
It should be possible for a halfway intelligent person with no programming expertise to develop, test, and deploy dynamic, data-driven, service-oriented web applications very quickly and very safely. This non-programmer might be a power user in Accounting or HR who is completely uninformed about classic computer science issues but knows a thing or two about Excel pivot tables and rules governing workflow; or this non-programmer might have once been a true programmer, say shes familiar with C/C++, and simply wishes no longer to deal with the artifacts of systems and languages (at least within the scope of her current use cases and/or professional context).
The value here is not so much in attracting Visual Basic developers to Java, and the ideal tactics arent those which call for Java to mimic VB or C#, or for JSP (and JSF) to mimic ASP.NET. The real value is in giving non-Java developers and those who are not going to learn any programming language the power to create applications and services through simple tag and script-based development models and highly-customizable components and services that can be imported, integrated, and managed within simple lightweight tools (as opposed to full enterprise IDEs). The fact that we refer to this as going after VB-types is saddening, as these folks you know, the people in the world who arent geeks like you and me ought to have a better baseline option than Visual Basic and VS.NET.
Building application models and tools for these folks is not the same as making Java easier for existing developers. Simplifying the development of EJBs and SOAP endpoints is an important thing, but if the solution requires understanding of transaction attributes or of namespaces in an XML Schema, or if it requires use of computer science-y cool topics such as aspects or generative programming, then it is simplification and elegance for you and me, not something for VB-types.
Giving non-programmers the components, models, and tools they need to develop applications and services is a good thing for us to do because it decentralizes and democratizes the creation of new technology and new technical solutions, distributing the power to innovate and create to a broader array of people. This is a good thing for all of us the world over, its good for the various Java platforms, and it should not threaten current hardcore systems architects any more than the mainstream adoption of HTML threatened web application developers.
As you can tell, I do buy the premise. Though I am skeptical that current leading J2EE vendors can deliver on such a thing (do giants like IBM, Oracle and Sun, full of experts a world apart from the classic VB developer, see primarily a broad marketing opportunity or do they really get the importance of ease of use in app models and tools?), Im nevertheless glad to see these leaders addressing the issue. Someone perhaps a new player, perhaps an open source initiative backed with decent marketing in the Java community needs to make this happen, or all VB-types will be forced to use well, VB.
Be aware that VB has changed drastically over the years, and that the current offering, VB.NET, is *very* close to C# and Java. VB.Net is object-oriented with multi-threading and great support for component-based development and web services.
This is actually not a good thing, as the arguments about complexity made in this essay can also be applied to VB.Net. A simple language with a simple IDE is still needed; VB.Net is not it.
I agree. It seems that the job of each generation of programmers is to make life easier for the next. Java has expanded very rapidly, of course, since its inception, and I get the feeling that the time is ripe now for "more simplicity", instead of "more power". One area in particular which comes to mind is Swing; it is powerful and flexible, but it is more difficult to use than the rest of the Java library. A layer built on top of Swing, which would be used for 80% of GUI coding, would seem desirable here.
In geek culture, making things simpler is a bit of a thankless task, it seems. You don't get many "geek points" for simplicity. That is a shame because it is often quite hard to make things simple...
I couldn't agree more. Here's an anecdote: I had a guy working for me, a serious programmer who knew many languages and understood stuff like EJB's, who I asked to put together a relatively simple workflow system. He chose to use JSP, EJB, and other J2EE stuff, and after about 3 months there was a system up and running which was functional, but not perfect. Each little change required a bunch of design work, and a long test/debug cycle, giving the system pretty horrible innertia.
We then hired a new production manager who knew how to use File Maker Pro (which may be the tool those "VB Types" should use now that VB.NET is as arcane as Java). He replicated the functionality of that workflow system in about a week. And his forms were PRETTY! The system is used by a dozen members of his team on the LAN. This guy has absolutely NO programming background. I don't think he had to type a single line of code to get this system working.
We no longer need to allocate a developer resource to maintenance of the workflow system. The production manager maintains it himself.
This is almost perfect. Clearly, we chose the wrong tool to begin with. But if we wanted to do something cool like tie it to another system using SOAP, we'd have to wait for the vendor to add that functionality. And that's where I think the Java platform should be able to come in. We should have a tool which gives you 99% of the flexibility you need, and then lets you pull in some .jar file to take it that last 1%.
I find it a little ironic that this rueful artical was posted by a guy from MACR, the company best positioned to make this tool. Isn't this what you guys were going to do with ColdFusion when you bought Allaire?
Sean, do you actually *know* any VB developers? I get the sense you do not.
I've met a fair number of people who have put together worthless Java craplets, doing little more copying some code they saw in a book or magazine.
Should I disparage all Java developers because Java easily allows people to write junk? Of course not. It takes no more or less effort to be medicore in Java as it does in VB.
That the VB IDE makes doing common tasks easy is something the Java crowd should be doing more to emulate, rather than harping on the supposed inadequecies of VB developers.
Many people have issues with Java, and they go beyond general programming skills. If the J-types really want to attract more people, go learn why many people prefer Ruby, or Lisp, or OCaml. Clean up the cruft in the syntax and class libraries, and give developers more freedom (e.g., loosen up the static typing), and see what happens.
> That the VB IDE makes doing common tasks easy is something > the Java crowd should be doing more to emulate, rather > than harping on the supposed inadequecies of VB > developers.
You're attempting to forge a disagreement or argument, it seems, but you have actually echoed what I wrote. You agree with me: Java vendors should be doing more in this space and I have done nothing to harp on the inadequacies of anyone other than existing Java vendors who have thus far been unable to approach these developers. Were you responding to my note or another note on this topic?
In building products at Macromedia, I build products for just this group of people, which entails meeting with them in a variety of settings; regardless of how successful or unsuccessful we have been at reaching these developers through scripting languages and tools, it is a fact that I know a great many of them. I am confused by the venom in your response, and by the assertion that I/we do not know anyone in this group. Perhaps we are defining it differently?
> I find it a little ironic that this rueful artical was > posted by a guy from MACR, the company best positioned to > make this tool. Isn't this what you guys were going to do > with ColdFusion when you bought Allaire?
Yes indeed. I was at Allaire, serving as architect of the JRun product (which is the core of ColdFusion MX Standalone), so I was one of those "bought" by Macromedia. While I do currently work on Flash-related products, there is a great deal of common DNA between the original Macromedians and the former Allaire folks, particularly where focus on ease of use and democratizing enterprise development is concerned. I hope you're right and that we are making a difference in this space and will continue to do more there, but I also believe that for the Java platforms to embrace and prosper from the work of this group of developers, the keepers of Java (namely Sun and IBM) need to place higher priority on VB-type developers. This would make a greater difference, I think, than we as a mid-sized tools vendor can do alone.
I recently saw a demo of Flash MX 2004 Professional and couldn't help notice the similarities between creating an application in Flash and VB. I think Flash professional hits the mark that dot.net was trying to acheive with its web forms. Also the fact that they can be bound to web services created on multiple platforms makes this a very powerful technology in my opinion.