JavaFX Script is 10 Years Late!
The machinations between SUN and Microsoft have delivered a bitter harvest to bona-fide software developers over the years. To people and companies large and small, the dust from the battle between these two monoliths over Java, has retarded and even choked major software projects (e.g. a large online education product I worked on with 15 developers), has retarded the user experience on the web, and thereby probably helped fuel the dot com crash in 2000. The recent release by SUN of a new scripting language for the web - JavaFX Script - brought back memories of all those lousy decisions regarding Java, the Web and the interface technologies by both companies. Here's a snapshot of the worst of them:
In 1996 SUN had a lousy user interface (UI) library in the otherwise mature Java language called the AWT (no Swing on top of it at that stage), which it reportedly took them only 6 days to write ... get the picture! The AWT dashed the hopes of most serious applets writers.
March 1997: Microsoft, an early champion and licensee of the Java virtual machine and the language, and a company with some experience in professional UI class libraries (e.g. the MFC library for Windows C++ applications) comes out with a professional interface library called the AFC - Application Framework Class - offering it as a new industry standard UI library for Java, the language in much need of one. SUN rejects any such notion, dashing the needs of many of Java developers at that time, and goes on to write Swing, its own professional UI library, which takes more than another year to deliver.
Early 1998: Microsoft has another crack at the UI library in Java in their Visual J++, with the WFC - Windows Foundation Classes (for PC and the Mac) - but this time they clearly show their displeasure at the earlier snubbing of AFC, by deviating from 100% Java V1.1.
1997/8: Sun sues Microsoft for damages, and eventually gets a puny $20 million (in gorilla terms) in 2001 - enough to underline to the software developer community that Microsoft is no longer playing ball, as far as Java is concerned. i.e. The most effective 20 million marketing dollars Microsoft ever spent.
July 2000: Microsoft delivers their first .Net platform and Visual Studio IDE, with their own new C# language in tow, with much of the functionality of Java.
March 2002: Sun announced it had filed a private antitrust lawsuit against Microsoft, seeking $1 billion, after Microsoft chooses to leave Java out of the standard XP install.
April 2004: Sun settles with Microsoft, extracting a 10 year deal involving technology exchanges, and $1.9 billion going Sun's way, some unspecified amount going Microsoft's way... the surprising thing is that it wasn't some group of dot.com crashees that were suing the two of them for much more.
2005: Microsoft delivers .Net 2, a mature version of the technology, with free development tools to all-takers, via the Visual Studio 2005 Express edition... as somebody who was around when Microsoft charged $5500.00 (I kid you not) for its Software Development Kit (SDK) for 16-bit Windows V3, a Microsoft SDK for 'free' is a remarkable sight! And all of this - some 9 years after a mature Java was available on the server.
So you can see from this litany of events, that 1997 could and should have been the year that we got something very much like JavaFX Script! And they both probably still wonder why the likes of AJAX and Google and the Apple iPod (the thing kids spiritually left the Internet for - plugin, tune-out) ever got so popular. And no doubt, they probably under-appreciate, that THE major reason for Web services becoming as popular as they have, is that companies, organisations and individuals of all persuasions, just want to enable their technology from different companies and sources, to inter-operate in what is afterall, a pluralistic world.... Oh the things that could have been achieved globally in and via the Web experience over the last 10 long years. Some commentators are now talking about the Rich Internet Applications (RIA) that AJAX, Silverlight and JavaFX Script now afford us, where I see 10 years of opportunities lost, of a decade of poverty along a trashed super-highway that really was highly avoidable... I wonder what the FX stands for?
Will we see any better from the main protagonists over the next 10 years? Is hope a business strategy?
Visio Masters finally wake-up to ER Modelling
I read a preview report from Microsoft about what they are 'planning for their next version of Visio'. D.B. Johnston was reported as saying at the VSLive conference in San Francisco recently, that they are turning to Conceptual Data programming in which the Entity Data Model (read ER - entity relation - model, rebadged as an MS initiative) features as a higher level of abstraction than developers are accustomed to in OOP. That probably sounds like a retrograde step to most OOP programmers - unless they've tried to manage their data objects in a distributed environment, particularly the Internet.
Image #1 : Logic Flow Lines in the TANDEM Design Method, for an online movie ticket application.
The irony to me is, that due to Visio's current lack of good ER modelling capability, I dropped the 8th edition of the classic database management text book - Modern Database Management by authors Hoffer, Prescott and McFadden - as the prescribed text book for a masters level subject I teach, called Database Systems and Information Modelling. I've taught it for 9 semesters straight at the University of Melbourne, and had used editions 5, 6 and 7 in earlier years. When the text went to Edition 8, it dropped the traditional ER crows-foot notation, and replaced it with the Visio version of a CASE diagram. The crows-foot Chen notation is so much better as an agile modelling notation, as it is better at including as many stakeholders as possible (i.e. more easily undersood, in a small amount of time, across all manner of people), in the Requirements and Analysis stages of the software development lifecycle (SDLC). From a User Centred Design (USD) perspective, inclusiveness of as many stakeholders as possible is a key issue driving project success. Make a mistake at the Requirements and/or the Analysis stage, and the error will be magnified many fold by the time the system is implemented (research tells us that for each dollar it would cost you to iron-out a problem at the Requirements stage, will cost you $100 at the Design stage, and $1000 after the Implementation has been rolled-out! ... with the newer agile development techniques, it wouldn't be that much, but is nonetheless important to catch actual requirements early).
Anyway, it seems that the Visio designers have finally seen that when it comes to doing mash-ups with web services (nb: see our earlier work under the title of 'orchestrating web services' in 2002, 2003 e.g. ISMIS paper) and other data sources, the OOP paradigm is not the most appropriate. Trouble is, they will probably come up with a new Microsoft notation for 'their' EDM, when traditional crows foot Chen notation is such a widely known and UCD-friendly notation.
We've now gone much further than our work in 2003 (web service orchestration) and 2004 (distributed transactions), including the development and publishing of a method for designing such systems called TANDEM. It is best suited to mash-up (orchestration) technologies that use a declarative logic language to mash together the various components (including web services), such as CoLoG - the Prolog-like language built into the DigitalFriend.