News for hackers. Stuff that matters.
Re:Sisal: a functional parallel programming language by Athas on Monday June 27, 2016 @03:43AM (#11984705)
Sisal is one of the true pioneers of high-level parallel programming. It was roughly contemporary with (slightly preceded) NESL[0], another data-parallel language. Sisal was probably simpler and more pragmatic. I'm not sure why none of these languages ever left the confines of academia. I have tried NESL, and it was probably the most natural parallel programming experience I've seen. Perhaps performance was sub-par in practice?

A modern "spiritual successor" (if you squint a bit) of Sisal is Single Assignment C (SAC), which despite its name, is a pure functional language. SAC is also undeservedly obscure, although that is possibly a result of the compiler being closed source.

[0]: https://www.cs.cmu.edu/~scandal/nesl.html [1]: http://www.sac-home.org/

Re:Sisal: a functional parallel programming language by pjmlp on Monday June 27, 2016 @04:32AM (#11984851)
Back in the 90's when I was at the university I got hold of a book describing a Lisp based language for parallel computation.

It was a very interesting book about a computer architecture that thanks to the FP abstractions would, in theory, allow the users to get automatically scaling for free.

Something like Clojure parallel abstractions, but that was a Lisp Machine like environment, not a plain language runtime.

However I cannot recall anything else about the book, other that the book cover might have been a green one.

Re:Sisal: a functional parallel programming language by Athas on Monday June 27, 2016 @04:38AM (#11984869)
It might have been *Lisp (StarLisp) for the Connection Machine. Incidentally, the Connection Machine also seems to have been one of the main platforms for NESL (which might explain why NESL went nowhere...).
Re:Sisal: a functional parallel programming language by kgwgk on Monday June 27, 2016 @05:23AM (#11985009)
Re:Sisal: a functional parallel programming language by agumonkey on Monday June 27, 2016 @12:50PM (#11987454)
A few videos on youtube, I enjoyed this one https://www.youtube.com/watch?v=IjmostrFetg
Re:Sisal: a functional parallel programming language by pjmlp on Monday June 27, 2016 @05:47AM (#11985076)
My memory is a bit fuzzy in that regard, but it looks like that one.

Thanks for pointing it out.

Re:Sisal: a functional parallel programming language by dang on Monday June 27, 2016 @06:21PM (#11989986)
That sounds to me like Gary Sabot's ‘Paralation Model’.

https://www.amazon.com/Paralation-Model-Architecture-Indepen...

Re:Sisal: a functional parallel programming language by yxhuvud on Monday June 27, 2016 @03:56AM (#11984737)
Perhaps people are turned off by the language being way more verbose than is necessary. Why would anyone want to type out that it is a function and the name of the function again when closing the definition of said function?
Re:Sisal: a functional parallel programming language by etatoby on Monday June 27, 2016 @04:12AM (#11984797)
> the name of the function again when closing the definition

I think that's just a comment. It follows '%' as in TeX.

But yes, nowadays programmers tend to love concise syntax (myself included), not to mention elegant syntax, which is ever harder to define.

For example we make a big deal about being able to type 'x => x * 2' instead of 'function (x) { return x * 2; }' in Javascript, or '[]' instead of 'array()' in PHP. One of the draws of ML-derived functional languages (such as Haskell) and maybe APL-derived ones is the fact that they are very much 'shorthand' programming languages.

At the same time, one should not stop at the syntax, but try to understand the ideas behind a programming language. Syntax can always be improved with a bit of aesthetic sense, but good ideas are hard to come by.

Re:Sisal: a functional parallel programming language by prodigal_erik on Monday June 27, 2016 @07:25AM (#11985458)
It's hard to beat Haskell operator sections where you can just write

  (* 2)
and get an anonymous function that does

  \x -> x * 2
Re:Sisal: a functional parallel programming language by RodgerTheGreat on Monday June 27, 2016 @07:57AM (#11985568)
In K, you could just say

  2*
Re:Sisal: a functional parallel programming language by pathsjs on Monday June 27, 2016 @11:26AM (#11986766)
In Scala and in Factor too! ;-)
Re:Sisal: a functional parallel programming language by gizmo686 on Monday June 27, 2016 @08:27PM (#11990615)
It would be nice if Haskell could figure out (-) functions; as it is, it always consider things like (- 2) to be a number, not a function (even when only a function would typecheck).
Re:Sisal: a functional parallel programming language by prodigal_erik on Tuesday June 28, 2016 @11:47PM (#11999356)
ML might have had the right idea, using op~ for unary negation and op- for binary subtraction. I definitely would not want parsing to depend on type declarations; that's a slippery slope towards Perl...
Re:Sisal: a functional parallel programming language by gizmo686 on Wednesday June 29, 2016 @12:06AM (#11999425)
I suspect that you could do this already using typeclasses. We want (-2) to be a function of the type `Num a => a -> a`, so we could, in theory, make functions of this type an instance of Num.

I do not immediately see this causing problems for correct programs, but it would probably lead to horribly confusing problems in incorrect code, including converting some type errors into runtime errors.

A simpler approach is to say that you can not have a space after the unary "-", so (-2) parses to a numeric literal, and (- 2) parses to a function.

Re:Sisal: a functional parallel programming language by pjmlp on Monday June 27, 2016 @04:34AM (#11984857)
If APL was released today it would be probably a huge success.
Re:Sisal: a functional parallel programming language by kqr on Monday June 27, 2016 @04:58AM (#11984940)
Not at all. Syntax is only the first step. Then comes imperativeness. If you can't write what's essentially Java code in its syntax, it's not going to be a thing.
Re:Sisal: a functional parallel programming language by preordained on Monday June 27, 2016 @11:58AM (#11987016)
Agreed. You have your bits of logic that are great for a functional sort of style...map and fold and transform this data...then sometimes you have a script-like area that really benefits from an imperative style...open this, save this off, close this, if error do this, etc.
Re:Sisal: a functional parallel programming language by dangerlibrary on Monday June 27, 2016 @11:14AM (#11986681)
A closed source compiler is a non-starter for anyone looking to use a language for any purpose beyond tinkering / play.

I wouldn't call it undeservedly obscure.

Re:Sisal: a functional parallel programming language by meetapoorvgupta on Monday June 27, 2016 @11:25AM (#11986758)
CMU uses SPARC for their Parallel Algorithm Design course: http://www.parallel-algorithms-book.com/ I wonder how that compares.
Re:Sisal: a functional parallel programming language by p1esk on Monday June 27, 2016 @04:38AM (#11984871)
SAC looks like a dead project, the last release posted Feb 2014.
Re:Sisal: a functional parallel programming language by Athas on Monday June 27, 2016 @04:42AM (#11984887)
It's not dead, it's just... deliberate. Development is supposedly occurring inside a (non-public) source repository, according to a developer I spoke to recently.
Re:Sisal: a functional parallel programming language by p1esk on Monday June 27, 2016 @04:54AM (#11984925)
You mean they just want people to think their project is dead, while they secretly keep working on it? I don't get it...