Hi guys, We just released BlueBox under the GPL. Thanks for your patience. Implementing this stuff was hard. It uses the word model to implement the architecture for a P2P programming language. Here's the press release: A Peer to Peer Programming Language Most programming languages are statically defined when they are compiled. C++, C, Java, and other languages cannot become richer over time after their compilers or interpreters are compiled. This model of building programming languages is pre-Internet, mirroring how books, magazines, and journals were published before the appearance of Web pages, dynamic content, and hyperlinking. Instead of this model, however, imagine a programming language that was defined on the Internet and more importantly, became richer over time as more programmers added to it. This is the idea behind BlueBox, a browser that runs a scalable peer-to-peer programming language that we are releasing today. dLoo was formed over a year ago to create a browser, BlueBox, that could download language structures from the Internet and dynamically assemble them into languages. We needed the language structures to be modular so that the languages could scale in richness across non-communicating parties. We needed developers to be able to extend languages simply by linking to existing structures. The goal was to create a language that lived on the Internet and that grew in richness as developers created new pieces. Although the concept of a scalable peer-to-peer programming language is conceptually simple, implementing it took over than a year. We tried over a hundred variations before finding a programming unit that would fit our criteria for a language structure and be simple to use. The structure that we choose and that is used in BlueBox today is called a "word." Words are scalable, linkable, and allow for language inheritance and polymorphism. They model Web pages in their ability to scale and link to one another to solve new problems. With words, one programmer can post HTML words, another Calculus words, and a third could create an HTML/Calculus language by changing one of the links in an HTML word to point to Calculus. A fourth programmer could then come along and add a graphing language by adding a link from a graph word to a Calculus word. This simple ability to link one language to another allows programmers to create very dense syntaxes to cleanly solve complicated problems. Individuals can build off of the words that have already been posted on the Internet to create richer and richer languages without every talking to one another. The language is defined on the Internet and can be extended by anyone with a minimal amount of work. In addition to linking, words allow programmers to inherit languages and override their syntax and semantics on a word-by-word basis. Language inheritance adds phenomenal power to the programmers toolkit. One of the modules included in BlueBox is an abstract programming language written in words that programmers can inherit from to create specific programming languages like Perl and Python. Because this language already supports inheritance, standard conditional structures, and other basic features of programming language, programmers do not have to implement them when creating a new language. They simply inherit from the abstract language and override its syntax where appropriate. Language polymorphism means that if programmers specify that a document is written in an abstract language, they can use all of the languages that inherit from it. For example, the abstract programming language can compile programs written using syntax from any of the languages that inherit from it. As syntaxes like Perl, Python, C++, and Java are created by inheriting from the abstract language, it is possible to write programs that mix all of these languages together (see bluebox/src/tests/code). More importantly, language polymorphism means that new developers can add new words to a language simply by inheriting from existing ones. If HTML was written in words, for example, anyone could add new widgets and domains to the language. All of the features mentioned in this paper are working today. After a year of development, the product has been released to the open source community under the GPL. A community site set up around BlueBox with access to the source can be found at http://www.dloo.org. The main features in this release are: Implementation of a natural language database so that words can be dynamically downloaded, compiled, and assembled into a language. Full support for language inheritance and polymorphism BlueBox itself written in words Full support for words that are written in other words Ability to download and compile words from the Internet The architecture of a software translator for transforming one technology or language to another. Only has Python as a dependency. The previous releases, which were solely for educational purposes, had several difficult dependencies. A tutorial on how to create and post words can be found here and a more detailed description of BlueBoxs architecture is available here. The Web broke the conventions that information should be formally organized and indexed. One of the main criticisms of the early Web was that it was unorganized: anyone could post and link to other articles. BlueBox brings the same roller-coaster ride to language design. In place of formal language committees and hundred-page specifications, we have an language that can be added to and linked to by anyone. In the next few weeks, we are going to be implementing the code for database sharing in BlueBox and launching the network for sharing words. We do not know what this Internet of words is going to become but we think it is going to grow fast and with a wild creativity beyond anything that we can imagine today. Were looking for early adopters to post some of the first words on the Internet. We also want to invite anyone whos interested to jump in and get their hands dirty on a peer to peer natural programming language.