<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Philip Brittan&apos;s Blog</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/" />
<modified>2008-01-02T17:42:16Z</modified>
<tagline></tagline>
<id>tag:weblogs.java.net,2008:/blog/pbrittan/70</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2004, pbrittan</copyright>
<entry>
<title>The Rich Client Strikes Back</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2004/01/the_rich_client.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2004-01-15T19:49:59Z</issued>
<id>tag:weblogs.java.net,2004:/blog/pbrittan/70.1345</id>
<created>2004-01-15T19:49:59Z</created>
<summary type="text/plain">Microsoft is redefining the application interface around rich clients, and if Java does not have an answer, it faces being cut off from end users. The answer lies in matching Microsoft&apos;s richness while trumping it on security</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Community: JavaDesktop</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>Microsoft is redefining the application interface around rich clients, and if Java does not have an answer, it faces being cut off from end users. The answer lies in matching Microsoft's richness while trumping it on security.</i>
</p>
<p>
FYI, I just published an article in Java Developers Journal: <a href="http://www.sys-con.com/story/?storyid=38678&DE=1">The Rich Client Strikes Back</a>.
</p>]]>

</content>
</entry>
<entry>
<title>Security Strategies</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/12/security_strate.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-12-15T17:30:15Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.982</id>
<created>2003-12-15T17:30:15Z</created>
<summary type="text/plain">The IT security outlook just seems to be getting worse.  Maybe it&apos;s time to change the rules.</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Security</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>The IT security outlook just seems to be getting worse.  Maybe it's time to change the rules.</i>
</p>
<p>
We are being bombarded these days about the increasing threat of security.  Microsoft has long been a target in this area, as have <a href="http://java.sun.com/sfaq/chronology.html">Java</a>, and <a href="http://news.com.com/2100-1001-978261.html">Flash</a>, but now <a href="http://news.com.com/2100-7344-5117271.html">Linux</a> is also coming under attack.  The attacks are coming with greater frequency and with greater destructive power, and they are coming in the form of malicious code, or <a href="http://query.nytimes.com/gst/abstract.html?res=F00913F63B5E0C728CDDAB0994DB404482">"malware"</a>.
</p>
<p>
In order to make significant headway in the struggle against malware, we need to fundamentally change the rules of the game.  In a recent article for CNET News.com, <a href=" http://news.com.com/2010-7355-5118280.html">"Inherent Insecurity"</a>, I argue that fat-client architectures are inherently vulnerable to attack, and that by switching to a thin-client model we can cut down on the amount of raw material that malware has to attack.  In another article, <a href="http://zdnet.com.com/2100-1107_2-5123776.html">"Fencing In"</a> for ZDNet, I argue that we need to change our basic security posture and actively contain threats rather than huddle in our bunkers.  I cite early examples of fence in strategies being used against viruses, hackers, and spam.  Interestingly, I just came across another application of the fence in approach being suggested for <a href="http://focus.aps.org/story/v12/st23">flu vaccinations</a>.
</p>
]]>

</content>
</entry>
<entry>
<title>Fighting With Everyone</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/12/fighting_with_e.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-12-10T21:51:48Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.761</id>
<created>2003-12-10T21:51:48Z</created>
<summary type="text/plain">Microsoft&apos;s campaign to take over the world is bringing it into conflict with a few people.</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>Microsoft's campaign to take over the world is bringing it into conflict with a few people.</i>
</p>
<p>
I have already amply talked about Microsoft's <a href="http://weblogs.java.net/pub/wlg/325">battles with the Java camp</a> (which are still just in the warm-up stages).  That battle brings the software titan into conflict with IBM, Sun, BEA, Oracle, and host of others.  Battles in the database arena redouble that conflict with IBM, Oracle,and others.  But although the conflicts between these vendors are taking on new shape, they have certainly been raging for some time
</p>
<p>
Now, I just noticed a couple of articles that outline Microsoft's emerging conflict with new types of competitors, namely its <a href="http://news.com.com/2100-1012-5119313.html">tussle with SAP</a> in the business applications space and its <a href="http://news.com.com/2009-1043-5114058.html">rivalry with Sony</a> in the game console arena.
</p>
<p>
I watched an interview with Steve Ballmer, maybe a year or so ago, in which he announced that Microsoft was fighting a 7 front war.  It does make sense.  Microsoft needs to find new markets in order to maintain its phenomenal growth.  It is also betting on the value of synergy between its products in different markets: if people's lives are made better by Microsoft technology being truly ubiquitous, then Microsoft <a href="http://weblogs.java.net/pub/wlg/386">locks in further advantage</a>.
</p>
<p>
But then 7 fronts is a <i>lot</i> of fronts.  Microsoft is very powerful, and undoubtedly <i>feeling</i> very powerful, these days.  But even a superpower that seems to have the strength to take on all other contenders at once can run into difficulty  in unexpected places.  The payoff side of Microsoft's game is clear.  The risk side is that by spreading itself too thin, or by turning against key allies, it becomes vulnerable in a core market.
</p>
]]>

</content>
</entry>
<entry>
<title>The Battle Over Java</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/12/the_battle_over.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-12-09T03:39:14Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.203</id>
<created>2003-12-09T03:39:14Z</created>
<summary type="text/plain">Is the cold war between Sun and IBM over Java heating up?</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>Is the cold war between Sun and IBM over Java heating up?</i>
</p>
<p>
I often rant about the epic battle that is brewing between Java and .NET.  But there is another battle, not necessarily less significant, that has long been brewing within the Java camp.  It is a battle between Sun and IBM over the control of Java.  Although the two have long been fierce competitors in the area of systems, the struggle over Java has so far been largely a cold war, veiled under a veneer of cooperation.
</p>
<p>
But recent moves have brought the battle more into the open.  Since Sun decided to make Java an “open standard” and turn its stewardship over to the JCP, Sun gave up a certain level of control over Java.   But it still retains sole rights to the name and gets to decide what is called Java and what is not (this is the same leverage that Linus Torvalds holds over Linux).  Earlier this year, Sun made the decision to become more aggressive about exerting that right by renaming its core product stacks the "Java Enterprise System" and the "Java Desktop System", even for components that have little or nothing to do with Java.  This move <a href="http://www.eweek.com/article2/0,4149,1300889,00.asp">angered a number of Java partners</a>, but Sun undoubtedly hopes that it will more strongly tie the identity of Java to Sun.
</p>
<p>
The other open battle is in the area of Java tools.  IBM and Sun each push toolsets that are built on open source foundations -- Eclipse for IBM and NetBeans for Sun.  There was <a href="http://www.eweek.com/article2/0,4149,1236123,00.asp">talk about Sun joining the Eclipse consortium</a>, but now Sun has made it clear that it will <a href="http://www.eweek.com/article2/0,4149,1402810,00.asp">rather support NetBeans</a> to the bitter end, and is instead arguing for a <a href="http://news.com.com/2100-1007_3-5111346.html?tag=nefd_top">standard to improve interoperability between tools from different vendors</a>, a proposal that IBM has rebuffed.  Aligned with each of these tools is a separate GUI toolkit -- Swing for Sun/NetBeans, SWT for IBM/Eclipse.  The passions surrounding this schism run deep.  At a recent conference, I witnessed Swing developers vociferously laying into IBM execs about IBM's insistence on building Eclipse with SWT, even though Eclipse can build Swing applications.
</p>
<p>
The battle between Sun and IBM certainly predates Java, and even today it ranges beyond Java.  <a href="http://news.com.com/2100-1001_3-873692.html?tag=st_rn">Web services</a> and <a href="http://news.com.com/2100-7252-5060427.html">support for Linux</a> are two other areas in which the two systems companies have been engaged in open and behind-the-scenes tussling. 
</p>
<p>
For us who develop in Java, the critical issue is what bearing this battle will have on the future of Java and whether it will weaken Java in the face of an <a href="http://weblogs.java.net/pub/wlg/325">onslaught from Microsoft .NET</a>.  Java is a grand experiment.  Is it possible that many independent vendors, who normally compete with one another, can come together and work for the betterment of something as complex and with as many facets as Java?  The answer to that may be key to whether the larger grand experiment of open standards for software will prevail.
</p>
]]>

</content>
</entry>
<entry>
<title>Microsoft retrenches around fat clients</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/11/microsoft_retre.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-11-11T15:21:12Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.434</id>
<created>2003-11-11T15:21:12Z</created>
<summary type="text/plain">Microsoft is leading a charge back to the desktop.  Will the world follow?</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>Microsoft is leading a charge back to the desktop.  Will the world follow?</i>
</p>
<p>
Microsoft is <a href="http://news.com.com/2009-1016_3-5103226.html">placing its bets</a> that fat clients represent the future of software, not browser-based thin clients.  In fact, they are phasing out development of a stand-alone Web browser.  Longhorn will have HTML viewing/browsing capability built right into the OS, and there will no longer be an Internet Explorer.
</p>
<p>
I’m <a href="http://weblogs.java.net/pub/wlg/358">not surprised</a> by this.  Web clients have never been strategic to Microsoft, which needs to ensure that the Windows desktop remains supremely relevant.  The core idea behind HTML browser applications is that they can run equally well on any client-side platform, which thus makes the specific features of Windows unimportant.  There is growing customer dissatisfaction with the ergonomics of HTML for enterprise applications, and a number of vendors are offering “rich client” alternatives.  Microsoft is offering .NET Smart Clients as its rich client solution, which also happens to be a fat client architecture that runs only on Windows desktops.  
</p>
<p>
That all makes a lot of sense from Microsoft’s point of view.  The big question, however, is what will happen to the many Web applications that exist today and to technologies that are dependent on the browser.  If Microsoft wants to encourage a Smart Client architecture, will DHTML be phased out?
<blockquote><i>
"Microsoft wants enterprises to write browser applications that take advantage of Longhorn application programming interfaces (APIs), which means that they won't work on non-Longhorn browsers," [Michael] Silver, [an analyst at Gartner], wrote in a research report last week.
</i></blockquote>
The other, related, question is whether large ASP businesses will follow Microsoft’s charge back to the desktop.  Apparently, at least some will:
<blockquote><i>
At Microsoft's developer conference, for example, Amazon.com showed how it has used the Avalon graphics technology and the WinFS file system in Longhorn to create an improved shopping site. <br><br>
Amazon's chief technology officer, Allan Vermeulen, showed how a Web shopper can do a number of tasks that could not easily be done from within a browser, such as rapidly filtering search results for cameras and viewing a photo of a camera as a three-dimensional object. Information from the e-commerce site could also be easily shared with a person's calendar application. 
</i></blockquote>
Google also <a href="http://news.com.com/2100-1032_3-5103902.html">recently announced</a> a desktop application version of its search service.
</p>
<p>
Microsoft’s competitors, IBM, Sun, Oracle, and others, have been rallying around the Web-based Portal as the primary means for enterprise application delivery.  Microsoft’s moves call into some question the future of the standard Web portal, even as Microsoft has started pushing its own SharePoint portal software hard in the market.
</p>
<p>
Microsoft continues its strategy to cut off Java from end users.
</p>
]]>

</content>
</entry>
<entry>
<title>Confusion between grid and utility computing</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/10/confusion_betwe.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-10-31T17:51:34Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.1256</id>
<created>2003-10-31T17:51:34Z</created>
<summary type="text/plain">Widespread adoption still depends on the computer industry getting its definitions straight and clearing up the lingering customer confusion about these two related--but separate--concepts.</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
I just published an article on CNet News.com titled <a href="http://news.com.com/2010-7784_3-5099858.html?tag=nefd_gutspro">The new IT confusion</a> which attempt to disentangle grid and utility computing concepts in less than 700 words.
</p>
]]>

</content>
</entry>
<entry>
<title>Open Standards Definitions</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/10/open_standards_1.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-10-21T17:07:14Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.1002</id>
<created>2003-10-21T17:07:14Z</created>
<summary type="text/plain">What do we mean by open standards anyhow?</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>What do we mean by open standards anyhow?</i>
</p>
<p>
My <a href="http://weblogs.java.net/pub/wlg/573">last entry</a> evoked a certain amount of name-calling in the arena of open standards.  Today I'd like to explore just what "Open Standards" might mean.  This will seem very simplistic to many of you, but I hope it’s helpful to sort things out in a simplistic way.
</p>
<p>
I’d like to start with some definitions:
</p>
<p>
<b>Open</b> - Open for third parties to support and create products to (opposite is <b>Closed</b>)
</p>
<p>
<b>Proprietary</b> - Legally owned by a company, individual, or private group (opposite is <b>Public Domain</b>)
</p>
<p>
<b>Community</b> - Administered by a group, not just a single company (opposite is <b>Sole-Stewardship</b>)
</p>
<p>
One minor note that some people seem to miss is that open and proprietary are not opposites.  A standard may be both open and proprietary at the same time.  A "closed standard" is an oxymoron.  You can have "closed systems" which do not allow third-party integration, but you cannot have a meaningful closed standard.
</p>
<p>
A standard that is not legally owned by any company or person is said to be in the public domain.  Examples of this include: HTML, SNMP, etc.
</p>
<p>
A proprietary standard is owned by a single company and may be administered solely by that company, as Windows and Solaris APIs are, or it may be administered by a community, as Java is.  Some communities are have their own bodies for collaboration (JCP), and some rely on standards bodies, such as the W3C, OASIS, ECMA, and so on, to handle community collaboration and be the official keepers of the spec.
</p>
<p>
An "open source" standard is one in which the source code as well as the APIs are included in the specification of the standard, meaning that third-parties can extend the product at the source code level, not solely by working through an API.  Open source is considered by many to be the purest form of open standard.  But again, that doesn't mean it can’t be proprietary.  Linux, a favorite open source example, is not in the public domain.  The Linux GPL license does not require a monetary fee, but it does make other requirements which it imposes with a copyright.  For instance, all source code for modifications made to Linux must also be freely available.  Linus Torvalds explicitly owns the registered trademark "Linux". FreeBSD, as a counter-example, is also free of charge and open source, but does not impose the requirement of sharing enhancements with anyone else.
</p>
<p>
Whether software costs money, and what it costs, are economic/strategic decisions made by the owners of the software / standard.  0 is a price, just like 5 or 745.  0 just carries more psychological weight than other numbers. The underlying license and source code for Linux are free, but distributions of Linux do not have to be free. Companies can charge whatever they want for them.
</p>
<p>
The relative advantages of these are not moral.  They are rooted in various benefits they give to the owners and users of the standards.  One of the benefits of using open community standards is vendor-independence: multiple vendors can create competing products that implement the same standard, thus giving customers more choices.  Cost, ability to extend, and ability to debug are common reasons that customers choose open source software, but keep in mind that many “closed-source” solutions do provide source code to their paying customers for debugging purposes.  One might say that a sole-stewardship standard carries the risk to users that the single company administering the standard can potentially change that standard to suit only its own needs, thus causing damage to third-party users of the standard.  Conversely, since a community-administered standard must reflect the interests of a group of different constituencies, it is unlikely to change capriciously or quickly.  This distinction is the heart of the Microsoft / Java war of words.
</p>
<p>
The flip side of that is, of course, that since community standards are slow to change, single-stewardship standards can be much more nimble and capture the changing realities of the marketplace in a more time-sensitive way.  When a standard is too slow to change, then vendors supporting the standard are sorely tempted to add one-off extensions for functionality that is not yet standardized, which erodes the value of the standard.
</p>
<p>
Customers make choices about their adherence to standards based on what they need to achieve and the risks they perceive.
</p>
]]>

</content>
</entry>
<entry>
<title>Sun: Threatened by Standards?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/10/sun_threatened.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-10-17T14:39:20Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.152</id>
<created>2003-10-17T14:39:20Z</created>
<summary type="text/plain">Can &apos;standards&apos; and &apos;standardization&apos; be two unrelated concepts?</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>
Can 'standards' and 'standardization' be two unrelated concepts?
</i>
</p>
<p>
There was an article in yesterday’s Wall Street Journal, <a href="http://online.wsj.com/article/0,,SB106626287965012000-email,00.html">Cloud Over Sun Microsystems: Plummeting Computer Prices</a>, which dissects Sun’s current financial and strategic challenges.
</p>
<p>
One of the interesting claims in the article is that "Scott McNealy, Sun's chief executive for the past 19 years, long resisted the standardization trend sweeping across the tech industry."  The articles asserts that "The wager paid off, making Sun the dominant provider of the server computers that power Internet sites and corporate computing. But now the company is paying a big price for bucking the tech mainstream -- and scrambling to keep customers and stay afloat."
</p>
<p>
It's ironic to see Sun portrayed as a company that has consciously flown in the face of <i>standardization</i>, when in practice Sun champions open <i>standards</i> precisely as a way to differentiate itself from Microsoft.
</p>
<p>
So, which company does this article say represents mainstream standardization? Microsoft.  "Sun appears to be the latest casualty of the rising tide of tech standardization, led by Intel and Microsoft. Many companies in the history of high-tech -- Digital Equipment Corp. and Apple Computer Inc., among others -- believed they could resist standard designs and thus ultimately charge a premium for their products. In the end, a lot of these companies were either acquired or hang on in the industry as smaller players."
</p>
]]>

</content>
</entry>
<entry>
<title>RAD Tool Let-down</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/10/rad_tool_letdow.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-10-15T17:29:15Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.740</id>
<created>2003-10-15T17:29:15Z</created>
<summary type="text/plain">Rapid application development tools let you put together a great-looking mock-up of your app in no time, but often are of little use for the production version of your system.  Visual GUI builders and data-aware controls are two such culprits.</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Tools</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>Rapid application development tools let you put together a great-looking mock-up of your app in no time, but often are of little use for the production version of your system.  Visual GUI builders and data-aware controls are two such culprits.</i>
</p>
<p>
In <a href="http://weblogs.java.net/pub/wlg/565">yesterday’s post</a>, I mentioned that all too often tools that help developers put out a really quick version of their application are frustrating to use when trying to create a sophisticated production version of the same application.  This forces the developer to back-track and gives rise to the concept of the "throw-away" prototype, meaning that any effort put into the prototype has to be chalked up solely for the purpose of getting early feed-back but has to be tossed when it comes time to build the "real" system.
</p>
<p>
Today I'd like to illustrate what I mean with two very common examples of this phenomenon: visual GUI builders and data-aware controls.  I have a love-hate relationship with them both.
</p>
<p>
By visual GUI builders, I mean WYSIWYG editors for laying out components in an application window.  It's great to be able to sit down at a blank project and just start grabbing controls and laying them out on the screen, one after the other, changing positions if you change your mind about the layout, setting properties and seeing those properties immediately reflected in the representation of the window you are building.  It is very satisfying to be able to put together a window so quickly, and it is much easier than instantiating all those widgets and setting their properties in code.
</p>
<p>
However, building the GUI through code does have some big advantages, and, personally, I almost never use a GUI builder for a production application.  Here’s why.  GUI builders give developers a component-by-component interface onto the window and treat properties as literal values.  So, if I want to set the background color of a bunch of my components to red, I have to go and set the background color property of each of those components manually in the GUI builder.  And, if I want to change the background color of all those components to something else, say orange, then I have to go through and change them all manually again.  The GUI builder gives me a really quick way to put the window together but ends up with a pretty brittle design that requires lots of manual labor to make subsequent changes.
</p>
<p>
If, on the other hand, I set the background color of those properties in code, I can simply make a variable that represents the background color, set the color properties of those components to the variable, and then set the variable to red.  It takes more time to set this up, and it’s a non-visual development process, but my design is now more flexible and I can change the background color of all those components by simply resetting the value of the variable to orange.  This is exactly the benefit that Web apps get from CSS, and Joshua Marinacci posted a great article yesterday, <a href="http://today.java.net/pub/a/today/2003/10/14/swingcss.html">CSS and Swing</a>, about how you can achieve similar results to CSS in a Swing app by making a properties file that is read in at run-time.  The problem, however, is that this takes you out of the GUI builder and into the code.  I want a GUI builder that can handle this for me.  Fortunately, many GUI builders generate source code which allows you to take a hybrid approach: use the GUI builder to generate basic component instantiations and properties, and then modify the generated code by hand from there.  Still, I wish I didn't have to switch modes -- and that approach is generally a one-way street.
</p>
<p>
This problem can be more much sophisticated than just setting properties on components.  I find that I often want to create bunches of components programmatically, with a loop, reading component specs from a database or config file or based on some algorithm.  At that point, even a CSS mechanism can’t help me.  I long for a GUL builder that can give me a visual environment to see what my window looks like at all times but to be able to create and manipulate components algorithmically as easily as I can create and manipulate them visually.
</p>
<p>
I feel similarly about data-aware controls.  Manually wiring up GUI controls to database values is admittedly a pain, so data-aware controls are also a great boon in helping developers get a basic version of their app up and running quickly.  However, I have rarely written a sophisticated data-driven app where I didn’t need to massage data while reading or writing from/to the database.  Hard-wiring controls to the database tends to be pretty brittle.  So, once again, for production-quality apps, I have to abandon the data-aware controls for a manual, code-intensive process that gives me the flexibility I need.
</p>
<p>
I would sorely love to have versions of these tools that can support the flexibility I need for production systems as well as the RAD capabilities I value for prototypes without having to backtrack and change gears along the way.  Maybe such things exist, but I haven’t seen them.
</p>
]]>

</content>
</entry>
<entry>
<title>ROI of UI Technology</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/10/roi_of_ui_techn.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-10-14T14:29:06Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.1190</id>
<created>2003-10-14T14:29:06Z</created>
<summary type="text/plain">There are three main factors that affect the return on investment of any user interface technology: ease of use of the application, ease of deployment and on-going maintenance, and ease of initial development.</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
I recently wrote a paper for <a href="https://www.sdn.sap.com/">The SAP Developer Network</a> on user interface technology in the enterprise.  I'd like to pull out one small section of that paper for further discussion here:
</p>
<p>
There are three main factors that affect the ROI of any UI technology: ease of use of the application, ease of deployment and on-going maintenance, and ease of initial development.  Based on the total cost associated with each of those factors, they should be assigned the following order of priority:
<ol>
<li><b>Ease of Use:</b>  The usability of an application affects the bottom line of a company every day and that effect is multiplied by the number of users the application has.
<br><br>
</li>
<li><b>Ease of Deployment and Maintenance:</b> The costs associated with the deployment and maintenance of applications affects a company’s bottom line on an occasional but usually repeated and perhaps regular basis.  These costs are incurred whenever an application needs to be deployed to new users, upgraded with new features, and have bugs fixed.
<br><br>
</li>
<li><b>Ease of Initial Development:</b> The costs associated with the initial development of a new application affect the bottom line of a company only once per app, and they scale with the number of developers involved, which for the vast majority of applications is far less than the number of users of the application.
</li>
</ol>
Many companies fall into the trap of prioritizing these factors in precisely the <i>opposite</i> ranking for the simple reason that they encounter them in that reversed order.  Since the first task a company has to face is the initial development of the application, most attention is given to minimizing costs associated with that, then on to deployment and maintenance, and finally ease of use is far too often simply an after-thought.  
</p>
<p>
The temptations of the immediate gratification of fast initial development can be so strong, in fact, that some UI development tools focus entirely on the ability to put together a good-looking but simple application really quickly.  This is valuable for getting early user feedback.  However, many of these rapid development systems are ironically difficult and time-consuming for creating sophisticated applications, because of an inherent lack of flexibility.  A good UI technology will enable rapid prototyping but won’t do so at the expense of production version development.
</p>
<p>
Therefore it is imperative that companies apply sufficient discipline in their technology selection and implementation to ensure that an economically correct ordering of priorities is followed.
</p>
]]>

</content>
</entry>
<entry>
<title>Embrace, Extend, Extinguish on the browser?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/10/embrace_extend.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-10-09T14:31:42Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.710</id>
<created>2003-10-09T14:31:42Z</created>
<summary type="text/plain">Is Microsoft ready to move onto the &apos;extinguish&apos; phase with the Web browser?</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>Is Microsoft ready to move onto the 'extinguish' phase with the Web browser?</i>
</p>
<p>
Microsoft is renowned for its "embrace, extend, extingish" strategy which involves enthusiastically embracing and championing a new standard, as a way to become the market leader in that standard, then extending that standard with proprietary technology that lets Microsoft lock in customers and lock out the competition, and lastly to let the standard die on the vine or be replaced by an entirely Microsoft-proprietary alternative.  Microsoft has famously done this with Java, which in its final stage has now been replaced by C# in the Microsoft view of the world.
</p>
<p>
In an earlier post, I suggested that Microsoft <a href="http://weblogs.java.net/pub/wlg/358">makes money from Windows desktops, not browsers</a>, and that a powerful browser platform is in fact a threat against the Microsoft-preferred fat-client model which is more firmly symbiotic with the Windows desktop.
</p>
<p>
It seems there is growing evidence that Microsoft may in fact performing a slow embrace, extend, extinguish on the Web browser.
</p>
<p>
<b>Embrace:</b> When Netscape introduced the first commercial browser, along with the promise that the Web would make the desktop environment irrelevant, Microsoft quickly jumped to develop Internet Explorer and used a wide array of competitive tactics to ensure that IE grabbed overwhelming share of the market and eventually pushed Netscape out of business.
</p>
<p>
<b>Extend:</b>  For a while, Internet Explorer supported all the W3C standards for Web pages, but also added its own additional capabilities that let Web designers do things that the official standards did not support.  This seemed like a helpful feature for developers, but had the inevitable effect of locking developers in to the IE platform.  I recently met with an ISV that has a Web-based application that depends on the IE 6 extensions. This meant that the ISV required all their customers to access their application through IE only.  But now, since a significant segment of this ISV's customers use Apple Macs, and since Microsoft no longer supports IE 6 on the Mac,  the ISV is left high and dry.
</p>
<p>
<b>Extinguish?</b>  I read an article this morning titled <a href="http://news.com.com/2100-1032_3-5088642.html?tag=nefd_lede">"Has Microsoft Forsaken IE?"</a> in which developers complain that Microsoft is falling behind in supporting new Web standards.
<blockquote>
<i>"While it is true that our implementation is not fully, 100 percent W3C-compliant, our development investments are driven by our customer requirements and not necessarily by standards," said Greg Sullivan, a lead product manager with the Windows client group.</i>
<br><br>
<i>When it was pointed out that the most vocal critics of IE's CSS support are Web developers and authoring tool makers, rather than standards bodies, Sullivan said those critics were comparatively few.</i>
</blockquote>
Interestingly, Microsoft has been pushing its <a href="http://www.microsoft.com/net/products/client.asp">Smart Client</a> technology heavily recently, insisting that these server-managed fat clients are what customers really want for applications.  While it seems indubitable that Microsoft will continue to support the browser for viewing Web pages, I can see them degrading IE's ability to serve as a platform for real applications.
</p>
]]>

</content>
</entry>
<entry>
<title>Open Standards: Apps and Infrastructure</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/09/open_standards.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-09-30T17:31:26Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.815</id>
<created>2003-09-30T17:31:26Z</created>
<summary type="text/plain">One valuable capability of open standards is to let customers decouple application decisions from infrastructure choices</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>One valuable capability of open standards is to let customers decouple application decisions from infrastructure choices.</i>
</p>
<p>
I recently spoke at a technology conference as a part of a panel, and one question from the audience was about which open standards were most important.  My response was that there are many important open standards, but that one crucial <i>capability</i> that customers are looking for from open standards is the ability to make application decisions independently from infrastructure decisions.
</p>
<p>
The reason it’s valuable to be able to decouple those two decisions is that they are typically made by different groups within the enterprise and they are made for different reasons.  Infrastructure decisions are made by the IT organization and are based ideally on price / performance.  Application selection is typically made by line of business users, and functionality is the primary driver.
</p>
<p>
If a company cannot treat each of those layers independently then an application decision becomes simultaneously an infrastructure decision, which means that all the factors of functionality, price, and performance need to be considered together and the decision needs to be made by a combination of business people and IT folks, which complicates the process and potentially ends back up in “silo” structures that companies today are trying hard to escape.
</p>
]]>

</content>
</entry>
<entry>
<title>Avalon: A new UI for Windows</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/09/avalon_a_new_ui.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-09-29T21:35:41Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.998</id>
<created>2003-09-29T21:35:41Z</created>
<summary type="text/plain">Avalon gives Microsoft an opportunity to demonstrate its leverage over the user experience and to shake up competitors.</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Community: JavaDesktop</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>Avalon gives Microsoft an opportunity to demonstrate its leverage over the user experience and to shake up competitors.</i>
</p>
<p>
There is a <a href="http://news.com.com/2100-1016_3-5083491.html">lot of buzz</a> in the Microsoft community these days in advance of the first public educational events around 'Avalon', one of the <a href="http://www.winsupersite.com/showcase/longhorn_preview_2003.asp">many new pieces of the Longhorn version of Windows</a>.  Avalon is the new Windows API, and it apparently represents a major jump in UI capabilities.  Part of its value proposition is in the ease of use to developers and part in the experience for end users.
</p>
<p>
In order to increase developer productivity, Avalon will rationalize and <a href="http://www.iapplianceweb.com/story/OEG20030507S0038">reduce the number of APIs in the Win32 stack from over 70,000 down to 8,000</a>.
</p>
<p>
On the user experience side, Avalon will feature advanced support for 2D and 3D vector graphics as well as standard GUI widgets.  <a href="http://www.wininsider.com/news/comments.aspx?mid=1849">Some descriptions</a> of Avalon suggest that it is more comprehensive than just the graphics layer, and will incorporate support for paradigm-shifting "task-oriented" UIs.
</p>
<p>
Microsoft has already said that they will be releasing a version of Microsoft Office for Longhorn based on Avalon, which should help drive user demand for Avalon&#146;s capabilities.
</p>
<p>
I see several immediate ramifications for this:
<ol>
<li>It is a shot across the bow of Macromedia Flash MX.  Flash has traditionally been focused on adding real-time vector graphics to Web pages for decoration or on-line advertising.  Microsoft played along with Macromedia, bundling Flash into IE, because it never really cared about those fluffy things.  But in the last year or so, Macromedia has been actively re-positioning Flash (now called Flash MX) as an alternative for building the user interfaces for enterprise applications -- smack into Microsoft&#146;s home turf.  It has been inevitable that Microsoft would respond at some point (there were early rumors that Microsoft might even try to buy Macromedia), and now it seems to be doing that with Avalon.  Even though Longhorn isn&#146;t due out until 2005, the mere fact that Microsoft will be baking into Windows the same kind of real-time 2D and 3D vector graphics capabilities that Flash promises, nicely integrated into same API layers as standard GUI widgets, could create enough FUD to slow down companies considering Flash MX.  The fact that Flash is a client-side UI execution engine, just like Microsoft technology, means that it doesn&#146;t have a strong differentiation over a Microsoft offering.  Strategically, Microsoft can potentially always turn off its bundling deals with Macromedia, leaving them high and dry.
<br><br>
</li>
<li>
Introducing a major change in the UI API means giving Java a good shake.  It is likely that it will take client-side Java long time to support the new capabilities of Avalon.  If Microsoft can get its users addicted to the new paradigm (by using it in Office, which they plan), then they make Java look even more out-dated on the client side.
<br><br>
</li>
<li>
As I have argued <a href="http://weblogs.java.net/pub/wlg/358">elsewhere</a>, Microsoft doesn't really like the idea of browser-delivered apps because it weakens the Microsoft desktop.  Just as with Java, if Avalon gives users an amazing experience which is just not available through the browser, then browser-based apps don't seem like such a good idea to users.  Alternatively, the browser might support these capabilities, but only through IE when powered by IIS on a Windows server.
<br><br>
</li>
<li>
Longhorn requires hefty hardware support, so Microsoft will undoubtedly time release to coincide with a price/performance level for new PCs that will allow them to encourage a massive hardware churn.  That means that the Longhorn release will likely be coordinated with hardware partners like Intel and Dell.
<br><br>
</li>
<li>
The depth dimension of the desktop is catching on.  Sun&#146;s Project Looking glass uses depth by letting users angle windows away from them, thus using less of the 2D space of the desktop while still giving users an oblique view of what&#146;s in the window.  Microsoft&#146;s new desktop, Aero, which relies heavily on the capabilities of Avalon, also makes more use of the 3rd desktop dimension by supporting transparent windows (so you can see the whole stack underneath at once), and also supporting real-time window rotation.
</li>
</ol>
</p>
<p>
Of course, a <a href="http://weblogs.java.net/pub/wlg/396">rich thin client technology</a> could take advantage of all the advanced features of Avalon and still let the business logic be powered by Java.
</p>
]]>

</content>
</entry>
<entry>
<title>Microsoft and Web Services</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/09/microsoft_and_w.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-09-22T18:06:00Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.1142</id>
<created>2003-09-22T18:06:00Z</created>
<summary type="text/plain">Web Services are a way for Microsoft to leverage the existing base of J2EE without having to do anything to support Java explicitly.</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Community: Java Web Services and XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>Web Services are a way for Microsoft to leverage the existing base of J2EE without having to do anything to support Java explicitly.</i>
</p>
<p>
In his article, <a href="http://news.com.com/2010-7345-5079538.html">"Why Microsoft needs IBM this time around"</a>, Mike Ricciuti argues that "Microsoft needs IBM to legitimize .Net and its entire development plan as a truly cross-platform strategy."  While I think that both IBM and Microsoft sincerely want to make a case for the power of Web Services and to demonstrate that it is a cross-vendor effort, I think that neither does Microsoft needs IBM to help drive sales of .NET nor does IBM have any interest in legitimizing .NET.
</p>
<p>
Web Services and .NET are two very distinct things.  Web Services is an open standard for programs to exchange data over a network.  .NET is Microsoft's proprietary application development and deployment framework that happens to use Web Services as part of its approach.  IBM can support the former without supporting the latter.
</p>
<p>
Web Services are in fact starting to take off.  A number of customers that I work with have started to adopt Web Services as both an internal IT transport layer and even also as a way to make content available to business partners (in very contained ways so far).  The fact that Web Services have not yet completely transformed the world by seamlessly interconnecting all supply chains and other business partner relationships is simply a result of:
</p>
<ol>
<li>
the fact that it take a long time to adopt <i>any</i> new technology, and Web Services is still very young in the grand scheme of things.
</li>
<br><br>
<li>
there are still a lot of issues with Web Services that need to be worked out to make them practicable in the large.  Specifically, Web Services need more management, orchestration, transactional efficiency, and security support.  These are exactly the areas in which IBM and Microsoft made a <a href="http://news.com.com/2100-7345-5078305.html?tag=nl">commitment last week</a>.
</li>
</ol>
<p>
.NET is also being adopted, even without companies necessarily buying into the grand plan for Web Services.  So far .NET&#146;s success has primarily been a tools success -- Visual Studio developers are upgrading to Visual Studio .NET.  However, I have come across several large Java-oriented enterprises that are now planning on building .NET Smart Clients to their J2EE back-ends because they feel that Java has not given them a viable alternative on the front end.
</p>
<p>
I suspect that Microsoft's peculiar interest in Web Services is a way to leverage the existing base of J2EE installations in the market without having to do anything specific to support J2EE (which would be anathema to MS).  I have argued in an <a href="http://weblogs.java.net/pub/wlg/325">earlier entry</a> that Microsoft plans to use its domination of the desktop to push the client side of .NET and then to use the domination of client-side .NET to push server-side .NET.  The challenge that Microsoft faces is that many large corporations currently have big investments in J2EE -- if Microsoft forced them to turn their backs on those investments in order to adopt .NET, then client-side .NET would face <i>a lot</i> of extra friction in its adoption.  Microsoft can erase that friction with Web Services and then tackle the server-side (i.e. head-to-head competition with J2EE) as Phase 2 of its strategy.
</p>
]]>

</content>
</entry>
<entry>
<title>Building software that matters</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/pbrittan/archive/2003/09/building_softwa.html" />
<modified>2008-01-02T17:42:16Z</modified>
<issued>2003-09-17T21:42:32Z</issued>
<id>tag:weblogs.java.net,2003:/blog/pbrittan/70.637</id>
<created>2003-09-17T21:42:32Z</created>
<summary type="text/plain">Industry gurus claiming that technology no longer matters to Corporate America may be drawing the wrong conclusion from the wrong evidence.</summary>
<author>
<name>pbrittan</name>

<email>pbrittan@droplets.com</email>
</author>
<dc:subject>Business</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/pbrittan/">
<![CDATA[<p>
<i>Industry gurus claiming that technology no longer matters to Corporate America may be drawing the wrong conclusion from the wrong evidence.</i>
</p>
<p>
Just wanted to let everyone know that I wrote an article titled <a href="http://zdnet.com.com/2100-1107_2-5077839.html?tag=zdnnfd.comment">Building software that matters</a> that was published on ZDNet today.
</p>
]]>

</content>
</entry>

</feed>