# Interesting (new) programming languages

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

## 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 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 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 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 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 on other sites
Quote:
 Original post by TelastynThe 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 HelloWorldexport Executable                           run(args:String...):() = do      println("Hello, world!" )  endend

• 11
• 20
• 12
• 10
• 38
• ### Forum Statistics

• Total Topics
631400
• Total Posts
2999862
×