Language recommendations from ruby persons

Dear sirs and madames,

I've thrown myself into ruby and I'm having a pleasant time.

Now I am looking to find another language to learn with three features, two
of which Ruby has, and I am looking for your words of advice and guidance.

The features I am looking for are

1)enjoyableness
2)practicalness
3)alternativeness

with a decent nod to

4)not so long a learning curve (hey, I'm from the TV generation; I need
instant kicks).

Ruby does the first two, but now I want to cruise into other dimensions, and
ruby isn't really weird and alternative enough.

I really would like something that makes me think in a very different
manner, and is excellent at solving a range of problems that imperative
languages are not too good at. I would like to be using it a lot for
real-world stuff, like I am Ruby and Delphi.

Now because you guys are tuned to enjoyableness, and probably have a measure
of appreciation of the need for practicality I am hoping that you might give
me some commentary on what you think might be worth looking at.

I've vaguely looked at Ocaml, Heskel, Scheme, Mercury. (Lisp would seem to
wander too far away from simplicity which I reckon probably impacts
enjoyableness, but then someone has said that OCaml isn't so simple but is
very enjoyable; so you can see why I haven't listed simplicity as a
requirement.). I doubt I can go too far off the mainstream since requirement
2 would be impacted. So if anyone wishes to comment on the usual
'alternative' languages, as well as exotic stuff from other galaxies, then I
am very interested.

Of course I have no experience in any of these. I also see little in the way
of languages being compared for enjoyableness. I don't care for performance
tables since performance only solves one problem which Intel and AMD can
solve for me, and I'm more interested in the infinite number of other
problems.

Grateful for any of your wonderful and marvellous thoughts,

Greg

A few ideas:

You mentioned Haskell. It is a very fun language to use once you learn
it. It takes a lot of practice to get used to though. It is more real
world than most people think.

Io. It is very young (and a bit unstable), but it is progressing fast.
If you don't mind the lack of real and up to date docs then you might
want to check out this dynamic prototype based language.

Javascript. It is a very cool language. Like Io in many ways too. If
you can get passed the bad rap of DHTML then this language is very
well designed.

Objective-C is a very nice language. It is even nicer when you pair it
with a nice library like Cocoa. I've not done much with it myself but
I know a few Ruby-ists that also like this language a lot.

Python. Ok ok. It isn't a bad language. If you want something else
from the above Python might be fun... I only recommend this if you
don't like the other choices :wink:

Perl 6. Experimental in the sense the it is still a moving spec. Pugs
does implement a large portion of the current requirements. I would
check it out if you like playing with cool language features. Yes,
Perl is known for the syntax craziness but otherwise Perl 6 offers
some really neat features.

C# might spark your interest as it has others. I personally don't like
it that much.

Smalltalk is a fun language give the right tools. Squeak is a good
playground to check it out.

PHP, ok. now I am just kidding :stuck_out_tongue:

Brian.

···

On 9/18/05, Greg Lorriman <bogus@bogus.com> wrote:

Dear sirs and madames,

I've thrown myself into ruby and I'm having a pleasant time.

Now I am looking to find another language to learn with three features, two
of which Ruby has, and I am looking for your words of advice and guidance.

The features I am looking for are

1)enjoyableness
2)practicalness
3)alternativeness

with a decent nod to

4)not so long a learning curve (hey, I'm from the TV generation; I need
instant kicks).

Ruby does the first two, but now I want to cruise into other dimensions, and
ruby isn't really weird and alternative enough.

I really would like something that makes me think in a very different
manner, and is excellent at solving a range of problems that imperative
languages are not too good at. I would like to be using it a lot for
real-world stuff, like I am Ruby and Delphi.

Now because you guys are tuned to enjoyableness, and probably have a measure
of appreciation of the need for practicality I am hoping that you might give
me some commentary on what you think might be worth looking at.

I've vaguely looked at Ocaml, Heskel, Scheme, Mercury. (Lisp would seem to
wander too far away from simplicity which I reckon probably impacts
enjoyableness, but then someone has said that OCaml isn't so simple but is
very enjoyable; so you can see why I haven't listed simplicity as a
requirement.). I doubt I can go too far off the mainstream since requirement
2 would be impacted. So if anyone wishes to comment on the usual
'alternative' languages, as well as exotic stuff from other galaxies, then I
am very interested.

Of course I have no experience in any of these. I also see little in the way
of languages being compared for enjoyableness. I don't care for performance
tables since performance only solves one problem which Intel and AMD can
solve for me, and I'm more interested in the infinite number of other
problems.

Grateful for any of your wonderful and marvellous thoughts,

Greg

There's plenty of places you can find recommendations for languages.

- this mailing list (the archives will have references to all the ones you meantion, plus other ones such as Io, and D, and boo, and Groovy - of which Io is the only one you might call "far out" - and, oh yeah, Smalltalk)
- practically any programming mailing list :slight_smile:
- http://lambda-the-ultimate.org/ (where language geeks go to be snobby and up-tight)
- esoteric programming languages - Google Search (okay, those probably weren't what you were looking for)
- http://cliki.tunes.org/Programming%20Languages -- This page nicely categorizes them by "paradigms."

Here's two languages you're not likely to find immediately. Presented for no apparent reason.

1. Satan Comes to Dinner in E -- I haven't actually read this paper, but it seems topical, so maybe somebody else will, and provide us a book report. :slight_smile:
2. The Unlambda Programming Language -- The purest, simplest programming language ever, and it's functional, to boot. Smart combination of a few simple constructs allows for a whole world of flexibility.

Have fun.

Devin
APL, Eiffel, Erlang, Haskell, Io, Joy, Lisp, Lua, Mathematica, Mozart/Oz, OCaml, Prolog, REXX, Scala, Scheme, Self, and Smalltalk are all the legitimate, 'alternative' languages that I recognize (by name only, for the most part) from that wiki page, so maybe that makes them more popular. Now get to Googlin'.

Greg Lorriman wrote:

···

Dear sirs and madames,

I've thrown myself into ruby and I'm having a pleasant time.

Now I am looking to find another language to learn with three features, two of which Ruby has, and I am looking for your words of advice and guidance.

The features I am looking for are

1)enjoyableness
2)practicalness
3)alternativeness

with a decent nod to

4)not so long a learning curve (hey, I'm from the TV generation; I need instant kicks).

Ruby does the first two, but now I want to cruise into other dimensions, and ruby isn't really weird and alternative enough.

I really would like something that makes me think in a very different manner, and is excellent at solving a range of problems that imperative languages are not too good at. I would like to be using it a lot for real-world stuff, like I am Ruby and Delphi.

Now because you guys are tuned to enjoyableness, and probably have a measure of appreciation of the need for practicality I am hoping that you might give me some commentary on what you think might be worth looking at.

I've vaguely looked at Ocaml, Heskel, Scheme, Mercury. (Lisp would seem to wander too far away from simplicity which I reckon probably impacts enjoyableness, but then someone has said that OCaml isn't so simple but is very enjoyable; so you can see why I haven't listed simplicity as a requirement.). I doubt I can go too far off the mainstream since requirement 2 would be impacted. So if anyone wishes to comment on the usual 'alternative' languages, as well as exotic stuff from other galaxies, then I am very interested.

Of course I have no experience in any of these. I also see little in the way of languages being compared for enjoyableness. I don't care for performance tables since performance only solves one problem which Intel and AMD can solve for me, and I'm more interested in the infinite number of other problems.

Grateful for any of your wonderful and marvellous thoughts,

Greg

The features I am looking for are

1)enjoyableness
2)practicalness
3)alternativeness

with a decent nod to

4)not so long a learning curve (hey, I'm from the TV generation; I need instant kicks).

Of the top of my head, these are some of the languages that I've got listed to play with at some point in time, or have played with previously (note that I've no production level experience):
Lisp - got playing with this on a very boring business trip (there's an online interpreter somewhere, google for Lisp tutorial). Pros
    - you can do pretty much anything with it (the tutorial leads you through writing your own mini-language for an old school adventure game, it was an eye-opener how easy it was).
    - lots of other languages take ideas from Lisp, so learning Lisp is a good way to expand your knowledge overall (it'll help in many many other areas - again based on my limited exposure)
    - I think from your list it covers 1,2 and 3 (but only in my opinion)
Cons
    - notoriously alternative
    - wierd keywords (car?)
    - braces everywhere!
    - not so easy to learn (not 4 in your list)

ML (Ocaml, New Jersey ML, SML, whatever ML) - spent 3 years with one version of this at uni, an interesting and wonderful language
Pros
    - it's so easy to do stuff that takes a lot of C
    - functional so completely different from mainstream procedural and OO (though I think Ocaml has an object system, the version I learnt on didn't)
    - 1 and 3 from your list covered
Cons
    - not very practical (the version I used had no elegant way to do IO, I guess that's been fixed now, but I haven't looked at it in a long time)
    - learning the language is easy, but the shift to a purely functional style of programming is hard to get at first. I remember being asked to do some stuff in C after 1 1/2 years of SML and thinking, "It's like 3 lines of SML, why the hell is it so much trouble in C", so

Boo (statically typed, .Net language similar to Python), I've only looked at it, I've *never* written a line of Boo code, so these are my initial thoughts
Pros
    - like python, but access to .Net libs
    - very practical
    - very alternative
    - looks pretty easy to pick up
    - Pacman ghost as logo!
Cons
    - not much documentation (like most codehaus projects I've got to say)

Erlang (can't remember who makes this, Siemens, Samsung or someone involved in telecommunictaions)
Pros
    - looks very powerful for when you need high availability in your code
    - thread management model is very very well thought out
    - extremely alternative
Cons
    - maybe not so practical for all domains
    - I'd imagine a steep learning curve (so far I've not had chance to do more than scan the most basic of docs - not even a hello world sample)
    - may not be enjoyable

Eiffel - played with this for the first time about 6 years ago, keep meaning to return to it, but never have the time or motivation
Pros
    - practical (there's even a .Net version so you can access the .Net libs)
    - alternative (ish)
    - can produce very fast code (compiles to native code)
Cons
    - not the most enjoyable experience I've ever had learning a new language
    - quite a bit to learn (different terminology etc)

If you know Java, I'd also suggest looking into the extensions that are becoming available. AspectJ is very cool and as a long-time Java developer, AspectJ was a breath of fresh air to play with. I've got quite a bit of experience of it and I think it's a very useful thing to learn (at the very least the tutorials show how much cleaner you can make your code). XJ from IBM also looks interesting, it's an embedded XML in Java extension, wierd and makes the source code look funky, but I think it may have potential too - currently only works on 1.4 (no generics etc).

Please note I'm not in any stretch a 'rubyist', I'm still learning how ruby works myself, so take all the above with a large pinch of salt.

Kev

···

from my experience, once you get it, it's amazingly powerful and enjoyable

There are lots of choices for 1 and 3, so I'm currently focusing on (2),
and extending my toolkit with languages that play in different spaces.
Currently learning OCaml (compiled, statically typed language), and plan
on following up with Scala (targets JVM and .NET). Both are enjoyable,
and different enough to add a new way of thinking about problems; both
should be attractive to people who like Ruby.

D shows promise, but the last time I looked at it (a month or two ago) I
was disappointed by the state of the libraries, so I'd give that one a
while. Haskell I really enjoyed learning, but I haven't used it for
anything since.

martin

···

Greg Lorriman <bogus@bogus.com> wrote:

Dear sirs and madames,

I've thrown myself into ruby and I'm having a pleasant time.

Now I am looking to find another language to learn with three features, two
of which Ruby has, and I am looking for your words of advice and guidance.

The features I am looking for are

1)enjoyableness
2)practicalness
3)alternativeness

So far nobody has mentioned Unicon.
http://unicon.sourceforge.net/
and see also http://www.drones.com/unicon/

My experience was dabbling in Icon, which is basically no longer
being developed (TTBOMK).

Now I am looking to find another language to learn with three features, two

         [...]

1)enjoyableness

Yes, it is elegant .

2)practicalness

Lots of example usages, because nearly all the icon ones should work.

3)alternativeness

It is goal directed, with backtracking. Statements succeed, or they
fail silently, and this is used in the goal-meeting.

with a decent nod to

4)not so long a learning curve (hey, I'm from the TV generation; I need
instant kicks).

Depends what you are used to. I never really got fluent in it, and
haven't had time to do so, but would like to because I can see it is
powerful.

I really would like something that makes me think in a very different
manner, and is excellent at solving a range of problems that imperative

Yes, goal directed stuff is pretty different. Allows expressing
solutions in a different way from normal.

languages are not too good at. I would like to be using it a lot for
real-world stuff, like I am Ruby and Delphi.

Lots of sample scripts came with Icon, and I think do with Unicon,
but its a while since I looked.

         HTH
         Hugh

···

On Mon, 19 Sep 2005, Greg Lorriman wrote:

Greg Lorriman wrote:

Dear sirs and madames,

I've thrown myself into ruby and I'm having a pleasant time.

Now I am looking to find another language to learn with three features, two of which Ruby has, and I am looking for your words of advice and guidance.

The features I am looking for are

1)enjoyableness
2)practicalness
3)alternativeness

with a decent nod to

4)not so long a learning curve (hey, I'm from the TV generation; I need instant kicks).

Ruby does the first two, but now I want to cruise into other dimensions, and ruby isn't really weird and alternative enough.

I really would like something that makes me think in a very different manner, and is excellent at solving a range of problems that imperative languages are not too good at. I would like to be using it a lot for real-world stuff, like I am Ruby and Delphi.

Smalltalk fits the bill on this point. It's image-orientation and "objects all the way down" approach is very helpful in truly understanding OO programming.

http://www.squeak.org/download/index.html
http://smalltalk.cincom.com/index.ssp
http://www.object-arts.com/Home.htm (Best Windows Smalltalk)
  
The book "Smalltalk-80: The Language" is a great companion:

http://search.barnesandnoble.com/bookSearch/isbnInquiry.asp?r=1&isbn=0201136880

[snip]

···

Grateful for any of your wonderful and marvellous thoughts,

Greg

--
Daryl

"We want great men who, when fortune frowns, will not be discouraged."
     -- Colonel Henry Knox, 1776

Depending on your range of problems and platform:

J (www.jsoftware.com)
FORTH (check Google)

Both are more for bending your mind and professional enjoyment than
"get stuff from a database and show it on the screen". If that is
your "joy", then stick to Ruby and Delphi (both excellent choices, BTW).

Regards,

-mark.

···

On Mon, 2005-09-19 at 06:52 +0900, Greg Lorriman wrote:

I really would like something that makes me think in a very different
manner, and is excellent at solving a range of problems that imperative
languages are not too good at. I would like to be using it a lot for
real-world stuff, like I am Ruby and Delphi.

But, to put in my two cents, it ain't perfect. The language is made up of objects (with methods, properties), and it lends itself quite well to making simple hash-objects which all 'inherit' from the same object. (The 'prototype' property of functions is like Lua's __index metatable property, causing a lookup-chain to be used for specific objects. Despite the name of the property, it is not a 'prototype-based' language, since instances of a 'class' refer to that class, rather than being copies of it.)

However, despite my own love of JavaScript, it ain't pretty in three regards:
1) There's no standalone interpreter (that I know of, and certainly not part of any 'official' distribution), which leaves you at the mercy of WSH or some sort of web-based interpreter[1].

2) Similarly, the core language can do very little on its own. No file IO, no http libraries, no threading, no matrix or math libraries. You're at the mercy of whatever additional libraries your interpreter (or own JS bindings) give you.[2]

3) You can simulate a class, but not too well[3]. (You can use closures to define 'private' and 'protected' methods, but they require new instances of the method functions to be allocated for each instance of the object.) Inheriting one class from another is even more difficult[4].

Lua is powerful because it's bare-bones speedy and simple, but it's not enjoyable to work with as a scripter. Ruby is awesome for the scripter, but (at the moment) too slow to do everything in for CPU-intensive apps. JS is sort of a nice mix between pleasing features and speediness. But only if you have a good interpreter and environment exposing all the native objects you need to get your work done.

Basis for my analysis: I've been programming in JavaScript in web browsers since 1996, and using it in my company's 3D product[5] with JS bindings to C++ native methods[6] for the last year.

[1] Simple JS
[2] http://phrogz.net/ObjJob/objects.asp?langID=4
[3] OOP in JS, Part 1 : Public/Private Variables and Methods
[4] OOP in JS, Part 2 : Inheritance
[5] http://www.anark.com/
[6] http://phrogz.net/ObjJob/objects.asp?langID=11

···

On Sep 18, 2005, at 4:12 PM, Brian Mitchell wrote:

Javascript. It is a very cool language. Like Io in many ways too. If
you can get passed the bad rap of DHTML then this language is very
well designed.

"Devin Mullins" <twifkak@comcast.net> wrote in message
news:432DEC60.7060601@comcast.net...

There's plenty of places you can find recommendations for languages.

hmmm. I didn't ask for other places for recommendations for other languages.
I have already visited many places; I am surprised you did not infer this

I posted in the hope of personal opinions of Ruby programmers specifically,
since they bring a more pertinant spirit to my quest (particularly
enjoyableness).

- this mailing list (the archives will have references to all the ones you
meantion, plus other ones such as Io, and D, and boo, and Groovy - of
which Io is the only one you might call "far out" - and, oh yeah,
Smalltalk)

Seems like you did and didn't read my post at the same time. Very strange.

Here's two languages you're not likely to find immediately. Presented for
no apparent reason.

....I prefer reasons.

1. Satan Comes to Dinner in E -- I haven't actually read this paper,
but it seems topical, so maybe somebody else will, and provide us a book
report. :slight_smile:
2. The Unlambda Programming Language -- The purest, simplest
programming language ever, and it's functional, to boot. Smart combination
of a few simple constructs allows for a whole world of flexibility.

sounds kinda interesting. But is it enjoyable? Is it practical? I was
careful to list what I am looking for quite prominently.

Have fun.

I am trying.

Devin
APL, Eiffel, Erlang, Haskell, Io, Joy, Lisp, Lua, Mathematica, Mozart/Oz,
OCaml, Prolog, REXX, Scala, Scheme, Self, and Smalltalk are all the
legitimate, 'alternative' languages that I recognize (by name only, for
the most part) from that wiki page, so maybe that makes them more popular.
Now get to Googlin'.

? I can't believe my eyes.

Can someone tell me if I am talking to a troll?

···

from my post.

Hi,

Somehow your reply hasn't rendered in Outlook Express, something I've not
personally seen before. It could just be the notorious OE, but I thought I
would mention it in case your mailer needs a tweak.

This is the full content of what OE is showing me (and below that a reply
from what I got from google groups):
==begin
"Brian Mitchell" <binary42@gmail.com> wrote in message
news:fcfe417005091815124e12d234@mail.gmail.com...

···

On 9/18/05, Greg Lorriman <bogus@bogus.com> wrote:

Dear sirs and madames,

I've thrown myself into ruby and I'm having a pleasant time.

Now I am looking to find another language to learn with three features,
two
of which Ruby has, and I am looking for your words of advice and guidance=

==end

.....that's weird, neither is it showing in google :

http://groups.google.com/group/comp.lang.ruby/msg/b80d44a77317b35b

Kev, if I wasn't straight and a catholic I would propose marriage.

Thanks for the great info. I'm now going to re-read what you wrote....

Greg

I'm interested in this tutorial, if you wouldn't mind providing a link. I did some Googling, but couldn't seem to come up with it.

James Edward Gray II

···

On Sep 18, 2005, at 11:32 PM, Kev Jackson wrote:

Lisp - got playing with this on a very boring business trip (there's an online interpreter somewhere, google for Lisp tutorial). Pros
   - you can do pretty much anything with it (the tutorial leads you through writing your own mini-language for an old school adventure game, it was an eye-opener how easy it was).

> Javascript. It is a very cool language. Like Io in many ways too. If
> you can get passed the bad rap of DHTML then this language is very
> well designed.

But, to put in my two cents, it ain't perfect. The language is made
up of objects (with methods, properties), and it lends itself quite
well to making simple hash-objects which all 'inherit' from the same
object. (The 'prototype' property of functions is like Lua's __index
metatable property, causing a lookup-chain to be used for specific
objects. Despite the name of the property, it is not a 'prototype-
based' language, since instances of a 'class' refer to that class,
rather than being copies of it.)

I think that could be argued but no matter. It has prototype features
with other features also available.

However, despite my own love of JavaScript, it ain't pretty in three
regards:
1) There's no standalone interpreter (that I know of, and certainly
not part of any 'official' distribution), which leaves you at the
mercy of WSH or some sort of web-based interpreter[1].

There are javascript libraries on certain platforms but beyond that I
think Rhino can be made standalone.

2) Similarly, the core language can do very little on its own. No
file IO, no http libraries, no threading, no matrix or math
libraries. You're at the mercy of whatever additional libraries your
interpreter (or own JS bindings) give you.[2]

The libraries are lacking, but with some cleverness hard things like
asynchronous execution can be handled with CPS and other nice tools.
I/O is lacking. Good enough to learn still as the DOM is a rich
library in itself (not great IMO but still very useful). Math is poor
but is good enough or can be built upon. Same goes for matrix stuff.

3) You can simulate a class, but not too well[3]. (You can use
closures to define 'private' and 'protected' methods, but they
require new instances of the method functions to be allocated for
each instance of the object.) Inheriting one class from another is
even more difficult[4].

This type of emulation can actually be simplified if your private
etc.. methods are kept in a separate object and delegated to. The idea
is to minimize copying by using intermediate objects that can be
hidden a number of ways (function based closures can be powerful
tools). You probably know this though. Toy around. I am sure you can
find some ways to simplify your class system to make it very painless.
Though, in the end, you probably have more experience than me.

Lua is powerful because it's bare-bones speedy and simple, but it's
not enjoyable to work with as a scripter. Ruby is awesome for the
scripter, but (at the moment) too slow to do everything in for CPU-
intensive apps. JS is sort of a nice mix between pleasing features
and speediness. But only if you have a good interpreter and
environment exposing all the native objects you need to get your work
done.

Lua is good when you need to be practical. I never fell in love with
its tables system. seems too far out of the way for how I think. I
guess I should have mentioned it.. I still only recommend it as an
embedded language.

Basis for my analysis: I've been programming in JavaScript in web
browsers since 1996, and using it in my company's 3D product[5] with
JS bindings to C++ native methods[6] for the last year.

Cool.

[1] Simple JS
[2] http://phrogz.net/ObjJob/objects.asp?langID=4
[3] OOP in JS, Part 1 : Public/Private Variables and Methods
[4] OOP in JS, Part 2 : Inheritance
[5] http://www.anark.com/
[6] http://phrogz.net/ObjJob/objects.asp?langID=11

Brian.

···

On 9/18/05, Gavin Kistner <gavin@refinery.com> wrote:

On Sep 18, 2005, at 4:12 PM, Brian Mitchell wrote:

Greg,

What languages you deem "enjoyable" is very much a personal choice, and one determined only through exploration and experimentation. It sounds like you've explored -- you seem to have a decent list of languages of which you're aware. Now you have to do the second part -- experiment with them.

That's why I didn't answer your question directly. Rather, I latched onto the only context-independent criterion of yours that I found -- "not imperative" -- and gave you a list of non-imperative languages. For me, Ruby's been the most fun language I've run into. 'swhy I'm here. BASIC was fun back in the day. But YMMV.

Yes, my post included humor. Possibly, my sense of humor is different from yours.

APL, Eiffel, Erlang, Haskell, Io, Joy, Lisp, Lua, Mathematica, Mozart/Oz, OCaml, Prolog, REXX, Scala, Scheme, Self, and Smalltalk are all the legitimate, 'alternative' languages that I recognize (by name only, for the most part) from that wiki page, so maybe that makes them more popular. Now get to Googlin'.

? I can't believe my eyes.

What makes you question them? APL? Check extremeprogramming@yahoogroups. There's a guy there who swears by the language.

Can someone tell me if I am talking to a troll?

If by "troll" you mean, "just writing to see what kind of reaction I can get out of you," then, no. If by "troll," you mean, "guy who doesn't type anything of substance," then you've got yourself a matter of opinion, there, and mine would probably be different from yours. Historically, at least, ruby-talk seems to have a opinion of me that lies somewhere between neutral and positive.

Devin

Greg Lorriman wrote:

···

"Devin Mullins" <twifkak@comcast.net> wrote in message news:432DEC60.7060601@comcast.net...

There's plenty of places you can find recommendations for languages.
   

hmmm. I didn't ask for other places for recommendations for other languages. I have already visited many places; I am surprised you did not infer this from my post.

I posted in the hope of personal opinions of Ruby programmers specifically, since they bring a more pertinant spirit to my quest (particularly enjoyableness).

- this mailing list (the archives will have references to all the ones you meantion, plus other ones such as Io, and D, and boo, and Groovy - of which Io is the only one you might call "far out" - and, oh yeah, Smalltalk)
   
Seems like you did and didn't read my post at the same time. Very strange.

Here's two languages you're not likely to find immediately. Presented for no apparent reason.
   
....I prefer reasons.

1. Satan Comes to Dinner in E -- I haven't actually read this paper, but it seems topical, so maybe somebody else will, and provide us a book report. :slight_smile:
2. The Unlambda Programming Language -- The purest, simplest programming language ever, and it's functional, to boot. Smart combination of a few simple constructs allows for a whole world of flexibility.
   
sounds kinda interesting. But is it enjoyable? Is it practical? I was careful to list what I am looking for quite prominently.

Have fun.
   
I am trying.

Devin
APL, Eiffel, Erlang, Haskell, Io, Joy, Lisp, Lua, Mathematica, Mozart/Oz, OCaml, Prolog, REXX, Scala, Scheme, Self, and Smalltalk are all the legitimate, 'alternative' languages that I recognize (by name only, for the most part) from that wiki page, so maybe that makes them more popular. Now get to Googlin'.
   
? I can't believe my eyes.

Can someone tell me if I am talking to a troll?

Greg Lorriman wrote:

"Devin Mullins" <twifkak@comcast.net> wrote in message news:432DEC60.7060601@comcast.net...

...

1. Satan Comes to Dinner in E -- I haven't actually read this paper, but it seems topical, so maybe somebody else will, and provide us a book report. :slight_smile:
2. The Unlambda Programming Language -- The purest, simplest programming language ever, and it's functional, to boot. Smart combination of a few simple constructs allows for a whole world of flexibility.

sounds kinda interesting. But is it enjoyable? Is it practical? I was careful to list what I am looking for quite prominently.

The intersection of practical and interesting may be quite small.

Someone suggested JavaScript; not a bad idea, though probably not different enough from Ruby to really stretch your brain. But, if practical is a major factor, consider jscript.net. You can use Microsoft's version of ECMASscript to write .Net code. (I *think* there is a jscript.net compilier for mono, but I'm not sure.)

But if you are really looking for something that helps you think in a different direction, yet isn't merely academic or weird-for-weirdness sake, try a functional language such as Haskell.

Or consider OCaml; some folks here were discussing ways of writing binary Ruby extensions in OCaml as opposed to C which seemed quite interesting.

Lisp, Haskell, and Ocaml are floating in the back of my own mind as candidates for next language to learn. Lisp has the upper hand so far, because, well, it's *Lisp*. And there are lots of good, free resources for it.

Have fun.

I am trying.

Devin
APL, Eiffel, Erlang, Haskell, Io, Joy, Lisp, Lua, Mathematica, Mozart/Oz, OCaml, Prolog, REXX, Scala, Scheme, Self, and Smalltalk are all the legitimate, 'alternative' languages that I recognize (by name only, for the most part) from that wiki page, so maybe that makes them more popular. Now get to Googlin'.

? I can't believe my eyes.

Can someone tell me if I am talking to a troll?

Well, they do exist and occasionally appear on this list. I suggest that, before you think someone a troll, try to be generous and just assume the poster is not a native speaker of English, and may have only skimmed your original post, and really means well but doesn't always come off well in plain text.

James

···

--

http://www.ruby-doc.org - The Ruby Documentation Site
http://www.rubyxml.com - News, Articles, and Listings for Ruby & XML
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.jamesbritt.com - Playing with Better Toys

Gavin Kistner wrote:

1) There's no standalone interpreter (that I know of, and
certainly not part of any 'official' distribution), which
leaves you at the mercy of WSH or some sort of web-based
interpreter[1].

Microsoft publish the WSH COM interface and by using this
interface it is fairly easy to embbed Java Script into any
application.

This is the same interface used by the Zeus editor to drive
it's Java Script and VB Script macros scripting options.

I would assume it should be quite easy to embbed the Java
Script WSH into a simple Win32 console application, giving
you a basic stand alone enterpreter.

Lua is powerful because it's bare-bones speedy and simple,
but it's not enjoyable to work with as a scripter.

Funnily enough Zeus also offers a Lua as one of its macro
scripting languages :slight_smile:

Jussi Jumppanen
Author of: Zeus for Windows Editor (New version 3.95 out now)
"The C/C++, Cobol, Java, HTML, Python, PHP, Perl folding editor"
Home Page: http://www.zeusedit.com

I would wholeheartedly recomend lisp.
It's definitely alternative
It's more practical than you might have heard
It's not as difficult as you seem to think. Common lisp is big, and yes car
cdr and cons are funny names for functions, but after that the majority of
function names are self explanatory almost to the point of verbosity, and
I've never met a programmer yet who couldn't remember the name of three
functions.
But the most important point is that lisp is fun.
Really really really fun.
So fun that it was the deciding factor in me becoming a professional
programmer. If it wasn't for lisp I would be doing something completely
different for a living right now (maybe teaching English).
I took up Ruby because Lisp is not supported on many servers yet (waiting
for arc), and ruby is as close as it gets in terms of flexibilty,
expressiveness and power. But there are some things that you can only do in
lisp.

I'm paraphrasing/misquoting someone here (probably Paul Graham)

"Lisp turns the easy, boring and tedious task of solving your problem into
the difficult but interesting task of extending the language"

This is the heart of whats amazing about lisp: macros (which are not like
macros in C, so don't even think it.) let you extend and redifine the
language however you want.
And don't worry about the parens, they quickly sink below your conscoius
awareness.

check out www.paulgraham.com <http://www.paulgraham.com> for extremely
interesting lisp advocacy from a man who is a millionaire(or at least very
rich) off the back of lisp.

And I'm sorry to get so fanatical about another language in a ruby list. I
still love you ruby.

···

On 9/19/05, James Edward Gray II <james@grayproductions.net> wrote:

On Sep 18, 2005, at 11:32 PM, Kev Jackson wrote:

> Lisp - got playing with this on a very boring business trip
> (there's an online interpreter somewhere, google for Lisp
> tutorial). Pros
> - you can do pretty much anything with it (the tutorial leads
> you through writing your own mini-language for an old school
> adventure game, it was an eye-opener how easy it was).

I'm interested in this tutorial, if you wouldn't mind providing a
link. I did some Googling, but couldn't seem to come up with it.

James Edward Gray II

James Edward Gray II wrote:

···

On Sep 18, 2005, at 11:32 PM, Kev Jackson wrote:

Lisp - got playing with this on a very boring business trip (there's an online interpreter somewhere, google for Lisp tutorial). Pros
   - you can do pretty much anything with it (the tutorial leads you through writing your own mini-language for an old school adventure game, it was an eye-opener how easy it was).

I'm interested in this tutorial, if you wouldn't mind providing a link. I did some Googling, but couldn't seem to come up with it.

Casting SPELs in Lisp

http://www.lisperati.com/

It is really well done.

James

--

http://www.ruby-doc.org - The Ruby Documentation Site
http://www.rubyxml.com - News, Articles, and Listings for Ruby & XML
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.jamesbritt.com - Playing with Better Toys

"Greg Lorriman" <bogus@bogus.com> writes:

"Devin Mullins" <twifkak@comcast.net> wrote in message

APL, Eiffel, Erlang, Haskell, Io, Joy, Lisp, Lua, Mathematica, Mozart/Oz,
OCaml, Prolog, REXX, Scala, Scheme, Self, and Smalltalk are all the
legitimate, 'alternative' languages that I recognize (by name only, for
the most part) from that wiki page, so maybe that makes them more popular.
Now get to Googlin'.

? I can't believe my eyes.

Can someone tell me if I am talking to a troll?

I don't think you are. If you need a smaller list, let me name you
the languages of above that I personally think are interesting and
worth learning:

APL (actually, go for K), Joy, Haskell, (Common) Lisp, Scheme, Self

Add Prolog (which is too frustrating to me on its own, but you can do
logic programming in Lisp and Scheme rather easily too), and you have
covered about every paradigm in existance.

···

--
Christian Neukirchen <chneukirchen@gmail.com> http://chneukirchen.org