Linux Weekly News has published the Linux and open source timeline for 2005.
Linux/Unix
8
Mar 05
Cool demos of mono applications
In this page Nat Friedman (of Gnome and Ximian fame) has created some really nice demos showing Beagle and Mono.
Mono is an OSS implmentation of Microsoft’s .Net platform. Nat has created two demos for Monodoc (the Mono documentation browser) and for creating GUIs with Glade and Gtk#.
Beagle is a cool OSS application written in C#. If I am correct, it currently runs on Linux using Gtk# and there is an ongoing effort to port it to Windows. Beagle is a desktop search tool. It indexes your data (doc, pdf, images, html,… files) and let’s you search them efficiently.
I really like the fact that Beagle integrates well with other desktop applications (mail, IM, photo albums,…) and that supports many file types. The coolest feature of Beagle is live incremental indexing of files. It indexes your files as you create them without having to rebuild its indexes. See it here in action.
Beagle is backed by DotLucene the .Net (C#) port of the fabulous Lucene text search engine library.
5
Mar 05
The development of the C language
In the last couple of days I’ve being reading a lot about software development. Today, to read something different, I re-read “The development of the C language” by Dennis Ritchie. One good fact found in this paper, that it is not widely known, is why C was developed.
Before C there was a language called B developed by Ken Thompson. B had only one type named cell (or word). A cell had the size of the word of the processor. One of the main reasons C was developed was to add types of variable size to allow easier memory utilization.
When B was ported to the PDP-11, which had a 16 bit word, the character handling mechanisms were awkward. This was because in order to process characters you had to unpack the characters from cells, process them, and the repack them (to save memory). Also pointers in B where not efficient due to language constraints. The B language defined a pointer as an index in a cell array.
This lead to the development of C. C added data types (of different size) to the variables. The data types introduced were char, int and their array and pointer types.
I believe that the above explains why the type system of the C language is not safe. It was not designed to be safe, it was designed to allow better memory utilization. Type checking was not very important back in 1971.
For more info see the great paper The Development of the C Language, Dennis M. Ritchie Bell Labs/Lucent Technologies