Building Your Own Dynamic Language
Stanford3 HN recommenders · recommended in 4 months, 2009–2014
lecture · advanced · evergreen · 2009–2014 on HN
Ian Piumarta's 2007 Stanford EE380 lecture on building a dynamic programming environment from the ground up, from the Viewpoints Research Institute's work. It covers the design of a language and system with a recursive design, parsing through code generation,…
HN commenters recommend it as a way to understand what the VPRI group considers core, such as supporting any syntax on one JIT compiler and removing boundaries between application and interpreter.
Up next
1 mo on HNA kinder, gentler philosophy of success | Alain de Botton
TED
1 HN recommend · 2009–2021
4 mo on HNStephen Wolfram's Introduction to the Wolfram Language
Wolfram
4 HN recommender · 2014–2015
13 mo on HNRich Harris - Rethinking reactivity
You Gotta Love Frontend
15 HN recommender · 2019–2026
12 mo on HNLexical Scanning in Go - Rob Pike
GoogleFOSSSydney
13 HN recommender · 2012–2025
12 mo on HNWilliam Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]
PapersWeLove
11 HN recommender · 2017–2026
10 mo on HNCppCon 2016: Jason Turner “Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17”
CppCon
13 HN recommender · 2016–2024
8 mo on HNClasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming
Google TechTalks
8 HN recommender · 2015–2024
7 mo on HNCompiling C to printable x86, to make an executable research paper
suckerpinch
8 HN recommender · 2018–2023
7 mo on HNBreak Me00 The MoVfuscator Turning mov into a soul crushing RE nightmare Christopher Domas
Adrian Crenshaw
6 HN recommender · 2017–2026
7 mo on HNA Talk Near the Future of Python (a.k.a., Dave live-codes a WebAssembly Interpreter)
David Beazley
7 HN recommender · 2019–2025
7 mo on HNMiguel de Icaza: Swift Godot: Fixing the Multi-million dollar mistake #GodotCon2023
Godot Engine
6 HN recommender · 2023–2026
6 mo on HNCppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”
CppCon
7 HN recommender · 2018–2022
5 comments from Hacker News
Well, in terms of whether the example is a well-posed question, a networked window system isn't too different from the WWW, which as we know by now works pretty flawlessly. Perhaps the key contrast here is between the tendency toward static mathematical perfection of the APL family and the notion of dynamic languages for building systems that Alan Kay et al would propose. "APL is like a beautiful diamond - flawless, beautifully symmetrical. But you can’t add anything to it. If you try to glue on another diamond, you don’t get a bigger diamond." --Joel Moses There's a talk by Ian Piumarta that tries to get to the core of what the VPRI guys feel is important. I'm not sure about it but it seems worth mentioning in this context: Ian Piumarta "Building Your Own Dynamic Language" ▶ this video Also, this: link
No big deal. Just become an expert then. It is not that hard. Just have a look at Ian Piumarta's work [1,2]. Future systems will probably facilitate programming on every level from the bare metal to the highest abstraction. I.e. no strict boundaries between the implementation of the application and the implementation of the compiler/interpreter. [1] link [2] ▶ this video EDIT: There are other reasons to write machine code than performance.
Thanks for the link, it's a good read. Ian gave a talk on the same material at Stanford ( ▶ this video ). The paper about the object model ( link ) is also very useful. The hallmark of COLA is recursive design, which sort of makes it more like Smalltalk than Lisp Late binding is certainly a big part of the smalltalk philosophy as well, and recursive design is a great way of implementing late binding. A system uses the same "user interface" internally, it certainly makes it easier to let people modify the internals. The big difference I see between Smalltalk and Lisp (correct me if I'm wrong) is that Lisp systems tend to use compile-time abstractions Lisp->machine code->execution, while Smalltalkers from early on started thinking about interpretation and VM's - using abstractions which require run-time data to make decisions.
Easy, COLA: ▶ this video Any syntax you want, running on the same JIT compiler, but designed from scratch without marketing breathing down your neck.
The gold box/pepsi/coke/cola/jolt/id/idst/soda languages are indeed interesting, but from the outside of VPRI it isn't easy to figure out what they do. Listening to Alan Kay try to summarize it in a few minutes ( link ) makes it sound like even he doesn't understand it very well. Piumarta seems to be a very sharp guy, but it's strange that a software project that is supposed to radically simplify the software stack still doesn't appear to have a working prototype of a complete two-kernel (pepsi+coke) system, almost five years after the albert paper ( link ) that sketched out the basics was written. Kay keeps talking about how cool it is, and Piumarta has given at least one talk about how cool it is ( ▶ this video ), but as far as I can tell it doesn't even exist yet. There are working pieces (which are each tens of thousands of lines of code), but from the outside there doesn't appear to be a working pepsi+coke system yet, let alone iterations on it. The VPRI progress reports don't even mention it. VPRI seems all over the place, and Kay is talking about objects with AI-complete interfaces now. The mailing list is dead, and the wiki is pretty much dead. There's more information on Piumarta's personal website than anywhere else. I know it's supposed to be blue sky research, but it still seems weird. My impression of the whole thing is that "complete" reflection/self-description is not a good foundation for minimalistic systems.