Hacker News new | past | comments | ask | show | jobs | submit login
Bruce Eckel: Rethinking Scala (youtube.com)
61 points by sorokod on April 16, 2015 | hide | past | favorite | 48 comments



I think Eckel sees Scala the way I do, as a somehow incomplete vision of the future of programming, but I was disappointed by this talk. I was hoping to hear some deeper insights into what specifically Eckel would want to rethink about Scala. I don't think he was really able to elucidate what he wants to change. He vaguely mentioned Scala 3, but didn't seem to have looked very deeply into it.

Like others, I was also a bit perplexed by his description of the community. In his descriptions of Python's BDFL, I couldn't help but feel Odersky's leadership was shortchanged a bit. I primarily programmed in Scala for the past year and my experience with the community has been nothing but positive, whether on mailing lists or StackOverflow.

Of course, perception is reality, and even Odersky has spoken on a culture of elitism in Scala in the past. I also think the lack of women in the Scala scene makes a point in itself, as well. I just wish more cogent examples had been provided, because the problems in the community need to be highlighted before they can be solved.

My biggest issue with Scala hasn't been community, but lack of maturity on the project level. The larger Python, JS, and Ruby communities simply have more out there in terms of community contributed content. The tradeoff for me has been that versus the sheer elegance of Scala.

I also think there's a lot of truth to the point that the multiparadigm of ways to do something in Scala leads to each team or organization developing a distinct style, which is unfortunate. On the other hand, Scala code seems have this property of evolution toward succinctness and elegance over time. You may not know how to get it right the first shot, but you'll eventually roll down the gradually sloped pit of success. In JS, by contrast, doing things the right way tends to look almost like an abuse of the language.


I'm disagree with his comparison of scala community to "league of legends". I've found the scala community, especially, the #scala IRC to be friendliest so far. Folks are always there to help you out irrespective of your level of proficiency with language or programming in general


I second that, I don't know where he went, but at least in reddit.com/r/scala people are very nice and helpful, and Martin Odersky visits there frequently and answers questions. I was in touch with several people in the community and from typesafe / EPFL and really don't know where the league of legends comparison comes from.

In any case, I do suggest anyone who haven't seen or tried Scala to give it a shot. It's a fun and productive language. And the community is pretty great in my experience...


I've found the Scala community to be exceptionally helpful and friendly in general, with the occasional you're doing it wrong we know better vibe from a minority. Most of the contention seems to be on forums like reddit programming where 1 or 2 specific (and disproportionately active) users have almost turned Scala-bashing into a profession.


Sorry for the duplicate comment, I submitted after no-procast and apparently got it submitted twice (where did the delete / edit button go? :)


Was this during the period when dibblego was banned?


seems like it


Yes, you right, Scala comunity tend to be friendly and helpful when you want to learn something. But only until you criticize something about Scala :) That's at least my experience. After some critique I even had some private emails saying that "yes, I feel the same" but nobody dared to step in and say it publically. Maybe they just learned the lesson.



These slides seem pretty meaningless on their own. Usually if slides have meaningful information the presentation wasn't very good.


It is helpful for those of us who live in countries where Youtube is blocked.


Not in this case. Those slides don't provide anything on their own.


It gave me the sentiment of the talk, at least, to figure out if I should watch the video at work (where we have our own line to the unlocked internet). I don't feel like I wasted my time going through 30 of them.


I wish most presentations came with transcripts. I can read a hour video transcript in a few minutes. Probably too much to ask for.


Agreed, which is why I posted them. Even though I can access YouTube, video is not a good way for me to consume information at work, and I found I was having trouble getting a general feel for the talk from checking out snippets.


Ya, I really wish more good talks were converted into web essays, like what Bret Victor did between the Inventing on Principle talk and Learnable Programming essay. It is just easier for me to read things, skimming at first, more deeply later, than to sit through a video in one shot. But I'm getting old, I heard younger kids prefer videos exclusively.


That makes sense. I really dislike being linked to slides and not being able to find the presentation. That wasn't the case this time though, since there was a video.


I really don't mind the part about Java where class names and variable names are long and wordy, and camel cased almost to the point that a fully qualified class name, including the package name, becomes something of a run-on sentence.

This part ties directly into the premise of interactive tooling, in that, once you have an IDE with tab completion for all your types and methods, you notice the huge benefit this adds when confronting gigantic but powerful, feature-complete libraries. Doubly so, for a compiled language that can accurately infer syntax integrity as you type, based on compiled binaries that don't require painfully witchy runtime linking against fragile, obscure file system paths.

As long as you don't shoot yourself in the foot (or let some grumpy, adversarial senile developer hobble you) with a horrid, torturous crackpot scheme of reflection and introspection, or stultifying nightmare-mode XML, Java's still pretty damn handy any old day of the week.

There's definitely still an enterprisey, corporate air to the culture of Java, and it can be near as bad as dealing with an obnoxious Oracle DBA, or a smug Dennis Nedry Windows admin, but that's more a political issue than a programmerly issue. Is that the product of an "evil bit" flipped to "true" on a league of legends server? I'm not so sure. Newer languages get a lot of bro-grammers, so I'd say pick your poison...

Just sayin'...


Gratuitous comment about how "rethinking Scala" and "scaling Rethink(DB)" are both valid expressions.


Summarising the content: about 9:10

"virtual machines and garbage collection which when java first appeared were still ridiculous concepts"

So I'm listening to a guy's thoughts on programming languages who apparently never heard of lisp and is seemingly unaware of Guy Steele.

"Our time is much better spent using a high level language..." Which is a sweepingly generalisation for which the exceptions, nuances and caveats are very clear to most reading Hacker News.

I'm stopping now. That's 10 minutes of my life I'm not getting back. If someone thinks this promotes scala please think again, it probably has the opposite effect. If someone was kind enough to point out where the non-ridiculous content actually starts and provide some summary of why it might be worth anyone's time I'd have another look but I think I'll be looking for thoughts on scala elsewhere. Signal to noise far too low for me here. YMMV.

As an aside, promoting a wider popularity for a skill set you already have is usually a good idea professionally. Ask any Perl expert. This is probably has something to do with the vitriol in the "programming language wars." It's nothing new, Dick Gabriel described C as "a virus." Many C++ promoters hate on C reflexively even when they're right. Many Java's hate on C++, Pythonistas on Perl, Haskell on Scala etc etc. Choose life.


> "virtual machines and garbage collection which when java first appeared were still ridiculous concepts" So I'm listening to a guy's thoughts on programming languages who apparently never heard of lisp and is seemingly unaware of Guy Steele.

He clearly states that they were considered ridiculous because of their (perceived) performance - he didn't say people doubted their existence.


They weren't considered such by anyone with any expertise. If he has some he should have said "Falsely considered ..." Or people might think less of his own analysis. People might be wrong to think so due to poor communication on his part..?


Java was notoriously dog slow way into the early 2000s, when the JIT and Hotspot appeared. Before that, criticism about the JVM's performances were completely justified.


Java was not the first, he's touting Java as the first. It wasn't. while you're saying java wasn't even that, it was actually slow as. So we're really not disagreeing here.


From my comment that started this thread:

about 9:10 "virtual machines and garbage collection which when java first appeared were still ridiculous concepts"

Well absolutely, yeah, that's exactly what he did say. Word for word. In direct quotes. With a timestamp so you can go and listen to those exact words.

Spelling it out there were multiple implementations of Lisp with garbage collection that were described by many at the time and afterward as successful and efficient. Guy Steele was on the Java design committee. Yes. No really he was.

Previously, among other things he'd done this: http://library.readscheme.org/page1.html

Now if Mr Eckel just did a bad job in the first 10 minutes but improved and so I was hasty, ok, make that case - I specifically asked about that. If my direct quote is somehow wrong because of context and I missed it, please provide the quote in the wider context. But let's not make this a language wars style "Nyer nyer you're wrong because I said. C is a virus. Perl is line noise any perceived criticism of my favourite tech is evil" or whatever.

Choose life.

If tech is good make its case. This is someone watching something and responding on the front page of HN because they're interested seems like quite a weird reaction to me - others mentioned things about the "scala community" elsewhere in these comments. Maybe this is another example that helps someone's case?


I'm going to assume English is not your first language, because there is no other explanation as to why you can't understand what he's saying.

He is clearly saying that the typical programmer at the time thought virtual machines and garbage collection were ridiculous because of their perceived lack of efficiency.

He never says he agrees with that assessment.

He is simply demonstrating what the common arguments were against Java at the time, and if you were programming back then you know he's correct - plenty of programmers were not convinced, and they were wrong.

> But let's not make this a language wars style "Nyer nyer you're wrong because I said. C is a virus.

This is not a language war. Lisp was my language of choice fifteen years ago, and is still one of my favorites.


I don't know why I'm bothering with this. Forlorn hope of communication? Belief that HN can be worthy? Ridiculous idealism? Character flaw?

Starting 8:57 note this is direct quote, word for word accurate so that all the surrounding context is right there.

"Then java comes along and yes, java had a lot of, um, questionable decisions, but ah, some of the things that were brought along were the idea of virtual machines and garbage collection which when java first appeared were still ridiculous concepts that could never be efficient enough. And there was... And you can see the pattern of argument there's "Oh well it will never be efficient enough." And of course now we've had enough time to not really think about the efficiency of virtual machines and garbage collection it's basically proven - we've had faster and faster hardware and we realize our time is much better spent in um using a higher level language than it is chasing some of the bugs that happen without this kind of stuff." --Bruce Eckel

So there it is. Transcribed and checked. I'm not going mad (or at least this isn't further evidence of it). My assessment in the wider context of the surrounding quote looks completely accurate. Sweeping, nuance free generalization and ignorance of things that existed, commercially prior to Java. You may look at it squarely and decide to revisit your comments. I think he really does agree with the comments he is making himself while he's making them.

I have no idea why you're understanding something else that he isn't saying and putting words in his mouth that aren't there. If he meant something different to what he said, ok, he should have said something different to communicate the different thing, yeah? It doesn't usually pay to make assumptions based on no evidence so I'm not making any.

Revisiting this whole thread it looks about as pointless as the time dropped on the video. I shouldn't tar scala with that brush though, it may not be representative of either the language or its community.


I'm afraid that it does seem to me as if you have misunderstood what Eckel said. He doesn't claim that Java introduced virtual machines, or that virtual machines were too slow to use, he claims that Java introduced virtual machines to a new audience who thought they were too slow to use.


But forgot to say "to a new audience" ?? But you knew what he meant because? He really didn't say it. What he said is actually what he said.

Yeah ok, so I'm wrong every downvote proves it as does all these responses reacting to things that literally were not said. I think we really can call this whole post, thread and all discussion of it a total bust.


> Java was not the first, he's touting Java as the first.

He did not say this.

You are imagining it. Re-watch the video if you don't believe me.

You're getting tripped up by the fact that he's talking about popular languages, not languages in general. Java was the first time most of the people who only ever did their work in C and C++ encountered virtual machines and garbage collection.


Garbage Collection and Virtual Machines are unrelated concepts.

UCSD Pascal (which was widely known in the 80s) had a virtual machine, but no GC.

Maclisp had GC, but no virtual machine.


Anyone downvoting this might do better to explain why lisp garbage collection sucked and why so many people claimed it didn't before java was thought of. Downvoting rather than replying is lame. This is a respectful comment.

Note also I deliberately used direct quotes. If they are unfair please find something that isn't vague to demonstrate that.

Edit: Noting more downvotes received and no more replies. Is this language wars? Do you thin this is the scala community? The only reason I would have tried the video and posted here is due to an interest in scala and I've really tried to be fair in my responses. No matter, life is too short to waste more time on it.


As someone who started programming as a teenager in the 90s, Lisp wasn't on my radar until the mid-2000s. I think you have to acknowledge that regardless of what the Lisp/academic scene had accomplished, these advances simply hadn't made it to mainstream development. To me, there's truth in the talk, because it mirrors what I experienced, although I know actual history to be different in the broadest sense. I know now about Scheme, Self, Smalltalk, etc, but it's clear they simply weren't exerting that much influence on early web developers or desktop developers of the time.

I don't know why you're getting downvoted, but I do think people are disagreeing with you simply because their experience is like mine. These concepts weren't truly novel when they went mainstream in the 2000s, but they were new to many.


That's entirely reasonable. But we're talking about someone who is being held up as an expert not knowing better. I'm told (I wasn't there either) that Lisp had considerable traction in commercial implementations in the enterprise before java was thought of. Dick Gabriel says so, he was there. So does Jamie Zawiniski who was also there and there are a few others so I think on the balance of probability that it's probably so. But yeah, I wasn't there.

Guy Steele is a genuine programming language expert who designed Scheme with Gerry Sussman, wrote the standard common lisp texts, the C reference manual and so on.

"We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp."

- Guy Steele, Java spec co-author

http://www.paulgraham.com/quotes.html

I'm not claiming expertise on Java, VMs, Lisp and programming languages in general and don't pretend to be. I've picked up that much but Mr Eckel hasn't. So does that fact that he has missed such a basic count for the expertise of this presentation on programming languages or against it? But maybe Mr Eckel has a lot friends who like to downvote any criticism of his presentation however reasoned and respectful? Maybe he's a lovely guy and mostly does a lot better?

edit: minor spelling & grammar


The Steele quote was to a Lisp audience. They were a bit unhappy with the things.

Lisp's performance was okay, but it did need a lot of memory in many cases (with a few exceptions). Whenever you developed serious with Lisp in the 80s and early 90s, you had the machines with the most memory around. Using lots of memory then was a delivery problem, because not only the applications were expensive, but also the hardware which was needed to run them. Memory was extremely expensive in the 80s.

Java had some influence from Lisp implementations, but not so much from the virtual machine architecture. Virtual machines in software were not the focus of the Lisp world, which had lots of native code compilers. Smalltalk usually used a VM approach.

Generally Java did not get much from Lisp anyway. Half-way is not true, maybe 10%. Steele worked for SUN because he was a language spec guy (he wrote books and specs).

There were widely used VMs without GC and there were lots of systems with GC, but no VM.


> That's entirely reasonable. But we're talking about someone who is being held up as an expert not knowing better. I'm told (I wasn't there either) that Lisp had considerable traction in commercial implementations in the enterprise before java was thought of. Dick Gabriel says so, he was there. So does Jamie Zawiniski who was also there and there are a few others so I think on the balance of probability that it's probably so. But yeah, I wasn't there.

Mostly on a few American companies.

Lisp Machines were hardly known outside US.

I heard about them at the university for the first time, in the mid-90's and I was already coding since the mid-80's.

Also on the university I got to learn about Smalltalk, Prolog, Caml Light, Oberon, Modula-3. All languages with GC, some of them used for system programing which is still considered an heresy today.

At least on my home country all those languages were considered esoteric by the average developer and seen as something that one is required to use while at university.

I got to learn about them, because one of my focus at the university was in compiler design, so I got to read a lot about language design.

The average programmer without a degree? Not so.


Depends were you lived. I was at an Universities with maybe 20 professor working on AI related stuff. There were a few Lisp Machines. But there were all kinds of machines which had commercial Lisp systems: the University had a site license for Allegro CL. There was LispWorks, MCL, Golden Common Lisp. Earlier there was Lisp on the DEC 10, the VAX 11/780 and 750s.

Industry used Lisp in some projects. Philips medical research for example. Alcatel.

BMW wrote applications in Smalltalk.


In Portugal.


>"virtual machines and garbage collection which when java first appeared were still ridiculous concepts"

So I'm listening to a guy's thoughts on programming languages who apparently never heard of lisp and is seemingly unaware of Guy Steele.

No, you're listening to a guy that has met Guy Steele personally several times and knew about him and Scheme (maybe even before you were born, if you're 20-something), that is making a specific point from a SPECIFIC context (of the enterprise IT at large).

When Java appeared, a VM and GC was laughed at in the huge majority of programming jobs, both for "shrink wrapped" software (where C++ still trumps all to this day) and for enterprise development.

Neither Lisp, nor Scheme or Smalltalk or any VM lanuage had made any great inroads to those areas at the time, so from the context of the software houses/enterprise IT industry it just as if GC and VMs didn't exist at all...


Sorry, but in my opinion, this kind of attitude in software development community is the main reason why we are in useless flame-wars all the time as an industry.

So common pattern: pick something that is totally and utterly irrelevant in regards to main message and dismiss the whole thing so arrogantly.

In my mind this is the root of many problems in our industry and world overall. Big discussion regarding ideas are just not possible, because so many considers The Message as just a combination of words/arguments in isolation, but it is not, it is so much more!


It's Bruce Eckel. He's selling whatever's flavor of the month. The guy switches languages more often than some people chance socks.


Really? I don't think he has been constantly chasing the hot thingy in the past 10 years, stuff like Ruby/Rails, Coffeescript, Clojure, Kotlin, Node, Typescript, F#, Go, Rust, Nim, Elixir, Meteor ...


He was C++, then Java, then he was C++ again then he was Python... Then he wrote about Flex, and now Scala...


I remember reading his blog [0] on Scala 4 years ago, it might be the flavor of the month at that time.

[0] http://www.artima.com/weblogs/viewpost.jsp?thread=328540


God forbid someone sees benefit in a variety of technologies and writes about each of them, sometimes revisiting earlier opinions.


Because the people we really want to hear from are career-long zealots that never cross-learn?


His livelihood is about presenting at conferences and writing books. It's basically his job to dig up new technologies and fake excitement about them. Without that, he's out of a job.


"When the facts change, I change my mind. What do you do, sir?"




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: