Wednesday, September 20, 2006

Language Bootstrapping

We were having a discussion about programming langauges and the concept of bootstrapping came up:

Each new version of Delphi is written in that version of Delphi too. The original compiler was written in C++ and Assembly. Once the compiler worked then it was used to rewrite the compiler in Delphi. I am sure much of the compiler is written in inline assemblier, which is a feature of the Delphi compiler. When a new version is under development, when they reach stable milestones they start developing in the milestone releases.

As I see it there are three benefits to writing a language in itself (if it is a general purpose language that this is applicable to)

  1. Like Chris suggested it is the original unit test. At Microsoft they refer to this as "eating your own dog food" (I am not kidding). The idea is if you are using your product then you know it works or doesn't work, and you do a better job debugging it. For a general purpose programming language what better way then to write the language in itself.

  2. This is really a side effect of the first benefit, but it is a instant testimonial for the language. If it is good enough to write itself in, then it must be good enough for project X. Like I said, this is a side effect.

  3. As the language is improved then those improvements can be used to make the language better. This also explains how computers in general have an exponential growth - each new innovation is used to create the next. As Anders Hejlsberg put it ". . . .standing on the shoulders of giants," (maybe slightly out of context, but applies in principle). So if you decide to use language A to write language B then if you want to take advantage of a new feature then you must first update Language A to you can update Language B. You create twice as much work that way. So by putting in a little additional effort up front to bootstrap, you actually save work in the long run.

That is the way I see it at least.

Technorati Tags:[][][][][][]

Thursday, September 14, 2006

Learning Ruby and Ruby on Rails

We were having a great discussion about Ruby and Ruby on Rails and Mike Moore of the Boise Ruby Brigade suggested some great resources for learning Ruby and Ruby on Rails:

 

The main Ruby web site was updated recently. I believe there is some good info there, like this 20 minute introduction.

The Ruby on Rails web site has alot of good information on it. You might want to start out with some of the screencasts. You will get a good sense of what Rails does and how you can use it there.

You can also get to the APIs, online tutorials, and some of the many books written about Rails (and Ruby) at RubyOnRails.com.

I prefer to do all my heavy learning with dead tree books, and the Pragmatic Bookshelf has the best offering of Ruby books so far, although other publishers are starting to catch up. The seminal Ruby book is the "pickaxe" book by Dave Thomas, named for its cover.

My favorite Rails book is also by Dave Thomas. There is also a new beta version.

~Mike

I looked at Ruby a long time back, but there wasn't much documentation then. Looks like that is no longer the case. I guess it is time to look into Ruby again. Thanks for the resources Mike!

Technorati Tags:[][][][][]

Tuesday, September 12, 2006

The software formerly known as Atlas

Thanks to Mike Cline for this tip about the software formally known as Atlas:

Microsoft has announced that is going to target the official release the Microsoft Ajax Library 1.0 (the software formerly known as Atlas) for the end of this year. Actually, Atlas will be split up into 3 products:

  1. The client side Atlas Ajax library will be named “The Microsoft Ajax Library”,
  2. The server side Atlas functionality will be called the “ASP.NET 2.0 AJAX Extensions”,
  3. The Atlas Control Toolkit will be known as the “ASP.NET AJAX Control Toolkit”.

Splitting it up into 3 products makes it a bit confusing…

Given that there have been more than 250,000 downloads of the Atlas CTPs already, one wonders how much difference an “official release” will make.

I think this is great news. Ajax is the buzz word for web development - every ad for web tool kits now says something about being Ajax enabled. Microsoft is always a couple years behind everyone else before they support / embrace things, especially internet technologies (just the Internet in general, Web Browsers, Java, Web Services, Blogging, Instant Messaging, P2P, etc.). Maybe they are finally learning. I think Ajax is great and this is sure to really turbo charge people using it more, which I am excited for!

Subject Tags: [][][][][][]

Friday, September 08, 2006

But I just started using .NET 2.0 -- 3.0 RC1 Released

OK, I've been using 2.0 for over six months now. It just doesn't seem like that long. But, .NET 3.0 RC1 has just been released. .NET 3.0 RC1 Release Notes .NET 3.0 RC1 Framework Components .NET 3.0 RC1 SDK .NET 3.0 RC1 VS05 Tools (including Cider) .NET 3.0 RC1 SDK online

Subject Tags: [] [] [] []