Tuesday, September 05, 2006

Serializable space invaders

Chris Double has got the serialization code to the point where it can be used to transport UI gadgets between Factor instances. He managed to serialize a running space invaders instance, and another participant on IRC got it running on their machine. Cool stuff!

As for me, I've started working on 0.85 with a few mundane cleanups and bug fixes. Nothing I do is cool anymore :)

On learning

Mike Vanier writes:
As somebody who loves to learn new programming languages and paradigms, I hate to admit this, but one of the biggest reasons bad languages persist is that most people hate learning new programming languages. They would rather stick to a shitty language that they more-or-less understand than take the one month or so to become familiar with a new language. This is an example of a very, very general phenomenon both in computing and elsewhere, which is that nobody ever wants to learn anything new.

Monday, September 04, 2006

Interesting weblog

A blogger calling himself "sigfpe" writes a fascinating weblog about mathematics and Haskell. I like his implementation of the Clifford algebras.

Sunday, September 03, 2006

Factor 0.84

Factor 0.84 is now available. Check out the change log; it is rather extensive.

Is American high school education really that bad?

Some of the responses here made me chuckle:

  • What is the number less than one closest in value to one?
  • I haven't actually read the proof, but I'm not convinced by it. 0.999... is definitely smaller than 1, or it would be called 1.

    I believe it is just common sense.


Illiteracy might no longer be a problem in the developed world, but innumeracy is rampant. :-)

Friday, September 01, 2006

Recent UI changes

I implemented a CLIM-like commands framework. There is now a keyboard help window (press F1) and a generic "operations" framework that allows commands for working with words to be applied to an input gadget, for example, which causes the word to be extracted from caret position. This is conceptually similar to CLIM presentation translators.

Also, the UI now builds all tools into a single workspace window. Multiple workspaces can be opened.

Here is a rather large screenshot.

Factor is now three years old

That's right, and if you read the blog post from a year ago, you'll see Factor has made a lot of progress.

Just for kicks I downloaded Factor 0.77. It took 34 minutes to bootstrap on my x86 machine. Current Factor releases bootstrap in 2 minutes 30 seconds on that machine. Not only has the performance of the compiler improved drastically, but the amount of optimizations it does -- and not to mention the volume of code being compiled -- has increased too.

A quick overview of just some of the major improvements in the last year:
  • The UI has improved a lot: OpenGL rendering, multi-window support, browser, graphical single stepper, etc
  • Hypertext online help, full text search
  • AMD64 port
  • Intel Mac port
  • Objective C library interface
  • Callbacks from C to Factor
  • Restartable exceptions
  • Formal stack effect declarations

In my Factor is two years old post, I gave some line number counts for Factor at the time:
  • Factor runtime, written in C: 7326 lines
  • Factor library, written in Factor: 17591 lines
  • Unit test suite, written in Factor: 4160 lines
  • Contributed code, written in Factor: 6598 lines

Here are the stats as of today:
  • Documentation, written in a Factor DSL: 94347 words
  • Factor runtime, written in C: 8261 lines
  • Factor library, written in Factor: 29555 lines
  • Unit test suite, written in Factor: 4772 lines
  • Contributed code, written in Factor: 24737 lines

Good to see the contributed section growing fastest of all. I hope the core library doesn't get too large, and that a year from now I can look back and say that Factor has again made a lot of progress.