[FoRK] "Super Tuesday" only "semi-great," Texans claim

Stephen D. Williams <sdw at lig.net> on Wed Feb 13 12:14:41 PST 2008

>
> On Feb 13, 2008, at 12:08 PM, Stephen D. Williams wrote:
>
>> Factor is kind of interesting.  There's still a lot of value in
>> being on top of the Java JVM / JIT.
>
> Fyi, Factor's now got its own VM / JIT.  Not sure if the current
> version can even target the JVM...
I saw, but it isn't the level of Hotspot et al.
>
>> Pretty cool, and maybe someday a good alternative to Haskell for
>> functional programming.
>
> Hmm, I dunno if I'll ever be able to consider a stack language truly
> functional...
You're assuming the One True Stack maybe?  Maybe I'm thinking something like a
stackless stack language where every branch is thread safe and independent.
>
> But in any case, are you actually saying I should actually look at this?
No, I wouldn't go go that far... ;-)

It is interesting that you seem to be on the quest for the One True 100 year
Language.  I think that I am more interested in the One True 100 year:

o  Library (STL, Boost, crypto, et al)
o  Data format (EXI (binary XML, W3C)/ERI (binary RDF+, me shortly)/EsXML
(EXI/ERI + no parsing/serialization, me))
o  Database / query / update API (SQL/SPARQL, ERI, probabilistic reasoning
conditional probability exchange (PRCPE?), memcached, circular hash, googledb,
etc.)
o  Protocol (HTTP, SOAP - the mess, BEEP, async message passing, pub/sub both
shallow and deep, etc.)
o  Programming models (C++, Java, Javascript, easy functional, anything
anywhere scripting, etc.)

So the last one gets into languages, however nearly all power of languages is
in the libraries.  Pascal was awful partly because the library was part of the
language vs. C, println vs. printf.  Basic has this problem to a sickening
degree.  I had to hack some VB not too long ago, and I was horrified by the
unique syntax / rules of each component (library function) of the "language". 
At some level, this would be OK, i.e. as in making up a mathematical notation
to simplify discourse in a particular area.  But it can't be magical.  It has
to be a first class facility so that if I want to use a similar mechanism for
my own purposes, I can.  Note that this happens in libraries too.  Java has
some nice machinery for config parameters, but it is tied down and cannot be
used in any general purpose way.  I hate that there is a bunch of code that
does a general purpose thing that I can't use for my own purposes.

The key to optimizing many things is finding the point at which the highest
level of data or processing representation occurs and to build back from that.
 For instance, you don't want to exchange data blocks (and locks, etc.) when a
high level SQL statement is logically what you want to do.  And you don't want
to exchange a zillion SQL statements when a logical transaction with precisely
what you want to convey can be used which locally results in many SQL
statements or caching or other operations.

Similarly in languages, can I extend the programming environment in
sufficiently flexible ways to get as close as possible to an environment where
I am working directly with clean analogues of concepts at hand.  And is that
extensibility done in a personally tractable way?  C++ comes close on the
former while failing in the latter as mere mortals could not hope to create
something like STL.  Java is just OK on the former and just OK on the latter. 
There are other kinds of flexibility that are important.  As one example,
ObjectiveC and Javascript's abilities to layer and retrofit libraries from
others, after the fact, is quite interesting.

We haven't fully resolved how to get everything in there while solving for all
constraints and not creating a mess.  We at least have some interesting data
points.  Seamlessly combining these might be the best solution in the end,
although I'd love to see a lot more attempts at the grand unification.

sdw
>
> :-/ ;-)
>
> jb



More information about the FoRK mailing list