What's Bad About Julia | Jeff Bezanson | JuliaCon 2019
The Julia Programming Language2 HN recommenders · recommended in 2 months, 2019-2026
37K views · 7 years ago · talk · dated
Julia co-creator Jeff Bezanson candidly lists fundamental problems with the language at JuliaCon 2019, including modularity, types and compiler latency, and how they might be solved.
HN cites it as the language creator's honest account of Julia's weaknesses, useful for anyone evaluating the language.
52:40Keynote. Professor Steven G. Johnson | JuliaCon 2019
The Julia Programming Language
18K views • 7 years ago
1:01:04Introduction to Julia - Part 1 | SciPy 2014 | David Sanders
Enthought
80K views • 12 years ago
35:24The Unreasonable Effectiveness of Multiple Dispatch | Stefan Karpinski | JuliaCon 2019
The Julia Programming Language
79K views • 7 years ago
1:04:53Julia: to Lisp or not to Lisp?
European Lisp Symposium
24K views • 10 years ago
19:12Taking Vector Transposes Seriously | Jiahao Chen | JuliaCon 2017
The Julia Programming Language
7K views • 9 years ago
1:00:28Keynote. Fortress Features and Lessons Learned | Guy Steele | JuliaCon 2016
The Julia Programming Language
15K views • 10 years ago
8:34APL at Julia's Speed | Shashi Gowda | JuliaCon 2016
The Julia Programming Language
3K views • 10 years ago
1:03:31Brian Goetz - Stewardship: the Sobering Parts
ClojureTV
39K views • 11 years ago
26:34Shared memory parallelism in Julia | Kiran Pamnany | Cambridge Julia Meetup (May 2018)
The Julia Programming Language
7K views • 8 years ago
39:46JuliaRobotics: Making robots walk with Julia | Robin Deits
The Julia Programming Language
9K views • 8 years ago
54:55Dconf 2014 Day 2 Keynote: The Last Thing D Needs -- Scott Meyers
The D Language Foundation
19K views • 8 years ago
1:07:00Sydney Golang Meetup - Rob Pike - Go 2 Draft Specifications
Macquarie Group
57K views • 7 years ago
48:19GopherCon 2014 Inside the Gophers Studio with Blake Mizerany
Confreaks
8K views • 12 years ago
58:24#Gamelab2018 - Jon Blow's Design decisions on creating Jai a new language for game programmers
Gamelab Conference
210K views • 8 years ago
1:13:00Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated
LambdaConf
241K views • 1 year ago
12:31OSCON 2010: Rob Pike, "Public Static Void"
O'Reilly
119K views • 16 years ago
8:45Racket: Why I Think It’s a Great Language, and Why I’m Not Using It Anymore
Leandro Facchinetti
19K views • 5 years ago
59:04On the Expressive Power of Programming Languages by Shriram Krishnamurthi [PWLConf 2019]
PapersWeLove
27K views • 7 years ago
2:07:18Demo: Base language, compile-time execution
Jonathan Blow
164K views • 12 years ago
1:05:56Lang NEXT 2014 Panel Systems Programming in 2014 and Beyond
25msr
3K views • 8 years ago
6 comments from Hacker News
Just to clarify the above: 1. I use the term "performance" slightly vaguely. It's comprised of two distinct things: the time it takes to compile the code, and the execution time. The issue is the compilation time: there are certain cases where it's exponential in the number of types which could unify with the callsite's type params. 2. IIRC, Julia compiler has heuristics to ensure things don't explode for common cases. If I'm not mistaken, not only do compile times explode, but certain (very common) things don't even typecheck. There's an excellent video about it by the designer of the language, Jeff Bezanson -- ▶ this video . Note: Julia experts, please correct me if this has been fixed. 3. The difficulty in intuiting which combinations of types will unify at a given callsite isn't theoretical; there are reports of libraries which unexpectedly fail to work together. I want to qualify this statement: Julia is light years ahead of any language lacking multimethods when it comes to library composability. But my guess is that those problems would be reduced with non-symmetric multimethods. 4. The non-symmetric multimethod system I'm "proposing" isn't my idea. They are referred to variously as encapsulated or parasitic multimethods. See link I have huge respect for Jeff Bezanson, for the record!
>I’ve had a lot of frustration with the Julia community being unwilling to see faults in the language. What? It's basically a meme at this point for major contributors to write a list of what they think is bad. The language's creator did a nice Youtube video "What's bad about Julia?" at JuliaCon 2019 ( ▶ this video ), one of my most popular blog posts of all time is "7 Julia Gotchas and How To Handle Them" ( link ), etc. What the community pushes back about is things that are factually incorrect or just silly and repetitive, like the n+1th discussion about 1-based indexing. It's stuff below like, "I want to do an interactive workflow but not use the REPL, so it's not working well"... well the REPL is literally the interactive piece that caches the compilation so just use it if that's what you're trying to do? Yes, nobody has time for that nonsense, but everyone chimes in for real substantive discussions like changing the Base iterator API, programming patterns that would reduce recompilation, etc.
Julia is dynamically typed, but if the compiler can deduce the type of your expressions, it will usually generate specialized code that avoids dynamic dispatch. Getting rid of type instability (as it is called) is usually one of the first things I do when trying to optimize a Julia function. The discussion about C++ lookup rules actually really reminded me of Julia, where functions are quite often overloaded and it is not always trivial to figure out which one should be called. For lack of a better source, there is something about that in this talk: ▶ this video
A good opportunity to point out this Juliacon 2019 video: What's Bad About Julia ( ▶ this video ) TL;DR: Julia is not that bad.
Indeed, and while there is plenty to still be worried about, a lot has been addressed, too. Further we are now starting to see the pay-off with amazing algorithmic innovations being implemented in Julia. We have working code to code automatic differentiation: link Finally, the core team is paying attention to the problems and addressing them. All my top complaints are already mentioned in the laundry list: ▶ this video
The "time-to-first-plot" (compiler latency) problem is something that the Julia gurus know about and are working on. For example, Jeff Bezanson gave a talk [1] at the just-completed JuliaCon that listed this as the first on a list of known problems with Julia. One immediate solution is to use PackageCompiler.jl [2] to build a Julia image that includes a pre-compiled version of the slow code (packages). [1] ▶ this video [2] link