3 ms·
It's a construction set with many pieces which you can combine to make new instruments. Maybe you have a mouldable body which can be made to support one neck an
by Dewie 12y ago
It's a construction set with many pieces which you can combine to make new instruments. Maybe you have a mouldable body which can be made to support one neck and several auxiliary strings... and then you have a harp guitar. Maybe add some tenor strings to that later.
It's a scalable language by design.
- VLM 12y ago"support one neck and several auxiliary strings..." And then as you add more and more features suddenly a case class has 22 and the whole thing crashes down but nobody told you about the 22 airity limit because "the ivory tower says thats bad design and I don't care what the real world needs" and although redesign is simple enough, its kinda shocking. I wonder what other silent spinning propellers can be walked into without warning. Maybe none, maybe lots, but I don't look forward to the ensuing ivory tower tongue lashing because I dared to use it in the real world. Languages shouldn't get in your way. Even if the real world IS doing it wrong, it should at least support you failing with some style and grace. And as the powerpoint shows, that compiler is possibly the slowest compiler I've ever used for a given complexity of task. Really... my project was an internal use only super specialized vaguely crud app using play framework for weird engineering data, but nothing fundamentally shocking or unusual, and a full compile from clean source shouldn't take 7 minutes and 33 seconds. What is that like one second per line of source? Those complaints said, everything worked and it was vaguely enjoyable and interesting although a boring CRUD app does not exactly scratch deeply into the language features. Was a fun experiment, probably wouldn't do it again.
- frowaway001 12y ago> case class has 22 Works fine for me: scala> case class Foo(a1: Int, a2: Int, a3: Int, a4: Int, a5: Int, a6: Int, a7: Int, a8: Int, a9: Int, a10: Int, a11: Int, a12: Int, a13: Int, a14: Int, a15: Int, a16: Int, a17: Int, a18: Int, a19: Int, a20: Int, a21: Int, a22: Int, a23: Int, a24: Int) defined class Foo > 22 airity limit Tons of other languages have limitations like this too. I wonder why people are obsessed with it only when comparing Scala. C#: 16 for Func/Action http://msdn.microsoft.com/de-de/library/dd402862%28v=vs.110%29.aspx http://msdn.microsoft.com/de-de/library/dd402862%28v=vs.110%... Java: 2 (BiFunction<T,U,R>) http://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html http://docs.oracle.com/javase/8/docs/api/java/util/function/..., 255 for methods Plus, it's on the roadmap to get fixed, unlike in most other languages. > 7 minutes and 33 seconds You setup is definitely broken.
- kasey_junk 12y ago>> case class has 22 >Works fine for me: You know quite well that the removal of this restriction is brand new and it would be very easy to encounter it in the wild. Why do you go out of your way to use smarmy tactics to argue against anytime someone who has a legitimate complaint? It would be way more productive to acknowledge the weaknesses and then tell the good story of Scala.
- frowaway001 12y agoThere are valid complaints about Scala, but the complaints from all those HN armchair experts are far removed from it. There is nothing useful to be done except making fun of it.
- kasey_junk 12y agoAre you claiming that there wasn't an arity limit on case classes that you could run into through no fault of your own using the Scala web stack? Or just that if you had to diagnose that problem it shouldn't bother you as it isn't a valid complaint? What would elevate someone from HN "armchair expert" in your mind, such that their complaints were valid? Is it even possible for someone to mention something they don't like about Scala without you immediately dismissing them as not knowing what they are talking about?
- VLM 12y agoThanks, I wanted a public display of how the Scala community treats people having a problem and you did a great job providing a very typical example.