Re: [IAEP] Which Language?
On Mon, Sep 28, 2009 at 2:36 PM, Bert Freudenberg b...@freudenbergs.de wrote: On 28.09.2009, at 17:36, gerry_lowry (alliston ontario canada (705) 250-0112) wrote: J, like APL, sadly does not get the publicity that it deserves. A fate it shares with other nice languages. Like, err, Smalltalk. I would not be surprised if Roger Hui were willing to create an implementation of J for the XO if that were necessary. Please report back when this is done. Worked for, err, Smalltalk. The current Freeware J will run on the XO in character mode from Terminal. Just download and unpack where you want it to run from. J uses standard graphics libraries, so there is no trouble running it in graphic mode in Gnome. Sugarizing would require further work, particularly if we want to enable collaboration. Eric Iverson, who inherited Ken's IP, is not willing so far to GPL J. I can ask whether he is willing to let Roger Sugarize the Freeware version. - Bert - ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep -- Edward Mokurai (默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر ج) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://earthtreasury.org/ ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
Albert, The original question was about developing Activities for a classroom assignment, with the idea that these Activities could be widely distributed. With these two constraints Python is the winner by default. If you need to write Activities for school you need good documentation on how to use the API's, etc. We have that for Python, the rest not so much. Also, they want to put their Activities on ASLO and make them useable by as many people as possible. Python makes that possible, other options not so much. I don't agree with your performance comparison of Java and Python. If I wrote Read Etexts in both languages my guess is that the Python version would perform better and use less memory than the Java/Swing version. That's because in the Python version Python is just used as a glue language and the heavy lifting is done in GTK. In Java/Swing ALL the work would be done in Java. I have my own gripes about Python but since my own requirements are similar to those Caryl was asking for Python is what I use. James Simmons Date: Mon, 28 Sep 2009 00:43:26 -0400 From: Albert Cahalan acaha...@gmail.com Subject: Re: [IAEP] Which Language? To: cbige...@hotmail.com, Benjamin M. Schwartz bmsch...@fas.harvard.edu, iaep iaep@lists.sugarlabs.org Message-ID: 787b0d920909272143n4a70b259vda1efef8425e4...@mail.gmail.com Content-Type: text/plain; charset=ISO-8859-1 Benjamin M. Schwartz writes: There are other options, such as HTML+Javascript, Squeak, and C/C++, but they each suffer from some combination of reduced functionality, problematic cross-platform guarantees, and increased difficulty of programming. Let's not ignore Python, which suffers plenty: 1. Python has no language standard. The best you can claim is that the language is defined by /usr/bin/python on some random system. There is a history of breaking compatibility with new releases. There exist several Python interpreters actually, which don't run the same code. Python version 3 will probably break your code. 2. Python is a joke regarding performance. You know how Java is often several times slower than C? Java beats Python by 20x or 30x. 3. Python being easy is **your** opinion. (and you're wrong) 4. Python has reduced functionality because it lacks inline assembly. That particular language feature is the door to everything. IMHO there is a limit to the value of universally usable, but if you want to push that goal you can. The most stable interfaces are the CPU instructions, the Linux system call interface, and the X11 protocol. Bring along any interpreter you need, and statically link all the binary executables. If you need Python 2, include a copy. Be sure it doesn't need any /lib/*.so files to run; you can check this by running ldd on the binary. FWIW, plain C is an excellent choice. It's the easiest language. Unless you tolerate FORTRAN or assembly, it's also the fastest. ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
Jim Simmons, in part: The original question was about developing Activities for a classroom assignment, with the idea that these Activities could be widely distributed. If (big IF) J will run on XO, labs is a built in feature of J. Ken Iverson had his stroke at 83 while at the keyboard composing a lab AFAIK. J is free: http://jsoftware.com Gerry ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
On Mon, Sep 28, 2009 at 11:08:56AM -0400, gerry_lowry (alliston ontario canada (705) 250-0112) wrote: Jim Simmons, in part: The original question was about developing Activities for a classroom assignment, with the idea that these Activities could be widely distributed. If (big IF) J will run on XO, labs is a built in feature of J. Since you don't know if J can run on the XO, J is not a good thing to recommend for developing activities on the XO, right? Gerry Martin pgpFasM9s8BSk.pgp Description: PGP signature ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
Martin Dengler: Since you don't know if J can run on the XO, J is not a good thing to recommend for developing activities on the XO, right? Wrong. J is worth investigating. J is so cross platform and so powerful that it is a lifetime useful tool for teaching and for thought. J, like APL, sadly does not get the publicity that it deserves. I would not be surprised if Roger Hui were willing to create an implementation of J for the XO if that were necessary. Gerry ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
On Mon, Sep 28, 2009 at 11:36:03AM -0400, gerry_lowry (alliston ontario canada (705) 250-0112) wrote: Martin Dengler: Since you don't know if J can run on the XO, J is not a good thing to recommend for developing activities on the XO, right? Wrong. J is worth investigating. The question was what language can be used now. You're answering a different question. Gerry Martin pgpR33c3c1uCT.pgp Description: PGP signature ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
Martin wrote: The question was what language can be used now. You're answering a different question. Possibly. Depends on whether J can be used now (or soon). I do not know the answer. Let us assume the answer is no. Then the next relevant J question is whether Roger Hui et al would provide a port for the XO; if yes, the next question is would that port be available in a reasonable time frame? What I do know is that J is a great teaching tool and would meet many needs and can with relative ease present lessons (labs) in both natural language neutral and natural language specific forms according to implementation used by the designer of a given lab: +/ 2 2NB. natural language neutral 4 add =. +/ NB. natural language specific [English] add 2 2 4 Gerry ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
On Mon, Sep 28, 2009 at 02:57:48PM -0400, gerry_lowry (alliston ontario canada (705) 250-0112) wrote: Martin wrote: The question was what language can be used now. You're answering a different question. Possibly. Depends on whether J can be used now (or soon). Only if possibly means yes. You're answering a different question to what language can be [usefully] used now. There are no J bindings for dbus. I can't find any J FFIs. One can't use J to write Sugar activities. J seems interesting enough, but not for a teacher now who wants to teach people now to write Sugar activites now on an XO. Gerry Martin pgpDtWJ4M9E29.pgp Description: PGP signature ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
If all you have is a hammer, it's time to put another nail in the J coffin. Although the J executable is a free (as in beer) download from Jsoftware (the only place I found a downloadable J), with regard to the source code, the J page at http://www.jsoftware.com/source.htm states: Fees Jsoftware licenses source for all the Jsoftware binaries. There are several factors in determining the cost of source licenses. Primary is the source itself: J Engine (portable C); Windows GUI support (C++); and Unix GUI support (Java). Secondary is the scope of use: internal; distributed products; and competitive (to Jsoftware) products. And finally the platforms: Windows; Unix; PocketPC; etc. The price range is from $10,000 to $400,000. Regular updates to our current source levels are available for separate update fees. Sorry 'bout that commission. ;-) -- Ubuntu Linux DC LoCo Washington, DC http://dc.ubuntu-us.org/ ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
On 28.09.2009, at 17:36, gerry_lowry (alliston ontario canada (705) 250-0112) wrote: J, like APL, sadly does not get the publicity that it deserves. A fate it shares with other nice languages. Like, err, Smalltalk. I would not be surprised if Roger Hui were willing to create an implementation of J for the XO if that were necessary. Please report back when this is done. Worked for, err, Smalltalk. - Bert - ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
DancesWithCars wrote in part we have not heard what the project is Let me clarify ... my comments are GENERAL in nature. My preference would be to see the XO ship will several small footprint languages. Each of those languages have their pros cons. From a private e-mail with an IAEP moderator, I wrote in part: XO imo needs to ship with multiple languages ... whereas LOGO may not be a suitable alternative for a general-purpose language, it is hyper suitable as a language for XO end users as a learning tool ~~ as Ken Iverson might call it as a tool for thought. I strongly belief that XO must ship with multiple small footprint language tools for thought and that those tools need to include J, LOGO, LISP, and Forth. ... one can also request from the IAEP community enhancements and extensions that make sense ... does LOGO need to be able to work with a camera image ... in general terms, no ... would the XO benefit from an API that allows extensions for J, LOGO, LISP, Forth, Python, and whatever ... that would be good. Look at Microsoft's .NET Framework ... while it has c# and vb as its foundation languages, it can accommodate many languages and they can all interoperate. In that I do not have a XO and even if I did, at the present, my time is too limited, I have taken the opportunity to add my own thoughts to this thread. I am no Alan Kay. I am no Ken Iverson. OTOH, I have been programming for 40+ years and have taught programming up to the community college level as well as to young people ... thus, I have no doubt that I can offer the occasional useful suggestions and insights. Frequently I quote: If your only tool is a happy, all of your problems tend to look like nails. Please ship the XO with the tools mentioned above so that XO end users and educators who create learning materials for the XO can have their choice of tools for thought. Gerry __ Gerry Lowry, Principal Ability Business Computer Services ~~ Because it's your Business, our Experience Counts! 68 John W. Taylor Avenue Alliston · Ontario · Canada · L9R 0E1 · 705.250.0112 gerry.lo...@abilitybusinesscomputerservices.com http://abilitybusinesscomputerservices.com ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
Correction: brain RAM parity error and/or fetch error in my previous post: Frequently I quote: If your only tool is a happy, all of your problems tend to look like nails. Frequently I quote: If your only tool is a hammer, ... happy ~~ hammer perhaps my brain was thinking XO users will be happy if we give them more than just a hammer. g. ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
Benjamin M. Schwartz writes: There are other options, such as HTML+Javascript, Squeak, and C/C++, but they each suffer from some combination of reduced functionality, problematic cross-platform guarantees, and increased difficulty of programming. Let's not ignore Python, which suffers plenty: 1. Python has no language standard. The best you can claim is that the language is defined by /usr/bin/python on some random system. There is a history of breaking compatibility with new releases. There exist several Python interpreters actually, which don't run the same code. Python version 3 will probably break your code. 2. Python is a joke regarding performance. You know how Java is often several times slower than C? Java beats Python by 20x or 30x. 3. Python being easy is **your** opinion. (and you're wrong) 4. Python has reduced functionality because it lacks inline assembly. That particular language feature is the door to everything. IMHO there is a limit to the value of universally usable, but if you want to push that goal you can. The most stable interfaces are the CPU instructions, the Linux system call interface, and the X11 protocol. Bring along any interpreter you need, and statically link all the binary executables. If you need Python 2, include a copy. Be sure it doesn't need any /lib/*.so files to run; you can check this by running ldd on the binary. FWIW, plain C is an excellent choice. It's the easiest language. Unless you tolerate FORTRAN or assembly, it's also the fastest. ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
Caryl Bigenho wrote: So I have a question for you folks. I am in discussion with a college CS prof who would like to teach beginning programming with XOs. He is interested in trying several different languages, but I am interested in pointing him toward the one that would result in the most universally usable Activities with the idea that his students would be able to write Activities as class projects that could then be widely distributed. ... So...the question is, what should I tell him? At the moment, this is an easy question, and the answer is Python. Specifically, if his students write programs in Python, using only their own code and the modules provided by Sugar, such as PyGTK, NumPy, Pygame, dbus, gstreamer, and telepathy, then their programs will likely run on every deployed version of Sugar. There are other options, such as HTML+Javascript, Squeak, and C/C++, but they each suffer from some combination of reduced functionality, problematic cross-platform guarantees, and increased difficulty of programming. signature.asc Description: OpenPGP digital signature ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
I also did some Fortran, IBM 360 Assembler (failed that one?) Basic was very painful, as had better elsewhere, but did a little project in HS with it, iirc. A local kid has [obsconded with] my Scratch cards, but I've got his stuffed penguin as collateral... 'Insanity is inherited, you get it from your kids', and teachers have so many kids, so they must be very very insane... ;-/ Jerry aka dwc On Sat, Sep 26, 2009 at 2:24 AM, Caryl Bigenho cbige...@hotmail.com wrote: Thanks for the input Gary. I followed a similar path.. Fortran and Basic, then Pascal, then I left the classroom to become a college counselor at the high school I was teaching at. Haven't done much programming since. Alas! Tried Scratch this summer... it's a lot of fun. Caryl Date: Sat, 26 Sep 2009 01:35:59 -0400 Subject: Re: [IAEP] Which Language? From: danceswithc...@gmail.com To: g...@garycmartin.com CC: cbige...@hotmail.com; iaep@lists.sugarlabs.org; support-g...@laptop.org For a college level class, starting with Python (as most Activities are probably Python, and Sugar seems to be implemented in it), but will probably drop into C (kernel and other linux plus application stuff). But Scratch, EToys, Emacs, etc provide some other languages under the hood (even if in another name)... So far the documentation for the languages is lacking, like finding PIL, etc. So they may need to create a documentation addon, as even pydoc is crashing for me... Back in my day it was Pascal, then C, then Java (had to do it myself as a thesis), but I'd already started with SAIL, ALGOL, DEC-10, etc as the first pre-PCs were coming out.. On Sat, Sep 26, 2009 at 12:33 AM, Gary C Martin g...@garycmartin.com wrote: Hi Caryl, On 26 Sep 2009, at 05:00, Caryl Bigenho wrote: On Thursday, Ben wrote in the IAEP list: My feeling is that the most important thing we can do in this area is to make it easy to write Activities that are intrinsically cross- platform. To borrow a phrase, one way to do this is to choose languages, and interpreters, that are incapable of expressing platform dependencies. So I have a question for you folks. I am in discussion with a college CS prof who would like to teach beginning programming with XOs. He is interested in trying several different languages, but I am interested in pointing him toward the one that would result in the most universally usable Activities with the idea that his students would be able to write Activities as class projects that could then be widely distributed. It would be great if they would be, as Ben suggests, cross-platform. By that, I mean usable on the XO-1, XO-1.5, SoaS, live CD, etc. for PCs and Intel Macs. Of course my dream ideal is that they would also be able to be run on the old PowerPC Macs that are still widely used in the public schools, but that is probably too much too hope for. So...the question is, what should I tell him? Python. Regards, --Gary P.S. I can provide more ifs and buts, if you really want, but given the lengths and distractions of some recent threads, I thought I'd just give you the answer, straight up ;-) ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep -- DancesWithCars leave the wolves behind ;-) -- DancesWithCars leave the wolves behind ;-) ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
[IAEP] Which Language?
Hi All, On Thursday, Ben wrote in the IAEP list: My feeling is that the most important thing we can do in this area is to make it easy to write Activities that are intrinsically cross-platform. To borrow a phrase, one way to do this is to choose languages, and interpreters, that are incapable of expressing platform dependencies. So I have a question for you folks. I am in discussion with a college CS prof who would like to teach beginning programming with XOs. He is interested in trying several different languages, but I am interested in pointing him toward the one that would result in the most universally usable Activities with the idea that his students would be able to write Activities as class projects that could then be widely distributed. It would be great if they would be, as Ben suggests, cross-platform. By that, I mean usable on the XO-1, XO-1.5, SoaS, live CD, etc. for PCs and Intel Macs. Of course my dream ideal is that they would also be able to be run on the old PowerPC Macs that are still widely used in the public schools, but that is probably too much too hope for. So...the question is, what should I tell him? Caryl (aka SweetXOGrannie) ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
Hi Caryl, On 26 Sep 2009, at 05:00, Caryl Bigenho wrote: On Thursday, Ben wrote in the IAEP list: My feeling is that the most important thing we can do in this area is to make it easy to write Activities that are intrinsically cross- platform. To borrow a phrase, one way to do this is to choose languages, and interpreters, that are incapable of expressing platform dependencies. So I have a question for you folks. I am in discussion with a college CS prof who would like to teach beginning programming with XOs. He is interested in trying several different languages, but I am interested in pointing him toward the one that would result in the most universally usable Activities with the idea that his students would be able to write Activities as class projects that could then be widely distributed. It would be great if they would be, as Ben suggests, cross-platform. By that, I mean usable on the XO-1, XO-1.5, SoaS, live CD, etc. for PCs and Intel Macs. Of course my dream ideal is that they would also be able to be run on the old PowerPC Macs that are still widely used in the public schools, but that is probably too much too hope for. So...the question is, what should I tell him? Python. Regards, --Gary P.S. I can provide more ifs and buts, if you really want, but given the lengths and distractions of some recent threads, I thought I'd just give you the answer, straight up ;-) ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep
Re: [IAEP] Which Language?
For a college level class, starting with Python (as most Activities are probably Python, and Sugar seems to be implemented in it), but will probably drop into C (kernel and other linux plus application stuff). But Scratch, EToys, Emacs, etc provide some other languages under the hood (even if in another name)... So far the documentation for the languages is lacking, like finding PIL, etc. So they may need to create a documentation addon, as even pydoc is crashing for me... Back in my day it was Pascal, then C, then Java (had to do it myself as a thesis), but I'd already started with SAIL, ALGOL, DEC-10, etc as the first pre-PCs were coming out.. On Sat, Sep 26, 2009 at 12:33 AM, Gary C Martin g...@garycmartin.com wrote: Hi Caryl, On 26 Sep 2009, at 05:00, Caryl Bigenho wrote: On Thursday, Ben wrote in the IAEP list: My feeling is that the most important thing we can do in this area is to make it easy to write Activities that are intrinsically cross- platform. To borrow a phrase, one way to do this is to choose languages, and interpreters, that are incapable of expressing platform dependencies. So I have a question for you folks. I am in discussion with a college CS prof who would like to teach beginning programming with XOs. He is interested in trying several different languages, but I am interested in pointing him toward the one that would result in the most universally usable Activities with the idea that his students would be able to write Activities as class projects that could then be widely distributed. It would be great if they would be, as Ben suggests, cross-platform. By that, I mean usable on the XO-1, XO-1.5, SoaS, live CD, etc. for PCs and Intel Macs. Of course my dream ideal is that they would also be able to be run on the old PowerPC Macs that are still widely used in the public schools, but that is probably too much too hope for. So...the question is, what should I tell him? Python. Regards, --Gary P.S. I can provide more ifs and buts, if you really want, but given the lengths and distractions of some recent threads, I thought I'd just give you the answer, straight up ;-) ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep -- DancesWithCars leave the wolves behind ;-) ___ IAEP -- It's An Education Project (not a laptop project!) IAEP@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/iaep