[LWN Logo]
[LWN.net]

LWN's Forrest Cook interviews Nile from dLoo, Inc's BlueBox project:

LWN:	If BlueBox is the name of the browser, what is
	the name of the language that it browses?

Nile:	It's difficult to know if the language should have a name because
	it has no set syntax or reserved words. Right now, for example,
	it's possible to create Perl words, HTML words, English words,
	and Math words and post them on the Internet. These languages
	would then be first-class citizens of "the language." That is, one
	could write Perl programs as part of the language or link Perl
	expressions to other languages.  But these Perl programs and those
	other languages would not be "the language," they would be Perl.

	The problem is that this language does not have any reserved names
	and it can syntactically and semantically become anything you
	want. So, politically, we're not sure if we should name it. It's kind
	of like asking what the website of the Web is. The Web doesn't have a
	website, the websites make it up. That was our original take on it.

	Thinking about it some more, though, I think you're right. After all
	the Web has a name. So what would you call a Web of words posted on
	different sites around the world that define all of these different,
	interconnected languages that people can use? That's a hard question.
	I'll have to think about it.


LWN:	Does BlueBox use the standard tcp/ip www port (80) or does it have its
	own internet port?  In other words, what is the method used to
	transport the words?

Nile:	Currently, BlueBox uses the standard web port. In the future, we plan
	to add support for other types of delivery in the same way web browsers
	can read web pages through a variety of protocols. 


LWN:	Could you give some examples of how this technology could be used?

Nile:	BlueBox and word-oriented programming are a different way to do
	software.

	With traditional languages, you write a library and post it on the
	Internet to be downloaded. Other developers then download the library
	to use and write applications against it. Software in this world is
	like a free library that anyone can check books out of and use to
	write new novels.

	With words, developers write libraries by posting new words on
	the Internet that define languages. Other developers then use these
	words by writing new words that link to them. The model changes
	the development model from a library to a Web. Words provide
	a way for the open source community as a whole to move their body
	of work online where they can visibly reuse each others' work
	by creating new links. 

	So, this technology is essentially a shift in how software is developed
	and reused. There are a lot of other benefits as well. For example,
	the fact that software is created in the form of linkable languages
	rather than APIs makes development of new software significantly
	easier. The fact that words create parsable documents means that
	a new reuse model can be used called "Open Reuse."


LWN:	If the developers never need talk to each other, how do you prevent
	instantaneous code rot?  If a developer posts an improvement to a piece
	of code, what prevents that from breaking something else?

Nile:	This is actually a very serious problem with the networking model of
	distributed software like SOAP/CORBA/etc that BlueBox avoids. When a
	document (which can be a program, a Web page, or any other piece of
	information written out of words) is written, it downloads all of the
	words that it uses into the developer's natural language database.
	Then, when it is served on the Web, if the client does not have all of
	the words in the database, the client is served the words that were
	requested.


LWN:	Are version numbers for the software components part of the plan?

Nile:	Currently, version numbers are not needed for the reasons outlined
	above. The database that serves documents already has the correct
	versions of the words in its database. 


LWN:	How about security issues?  Running random software from the net
	sounds like fertile ground for malware writers.
	Is there any kind of "sandbox" concept like in Java for security?

Nile:	Security is a critical problem for all Internet software. Part of the 
	reason that security is so difficult on the Internet is that current
	technologies can only syntactically validate software. That is,
	software can only validate that it has the right encryption key, that
	it does not call certain system calls, etc.

	With words, though, it is possible to semantically check information
	that is downloaded to the machine. Math documents, for example, should
	run through a math compiler that not only verified that the documents
	can run but that they are true before downloading them. In this 
	way, words can provide a semantic check in addition to a syntactic
	check before entering information into the natural language database.

	This is the solution we expect to replace the sandbox concept over
	time and the database is being designed with that in mind. In the
	meantime, of course, it is necessary to have a sandbox and only
	allow certain calls from downloaded words. This is still in 
	development.


LWN:	Thank you for the interview.