Scala Designer Martin Odersky On Next Steps
rfernand79 writes Infoworld has an interview with Martin Odersky, designer of Scala, in which they discuss the future of this popular language. Three versions are discussed as being part of the Scala roadmap: The first one (2.12) focuses on better integration with Java 8, and making use of the latest improvements in the JVM. The second one (Aida) focuses on cleaning up the Scala libraries. But the third one (Don Giovani) is about a fundamental rethink of Scala, with a strong focus on simplicity.
But the third one (Don Giovani) is about a fundamental rethink of Scala, with a strong focus on simplicity.
"Guyth. Let uth dump all the thyntaxth exthept the parens, and put the left one before the thymbol name."
"Hey, man: what's with the sudden lisp?"
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
I had to check two wrong links to actually find the article. I guess my bad for wanting to rtfa.
http://www.ocamljava.org/
"Recursive bipartite matching"- try it!
I really like Scala, but I only use a small subset of all the crazy (and what I consider a bunch of superfluous) language features. Simpler Java with Closures is what is should be. Granted I'm not a language expert/theorist, but most of us that code for a living aren't. Trying to read some of the more esoteric features of Scala leaves me with "I thought it was supposed to make my life easier". When I have to spend an hour looking up syntax to describe what the code is doing - well, that doesn't work for me.
Every time I teach a beginner's course, I am reminded of just how ugly Java really is. Here's a simple example:
- Comparing two "int" variables, you use == .equals()
- Comparing two Integer variables, you probably want
- But it is possible to have two different Integer objects with the same value - this is when you wand ==
- But Java wants to save memory, so in fact == and equals yield the same result for values from -128 to +127
That's one example, but there are lots more. A more advanced example are the generics that disappear when the code is compiled. I understand the arguments for doing it this way, but I disagree with them - if you have generics, you ought to be able to query the types at run-time. There are lots and lots of highly questionable design decisions - basically, 20 years of backwards compatibility.
It's past time to clean house. Building a new language on top of the established JVM technology seems like a very good idea indeed. Perhaps Scala can fulfill this role...
Enjoy life! This is not a dress rehearsal.
I really like Scala, but I only use a small subset of all the crazy (and what I consider a bunch of superfluous) language features. Simpler Java with Closures is what is should be. Granted I'm not a language expert/theorist, but most of us that code for a living aren't. Trying to read some of the more esoteric features of Scala leaves me with "I thought it was supposed to make my life easier".
http://poeme-d-amour-sms.blogspot.com/
It does seem like an attack on Java. We ended-up going with Python for our dynamic customer-edited business rules engine because of the confusion Scala has caused for developers that would have typically before just used Groovy. By attacking Java with this fragmentation attack, real damage is being done to Java. I understand disliking Java, but investing so much of your life to destroy it, and indirectly us, just doesn't make sense.
In other words, don't bother with Scala just yet since we haven't made up our minds about the syntax and will probably start all over.
This isn't even taking into consideration the forking of syntax between Typesafe's Scala and Typelevel's Scala.
I find it amusing when other JVM languages bash Java's baggage while they are young, but then they too get old and find out they created a bunch of baggage themselves. Let me know when you get that binary compatibility between versions of Scala figured out.
Seriously, it's very easy to write code that you yourself can't even understand the next day.
Isn't Python supposed to have suffered from a big revision change? My first thought, when I read about Dr Odersky making revisions is that he would be running into the same problem that Python did. Maybe Scala isn't as widely adopted yet as Pascal was, and he thinks he should fix it now before there would be too big of a flap over it. (Actually, if they're changing Java as I gather they are from the interview, wouldn't that also be a blowback for Java?)
I'm an old timer who has never used any of these new-fangled languages professionally (where new-fangled is anything newer then C), so I'm not trying to editorialize here, just wondering.
In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
Please study Perl 6 and Python 3 before you start "a fundamental rethink" of a useful language.
Python has fractured between 2.x users and 3.x users. I haven't used Java much in the past few years, but I really hope it doesn't make the same mistakes. A programming language doesn't need every feature, especially at the cost of breaking backwards compatibility.
In The press, maybe. In actual use, it seems rather doubtful.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Yes, dynamic languages like Clojure are nice, but so are static ones. I actually consider Scala a dialect of ML, much in the way that Ruby is a dialect of Smalltalk.
Java has changed many times, with careful thoughts to backwards compatibility at the source level. But it's a verbose beast, living in the uncanny valley between dynamic languages and languages with type inference. So, Java essentially has many of the hassles of static typing with few of the benefits.
There hasn't been as much Scala written as Java, and it may never catch up. But I'm sure that the Scalaists care about backwards compatibility, too. There's already too much Scala written for there not to be a "flap." But somehow I think even breaking changes in Scala will be tolerated if they make the language more pleasant. The research being done right now on dependent types is just too exciting.
When other language designers discuss language design, Scala gets laughed at, usually for the performance of the compiler, which is so slow that a couple alternative compile servers and sophisticated incremental systems have emerged to reduce the time. People that write large scale Scala application speak of how many minutes and gigabytes of memory it takes to "warm up" their build servers.
Are you joking?
Rob Pike? The Rob Pike who designed Go, a language stuck in the 80's in terms of type theory? The Stroustrup who "designed" the abomination that is C++ which language pervades industry almost solely because of inertia? I don't believe Andrei has designed any successful language, though he's certainly contributed to the design of D(*). Matsakis doesn't have any track record of language design as far as I can tell, though I'll certainly grant that Rust could end up a "better" language than Scala. ("Better" is subjective anyway.)