Google’s Operating System Announced!

Understanding ComicsReadWriteWeb brings news from on high of a new web browser headed from the hills (or from Google’s headquarters). They report that Philipp Lenssen received a comic book in the mail that was drawn by Scott McCloud (author of Understanding Comics) which “details” out the plan for the new browser, currently named “Chrome.” He’s scanned the entire thing and put it here for now.

One of the problems Google suggests they’re addressing by creating a new web browser relates to the current threading model used in web browsers. JavaScript is single-threaded. Occasionally, this can unfortunately cause a poorly written application to hang the browser — as it’s blocking other threads from executing. So, Google’s engineers are suggesting a new model, where each browser window is actually its own process.

(I’ve hyperlinked all of the images back to their source if you should want to see a larger version).

image

They don’t talk about how they’ll manage the user interface if multiple processes are actually responsible for the downloading, rendering, etc. other than to mention that each tab is responsible for the tab and the content.

image

It’s not clear how application switching (like ALT-TAB or the equivalent on OSX) works in this model.

image

Right now, in Firefox, I’ve got about 15 tabs open and another 10 or so in a few Internet Explorer windows. What they’re saying that instead of the single process for each application, that there will be some “uber” application controlling each distinct browser window. Hmm.

I wonder why they couldn’t make multiple threads work within a single process? I see how they don’t want one bug in one tab to bring down other tabs, but this introduces a lot of extra moving parts and cross platform complexity. Google hasn’t done too much related to actual installable applications to date (a few, but the majority of their expertise is in writing web applications). So, they have yet to prove they can write such a beast.

Interestingly, Google’s browser is planned to limit pop-ups to the browser tab that created them. So, they won’t pop out of the window, rather they’re constrained.

image

If you’ve created an application which uses pop-out browser windows (for good and not evil purposes), this may be a deterrent to your users.

The comic doesn’t mention how other applications can take advantage of the following behavior. They’ve enabled some “mode” which can reduce the browser chrome to the bare minimum, making their web applications feel more like a regular application.

image

Hey! They admit there’s more to life than just HTML and JavaScript!

image

Although, because of their security model, there’s a subtle hint to plug-in creators:

image

Cross process communication … they’ve created some model by which a plug-in would actually run within a separate process from the main browser tab process. I can’t help but think that there’s a reason why computer chip manufacturers need to continue to innovate — as engineers are pushing the boundaries of performance and expected application isolation to create an entirely new development model. At least on the Windows platform, if you take two optimized code bases, both doing the same work, but one that requires out of process communication, the out of process communication will always be SLOWER. You can make it fast — but it will never be as fast. So, there went a tiny bit more of your battery life. Sorry.

image

They’re adding Google Gears directly to the browser.

image

Welcome to Google’s operating system.

It’s a brilliant tactical move. Avoid the desktop operating system war entirely. By staying out of that war, they don’t need to spend time on mundane, yet challenging tasks, such as hardware driver management, application compatibility, virus scanning, releases, documentation, user interface design, API design, upgrades, etc. That’s several thousand people that can be doing something else. (Yes, they could have started with Linux — but, in my opinion, and my experience, Linux is STILL years away from any sort of mass adoption, and even having Google behind it won’t do enough quickly enough). Google doesn’t need people to “switch” anything but their web browser. If they created an operating system, they’d need applications, games, etc for the platform. The cost for a user to switch is high. Who would install it and support it?

Android is an interesting play, however very different than joining in the desktop operating system wars. By building it from scratch, they’re able to set standards and create an API. Phones, unlike computers/laptops/desktops, are relatively disposable and inexpensive in the current market — unlike a desktop or laptop computer. The investment is less and the consumer’s expectation of a computer or laptop is more of an investment rather than a toss-away electronic gadget. It remains to be seen whether they can be truly competitive in the phone market. It’s a big market, but the existing players aren’t going to stand aside and let Google walk over them without a fight.

By skipping the desktop operating system wars, they jump to the thing that is the core of their business model: The Internet. The web is a platform. Google has the pieces in play from Google Gears to a new development platform (App Engine). Here’s their chance to create a shell optimized for their empire.

How will the browser manufactures react? Will Google actually ship a browser? (Creating and drawing a comic book is a long ways from actually shipping a final version of a new web browser). Will Google include by default links to their web properties and will there be an easy way for others to extend them — or …?

The bad part for web developers everywhere — at what point do you add YET ANOTHER browser to your tests? It’s based on WebKit (the foundation for Apple’s Safari)– but it will need to be tested as a whole different browser.

Is the "last-minute-panic" part of the "nature" of software development?

What is it about many software development projects that cause smart people to suggest that a last-minute-panic is in fact just the nature of doing software development? Someone used nearly those exact words today in an email to me, which spurred me to thinking this evening about the issue in general.

Rarely is the last-minute-panic just a minute, rather it is a week or more of extra stress, long hours, and weekend work. I’ve only ever worked in the software industry, so I can’t compare to other industries that might be creating products. No matter how many books are published about the topic… the panic is still far too common place.

I know I’ve been part of projects where there was this panic, long hours, etc. However, it’s never sat quite right with me — it felt, wrong.

What have you done to combat this issue? Do you follow some particular methodology that nearly eliminates this problem? Or, do you practice feature cutting, or … what? Is doing software development that unpredictable, or is it somehow the nature of software developers …?

I’d really like to hear what you’re doing (successful or otherwise). Leave a comment or link here from your own blog.

(Updated to fix typo and clarify one tiny thing)

Information Density and Edward Tufte

From a dry (college professor style) video from Edward Tufte regarding a common data density design issue on the iPhone.

image

(screen shot taken from his video)

He mentions the cartoony interfaces and how many applications on the iPhone do not properly take advantage of the 163 DPI screen.

Looking at the weather example though, I’m not sure that his “fix” is what the average person wants as is. His suggestion, which does get me thinking (the whole point of his books and lectures), is that he’s blown the “at a glance” weather and temperature feature of the original design by making the graphics and fonts too small. When I’m looking for the weather, I’m most commonly interested in today’s weather (or the current weather). A 5 day forecast, although interesting, becomes less useful as general data as the number of days from today increases.

Although I appreciate a good satellite image as the next person :), the image is too big. I see no reason to not have a full size version available as a single “click” or gesture, and thumbnail the image for the rest of us. Increase the font sizes of everything else on the screen, and hopefully return the small weather icons to a usable, again, at a glance size.

How would you change the UI? (Or do you like Edward’s as-is?)

Cool looking WPF application on dnrTV

image Billy Hollis on Getting Smart with WPF

I didn’t watch the whole video from start to finish as I wasn’t too interested in the functionality as a whole — just the general feel. I’d suggest skipping to about 3 minutes in or so …

I’d be interested in seeing how they handle a lot of the edge cases — a lot of the screens look nice, but what happens if there are too many notes?

It’s an interesting and nice looking application — it’s hard to tell how keyboard friendly it would be though. It looks like it’s a mouse/keyboard/mouse/keyboard style interaction.

Although seeing a video of the application doesn’t necessarily do it justice, the animations seemed unnecessary and would be distracting after a few hours of use. Anytime you’re building something for someone else who has to use your product for many hours, consider whether the ‘glitz’ and animation you’ve added will become distracting or annoying.

One challenge we’ve noticed with WPF is that it’s hard to do high quality focus and validation elegantly. There are lots of options — but few that a good match for many data entry centric applications.

image

Although interesting that they have these little notes — and shows off the power of WPF, I’d twist them around to be horizontal so they’re easier to type into (it’s not natural to read or type at an angle like that and there’s no reason to do that to the user).

image

How difficult would it be to create an effective version of this for the web (not a clone, but a web-ized version of this application)? Thoughts?

Thanks to indyfromoz for the suggestion to watch the video detailing this WPF application.