Wednesday, November 18, 2009

Initial Thoughts on Google Go

I read the “tutorial”: and thought, “the syntax is Frankenstein ugly. They have Guido on staff, but this looks like they consulted Larry Wall. Why didn’t they just write an open source D compiler?”

Then I read the FAQ. Some very interesting ideas, and personally, ever since using C++ for some large embedded programming projects (large? embedded? not as oxymoronic as you might think), I’ve been thinking these same things for a while now:

No major systems language has emerged in over a decade, but over that time the computing landscape has changed tremendously. There are several trends:

  • Computers are enormously quicker but software development is not faster.
  • Dependency management is a big part of software development today but the “header files” of languages in the C tradition are antithetical to clean dependency analysis—and fast compilation.
  • There is a growing rebellion against cumbersome type systems like those of Java and C++, pushing people towards dynamically typed languages such as Python and JavaScript.
  • Some fundamental concepts such as garbage collection and parallel computation are not well supported by popular systems languages.
  • The emergence of multicore computers has generated worry and confusion.

We believe it’s worth trying again with a new language, a concurrent, garbage-collected language with fast compilation.

D has been around a while, but it just doesn’t seem to be catching on; maybe because it just doesn’t have a large corporation behind it. Maybe because it’s not fully open source. Or, maybe because it doesn’t have all the features of Go.


Wednesday, November 11, 2009

I Got a Mac

My employer just supplied me with a MacBook Pro running OS X Version 10.6.1 (is that a little redundant?). For a long time I have eyed macs with wary suspicion, but with a lot of curiosity too. If Microsoft is evil, as some like to say, because it locks customers in to its proprietary software, Apple must be at least twice as evil. They lock customers in to their software *and* hardware! I kind of like the new laptop, though. Mechanically, it's awesome. The aluminum body feels nice and solid. The lid doesn't latch when it closes, it just kind of (magnetically?) holds to the body. The buttons and USB slots and everything are also very nicely done. The display is one of those glossy ones for "brighter colors" and I hate the glare. The user interface has me all confused with buttons and menus in places I'm not used to. It has this fancy new mouse trackpad that is huge and it lest you do multi-finger stuff kind of like an iPhone (which I don't have). That's all going to take some getting used to also.

The biggest thing that surprised was the childhood memories that it evoked. The first computer I ever used was a Mac. Grandpa is a chemical engineer, and he recognized right away how useful personal computers would be. He had a Mac Classic in his den and he would let me play with it all I wanted when I came to visit. MacPaint was about all I could do with it when I was 5 years old, but I moved the mouse and clicked on things, pushed a floppy disk into its drive and then drug the icon to the trash to eject it, and poked around at whatever I could. On this new laptop when I first saw the little mouse pointer turn to the text entry icon, the same icon that the Mac classic used, all the memories of that Mac Classic in Grandpa's den came back. There are a few other subtle little things, like the apple menu, that give me a little bit of nostalgic joy every time I encounter them as well. It's very cool that Apple has kept some things the same over all those years. Apple can't be totally evil, right?