Sign in to follow this  

Interesting (new) programming languages

This topic is 3458 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Since the code I wrote/am writing for my bachelor thesis makes use of automatic parallelism using OpenMP, I have become interested in languages that support implicit parallelism. So, today I was browsing the web trying to find current developments, and I found this one: Fortress: Sun's entry in the HPCS program. This one is very interesting IMHO. Although I'm a "Java hater", this language is absolutely great. Very nice operator overloading syntax, nice mathematical notation, support for task and data parallelism etc. The other HPCS program languages Chapel (Cray) and X10 (IBM) are interesting as well, though the notation isn't quite as nice as Fortress. Anyways, do you know any other interesting programming languages (not necessarily for parallel programming and not necessarily new, but no languages like Brainfuck and Malbolge please ;) )? Or comments on Fortress? Some others that come to mind are D (nice improvements over C++, but not big enough of an improvement to be worth the time, IMHO), Erlang (seems to be very good for network programming) and C++0x (ok, just a new standard, but with many much needed improvements, that is--if you're not using boost :P ) http://lambda-the-ultimate.org/node/1277

Share this post


Link to post
Share on other sites
I've been looking mostly at Scala recently since it's quite close to the toy language I'm making (see journal). At first glance it's overly complex and functionally oriented to be of much practical use.

And I don't have much use for mathematical processing, so Fortress isn't terribly interesting to me either...

Share this post


Link to post
Share on other sites
You can also write non-mathematical programs in Fortress. It's supposed to be a replacement for Fortran and you can also write graphics apps in Fortran, it's simply not the most common use, so why shouldn't Fortress be usable in that manner in the future (as soon as there are appropriate bindings)?

From the FAQ:
Is Fortress a language intended only for high-performance computing?

No. Fortress is a general-purpose programming language. Its support for large-scale parallelism and management of data locality, its use of mathematical notation for syntax, and its static checking of units and dimensions (among other things) make it particularly well suited to high-performance computing.

Share this post


Link to post
Share on other sites
The super/sub-script notation as well as the 'rendering' of it seems (at first glance) to be awkward/complex if not used for mathematical processing.

Share this post


Link to post
Share on other sites
Scala is relatively popular. I don't like it very much though. The syntax annoys me; it tries to be smart and introduces all kinds of exceptions which end up making the hole thing more complex instead of simpler. There certainly are interesting concepts in the language, but it has a strange "hybrid" feeling to it. It seems to often break any expectations of mine regarding its behavior. It looks like C/C++/java/C#, but if you don't put the curly brace at the right position, you get a strange error. Function definitions need to be in the "correct" order (like C++, O'Caml, ML), but class definitions don't (like java, C#). I know these are details, but that "crookedness" seems to permeate the entire language. Anyway, I mentioned it (again) as it does have some popularity and might be of interest to you.

There's Oz, a language designed with multithreading in mind. The threading is still explicit (using the thread keyword), but there's implicit synchronisation thanks to its dataflow variables. I find it a very interesting and clean approach to writing parallel code.

Other than that, there are the true dataflow programming languages, which can (implicitly) parallelize every bit of code. Sisal is such a language.

Share this post


Link to post
Share on other sites
Quote:
Original post by Telastyn
The super/sub-script notation as well as the 'rendering' of it seems (at first glance) to be awkward/complex if not used for mathematical processing.


Why would it be awkward? You don't *need* to use the rendering, and the code can be written in normal ASCII.

Here's a simple hello world which looks pretty standard imho:

component HelloWorld
export Executable
run(args:String...):() = do
println("Hello, world!" )
end
end



Share this post


Link to post
Share on other sites

This topic is 3458 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this