views:

435

answers:

13

It has to be cross platform, have therading and network capabilities, and have cross platform gui support either natively or through bindings.

What is not that importand is IDE support (emacs mode is enough), vast number of libraries (except for those listed above), much documentation (as long it has good tutorial).

So far I looked at haskell, factor, clojure and falcon. Each one of these has its own pros and cons. I would like to hear about more candidates.

I'm not interested in mainstream or semi-mainstream languages like ryby, python, (common) lisp, lua, ...

It should be fun to use, but still allow to make the work done.

EDIT: Another purpose is learning experience, that's why I put some candidates in "no list".

A: 

I know its in your Not list but Python has threading, network capabilities and a host of cross platform gui support.

And its fun to use and allows work to be done.

Ólafur Waage
But I actually already know, that's why it is in "no list"
Dev er dev
It's in the subjective tag so I replied with my subjective answer.
Ólafur Waage
Python is mainstream. Or at least semi-mainstream. :)
ionut bizau
+3  A: 

It sounds to me like you need Erlang.

It has incredibly good threading support, having been designed from the outset to support large (distributed) network applications, where it's quite common to fire up a thread for even the most modest computation.

It's not mainstream (or even semi-mainstream) yet, but get good at it and you could end up programming telephone networks.

Alnitak
+4  A: 

On second thought, don't go for obscurity, but go for a skillset you haven't learned yet.

So, if you haven't tried concurrent languages, try Erlang.

If you haven't tried Declarative languages, try Prolog.

Maybe try a prototyping OO language: Smalltalk (and it's newer variant Squeak)

There's lots of obscure languages at Wikipedia.

At some point you're dead-ending yourself with language overload and it is time to try a new non-language based: Language Processing, Encryption, Data Mining. Those tend to last longer and pay better anyway.

altCognito
Erlang has GUI libraries - the Wings3D modelling programming is written in Erlang.
Alnitak
That's an app, what's the GUI library?
altCognito
That's a question, not a snark, I have no idea, and think it would be helpful to the cause.
altCognito
IIRC, Lua is actually very mainstream in Brazil. Used often for game scripting.
David
Apparently it's ESDL - http://esdl.sourceforge.net/
Alnitak
+3  A: 

Smalltalk, namely the Squeak implementation has all the features you request. It's also quite mature and has a nice community.

As a bonus, you get to work with a pure objective language, which will make your head spin in the beginning, but will teach you a lot about OO in general once you get used to it!

ionut bizau
+3  A: 

I like O'caml a lot...

I don't know if you consider it mainstream or semi-mainstream...

LB
+2  A: 

I'm going to give ADA a chance someday when I get the luxury of spacing out a bit and look beyond Visual Studio.

RA
+1 for ADA, a very interesting language.
Nils Pipenbrinck
+1  A: 

You should try D. For a small hobby project, you might want to be adventurous and try the alpha version, D2 if you can find the libraries you need. Otherwise, stick to the stable D1. Threading support is built into the standard library, and D2 has several features designed to make it easier to get right. For cross-platform GUI, check out wxD (WXWidgets binding), GTKD (GTK binding), DWT (port of Java's SWT) or DFL (native). There's also QTD (QT bindings), but I'm not sure how far along they are. I'm not sure if networking is available for D2, but it's part of Tango for D1. (Tango is an unofficial standard library, a replacement for the official Phobos standard library. If you use D1, you probably want to use Tango. The D1 version of Phobos is very poor, although the D2 version is much improved. Tango has not yet been ported to D2.)

dsimcha
+2  A: 

After using D for quite a while not, I'll have to second D as a major recommendation for this sort of thing. It has everything you're looking for and then some. Working with D is a treat, it has a Java/C++ like syntax with a few custom goodies thrown in. dsimcha covered most of what I wanted to say on the matter...

Straight from the front page for D [ http://www.digitalmars.com/d/ ]:

D is a systems programming language. Its focus is on combining the power and high performance of C and C++ with the programmer productivity of modern languages like Ruby and Python. Special attention is given to the needs of quality assurance, documentation, management, portability and reliability.

and it's no word of a lie.

John T
+2  A: 

I've been doing large, cross-platform applications in Haskell (using GHC), and that's been working out very well for me. It has the most amazing Foreign Function Interface I've ever seen, too. I'd probably use it over C even if I just had to do some trivial gluing of existing C libraries together.

Curt Sampson
+2  A: 

What a golden opportunity to recommend Icon and it's descendant Unicon! :-) The only thing on your list they don't have is native threading. And the Windows builds are some way behind the latest unix builds...

staticsan
+1  A: 

io

Andy Dent
A: 

VB.net or Java (if you don't want to go with Microsoft) for the most part VB is a self documenting language and easier to follow.

If you are serious about programming buy a Programming Languages book. Learn the theory behind the programming and the rest is just syntax.

Nate
+1  A: 

Have you look into the wierd world of BF and LOLCODE types of languages