Thursday, July 9, 2009

What is the web missing?

This week's announcement of an entirely web-based operating system in Google Chrome OS has sparked a lot of discussion. Google's strategy for now seems to be to invade the netbook space, an area where an offering like Chrome OS could do well. Netbooks, by their very nature (and name) are designed around internet use and there are very few day to day activities that you can't do in the "cloud." The unanswered question is where google will go with this product after netbooks. They have alluded to branching into the desktop market but there are still a number of areas where a purely internet based OS won't work, for now.

Since reading about C.O.S. I have been wondering what market opportunities are out there if suddenly the web becomes the operating system. What areas of computing still demand a rich desktop environment over a web application and what could be done to move past that. A few things came to mind.

First one that is near and dear to my heart - software development. Right now us code monkeys do most of our work in an editor/IDE running code locally on our machines before promoting it to some sort of shared environment, be it a testing environment or for the more radical straight to production. The fanciest of us use tools and practices like XUnit, BDD and various code metrics applications. Right now there is no purely cloud based implementation of this. In order to move software development onto the web you could need some combination of a hosted virtual development machine with a web interface and the appropriate tooling to make that work. We would need a web-based programmers text editor (yes i know people have ported VI to javascript.) Also I'd like to wish visual studio .NET and eclipse the best of luck in converting their UI to a website.... hah.

The next area of computing that came to mind is a bit more consumer oriented - music. Yes Pandora rocks. So does Last.FM, but their service isn't really the same as say iTunes. In order for the web to become THE computing platform we would need a hosted service where you could listen to your music library, make playlists and browse new music. Also... and here's the fun part... we have to figure out how to sync this to an iPhone / iPod / Zune / whatever.

The last, and possibly most obvious one, is gaming. A service like OnLive would help but who knows when that will be out.

So what other areas of computing currently need a traditional OS?

Tuesday, July 7, 2009

Book Review: The Passionate Programmer

Chad Fowler's The Passionate Programmer is a book about happiness. It is about how to lead a successful happy career doing something that you really enjoy. Naturally it is geared toward software programmers but in reality many of the tips Fowler hands out could be applied to almost any career.

Fowler takes his experiences as a programmer first and a musician second and uses them to identify a set of 53 "tips" broken up into 5 main sections. These tips run the gamut from identifying a core technology or specialty to going out on your own as an independent.

At first glance much of Fowler's content could be pushed off as common sense, however in many cases the most obvious of concepts isnt readily apparent until it is brought to one's attention. The notion of treating one's career as a product is a popular notion that Fowler subscribes to and bases his advice on.

Fowler begins with "Choosing Your Market", a segment focused on identifying a technology or specialty that fits your career goals. He identifies criteria to consider when evaluating the investment required to become versed in a particular technology.

Next he lays out "Investing in Your Product." This section identifies how one can develop expertise in both the technologies they have chosen to specialize in as well as how to become a generally excellent programmer.

"Executing" is the next section of the book, which identifies how you can work to the best of your ability in your day to day tasks. A good percentage of this section is motivational in nature. Chapters like "How Good a Job Can I Do Today?" really seek to overcome the desire to stay in bed in the morning.

Fowler then covers "Marketing..." with tips about how to get your name out both within your current place of employment as well as the greater community.

Finally the book finishes with "Maintaining Your Edge" a call to action to not give up on the prior tips and to continue to treat your career as your product.

Overall the book is a fascinating read and well worth the investment for anyone who enjoys the "softer" side of software development. It serves as an excellent companion to The Pragmatic Programmer, a book with whom it shares some lineage by virtue of the publishing house.

On a school scale I would give The Passionate Programmer a solid B+. It was a good read, with some great information, but it isn't a book I would be compelled to buy as a gift or to put on a "required reading" list.