A 1-Point Survival Plan for Project Looking Glass

A few days ago I commented on Sun’s ‘Project Looking Glass’ and promised to expand on the reasons why I think it’s doomed to fail – whoops, gotta keep this positive – to expand on the changes I think they need to make in order for Looking Glass to be a success.

Currently, their website is full of energy about getting involved – it’s an open-source project, so they want individuals to join up and help develop the project with them. This focus is all wrong though. If Looking Glass is ever to become a relevant, hard-hitting, key player of a desktop, they need to be inviting developers to create applications for Looking Glass, even at this early stage.

Especially at this early stage. It’s the stage when the very foundation of the product’s design is being set: when feedback is at its most effective because it can do the most good, changing fundamentals before the project gets bogged down with legacy code that it must support – assuming they want to be backwards compatible.

The more pragmatic and real-world the feedback, the more useful it will be, and the more pragmatic and “real-world oriented” the first release version will become. The best way to achieve this is to provide incentives for real companies and individuals to write “beta” software for the early APIs, to help shape Looking Glass into something which could actually turn out to be ground-breaking in a useful way. To solve real business problems.

Unfortunately it seems that the team (or possibly Sun’s management) are instead taking their favourite route, the comfortable path of intellectual isolation.

There’s even a page on NetBeans.org describing how to set up a Looking Glass development environment using the NetBeans IDE. The energy is there - and to be honest, being able to build the entire LG environment and run it from within NetBeans is quite amazingly cool - but again the emphasis is all wrong, and is a sign that Sun hasn’t learned their lesson from the early failure of Swing (the “official” GUI toolkit for Java).

For the first few years of Swing’s existence, it stood its ground as a great academic exercise in the elegance and purism of design patterns. However, real programmers hated it because it was just too fiddly to program with. Reams of “boilerplate” code were needed; to do something simple you had to create custom data models, custom renderers and so forth. It got a 10/10 for design correctness, but minus several billion for real-world pragmatism. (Not to mention that until quite recently, Swing was also slow and pig-ugly).

For any GUI desktop or toolkit to be successful, they need to invite real-world developers to create real-world applications for it – and (critically) they need to do it early. Developing a product “in anger” to solve real-world problems is the only surefire way to make it relevant. Don’t enter the ivory tower, however cosy it may seem in there.

So, there should be a prominent page on netbeans.org describing how to develop applications for Looking Glass (and inviting developers to provide feedback), not how to develop Looking Glass itself!

And, there should be a blaze of publicity inviting real-world application developers to convert their existing products to an early build of Looking Glass, to take advantage of the 3D features, and (most importantly) to provide feedback – to shape the design of Looking Glass (both the UI and its APIs). Better for Sun to do this early and potentially change the project’s direction, than to just keep plodding on doing whatever the team thinks is cool, and end up with an irrelevant product which just won’t be used.

This is a key point: in 2-3 years’ time, Looking Glass will doubtless still be under development, but we won’t be seeing any real-world applications for it. No-one will be developing for it, because it doesn’t solve any real-world problems. Looking Glass has caused some excitement, but so far it hasn’t exactly ignited the industry. But it could, if Sun were to get real about what they’ve potentially got right there, and do the right thing now.

This is partly why I’m wondering if Looking Glass isn’t more than mere PostureWare on Sun’s part. Regardless, if the LG3D team don’t get their priorities sorted out, it may as well be PostureWare, as it’ll very quickly become ivory tower shelfware instead.

About the Author

Matt Stephens is a senior architect, programmer and project leader based in Central London. He co-wrote Agile Development with ICONIX Process, Extreme Programming Refactored, and Use Case Driven Object Modeling with UML - Theory and Practice.