follow nigelwatson at http://twitter.com
Welcome to MSDN Blogs Sign in | Join | Help

shlock (1) - Nigels Retrospective

Nigel Watson, an Architect Advisor at Microsoft, based in Melbourne Australia.
"Java is the new COBOL"

My mate Hugh just spent a weekend hanging out in Melbourne with Princess and I.  Hugh works for an Australian company who build FIX (Financial Information eXchange) engines and assorted ancilliary software products.  This generally means that he spends much of his life up to his ears in financial software environments - particularly in trading houses and brokerages and the like.  This gives him a unique perspective on life (and legacy systems), part of which emerged with the pithy observation "Java is the new COBOL". 

Now before I have to reach for my teflon suit, I'd actually like expand this maxim to include C#, or in fact any other contemporary 3rd generation language presently being used to hand-craft business logic components in the wild.

MDA, software factories, and DSI are all about enabling models to drive the auto-generation of the necessary code and infrastructure artifacts to do the heavy lifting in a system.  This is a long-term thing, but it's my belief that these initiatives will - eventually - fundamentally change the way we build solutions, with tools doing most of the work and leaving us humans to apply our frontal lobes to the actual business challenge we are addressing.  This is right, and good, and somewhat overdue in my humble opinion.

But, with this in mind, what becomes of code that is being built today in ye olde development environments using current people-intensive approaches and contemporary languages such as Java and C#?  All that code that has been lovingly (or not so lovingly) hand coded to exacting (or blurry) requirements will eventually become legacy code that will more than likely have to be maintained.  Now if you accept that most people who are currently specialising in writing code by hand will eventually move onto other things, it seems likely that we'll be in a similar position to the one we are in today with COBOL - that is, a shrinking population of developers who understand at a deep level how the code works, and how it can be modified to meet a new or changed business requirement. 

There of course always be people who understand these things, but I think they'll become a rare and possibly expensive resource.  Just like COBOL developers are becoming today.  Interesting thought, yes?

Posted: Tuesday, December 06, 2005 2:44 PM by shlock

Comments

DrBob said:

Hi, Yes, from how you present that it's very interesting... BUT... all this buzz words like MDA, SF, DSI... etc... cannot work without stabile building blocks, and just one question... What you think, how you will build it!? I think how (again) people doesn't understand, how simply if we want to have (and go in that direction) all this nice things (MDS, SF, DSI) we first need to build "solid" building block, and then (one day) my mother will take drag and drop and make one Financial App during her coffee break. Please!! So... don't be afraid... we will not have the same problem like COBOL guys... Robert
# December 6, 2005 4:05 AM

Jeff Parker said:

I would have to disagree, as the web continues to grow there is no new language for client side script other than JavaScript. I know VBScript has been there but not everything suports VBscript. So JavaScript will remain the powerhouse on the web client side, even more so with Ajax and several new web technologies that still require JavScript to work.

With JavaScript leads curiosity, as to what is Java. Now I agree the Java environments are really outdated and ancient, and slow and well they are no where near C# and VS environment. They do still exist. As long as JavaScript is out there and you have developers constantly pushing themselves and experimenting you will have Java. I do not see anything replacing JavaScript anytime soon.
# December 6, 2005 9:50 AM

shlock said:

Hi Robert,

Thanks for your comment! I agree totally that stable building blocks are a necessary part of the model-driven approach... in fact I think there will always be a need for people to code stuff at the low level. But I also think that our collective level of abstraction has been rising - if somewhat slowly - over the last 30 years or so. How many people still code in Assembler for example? The answer of course is 'not that many' compared to people writing code for 3/4GLs. And the reason for this is that you can be more productive writing OO or SOA code using contemporary tools. In the future, the contemporary tools we'll have for building systems will enable us to work at higher levels of abstraction than we currently do, reducing the need for builders to work with 3/4GLs. And for that matter, I for one wouldn't want my mum building financial applications - not because she couldn't work with the tools, but because she lacks the domain knowledge around financial apps to actually put one of these things together in a way that makes sense (no offence Mum :) )
# December 7, 2005 9:08 PM

shlock said:

Hi Jeff,

Hmmm... client-side javascript is something that I think we are stuck with for the short to medium term, but it will be replaced eventually. There's nothing actually wrong with the language per-say, but I think that most developers who build stuff to run in the browser would agree that it's not all beer and skittles building apps of moderate complexity using DHTML. Besides the cross-browser concerns, there are also fundamental challenges related to round-tripping, asynch behaviours, DOM spasms, debugging difficulties and a host of other things that can trip you up productivity and capability wise.

My guess is that we'll be stuck with CS JS for a while, but eventually new ways of building light-weight clients will emerge to slowly replace DHTML. I'm thinking specifically of technologies such as flash, XAML, and zero or no touch deployment technologies for Java and .NET rich clients.

And guess what? These technologies will all lend themselves to model-driven development :)

Regarding AJAX/ATLAS - these are just libraries that effectively put lipstick on a pig. The underlying browser code environment is still just as ugly no matter how you tart it up.
# December 7, 2005 9:19 PM
New Comments to this post are disabled
Page view tracker