Reinier, I'm currently collecting opinions on CAL: http://labs.businessobjects.com/cal/
Do you have one? It seems interesting, it is inspired by Haskell, it has plenty of docu, it even has an Eclipse plugin with auto-completion. But it seems otherwise closer to dead -- at least judging from the discussion list activity and the Google results. But I just started looking into it, I haven't really done my share of research yet -- I'm really trying to get someone else to do it :-) Peter On Mon, Nov 24, 2008 at 8:52 PM, Reinier Zwitserloot <[EMAIL PROTECTED]> wrote: > > 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. > > > -- What happened to Schroedinger's cat? My invisible saddled white dragon ate it. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
