Archive for category Architecture

The “Many Core” Problem

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.  Read the rest of this entry »

Tags: , ,

8 Comments

GWT for Web Applications

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

Read the rest of this entry »

Tags: ,

No Comments

Advantages of Immutable Data

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.

Tags:

No Comments