Keynote. Fortress Features and Lessons Learned | Guy Steele | JuliaCon 2016
The Julia Programming Language0 HN recommenders · 2016–2022
15K views · talk · evergreen · Uploaded 2016-07-10
Guy Steele's JuliaCon 2016 keynote on the Fortress language, its features and the lessons learned from the project.
Cited as the authoritative first-hand account of the Fortress experience and of numerical computing language design.
49:55How Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
Видео с мероприятий {speach!
46:09Why Isn't Functional Programming the Norm? – Richard Feldman
Metosin
1:03:29Maybe Not - Rich Hickey
ClojureTV
7:48Conway's Game Of Life in APL
Dyalog
1:12:56Lecture 1A | MIT 6.001 Structure and Interpretation, 1986
MIT OpenCourseWare
1:42:09Crockford on JavaScript - Volume 1: The Early Years
YUI Library
53:31Growing a Language, by Guy Steele
Bill Pugh
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
3 comments from Hacker News
> It got shelved after Oracle bought Sun. Actually the actual real history is little more complex than that. JuliaCon 2016 (Keynote) | Fortress Features and Lessons Learned | Guy Steele [VIDEO] It would be good if people on HN would separate a bit the Oracle hate with the facts.
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] [VIDEO] [1] [LINK] [2] [LINK] [3] [LINK] [4] [LINK]
I think in the constellation of languages there's still more intersection of "feature dots" between the two than there is disjunction. Multimethods & numerics emphasis alone makes them uniquely similar, as the latter especially is not a feature that has been mined well in other languages. Some of the influence is quite conscious, too, from my reading. And here's a talk by Guy Steele about the Fortress experience, at JuliaCon: [VIDEO]