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 -~----------~----~----~----~------~----~------~--~---
