Wednesday November 17, 2004 | Colm Smyth's Weblog Gestalt Blogology |
![]() |
|
Interoperability - some Microsoft folks "get" Firefox
You can begin to see some signs that folks at Microsoft are getting more serious about tackling interoperability with open standards. First off, a senior developer working on the MSDN Subscriber Downloads site (codenamed Xena) wants to make it more compatible with Firefox and Opera; here's the key quote: As we started work on Xena 3.0 about a year ago, one of my priority 1 requirements was to make the site fully cross-browser compatible. Funnily enough, the operations team (who tend to be pretty focused) told me that losing Deeptree wasn't required, because 99.5% of our client browsers were IE. I was able, however, to make the point that this could possibly be the case because we only support IE (after explaining that "support" is different from "can be accessed") and so that might possibly be a factor. The net-net of this is that cross-browser compatibility for Firefox, Opera, and IE will be included in the update for all major site functions. Check out the Xena blog for the context. This looks promising for better browser support from microsoft.com in future. Also related to interoperability - it was nice to see another MSDN post, this time about JWSDP 1.5; the author is checking it out to allow him to update his article on WS-Security interoperability.
Looks good guys, keep it going. (2004-11-17 09:33:33.0) Permalink
Design by Contract in C# and Java
A Microsoft labs project called Spec# has developed a pre-compiler for C# that supports the design-by-contract feature of Eiffel, and adds the capability of the C/C++ "const" keyword. Interestingly, the same post highlights a 3 year old project I wasn't aware of called iContract that provides similar features for Java. A little background: 12 years ago (back when Bertrand Meyer was the god of Object-Orientation, when Bjarne Stroustrup was at best the regent to the OO throne, and Java was an inkling in James Gosling's eye ;) I sampled but never seriously used the Eiffel language with it's unique focus on design by contract. Eiffel syntax directly allows the constraints or contract of a method to be expressed in a literate natural style within the implementation code. At first glance, the pre-conditions ("require" keyword), post-conditions ("ensure") and invariants ("invariant") seem like they are analogues of C's "assert.h" or even Java assertions, but they are an advance in two main ways:
All of these constraints can be removed from the compiled code; Java has one important advantage here in that the assertions can be enabled or disabled at runtime. So Spec# and iContract have similar features. Where they differ is in maturity (iContract has been around since 2001) and in syntax:
/** * @pre f >= 0.0 * @post Math.abs((return * return) - f) < 0.001 */ So iContract looks like it's worth trying. If you want a blast of nostalgia, you can program in Eiffel and target the JRE - the SmartEiffel project includes a compiler for Java bytecode. I haven't looked at it too closely, but if it allows you to use Java API's from Eiffel, it could be worth looking at. (2004-11-17 09:02:50.0) Permalink |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||