Posts Tagged ‘software’

Book Review: Joel Spolsky – The Best Software Writing I

Monday, August 13th, 2007

Sadly, this is the only book I’ve actually finished this summer (and yes, I haven’t read the new Harry Potter). However, this book is absolutely amazing, and I highly recommend it to any hacker or anyone else remotely interested in programming. Spolsky selected a great set of articles that are very relevant to modern day entrepreneurship, management, and programming. It’s a pretty easy read; most of the articles are fairly short, but it does get technical in parts (I didn’t understand some of the articles), so it might not be very accessible to non-programmers.

The book is a compilation of articles, blog entries, and talks, written and presented by some of the leading software developers in the world. Joel Spolsky is a pretty famous blogger, and he did a great job gathering some really good software articles that cover most of the things a programmer cares about. The articles vary in subject from very technical articles about programming languages, to talks about various companies and managerial tactics, to analysis of online social networking sites. A lot of the article authors are pretty famous bloggers: Paul Ford, Aaron Swartz, and of course Paul Graham. To top it all off, the articles and Spolsky’s commentary are peppered with sarcasm and humor.

The work Spolsky did in the novel was quite good. His ordering of articles makes the book flow very well, even though it’s a compilation of disconnected articles. He has grouped articles in sets, one set being more about software and programming, one set being about teamwork, management, and hiring, and one set being about social networks. To add to that, he’s injected humorous elements like cartoons and sarcastic articles to lighten the technical mood. His introduction to the articles do a good job of presenting a high-level abstract for the article without getting to in-depth and repetitive. He also often includes his own opinions and short anecdotes which provide a different perspective from the writer of the article. All in all, Spolsky’s done a great job as editor of “The Best Software Writing I”.

The articles themselves are for the most part excellent. Again, some of them are quite technical, but they can easily be skimmed over or skipped entirely. Most of them are very accessible, and don’t actually talk about programming, or even software. These articles are mostly about management, hiring, or social networking. These were my favorite articles because I’m currently designing a site with social networking concepts (Wenote) and also because I’m going to be looking for internships and a job pretty soon. They’re probably the most relevant to me. I could relate to most of the articles, which made the book a lot more interesting on the whole. There were a few bad articles though. The last article: a short Ruby tutorial tried too hard to be funny (it really wasn’t funny), and didn’t really provide any insight.

On the whole, the book was an excellent read. Part of this may be because I’m really interested in software development and pretty much every topic addressed in the book, but even still, every article is very well written. If you’re interested in programming languages, software, how companies operate, managerial tactics, or social networking, pick up this book and at least read the articles that you care about.

Rating: 9/10

Pros: Funny, insightful, relevant

Cons: small audience, too technical at times

On Facebook…

Thursday, July 26th, 2007

Everyone knows about Facebook. It’s a great social utility, and probably the most popular online social networking site out there. Almost all college-going students in the United States have accounts, and the craze is spreading to high schoolers, and even to adults (although slowly). Yet, the company may not have such a promising future. Ever since the opening of the so-called “Facebook Platform” to third party developers, the site has severely deteriorated and unless some changes are made, Facebook may start losing out to competing social networking sites.

“Facebook Platform” is essentially an API along with a way for developers to embed and integrate their applications into Facebook. It sounds great in theory; it allows other developers to capitalize on Facebook’s massive user base and it adds value to Facebook itself, by adding more cool features for their users. Unfortunately, it isn’t that simple. Now, the site runs incredibly slowly, and many of the pages are too cluttered with third-party garbage for me to find what I’m looking for. It seems like Facebook would have been much better off without opening their website to other developers and instead just adding some more features of their own.

The thing that made Facebook so cool was its ease of use, but they seem to have lost some of that appeal. Nowadays, when I visit my friend’s profile pages to write something on their wall, it takes at least 15 seconds to fully load their page. The problem is that when I load someones page, I have to gather data from all of these different servers hosting the different applications, and this really slows things down. After that, I still have to scroll past all of their applications to get to their wall wasting even more of my time. Compare this to before, when people’s profile pages loaded almost instantaneously and weren’t filled with applications, and the old Facebook seems to be a lot better, at least in the “ease of use” sense. Ultimately, these two problems caused by the “Facebook Platform” are really taking away from the user experience on the site.

Although I don’t use any of the third-party apps, some of them are pretty cool I and can see why people like to have them. However, this doesn’t mean Facebook should compromise their performance just to allow them. I think they should have kept the site closed to external developers and just developed some of the cool apps internally. First off, this would really improve page load times because all apps would be requesting data from Facebook’s servers. Secondly, this would remove a lot of the garbage on pages because apps could be combined or better integrated. Since Facebook has more control than third-party developers, they are able to combine applications and present them a lot better than external developers can. Another option would be to have a thorough screening process of third-party applications. They can then restrict apps that take away from overall presentation of pages. Either approach probably would have worked better for Facebook in the long run, but the current “open” attitude doesn’t seem like it’ll work out.

I have a Facebook account, but have been using it less and less since the “opening.” I know there are other users that are annoyed with the latency and the ridiculously cluttered pages, but most people continue to use it. Maybe Facebook has such a monopoly on college student networking tools that it doesn’t really matter how bad the site is right now, but sooner or later someone is gonna design a networking site that looks a lot more like the old Facebook and I think they’ll beat out Facebook in the long run. It may end up being a trend with social networking utilities to be really good early on, but they slowly deteriorate after they’ve won over a large user base. It happened with myspace (which is now pretty terrible by the way) and it looks like it’s happening with Facebook.

Edited: August 12, 2007: Marc Andreessen wrote an article about the Facebook Platform soon after the platform was release. His opinion slightly differs from mine but he does mention the latency issues. Read it here.