Scala Collections: Why Not?
InfoQCited 6× on HN, 2015-2020
43K views · 12 years ago · talk · dated
Paul Phillips, a Typesafe co-founder and prolific Scala committer, explains why he walked away from Scala. He critiques the Scala collections library and presents his own design focused on immutability, performance and correctness.
Cited in Scala-skeptic arguments as an insider's critique, and for his alternative collections API design.
1:28:59Psp collections: views and more by Paul Phillips
AI Council
11K views • 12 years ago
50:43Pacific Northwest Scala 2013 We're Doing It All Wrong by Paul Phillips
Confreaks
65K views • 13 years ago
45:03Keynote: The Last Hope for Scala's Infinity War - John A. De Goes
Scalapeño
36K views • 8 years ago
1:54:46Lenses, Folds, and Traversals
Edward Kmett
54K views • 13 years ago
59:03Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17
Dyalog User Meetings
7K views • 9 years ago
6:23Simon Peyton Jones - Haskell is useless
bunidanoable
385K views • 14 years ago
1:09:24Effective ML
Jane Street
30K views • 10 years ago
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
176K views • 9 years ago
1:28:59Clojure for Lisp Programmers Part 1 - Rich Hickey
ClojureTV
25K views • 13 years ago
1:33:37Adventure with Types in Haskell - Simon Peyton Jones (Lecture 1)
jasonofthel33t
69K views • 12 years ago
1:42:53Edward Kmett - Type Classes vs. the World
Boston Haskell
36K views • 11 years ago
1:04:53Julia: to Lisp or not to Lisp?
European Lisp Symposium
24K views • 10 years ago
1:00:58The Next Five Years of ClojureScript - David Nolen
Metosin
19K views • 10 years ago
46:36Type-Driven Development in Idris — Edwin Brady
Scala World
26K views • 11 years ago
51:40Constraints Liberate, Liberties Constrain — Runar Bjarnason
Scala World
44K views • 10 years ago
54:31Does APL Need a Type System? by Aaron W Hsu at #FnConf18
ConfEngine
6K views • 7 years ago
42:31"Datafun: a functional query language" by Michael Arntzenius
Strange Loop Conference
9K views • 9 years ago
53:56Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure
jasonofthel33t
119K views • 13 years ago
1:04:35The Algebra of Algebraic Data Types
London Haskell
27K views • 13 years ago
1:05:51The Functional Programmer's Toolkit - Scott Wlaschin
NDC Conferences
79K views • 7 years ago
6 comments from Hacker News
Before choosing Scala I think you should watch this talk: ▶ this video (note: he's not a troll, he worked 5 years with Scala)
I think all technologies have sharp edges somewhere, and the way to stay afloat in this business is staying alert. Testing assumptions help, be it through quick REPL experimentation or a unit test. JavaScript has some bad fame around unintuitive behavior but you can find these styles of issues in most languages. A random example: Scala. ▶ this video
> I don't want .Where() called on an array to return another array. I want a lazy IEnumerable<T> almost every time. Yes, good point. There is a lot of space to explore in collections API designs, and the LINQ design is just one of them that makes its own tradeoffs (e.g., only have to implement "GetEnumerator()" to get a watered-down monadic experience). Contrast that with the well-meaning but convoluted and buggy Scala collections API (very difficult for novices to create a custom collection due to CanBuildFrom and other tricky stuff). Paul Phillips came up with a pretty neat collections API [1, 2] that provides a nice feature set, including high-performance and typesafe views when you don't really want to wastefully create a temporary collection just to interact with the first 10 elements. [1] link [2] ▶ this video
If you enjoy these types of compiler videos then I would highly recommend the following rants against Scala by Paul Phillips (from TypeSafe and one of the core language contributors). He also talks about wanting to edit abstract syntax trees directly: link ▶ this video
Here's one: link Apart from occasional issues in the community Scala is criticised for being too complex: ▶ this video
(throwaaway here) Before you waste the next few months of your life learning a corrupt programming language: - Typesafe co-founder quits: ▶ this video - link : Paul Dix - Why Node and Scala will dry up: Go will drink their milkshake - I can personally tell you, scala is awful at handling large codebases and is so filled with idioms, you have a difficult time reading it. I remember opening scala code, seeing english, but it felt impossible to decipher. - You feel clever when you write it. No doubt about that. Other programmers and your customers don't care. - Compilation time: It's atrocious, we're talking 1 to 10 minutes to compile web apps. - Package dependencies: You end up incorporating java at the end of the day. Version mismatches. - As for the "functional language" thing, just pick real Haskell or Ocaml. Don't fall prey to scala being a functional language. - You need to rely on a huge, laggy IDE with missing / out of date plugin packages to get autocompletion. On the other hand, Golang: - compiles these massive applications in line 2 seconds. - It's highly lintable. - The syntax is just... dumb. - Yet you don't feel limited at all. - It runs fast-fast-fast without having to rely on JVM. - Familiar syntax... like a hybrid between Python and C - You can import packages from github / git repos, automatically grab dependencies with one command. - The build system and tooling is simple and genius - Autocompletion ( link ) OP: I hope you don't waste your time on a scala ventu