Dear Uuunicates,
I think Kevin is right in that Python is a sensible compromise, being clean,
straightforward, reasonable fast (yep, do a benchmark comparing Python and Ruby
and you'll see what I mean!), provided with excellent libraries (which is
probably the really important point) and having a large user base (which does
not matter altogether because right now Uuu is not a project involving
thousands). However, to Phil's questions there seems to be one single answer:
Erlang.
To address each of these questions individually: Sane parallel execution --
central feature of the language (CSP model); was designed with the object of
controlling extensive telecommunications networks. Compatible with single,
persistent address space model -- has never been tried AFAICT, but should be
easy to implement. Upgrades of code while running -- that's what it was built
for. Easy representation -- depends on what you are thinking of, but I think
its syntax is clear and easy. Efficiency -- yes. Runs on a VM that is a good
deal faster than Java's. Additional benefits: Can be checked by functional
verification; and the VM can be used as ersatz kernel.
Apart from that, IMHO the sanest way of controlling parallel execution is good
old Occam, if anyone remembers that -- way back in the 1980s, Atari, Inmos and
Perihelion started a project named "transputer" which was essentially about
multiprocessing. The Inmos Transputer chip was essentially a hardware
implementation of Occam. For the younguns, Occam is a bit pascal'ish, with
every block being preceded by one of the keywords PAR, SEQ or ALT, determining
whether execution of the statements is t proceed in parallel fashion, in
sequential fashion or as it seems best.
Perhaps we might incorporate these into Python? (I know... go ahead. I would,
if I had the time.)
As for the others, I have a bit of experience with them:
Smalltalk: Oldie but goldie... once a revolutionary thing but most of its
concepts have been assimilated into more recent languages including Python, so
I do not see any particular advantages. And besides, most current
implementations just suck.
OCaml: One of my favourites, but so quirky. I agree with Kevin's opinion.
BTW, the Wirth school use OCaml to implement their compilers of the
Modula/Oberon/Lagoon line.
Lisp and flavors: Ericsson and friends first tried this, but the
shortcomings for larger projects inspired them to create Erlang instead. There
was Alloy once, an academic project for parallel processing. You'll still find
it on the net, I think.
Haskell: Very powerful, a great language for mathematicians, but current
implementations produce very poor code.
Ruby: A bit more stylish than Python, but slower.
Ada: Oh my God... why don't we go for Pascal instead? Or Algol? Seriously, I
think that Wirth's own line (among which I would tend to include Eiffel, one of
the finest OO languages I know) is splendid, and Oberon might be worth
considering (if only becuase Modula-2 was the first language I ever learned),
but Ada is just overdone.
And what has not been mentioned: declarative languages, like Prolog & Co. I am
not very much acquainted with them, but I could imagine Parlog or Datalog might
be interesting. Or, still better, Mercury.
Sorry for this lenghty mail which is quite off-topic, I admit, but as we seem
to be stalled anyway, a bit of philosophizing won't slow us down any further
:-P .
Apart from that, I would also be curious to hear more about that perti net
business...
Best wishes,
Rüdiger Flaig
__________________________________________________________
Ill'mo Don Dr. Dr. Ruediger Flaig MJMOC.
Langgewann 28, D-69121 Heidelberg
Englschalkinger Str. 138, D-81925 München
<flaig@xxxxxxxxxxxxxxx>
Tel. +49-172-7652946
Office: <flaig@xxxxxxxxxxxx>
+49-621-59139-24
http://www.sanctacaris.net
"Working under many guises, the evil magician Randall Flagg is
one of the most sinister figures in Stephen King's novels...
The reader is deliberately alerted to his presence by the fact
that all his pseudonyms generally form the initials RF and are
often partly similar to his real name." -- from the Wikipedia
--- uuu-devel-request@xxxxxxxxxxxxx wrote:
(...)
At least my feeling is that we need some programming language better
than python. I'd really hope one already exists, but it's so hard to
really try them all, and writing languages is just so much *FUN*.
However, what I'd like to do is set up some template for language
reviews. These would include all the points that are important to Uuu,
such as:
- what features of the language allow sane parallel execution? This
includes things from fine to coarse graunlarity, from parallelizing
instructions for a superscalar CPU, to finding multiple threads for an
SMP box, to network distributed computing.
- does the language work well with a single, persistent address space model?
- does the language provide a good way to handle upgrades of data from
old to new code?
- can the language be represented well in a way more structured than
plain text?
- is the language efficient in execution? If it's bad, is it so because
of the language design, or the implementation?
I could probably elaborate on these and find some more points later. We
could start now a list of languages to evaluate:
python
smalltalk
ocaml
lisp, and flavors
haskell
ruby
ada
I'm sure people can add more languages to this list. All you who have
come into the channel to rant and rave about your favorite language, now
is your time!
------------------------------
Message: 3
Date: Wed, 26 Apr 2006 23:12:20 +0200
From: Rafael Fern?ndez L?pez <info@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [Uuu-devel] What's going on?
To: uuu-devel@xxxxxxxxxxxxx
Message-ID: <444FE234.6080706@xxxxxxxxxxxxxxxxxxxxxx>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Hi guys,
From my point of view is a great idea of using Python and similar
languages (because they don't use random memory), so maybe (that was a
point of Uuu) there was no need of kernel. Well, so there's a *MUST*
programming in python (and similar) every app... That is a very limited
OS (if that is true), if I can write an app, compile, and execute with
C++ it should be OK.
There's another point: maybe Python is not speedy enough for a OS.
But as you selected Python for the main language, what language are you
thinking of using right now?
Did you say something about writing a new language? :::"and writing
languages is just so much *FUN*":::. Well, for that there is a need:
*LOTS* of free time. xDDD.
Today Uuu amazes me yet, and I'd be glad of seeing something
running. I love the *NO KERNEL AT ALL* idea, but if that idea implies no
C++ or similar programming languages I would't agree at all with Uuu.
Well, good luck guys,
Rafael Fern?ndez L?pez.
Phil Frost escribi?:
> On Wed, Apr 26, 2006 at 03:48:51PM -0400, Jacques Mony wrote:
>
>> Hi,
>>
>> Some people recently wrote to the list, stating that they would work
>> on persistence and other issues.
>>
>> Is that still being worked on? Who's doing something at the moment?
>>
>> --
>> Jacques Mony
>>
>
> Well, not a whole lot, but something more than usual. About 2 weeks ago
> I went to Toronto and did some hacking with cris and doobie. The goal
> was to prototype a petri-net based programming language. We uh...fell
> somewhat erm..."short" of that goal. Anyway, there is a very basic GUI
> in the repository now that needs only a little work, and somewhere there
> is some code which was to be the interpreter to run the petri nets.
> (will someone commit that? maybe even *cough* finish it? :) )
>
> At least my feeling is that we need some programming language better
> than python. I'd really hope one already exists, but it's so hard to
> really try them all, and writing languages is just so much *FUN*.
>
> However, what I'd like to do is set up some template for language
> reviews. These would include all the points that are important to Uuu,
> such as:
>
> - what features of the language allow sane parallel execution? This
> includes things from fine to coarse graunlarity, from parallelizing
> instructions for a superscalar CPU, to finding multiple threads for an
> SMP box, to network distributed computing.
>
> - does the language work well with a single, persistent address space model?
>
> - does the language provide a good way to handle upgrades of data from
> old to new code?
>
> - can the language be represented well in a way more structured than
> plain text?
>
> - is the language efficient in execution? If it's bad, is it so because
> of the language design, or the implementation?
>
> I could probably elaborate on these and find some more points later. We
> could start now a list of languages to evaluate:
>
> python
> smalltalk
> ocaml
> lisp, and flavors
> haskell
> ruby
> ada
>
> I'm sure people can add more languages to this list. All you who have
> come into the channel to rant and rave about your favorite language, now
> is your time!
>
> _______________________________________________
> Uuu-devel mailing list
> Uuu-devel@xxxxxxxxxxxxx
> http://unununium.org/cgi-bin/mailman/listinfo/uuu-devel
>
>
------------------------------
Message: 4
Date: Wed, 26 Apr 2006 18:49:49 -0400
From: "Jacques Mony" <jacques.mony@xxxxxxxxx>
Subject: Re: [Uuu-devel] What's going on?
To: uuu-devel@xxxxxxxxxxxxx
Message-ID:
<f6a6eeae0604261549g565b60d5w5c8328078204be08@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset=ISO-8859-1
What was this _not so implemented_ petri net language looking like?
I'd be interested to know how what you came with (even if it's far
from complete...).
On 4/26/06, Phil Frost <indigo@xxxxxxxxxxx> wrote:
> On Wed, Apr 26, 2006 at 03:48:51PM -0400, Jacques Mony wrote:
> > Hi,
> >
> > Some people recently wrote to the list, stating that they would work
> > on persistence and other issues.
> >
> > Is that still being worked on? Who's doing something at the moment?
> >
> > --
> > Jacques Mony
>
> Well, not a whole lot, but something more than usual. About 2 weeks ago
> I went to Toronto and did some hacking with cris and doobie. The goal
> was to prototype a petri-net based programming language. We uh...fell
> somewhat erm..."short" of that goal. Anyway, there is a very basic GUI
> in the repository now that needs only a little work, and somewhere there
> is some code which was to be the interpreter to run the petri nets.
> (will someone commit that? maybe even *cough* finish it? :) )
>
> At least my feeling is that we need some programming language better
> than python. I'd really hope one already exists, but it's so hard to
> really try them all, and writing languages is just so much *FUN*.
>
> However, what I'd like to do is set up some template for language
> reviews. These would include all the points that are important to Uuu,
> such as:
>
> - what features of the language allow sane parallel execution? This
> includes things from fine to coarse graunlarity, from parallelizing
> instructions for a superscalar CPU, to finding multiple threads for an
> SMP box, to network distributed computing.
>
> - does the language work well with a single, persistent address space model?
>
> - does the language provide a good way to handle upgrades of data from
> old to new code?
>
> - can the language be represented well in a way more structured than
> plain text?
>
> - is the language efficient in execution? If it's bad, is it so because
> of the language design, or the implementation?
>
> I could probably elaborate on these and find some more points later. We
> could start now a list of languages to evaluate:
>
> python
> smalltalk
> ocaml
> lisp, and flavors
> haskell
> ruby
> ada
>
> I'm sure people can add more languages to this list. All you who have
> come into the channel to rant and rave about your favorite language, now
> is your time!
>
> _______________________________________________
> Uuu-devel mailing list
> Uuu-devel@xxxxxxxxxxxxx
> http://unununium.org/cgi-bin/mailman/listinfo/uuu-devel
>
--
Jacques Mony
------------------------------
Message: 5
Date: Thu, 27 Apr 2006 09:17:37 +1000
From: "Michael Kedzierski" <waikurosu@xxxxxxxxx>
Subject: Re: [Uuu-devel] What's going on?
To: uuu-devel@xxxxxxxxxxxxx
Message-ID:
<be82bd590604261617h13d95b20ic88430039a347089@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset=UTF-8
> I could probably elaborate on these and find some more points later. We
> could start now a list of languages to evaluate:
>
> python
> smalltalk
> ocaml
> lisp, and flavors
> haskell
> ruby
> ada
>
> I'm sure people can add more languages to this list. All you who have
> come into the channel to rant and rave about your favorite language, now
> is your time!
I suggest adding erlang to this list as well. :)
Personally, my language of choice is Python. I like using it as it has
a big mind share; having plenty of code and programmers. Also, it
doesn't aim to be "pure" or the "nicest" language, but it certainly
tries to be practical, fairly clean and easy.
You can always extend a language to meet your goals instead of writing
your own completely new language.
------------------------------
Message: 6
Date: Thu, 27 Apr 2006 03:33:01 -0500
From: "Kevin Lipe" <kevin.lipe@xxxxxxxxx>
Subject: Re: [Uuu-devel] What's going on?
To: Uuu-devel@xxxxxxxxxxxxx
Message-ID:
<aa5a28b00604270133i3b569e00xddb64feb0eefad32@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset=ISO-8859-1
---------- Forwarded message ----------
From: Kevin Lipe <kevin.lipe@xxxxxxxxx>
Date: Apr 27, 2006 3:31 AM
Subject: Re: [Uuu-devel] What's going on?
To: Michael Kedzierski <waikurosu@xxxxxxxxx>
I like OCaml. I wonder if Lisp (mainly Common Lisp and Scheme) are
suitable for a fast system on stock hardware? The languages themselves
are pretty behind-the-curve in terms of object systems (the CL object
system is powerful but very awkwardly bolted-on to the base language)
and libraries (Scheme is a beautiful langauge, with a genius
interpreter, but simply doesn't have the libraries for everything that
it would be used for as an applications programming langauge) and
s-expressions are pretty tedious to write, even with Emacs and SLIME
mode.
I've been doing a lot of Ruby programming as of late--it has some very
good features, taking the best of Perl and Smalltalk with a little
more allowance for functional programming... speaking of functional
programming, any idea how Haskell's lazy evaluation would affect the
performance of an operating system? I think there are a few
Haskell-based OS projects (the one I'm thinking of was called House)
but I don't know much past that.
I don't really know Python, so I haven't really been able to
contribute anything to uuu up to this point... I do think that the
languages on that above list that essentially ignore the operating
system (Smalltalk comes to mind, with it's core images and such)
wouldn't be a wise choise.
OCaml has a fanatically strong typing system, but uses type inference
so a lot of the typing is put off on the compiler instead of the
programmer. There are a few drawbacks; I don't like using the double
semicolon (;;) to close blocks of code, and I don't like having to
explicitly specify when functions are recursive (with "let rec") but I
do think it's one of the best programming languages out there today.
The compiler generates blazing-fast code (faster than C++ in many
cases) and there's also a bytecode compiler and an interactive REPL
(like that of Python and Lisp) for easy prototyping.
Another favorite language of mine (betraying my Mac roots) is
Objective-C... It's great, a very Smalltalk-like language that still
has the familiarity of C. It gets overlooked a lot.
What does this petri net language look like? That sounds interesting.
~K
------------------------------
_______________________________________________
Uuu-devel mailing list
Uuu-devel@xxxxxxxxxxxxx
http://unununium.org/cgi-bin/mailman/listinfo/uuu-devel
End of Uuu-devel Digest, Vol 29, Issue 4
****************************************
_____________________________________________________________
Free eMail .... the way it should be....
http://www.hablas.com
_______________________________________________
Uuu-devel mailing list
Uuu-devel@xxxxxxxxxxxxx
http://unununium.org/cgi-bin/mailman/listinfo/uuu-devel
|