Haskell doesn't run on the JVM and has publically stated that it is a
research language which will always side with ideology instead of
practicality, when forced to choose. I commend this approach, but it
also means that Haskell, unlike Scala, has pretty much no chance of
becoming a viable language for java folk to move to.

I personally think Scala is equally academic, regardless of the
Posse's ravings about it, because Scala is a complete opposite to java
in one crucial aspect:

Compiler Warnings.

Java's compiler warnings tend to make sense - in 99% of the cases you
know where you need to look to fix it. Scala's suck. They tend to
point out a completely unrelated error on a line that isn't anywhere
near your actual typo half the time. And this isn't an issue of
improving scalac or the AST builder either: Its an endemic part of
scala itself. All those shiny implicit defs, cartoon swearing
shortcuts, and extreme lenience and flexibility in operators (such as
the . for method calls being optional, or letting methods that end in
a colon be right-associative) means that the problem is fundamental
and unfixable. Its certainly one way to go, but it means that you must
pretty much figure out on your own dime what went wrong. The compiler
just cannot give you meaningful hints, because even the slightest typo
or misunderstanding results in code that is equidistant from a number
of different meanings. When this is true, no amount of compiler smarts
can help you figure out what went wrong. The best Scala can do, with a
very advance AI, is generate a list of different interpretations that
could all have been realisitically meant by the programmer, and
provide a nice frontend for you to browse through these. You'd have to
change the entire basis of how we work with code now (red wavy
underlines don't make much sense if there's a set of different
locations for them) - lots of productivity loss there.

Haskell actually understands this a little, and has added a number of
seemingly arbitrary rules to reduce the complexity of the compiler.
For example, while Haskells type system is extremely latent (it infers
just about every type. So you still have Strings and Lists, but you
never need to type that, the compiler basically traces the time you
create a List and chases the object reference through the entire code
base to assign types. I'm oversimplifying, but you get the point,
hopefully) - but it does ZERO type coercion. "5 == 5.0" isn't legal
haskell code because you can't compare integers and doubles. You must
cast one of them first.

Haskell's current compiler is just as unintelligble if you screw up as
Scala's, but I see a future where Haskell's compiler can give you some
moderately sensical problem solving hints. I do not see this future
for Scala.


On Nov 23, 2:21 pm, Hairless_ape <[EMAIL PROTECTED]> wrote:
> I want some talk about Haskell in the Java Posse!
>
> Screw Scala, talk about Haskell instead.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to