HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Julia: to Lisp or not to Lisp?

European Lisp Symposium4 HN recommenders · recommended in 8 months, 2016-2022
YouTube
24K views · 10 years ago · talk · evergreen

Stefan Karpinski's European Lisp Symposium 2016 talk asks whether Julia is a Lisp. He covers the features it borrows from Lisp, such as macros and closures, and where it departs, including syntax and its type system, with generated machine code shown.

HN commenters recommend it as a brilliant talk on Julia's design and how it is or isn't a Lisp.

Programming language designFunctional programming#julia#lisp#macros#typesystem#languagedesign

13 comments from Hacker News

@travisd2022 · in “From Common Lisp to Julia”

Stefan Karpinski (one of the core Julia contributors) gave a talk (in 2016, so rather dated as far as the Julia syntax and whatnot go) about how Julia is secretly more lisp-y than even lisp & Scheme. The core of this argument is that most language specifications dedicate many pages to defining how arithmetic works, whereas Julia is actually just able to define that in Julia code as part of the stdlib (the implementation just calls out to LLVM intrinsics, but nonetheless, super neat!). `Int64` is actually defined in a Julia file. ▶ this video

RecommendsView on HN
@fault12021 · in “PyTorch: Where we are headed and why it looks a lot like Julia (but not exactly)”

Personally, I think when you write Julia in shorthand form, it looks nothing like ruby or basic. for example, check out parts of the stdlib: link but in the end, julia really is a lisp: ▶ this video

CitesView on HN
@e12e2018 · in “Chicken Scheme 5.0”

I'm a great admirer of Julia, but I doubt it would appeal to those seeking a "true" lisp/scheme. Even if it's has a sane macro system, and much of the same power. You can indeed see s-expressions (search for "s-expression") : link This nice talk mentions a bit on how Julia is (not) a lisp (if I recall correctly): "Julia: to Lisp or not to Lisp?": ▶ this video This might also be of interest: link As well as (maybe) clasp: link

RecommendsView on HN
@e12e2018 · in “Common Lisp homepage”

You might also want to have a look at Julia. It's not really a lisp, but it sits on top of a scheme - and it has a rather interesting, pragmatic type system: "Julia: to lisp or not to lisp?": ▶ this video link Maybe compare and contrast with Maxima?: link

RecommendsView on HN
@e12e2017 · in “A Lisp that runs Python (2016)”

> ... a relatively fast functional language that replaces most of the brackets with indentation. You might like sweet expressions coupled with a common lisp, a scheme or racket: link link ... Or perhaps have a look at Julia: link "Julia - to Lisp or not to Lisp": ▶ this video [ed: and as mentioned below, there's also wisp: link ]

CitesView on HN
@stevelosh2017 · in “Some Insights from a Julia Developer”

> Actually, in general Julia is surprisingly Lispy for a language with Algol-family syntax. It's less surprising if you know there's still a version of the Julia REPL that works with sexpressions: ▶ this video

CitesView on HN
@e12e2017 · in “Back to the Future: Lisp as a Base for a Statistical Computing System [pdf]”

My initial thought was that this was about a project building atop of clasp, like CANDO: link link link But this does seem a bit more like Julia? "Julia: to Lisp or not to Lisp?" ▶ this video Then there's also the Axiom system, which I guess is primarily for symbolic computation, but I don't know if it might make sense to use it as a building block for statistical software? link

CitesView on HN
@e12e2017 · in “Some fun with π in Julia”

I'm not sure if "special language" is a particularly apt description of what Julia is. SQL is a "special" language. At any rate - a lisp-like language with llvm backend, package manager, and a (small, but not trivial) group of users writing real software - what's not to like? I (still) recommend the talk: "Julia - to lisp or not to lisp?", that gives a quick overview of some of the design choices: ▶ this video For me, I like that it has a real story trying to balance "actual integer math" (not this silly machine constrained twos-compliment hack" and "you could conceivably write a ray tracer that wasn't unusably slow" :)

RecommendsView on HN
@e12e2016 · in “A Look at How Traders and Economists Are Using the Julia Programming Language”

Speaking of talks on Julia, I'll again recommend: ▶ this video "Julia: to Lisp or not to Lisp?" from the European Lisp Symposium in May 2016. I found it was rather illuminating on Julia in particular and lisps and programming languages in general.

RecommendsView on HN
@e12e2016 · in “Why is Python slow”

From the linked [lwn] article: "Another example he gave demonstrates the slowness of the C runtime: import itertools sum(itertools.repeat(1.0, 100000000)) That will calculate the sum of 100 million 1.0s. But it is six times slower than the equivalent JavaScript loop. Float addition is fast, as is sum(), but the result is not. Larry Hastings asked what it was that was slowing everything down. Modzelewski replied that it is the boxing of the numbers, which requires allocations for creating objects. Though an audience member did point out with a chuckle that you can increase the number of iterations and Python will still give the right answer, while JavaScript will not." Reminded me about the excellent talk about Julia: "Julia: to Lisp or not to Lisp?" ▶ this video One things he points out early is that both the C99 and the R6RS Scheme spec is 20% numerical. Because correct and (reasonably) fast numbers and arithmetic is actually pretty hard to get right on a computer - if you want to abstract away hardware "short-cuts" and allow for precise arithmetic by default. It will be interesting to see how much type hints (eliminating some of the boxing/unboxing) will help python. And if it turns out to really be a good fit for the language -- everyone wants "free" performance, but transitioning to a (even partially) typed language is certainly not "free". Another point with the above loop, is that ideally, even if it can't be optimized/memoized down to a constant - it really shouldn't have t

RecommendsView on HN
@e12e2016 · in “Nim Programming Language 0.14.0 released”

This reminded me of the recent brilliant talk about design of Julia: "Julia: to lisp or not to lisp?" ▶ this video

Strongly recommendsView on HN
@Flow2016 · in “European Lisp Symposium 2016”

Ah, the Julia talk ( ▶ this video ) was just great. Showing the generated machine code is so hackerish yet so rare these days. :-/

Strongly recommendsView on HN
@krzychukula2016 · in “European Lisp Symposium 2016”

Best talks in my opinion: * link * ▶ this video Notable mentions: * link * link * link I liked OpenGL lightning talk as well: * link

RecommendsView on HN
Clojure for Lisp Programmers Part 1 - Rich Hickey1:28:59

Clojure for Lisp Programmers Part 1 - Rich Hickey

ClojureTV
25K views • 13 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
Practical Common Lisp1:12:10

Practical Common Lisp

Google TechTalks
98K views • 19 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
Clojure for Java Programmers Part 1 - Rich Hickey1:48:13

Clojure for Java Programmers Part 1 - Rich Hickey

ClojureTV
131K views • 13 years ago
"Shen: A Sufficiently Advanced Lisp" by Aditya Siram40:20

"Shen: A Sufficiently Advanced Lisp" by Aditya Siram

Strange Loop Conference
26K views • 12 years ago
The Next Five Years of ClojureScript - David Nolen1:00:58

The Next Five Years of ClojureScript - David Nolen

Metosin
19K views • 10 years ago
Dynamic Languages Wizards Series - Panel on Language Design1:58:46

Dynamic Languages Wizards Series - Panel on Language Design

Eduardo Cavazos
16K views • 14 years ago
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
Adventure with Types in Haskell - Simon Peyton Jones (Lecture 1)1:33:37

Adventure with Types in Haskell - Simon Peyton Jones (Lecture 1)

jasonofthel33t
69K views • 12 years ago
Keynote. Professor Steven G. Johnson | JuliaCon 201952:40

Keynote. Professor Steven G. Johnson | JuliaCon 2019

The Julia Programming Language
18K views • 7 years ago
Simon Peyton Jones - Linear Haskell: practical linearity in a higher-order polymorphic language1:03:34

Simon Peyton Jones - Linear Haskell: practical linearity in a higher-order polymorphic language

Curry On!
19K views • 8 years ago
Effective Programs - 10 Years of Clojure - Rich Hickey1:14:52

Effective Programs - 10 Years of Clojure - Rich Hickey

ClojureTV
176K views • 9 years ago
Philip Wadler  - Propositions as Types (Lambda Days 2016)56:58

Philip Wadler - Propositions as Types (Lambda Days 2016)

Erlang Solutions
20K views • 10 years ago
Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey1:04:16

Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey

Churchill College, University of Cambridge
170K views • 9 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
Racket: Why I Think It’s a Great Language, and Why I’m Not Using It Anymore8:45

Racket: Why I Think It’s a Great Language, and Why I’m Not Using It Anymore

Leandro Facchinetti
19K views • 5 years ago
Stephen Wolfram's Introduction to the Wolfram Language12:56

Stephen Wolfram's Introduction to the Wolfram Language

Wolfram
924K views • 12 years ago
Effective ML1:09:24

Effective ML

Jane Street
30K views • 10 years ago
Clojure in a nutshell by James Trunk32:44

Clojure in a nutshell by James Trunk

Func Prog Sweden
104K views • 5 years ago