Skip to content
0:00 / 0:00

#julia#compilerlatency#typesystem

What's Bad About Julia | Jeff Bezanson | JuliaCon 2019

The Julia Programming Language

91K subscribers • 17 videos on Hallway

YouTube
  • Recommended by 3 people: 2 on Hacker News and 1 in engineering communities.
  • A classic. People kept recommending it from 2019 to 2026.
  • Presented by Jeff Bezanson, co-creator of Julia
  • Linked in the descriptionJuliaCommunity/YouTubeVideoTimestampsJuliaCommunity/YouTubeVideoSubtitles
  • May be out of date. The tools, versions or practices it shows have likely moved on.
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

37K views7 years ago3 recommendations

Programming languagesSystems programmingLanguage design and type systemsCompilers and interpretersPerformance and optimization

Jeff Bezanson candidly discusses the fundamental design issues, modularity challenges, and compiler latency in Julia.

I'll describe some of the more fundamental issues in Julia today, as I see it, and how we can potentially solve them to get a better language. Contents Welcome! Purpose of the talk Users should speak about their problems with Julia Widely know bad things about Julia Is the presented list of problems exhaustive? Why some problems were chosen as the main topics of this talk Modularity Example of modules we want to keep separate Problem with isolating constructors Types How to handle Missing type in code Compiler problem with some types definitions Opaque method specificity rules First, the most important rule of method specification Second "rule" of method specification Why we have a problem with second "rule" Problem of "X is more specific that Y. Example 1 Problem of "X is more specific that Y. Example 2 Conclusions Q&A: What would happens in the case of circular specification? Q&A: What would happens if specification rules were stricter? Q&A: How many methods need to be write to allow to make specifications rules stricter? (Follow up to previous question.) Q&A: What is the order of priority of fixing well know bad things in Julia? Q&A: What is last big Julia's problem that was fixed, according to Jeff Bezanson? Q&A: How much better or worse world be without unions? S/O to github.com/KZiemian for the video timestamps! Want to help add timestamps to our YouTube videos to help with discoverability? Find out more here: github.com/JuliaCommunity/YouTubeVideoTimestamps Interested in improving the auto generated captions? Get involved here: github.com/JuliaCommunity/YouTubeVideoSubtitles

Why it's here

3 people recommend this

What people say. Recommended as an honest, self-critical look at Julia's limitations and design trade-offs by its creator.

Moments people linked to

u/oilshellin r/ProgrammingLanguages • Recommends

JuliaCon 2019 | What's Bad About Julia | Jeff Bezanson
7View on Reddit

chappi42on Hacker News • Recommends

On “Giving up on Julia (2016)”

A good opportunity to point out this Juliacon 2019 video: What's Bad About Julia ( link to this video ) TL;DR: Julia is not that bad.

seertaakon Hacker News • Recommends

On “Show HN: A physically-based GPU ray tracer written in Julia”

…mber 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 -- link to 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 multimetho…

programming-talkscurated list on GitHubMentions

Under “Julia”

What's Bad About Julia 00:30:39 by **Jeff Bezanson** (2019)

chrispeelon Hacker News • Mentions

On “Julia: Come for the Syntax, Stay for the Speed”

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 link to this video 2 link

Certhason Hacker News • Mentions

On “Giving up on Julia (2016)”

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: link to this video

sischoelon Hacker News • Mentions

On “How C++ Resolves a Function Call”

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: link to this video

ChrisRackauckason Hacker News • Mentions

On “What's bad about Julia?”

>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 ( link to 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 R…

u/seertaakin r/ProgrammingLanguages • Mentions

On “Non-symmetric overload resolution - how awful is it?”

Yes, but there's a big difference between Julia and CLOS: in Julia, overload resolution only considers "specificity" of the arguments, not their position. In CLOS, where two overloads with equally specific arguments (ordering is partial) exist, the tie breaker is to choose the one more specific in the argument that appears more to the left. It's a huge difference, making the type checking algorithm much more complicated, and slower. It's not a theoretical problem.. BTW there's a talk by Jeff Bezanson which illustrates that in some cases, you simply have several possible matches and you typically want to select one. The point I'm making is that asymmetric multimethods provide an answer "by…

u/etregeorgein r/ProgrammingLanguages • Mentions

On “Using compile-time code execution to implement polymorphism”

That sounds like a lot to consider. It's cool you got a PL job though, congrats. Out of curiousity, does your implementation run into a problem with circular specificity? As shown here at 23:30.