Re: Parrot - 100% Gnu.NET ?

2003-09-03 Thread Damien Hogan
Dan Sugalski wrote:
 At 8:53 PM +0200 9/1/03, Christian Renz wrote:
 Clemens,
 
 classpath
 
 I guess the proper term would be class library. The path is only where
 you look for the libraries :).
 
 It doesn't seem to be the Perl way to limit yourself to one option
 only (There's more than one way to do it).
 
 I'd worry less about the Perl way to do it, since we're more 
 concerned with the Parrot way to do it, and that's when we have one 
 way that's good enough we ship it, so people don't have to re-invent 
 the bikeshed, or choose from a half-dozen identically shaped but 
 different colored sheds. Which means that we ship a core that's as 
 small as feasable, and an add-on pack (which we'll likely also ship 
 with the core for an all-in-one install) with the best things we can 
 find that are cross-platform enough to be useful.
 
 That means we'll shoot for a good set of networking modules for the 
 various RFC protocols, a generic SQL database front-end, an (ick :) 
 XML parser, a variety of cross-platform tools (filename conversions 
 and whatnot), a set of xDBM interface modules, and some other stuff.

Do you imagine that the stock XML parser or xDBM will be written in a parrot language
or will it be a c lib used through NCI? 
 
 Don't forget there is an issue of us wanting to be a good core for 
 more than just perl. The Python parrot package would have Python's 
 standard module set, the Ruby package would have ruby's modules, and 
 the Perl package would have the perl modules. There's a fair amount 
 of overlap and I expect people both want their modules and *don't* 
 want two or three alternate versions of the same modules installed. I 
 could be wrong, of course.

Is one of the advantages of a multi-language interp not to combine the 
libraries of each language, to capitalize on the strength found in one 
language for the benefit of the other? And would a unification of those libraries
be outside the scope of parrot or would it fit right in?

 
 GUI stuff's a massive pain, as you either get cross-platform which is 
 ugly and awkward everywhere, or platform-specfic and useless anywhere 
 but on the platform in question. And I'm pretty sure that, no matter 
 *how* Insanely Great the OS X Cocoa interface modules are, they're 
 not going to do MSWin folks much good. :)
 
 As for sound... Yeesh. There's a swamp I don't have enough castles for.
 
 However, since we have a good native interface it should mean that 
 many modules that now require a compiler for can be done entirely in 
 parrot bytecode, which should mean that it's far easier for people to 
 install and reduce a lot of the pain. Also we've a fair amount of 
 experience in the perl world with network module installation 
 systems--we know some things that do work, and some things that 
 don't, and I expect we should be able to leverage that to make a 
 system better than what we have now. (Which, honestly, is pretty 
 darned good, especially given the limited information it has 
 available to work with)

I want to ask for clarification here. You mean that the design of NCI
will allow c libs to be wrapped using just parrot code instead of additional 
c code as in XS?

I agree that the perl system is pretty darned good. But I don't know if our 
admins (who make there lives very difficult with lack of user policy vision) 
would agree. I believe they would says it's the best of the other languages they
work with except for c/c++. I also would agree that the libtool/autoconf system
is more reliable then some of the XS code available from CPAN. And although this
does not bother me because I enjoy working with perl. They really don't care what 
the boxes do as long as the boxes are doing it.

Also building a mysql/apache/mod_perl/libxml/ environment is very challenging WRT 
customers
and clients. In very few instances would I expect a low level admin to accomplish such 
a task
in a reasonable amount of time. 

Knowing very little about this stuff I have always wondered why I need to rely so 
heavily on
certain features of the installed system. I would like to compile byte code that 
includes the
byte code for modules I am using. I realize that creates a certain undesired coupling. 
But in
some instances especially WRT to client/customer apps it would prevent upgrading 
modules
outside of your control.




 -- 
 Dan
 
 --it's like this---
 Dan Sugalski  even samurai
 [EMAIL PROTECTED] have teddy bears and even
   teddy bears get drunk

-- 
Be nice I'm new
Damien Hogan


Re: Parrot - 100% Gnu.NET ?

2003-09-02 Thread Dan Sugalski
At 8:06 PM +0200 9/1/03, Clemens Eisserer wrote:
Hi there!

I´m a java programmer and I´m not really experienced with perl.

But  I´ve searched a long time for a system like .NET that can´t be
controlled by Microsoft through Patents.
Do be aware that Microsoft may still hold patents that affect Parrot,
as might IBM, HP, and whoever owns what used to be Bell Labs these
days. Amongst others. Independent development is *no* protection
against patents. Just ask the other guys who independently invented
the telephone. (Remember them? No? Neither does anyone else :)
I really like languages which are deployed compiled to bytecode, no
problems with ABI-changes or with compiliers, once compiled link
everywhere.
Thats the reason why I linke Java really much, but there are some
points, which are really showstoppers: *Java isnt free, *Swing is
t slow to be useful.
Erm--bytecode doesn

I think  that parrot could be the Gnu-version of .NET and could be a
realy benefit for the whole opensource-world.  No 20 runtimes need
to be installed on a system - parrot would do the job better than
each could alone (Because if many apps rely on parrot the JIT will
be tuned by guys from IBM ;-) ).
We thought the same about Java when it came out. Alas you'll find a
half-dozen different JVMs installed on some systems. (Not, mind, that
I want to do the same, but it is possible that it'll happen)
But in my opinion parrot needs a more complete classpath that
perl5 currently has.
Hrm? I'm completely lost here. Library search functionality should be
at least as good, if not better, than perl 5, and it's been my
experience that perl 5's library search capabilities were better than
any Java I've had the misfortunte to deal with. Might just have had
some bad experiences.
So, my question: Is it planned to include a complete classpath into
parrot, including gui, network, db, sound functionality
No. Networking yes, probably some DB functionality (at least DBI and
xDBM style access, though unlikely no actual SQL DB drivers. Possibly
flat file SQL access, we'll see), but no sound or GUI stuff. That's
all very platform-specific, or really really ugly.
Not to say that there won't be good cross-platform libraries--I'd be
thrilled if there was a good Tk or wXwindows library for Parrot, but
we're not going to ship with them.
Please let me know what you think about the idea to include a
complete classpath into parrot.
If you want a complete *library* shipping with Parrot, you're going
to be rather disappointed I'm afraid.
--
Dan
--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


Re: Parrot - 100% Gnu.NET ?

2003-09-02 Thread Dan Sugalski
At 1:04 PM -0600 9/1/03, Luke Palmer wrote:
Clemens Eisserer writes:
 Hi there!

 Ië¾m a java programmer
Uh oh :-)

 and Ië¾m not really experienced with perl.

 [...]

 I think  that parrot could be the Gnu-version of .NET and could be a
 realy benefit for the whole opensource-world.  No 20 runtimes need to be
 installed on a system - parrot would do the job better than each could
 alone (Because if many apps rely on parrot the JIT will be tuned by guys
 from IBM ;-) ).
 But in my opinion parrot needs a more complete classpath that perl5
 currently has.
There is a big problem with that: it kinda precludes the whole
community thing that made everyone love Perl 5.  In particular, CPAN.
The plan for Perl 6, at least, is to include almost nothing in the base
distribution, so administrators are forced to install some stuff from
CPAN order for Perl to be useful at all[1].
Not entirely true. There's going to be a decoupling between the core
distribution, mainly parrot and its supporting stuff, and perl (and
python, and ruby) but there'll be an all-in-one install for them all,
so a trip to CPAN won't actually be necessary.
--
Dan
--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk

Re: Parrot - 100% Gnu.NET ?

2003-09-02 Thread Christian Renz
Clemens,

classpath
I guess the proper term would be class library. The path is only where
you look for the libraries :).
It doesn't seem to be the Perl way to limit yourself to one option
only (There's more than one way to do it). Of course we wouldn't
want five different implementations of Unicode, and it makes sense to
ship _one_. However, people might want to use different GUIs --
e.g. wxWindows, TK, native Windows GUI, Aqua, ... Basic network
classes, on the other hand, might be something that might be shipped
with Parrot. Sound is a whole different beast -- implementations vary
wildly across systems, and I'm not sure whether it is possible to have
a high-performance cross-platform implementation that satisifes 90% of
users. 

On the other hand, I don't think we only have the choice between
shipping all libraries like Java and having a complicated install
system (for the average GUI-loving end user) like CPAN. There's a
couple of middle options:
For bytecode based packages:

- Parrot bytecode executables might be packages that contain the
 necessary libraries in bytecode format (e.g. wxWindows).
- Installers might include libraries (in bytecode) and install
 them if needed (install = simple copy)
For binary (platform-dependant) packages:

Usually, people just ship these statically linked against those libs
that can't be typically expected to be installed on the system. 

So I guess for Parrot apps distributed in binary, there's not much of
a problem. For apps shipped as bytecode, it still needs to be
discussed what is going to be provided:
- Preferably a small package ( 5 - 10 MB) that lets people use Parrot apps
 quickly.
- A huge package complete with
 Perl/Python/PHP/Befunge/hq9+/... support so that everybody will have
 95% of everything they are ever gonna need
- Or both?

Liebe Grüße,
  Christian (since you started the German greetings thingie ;-))
--
[EMAIL PROTECTED] - http://www.web42.com/crenz/ - http://www.web42.com/
Surely what a man does when he is taken off his guard is the best evidence
for what sort of man he is.  -- C.S. Lewis, Mere Christianity


Re: Parrot - 100% Gnu.NET ?

2003-09-02 Thread Dan Sugalski
At 8:53 PM +0200 9/1/03, Christian Renz wrote:
Clemens,

classpath
I guess the proper term would be class library. The path is only where
you look for the libraries :).
It doesn't seem to be the Perl way to limit yourself to one option
only (There's more than one way to do it).
I'd worry less about the Perl way to do it, since we're more 
concerned with the Parrot way to do it, and that's when we have one 
way that's good enough we ship it, so people don't have to re-invent 
the bikeshed, or choose from a half-dozen identically shaped but 
different colored sheds. Which means that we ship a core that's as 
small as feasable, and an add-on pack (which we'll likely also ship 
with the core for an all-in-one install) with the best things we can 
find that are cross-platform enough to be useful.

That means we'll shoot for a good set of networking modules for the 
various RFC protocols, a generic SQL database front-end, an (ick :) 
XML parser, a variety of cross-platform tools (filename conversions 
and whatnot), a set of xDBM interface modules, and some other stuff.

Don't forget there is an issue of us wanting to be a good core for 
more than just perl. The Python parrot package would have Python's 
standard module set, the Ruby package would have ruby's modules, and 
the Perl package would have the perl modules. There's a fair amount 
of overlap and I expect people both want their modules and *don't* 
want two or three alternate versions of the same modules installed. I 
could be wrong, of course.

GUI stuff's a massive pain, as you either get cross-platform which is 
ugly and awkward everywhere, or platform-specfic and useless anywhere 
but on the platform in question. And I'm pretty sure that, no matter 
*how* Insanely Great the OS X Cocoa interface modules are, they're 
not going to do MSWin folks much good. :)

As for sound... Yeesh. There's a swamp I don't have enough castles for.

However, since we have a good native interface it should mean that 
many modules that now require a compiler for can be done entirely in 
parrot bytecode, which should mean that it's far easier for people to 
install and reduce a lot of the pain. Also we've a fair amount of 
experience in the perl world with network module installation 
systems--we know some things that do work, and some things that 
don't, and I expect we should be able to leverage that to make a 
system better than what we have now. (Which, honestly, is pretty 
darned good, especially given the limited information it has 
available to work with)
--
Dan

--it's like this---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk


Parrot - 100% Gnu.NET ?

2003-09-01 Thread Clemens Eisserer
Hi there!

I´m a java programmer and I´m not really experienced with perl.

But  I´ve searched a long time for a system like .NET that can´t be 
controlled by Microsoft through Patents.
Imagine 10.000 apps need the .NET api ruuning on mono, and microsoft 
permits cloning the .NET api.
Maybe 5000 of these 10.000 apps are unmaintained, and even using these 
apps with an older version of mono would not  be legal.
The other 5.000 will need weeks to create a patent-free version of there 
software, till MS finds another point which could be destroyed using 
patents.
And, after the fist change Mono wont be compatinble to .NET at all, so 
why dont create a patent-free .NET from the beginning.
I searched a long time for such a project, and after all I found it 
where I never expected it: Perl ;-)

I really like languages which are deployed compiled to bytecode, no 
problems with ABI-changes or with compiliers, once compiled link everywhere.
Thats the reason why I linke Java really much, but there are some 
points, which are really showstoppers: *Java isnt free, *Swing is t 
slow to be useful.

In my opinion runtimes only make sence when they dont need to rely on 
native code.
It doesnt make sence that parrot is platform independent and I need to 
link against native libraries through bindings, because perl´s 
classpath lacks e.g. GUI functionality.
Mono solves this problem like Java - they just include every class which 
could be useful. Maybe this design is to heavyweight

Hmm, I talked a too long time to myself, I know ;-)

So, heres my question:

I think  that parrot could be the Gnu-version of .NET and could be a 
realy benefit for the whole opensource-world.  No 20 runtimes need to be 
installed on a system - parrot would do the job better than each could 
alone (Because if many apps rely on parrot the JIT will be tuned by guys 
from IBM ;-) ).
But in my opinion parrot needs a more complete classpath that perl5 
currently has.

Parrot is another level like perl5, perl5 was fine for scripting and 
even bigger apps worked great, bt it never tried to be a complete 
framework for many languages.
Parrot is in my eyes a way to go away from C to higher level languages.

So, my question: Is it planned to include a complete classpath into 
parrot, including gui, network, db, sound functionality or will it have 
only the really needed things like perl5 had?
I know that everything is already available for perl5 installing 
bindings, but in my eyes this doesnt solve the problem.
Many users dont want to install seperat libraries, they simply want to 
use parrot based apps with nice frontends, etc.

I hope I didnt make you angry, and please dont missunderstand me, I 
think what you do is great!

Please let me know what you think about the idea to include a complete 
classpath into parrot.

lg Clemens




Re: Parrot - 100% Gnu.NET ?

2003-09-01 Thread Luke Palmer
Clemens Eisserer writes:
(B Hi there!
(B 
(B I$BB4(Bm a java programmer 
(B
(BUh oh :-)
(B
(B and I$BB4(Bm not really experienced with perl.
(B
(B [...]
(B
(B I think  that parrot could be the Gnu-version of .NET and could be a 
(B realy benefit for the whole opensource-world.  No 20 runtimes need to be 
(B installed on a system - parrot would do the job better than each could 
(B alone (Because if many apps rely on parrot the JIT will be tuned by guys 
(B from IBM ;-) ).
(B 
(B But in my opinion parrot needs a more complete "classpath" that perl5 
(B currently has.
(B
(BThere is a big problem with that: it kinda precludes the whole
(B"community" thing that made everyone love Perl 5.  In particular, CPAN.
(B
(BThe plan for Perl 6, at least, is to include almost nothing in the base
(Bdistribution, so administrators are forced to install some stuff from
(BCPAN order for Perl to be useful at all[1].
(B
(BWe need to harness the community work force of CPAN, for one because we
(Bdon't have the work force ourselves to put together such a library.  But
(Bthe bigger reason is to enable the community to write modules, so we
(Balways have forward progress on the language.
(B
(B Parrot is another level like perl5, perl5 was fine for scripting and 
(B even bigger apps worked great, bt it never tried to be a complete 
(B framework for many languages.
(B Parrot is in my eyes a way to go away from C to higher level languages.
(B 
(B So, my question: Is it planned to include a complete classpath into 
(B parrot, including gui,
(B
(Bmaybe
(B
(B network,
(B
(Byes
(B
(B db, 
(B
(Bno
(B
(B sound functionality 
(B
(Bno
(B
(B or will it have only the "really needed" things like perl5 had?
(B I know that everything is already available for perl5 installing 
(B bindings, but in my eyes this doesnt solve the problem
(B Many users dont want to install seperat libraries, they simply want to 
(B use parrot based apps with nice frontends, etc.
(B
(BAhh, I see what you mean.  You want to distribute your app and parrot
(Band have it Just Work.  You can always include the needed modules in
(Byour distribution and install them when you get there... but that kills
(Bthe platform independence thing.  You could tell parrot to install them
(Bwhen you get there off the CPAN automatically, but from a commercial
(Bstandpoint, that puts all your users in the hands of a -- possibly
(Bmischievous -- module author  (though I don't know any authors who would
(Bdo such a thing, it's still a concern).
(B
(BThere will be a solution to the commercial thing.  One of the (smaller)
(Bgoals of Perl 6 is to be used commercially to some extent.  
(B
(BA bigger goal, though, is to keep the open source support we already
(Bhave.  Including a big default classpath makes people feel like
(Beverything is "easy enough," which, ironically, isn't easy enough.  It
(Bdoesn't motivate people to write/install modules. 
(B
(BSo there you go, we're including everything we need to make the Easy
(BThings Possible, and the community will worry about making them Easy.
(B
(BLuke
(B
(B 
(B I hope I didnt make you angry, and please dont missunderstand me, I 
(B think what you do is great!
(B 
(B Please let me know what you think about the idea to include a "complete" 
(B classpath into parrot.
(B 
(B lg Clemens
(B 
(B 
(B
(B[1] This was a big problem in Perl 5: admins would install Perl, and
(Bassume that it's ready because it already comes with, like, 40 modules.
(BAnd then nobody could use it, because there were no good modules
(Binstalled.