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
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.
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)
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.
Python 3 is fine. It is not a beginner's language anymore though, which may or may not be a defect in itself.
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.
No, I am quite certain that language designers respect Scala. Consider Peter Van Roy, for example, who is a leading expert on programming languages, and the co-author of a very influential book on programming paradigms. He highly recommends Scala.
Yes, compiler performance is an honest complaint from in-the-trenches Scala programmers, but that's a far cry from the "Scala is a joke" headline you use. If it were really a joke, then how could it continue to be used in the large scale applications of which you speak?
Yes, compiler performance is an honest complaint from in-the-trenches Scala programmers, but that's a far cry from the "Scala is a joke" headline you use. If it were really a joke, then how could it continue to be used in the large scale applications of which you speak?
I agree with you completely except your reasoning that using in big applications proves Scala. On the one hand you are right, and on the other, you can say the same thing about any programming language. You can write a huge scalable server in Qbasic if you really wanted to, but it does not mean you should.
Scala attracts/attracted people for a few reasons:
-Not Java, but kind of like Java with more sugar, still compiled, and some easy functional-style magic. Really by simply not being Java but on the JVM, this makes tons of people use it in the real world. Sometimes just comfort, other times to tick internal requirements.
-Easy to understand if you get Java and some bits of functional languages. Very easy if you're coming to the JVM from C#.
-Concurrent programming seemingly made easy, with some cool options thrown in like Actors
-Functional programming. I'd argue this is where the language fails miserably, but that's another discussion.
-Easy to make your own DSLs. Causes the write-only code quite often mentioned in other posts.
Insightfully said, Anonymous Coward.
Thanks for the link.