4 ms·
yeah, the polyglot approach is total in it's coverage, but I haven't experienced how polyglotism works on a team or set of teams. If you look at Odersky's pres
by platz 13y ago
yeah, the polyglot approach is total in it's coverage, but I haven't experienced how polyglotism works on a team or set of teams.
If you look at Odersky's presentation "The Trouble with Types" [1] at Strage Loop 2013, he describes Scala as a "type it to the max language" like haskell, ocaml or F#. He seems to be aware of the complexity problem and proposes a few ways to reduce some of the type complexity.
[1] http://www.infoq.com/presentations/data-types-issues http://www.infoq.com/presentations/data-types-issues
- pron 13y agoYes, I have watched that talk, and Martin Odersky is clearly aware of Scala's problems. If he were to come up with a new language, I would certainly give it a try, but I think it's too late for Scala. BTW, to reiterate some of what's been said in other comments, I am certainly not opposed to using Scala in "Ruby style" projects (though Clojure would be a better option for those, too, IMO); I do, however, think that it's a very bad alternative for large Java projects.
- trailfox 13y agoIn our experience Scala has been a superb alternative for large Java projects. Practical experience vs. your opinion/speculation?
- pron 13y agoCall it educated speculation based on years of experience with similar decisions. How big is the team? How many years of maintenance have you had on those projects? I remember C++ looked pretty awesome for a while. It was certainly great for one-man projects or small team. Then the problems started piling up. Thing is, C++ didn't have any good alternatives (maybe now we'll have Rust); Scala does.
- pkolaczk 13y agoScala is not C++. Scala has much better features to keep complex pieces of code separated from the simple pieces. Also C++ design philosophy was totally different from that of Scala's - C++ values performance over everything else, while Scala's top priorities are correctness and type-safety.
- laureny 13y ago> Scala is not C++. That was not the point. The comparison is that Scala is to Java what C++ is to C. Powerful and flexible but with a lot of baggage that ends up making it impractical.
- trailfox 13y ago> The comparison is that Scala is to Java what C++ is to C. Which is pure opinion/speculation.
- pkolaczk 13y agoNope. C++ is almost a superset of C (there are a few minor differences, but most C programs are correct C++ programs). Even the most basic Scala program is not a valid Java program. They are just two different languages targetting the same platform. If making analogies, a much closer analogy would be to say Scala is to Java what D or Rust is to C++. As of lots of baggage - can you elaborate? Only null comes to my mind and it is never an issue - it was left because Scala is practical. Sure, there are some limitations imposed by the target platform like lack of TCO, lack of efficient suport for tuples/value-types, or RTTI for generics being not powerful enough, but Java-the-language has nothing to do with it. The same limitations apply to Kotlin and Ceylon.
- trailfox 13y agoI think you're confusing Scala and C++.
- virtualwhys 13y agoHe is actually exploring the development of a new language; see the DOT (Dependent Object Types) paper: http://www.cs.uwm.edu/~boyland/fool2012/papers/fool2012_submission_3.pdf http://www.cs.uwm.edu/~boyland/fool2012/papers/fool2012_subm... It will be based on Scala, and similar enough that, if things work out, we could have Scala.next without a Python 2 to 3 glacial transition. Of course, Scala 2.1.x branch is making great strides as is, and AFAIK, the DOT language is still a research project, so not likely that we'll be seeing Scala.next anytime soon.