Archive for the ‘Architecture’ Category

The “Many Core” Problem

Saturday, October 25th, 2008

We, as developers, have a problem.  CPUs will continue to have more cores, and each core is not going to be any faster.  The only way to write faster applications is to write multithreaded code, which has two challenges:

  • Multithreaded code is complex to write and think about.
  • Multithreaded code is difficult to test.

From what I've seen, people are pursuing 4 approaches.  (more...)

GWT for Web Applications

Saturday, October 18th, 2008

There are several approaches for writing web applications, each with their own advantages.  GWT is a new framework with its own niche.

  • Your standard ASP.Net (or JSP/PHP/etc) w/ Ajax and JQuery (or other Javascript library)
  • Java WebStart or .Net ClickOnce
  • GWT w/ Webservices

(more...)

Advantages of Immutable Data

Saturday, February 16th, 2008

I was reading about two of Google's internal programs, Bigtable and Google File System, and how they handle a large amounts of data so that the processing is distributed (Bigtable) and the data is replicated (Google File System). One thing they both do is exploit immutability. So once something is saved to disk, that block of data doesn't change. If you have a large volume of data, this assumption can be very useful.

Let's say we're talking about a transaction table for bank accounts. Records in the transaction table don't change. Any corrections are handled by creating a new transaction record at the tail end of the table. If you are processing the transactions, this is great! You can ignore previously processed records since you know they will never change.