I am attending Gartner Symposium and ITxpo this week and blogging as I go.
Technology and application development platforms matter as need to slash time to change and react to new opportunities or challenges. This means new approaches, new technologies, new skills. For instance, the idea of an application being "finished" is going away, we are now building for "change-time" not building to last.
Essentially he asserts that you are ot going to succeed or fail based on choice of platform in general, although may have particular situations where one really helps, and that you are going to be using both.
In the end Mark thinks most will use both - Microsoft .NET for small and most medium size systems while Java will take 50% of the large systems (with .NET taking another 25% and legacy approaches, COBOL, taking 25%). If you can get to 70/30 for your preferred platform then that's as good as it gets and your choice is likely driven by your size (Java dominates in large companies, .NET in smaller ones) and by cultural issues. I have blogged before about the need for cross-platform approaches, especially to metadata like business rules, and I think Mark's approach backs this.
His bottom line - .NET sacrifices flexibility for productivity where Java sacrifices developer productivity for technical flexibility.
BTW Fair Isaac is at booth 305
Some .NET issues/thoughts
- .NET 3.0 is coming. New family of APIs with more breadth (used to be call winFX). Going to be the go-forward development platform with new identity management, windows workflow foundation and a new presentation foundation. All of this extends .NET 2.0 and means you will have to take on new stuff but it's not an excuse for waiting as it builds on .NET 2.0 (and it still lacks a really strong rules engine)
- Systematic development done overwhelmingly in C# where opportunistic development tends to be overwhelmingly VB. Together they have 80% in both cases
- .NET means no Open Source, really. Microsoft is not going to support open source .NET activities. There is a community working on an open source implementation of the .NET APIs called mono. Interesting.
Some Java ones
- Lots of activity in tools for Java - Core IDE (Eclipse #1), Extended IDE (often extended Eclipse), and Application Lifecycle Management suite (especially IBM with Rational)
- Not as strong as VisualStudio in general when it comes to productivity
- Java stuff too hard to maintain and completely inaccessible to business users (perhaps you should use rules then)
- Java better supported in Open Source, likely to be open sourced itself soon and will likely fragment a little
- .NET much more productive than Java
- Rich client actually more balanced although .NET is perceived stronger
- Java is more flexible in terms of platforms and as a result far more Enterprise ISVs support it
- SOA support is pretty even
- Java very strong in enterprise/large departmental systems where Microsoft is dominant down in personal, workgroup, smaller department solutions
- Java taking more and more of the legacy replacement and is trying to move down to smaller projects but .NET a tough competitor
- Mark said that scripting languages a way to get flexibility but I would say rules offers much more.
- .NET is NOT less scalable, don't be deceived as not true any more.