Posted: Mar 07, 2012 9:25 pm
by VazScep
mizvekov wrote:I don't doubt that, it's just that I have been working a lot with embedded lately, and I am mostly using C / subset of C++, sometimes even assembly, because code size often matters (sometimes only a few kb of flash).
Ah. Yeah. When you have to lug around 10Mb of runtime, you've got a non-starter there. Are things like tinyscheme workable?

VazScep wrote:There is also SCALA, which has many similarities to Haskell, but also has a more familiar syntax and java interoperability, so I think it has much more potential for industry acceptance.
Ack. I worked with Scala for about a month and didn't enjoy a second of it. There's not enough type-inference for my tastes, I found it very verbose, and I think supporting null values is a big mistake (Tony Hoare calls his invention of the null value his "billion dollar mistake"). I'm much more hopeful about F#, which has made far fewer concessions to the OO world and looks far more like an ML dialect. The integration of type-inference into Visual Studio's intellisense makes it a joy to program with, and type inferred units of measure are just awesome.

VazScep wrote:I was pretty obsessed with emulators starting when I was a teen, and when I first learned LISP when I was in college, I looked down on it, probably because it felt less expressive, I was more concerned with runtime performance than I should, and also because it was less widely used/less appropriate for the kind of problems that I was concerned about.
Can I ask which Lisp dialect you were using? If it makes sense to say, I find Common Lisp far too powerful.

Modern c++ has some of these new things, but the syntax for it is clunky, the type system a lot less expressive, and it still suffers from some of the same old flaws, like incomprehensible compiler error messages.
I've seen bits of the syntax for partial application with boost::lambda. It looked pretty line-noisy.