HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Keynote. Professor Steven G. Johnson | JuliaCon 2019

The Julia Programming Language2 HN recommenders · recommended in 2 months, 2019-2022
YouTube
18K views · 7 years ago · talk · evergreen

Steven G. Johnson, MIT professor and FFTW co-author, gives a JuliaCon 2019 keynote on metaprogramming and staged programming in Julia, showing how it enables high-performance numerical code and when not to use macros.

Cited for showing how Julia's metaprogramming can beat C and Fortran, along with sound advice not to overuse it.

Python, Ruby & scripting languagesProgramming language designSoftware performance & optimization#julia#metaprogramming#highperformancecomputing#macros#numericalcomputing

7 comments from Hacker News

@IlyaOrson2022 · in “Julia Macros for Beginners”

It is not necessarily better in all cases and should not be overused: ▶ this video However, it is useful to provide a nicer syntax and DSLs. Some examples: link link link

CitesView on HN
@mwattsun2022 · in “Understanding the Power of Lisp (2020)”

When I first started writing asm code, it was accepted to write self-modifying code (programmatically create new code, then jmp to it.) Then I discovered and was told it was a bad idea. So that's how I view Lisp macros - creating code on the fly and executing it. When I was studying this issue, I came across femtolisp, which is a standalone Lisp by the author of Julia, Jeff Bezanson. Julia has metaprogramming so I wanted to look at it. In this video [1] Professor Steve G. Johnson explains metaprogramming (around 10 min mark) and says "most of the time, don't do metaprogramming." He points out in the base Julia there are 36,798 methods, but only 138 macros and 14 generated functions (.04% of the code), so I have the impression it is still frowned upon. [1] ▶ this video

CitesView on HN
@neolog2021 · in “From Julia to Rust”

Julia is great for numerical computing, but it's not as good as it can be, even in that area. Widening the community's base of expertise will help. I'll just list a few things that come to mind. Many Base functions are currently untyped, which means it's hard to abstract out the key properties that enable reuse, compiler optimizations, and parallelism. See [0] for a language expert's take on numerical computing, which involves defining traits like associativity that enable automatic parallelism by default. A stronger culture of functional programming could make your code faster and easier to understand. It's often (though not always) easier for tooling to optimize pure functions over immutable data structures (and arrays). Arrays are currently mutable, and there is too much emphasis on mutating functions. The iteration protocol can be made more memory-efficient for large collections and simpler, following Rust's implementation [1]. Macros are useful for high-performance computing [4], and Julia's macros can be made more composable [2]. In general, systems languages don't make language decisions lightly. They have committees, discuss how other languages do things, make proposals. This allows more perspectives on each decision. That would be an improvement over the more ad-hoc style of Julia development, as long as Julia can avoid adding every possible feature, which is a risk of expanding the decision-making body [3]. [0] link [1] link [2] link [3] link [4] ▶ this video

CitesView on HN
@miguelraz2021 · in “From Julia to Rust”

What is the focus on numerical computing that you think Julia is missing? The ecosystem seems plenty healthy to me. (Maybe PDEs... but those are so close!) It's not uncommon for good Julia codes to smoke Fortran codebases, like the DiffEq verse or with staged programming, see Steven G. Johnson's keynote at JuliaCon 2019: ▶ this video

CitesView on HN
@montalbano2020 · in “CSV Reader Benchmarks: Julia Reads CSVs 10-20x Faster than Python and R”

Agree, but to add, there are many transcendental functions (e.g. I needed to use the Mittag-Leffler function many times in my work) which are near-impossible to implement in Numpy in a way that gives anywhere near usable performance. It's not a common enough function to be pre-implemented in Scipy special functions. In my case, I wrote the algorithm in Numpy/python myself which was almost unusably slow. I then outsourced it to a precompiled fortran program. Finally I just switched to Julia. There was already a library, MittagLeffler.jl which did everything I needed and was written in pure Julia. In the end everything was much faster than the Python/Fortran frankenstein code I had. Edit: For more info on Julia and difficult (computationally) mathematical functions see: ▶ this video

CitesView on HN
@ViralBShah2020 · in “CSV Reader Benchmarks: Julia Reads CSVs 10-20x Faster than Python and R”

You can write slow programs in all languages. There are many cases where Julia's language features enable higher performance than in comparable C libraries. Have a look at Steve Johnson's keynote from JuliaCon 2019: ▶ this video

RecommendsView on HN
@eigenspace2019 · in “JuliaCon 2019 Videos”

If anyone is looking for video recommendations to get started: here’s a couple that I thought were great and should be interesting and approachable to just about anyone. Steven G. Johnson’s keynote address. It’s longer format but really interesting, informative, entertaining and well delivered. The main topic is metaprogramming. ▶ this video Stefan Karpinski’s talk on the unreasonable effectiveness of multiple dispatch. He discusses the fact that Julia has such dramatic code re-use and sharing between libraries and he discusses some reasons why he thinks multiple dispatch is uniquely able to offer this. link

Strongly recommendsView on HN
Introduction to Julia - Part 1 | SciPy 2014 | David Sanders1:01:04

Introduction to Julia - Part 1 | SciPy 2014 | David Sanders

Enthought
80K views • 12 years ago
APL at Julia's Speed | Shashi Gowda | JuliaCon 20168:34

APL at Julia's Speed | Shashi Gowda | JuliaCon 2016

The Julia Programming Language
3K views • 10 years ago
The Unreasonable Effectiveness of Multiple Dispatch | Stefan Karpinski | JuliaCon 201935:24

The Unreasonable Effectiveness of Multiple Dispatch | Stefan Karpinski | JuliaCon 2019

The Julia Programming Language
79K views • 7 years ago
Julia: to Lisp or not to Lisp?1:04:53

Julia: to Lisp or not to Lisp?

European Lisp Symposium
24K views • 10 years ago
What's Bad About Julia | Jeff Bezanson | JuliaCon 201930:40

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

The Julia Programming Language
37K views • 7 years ago
JuliaRobotics: Making robots walk with Julia | Robin Deits39:46

JuliaRobotics: Making robots walk with Julia | Robin Deits

The Julia Programming Language
9K views • 8 years ago
Shared memory parallelism in Julia | Kiran Pamnany | Cambridge Julia Meetup (May 2018)26:34

Shared memory parallelism in Julia | Kiran Pamnany | Cambridge Julia Meetup (May 2018)

The Julia Programming Language
7K views • 8 years ago
Keynote. Fortress Features and Lessons Learned | Guy Steele | JuliaCon 20161:00:28

Keynote. Fortress Features and Lessons Learned | Guy Steele | JuliaCon 2016

The Julia Programming Language
15K views • 10 years ago
Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated1:13:00

Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated

LambdaConf
241K views • 1 year ago
Jonathan Diegelman - Modeling Spacecraft Separation Dynamics in Julia16:04

Jonathan Diegelman - Modeling Spacecraft Separation Dynamics in Julia

The Julia Programming Language
12K views • 5 years ago
Compiling and Optimizing Scripting Languages1:01:37

Compiling and Optimizing Scripting Languages

Google TechTalks
21K views • 17 years ago
Taking Vector Transposes Seriously | Jiahao Chen | JuliaCon 201719:12

Taking Vector Transposes Seriously | Jiahao Chen | JuliaCon 2017

The Julia Programming Language
7K views • 9 years ago
Lecture 1 | Programming Paradigms (Stanford)17:26

Lecture 1 | Programming Paradigms (Stanford)

Stanford
1.2M views • 18 years ago
Understanding the Python GIL46:10

Understanding the Python GIL

David Beazley
127K views • 14 years ago
Making R run Fast - Jan Vitek1:21:39

Making R run Fast - Jan Vitek

John O'Neill
860 views • 10 years ago
Interactive notebooks ~ Pluto.jl | Fons van der Plas | JuliaCon 202023:38

Interactive notebooks ~ Pluto.jl | Fons van der Plas | JuliaCon 2020

The Julia Programming Language
48K views • 6 years ago
Invited Talk - Guy Steele1:07:22

Invited Talk - Guy Steele

ClojureTV
39K views • 9 years ago
"Outperforming Imperative with Pure Functional Languages" by Richard Feldman34:55

"Outperforming Imperative with Pure Functional Languages" by Richard Feldman

Strange Loop Conference
98K views • 5 years ago
Robert Moss: Julia and the Next Generation Airborne Collision Avoidance System32:10

Robert Moss: Julia and the Next Generation Airborne Collision Avoidance System

The Julia Programming Language
4K views • 11 years ago
Keynote: The Last Hope for Scala's Infinity War - John A. De Goes45:03

Keynote: The Last Hope for Scala's Infinity War - John A. De Goes

Scalapeño
36K views • 8 years ago