Tudor Gîrba - Moldable development
Curry On!1 HN recommender · recommended in 1 month, 2022-2024
26K views · 7 years ago · talk · evergreen
Tudor Girba's Curry On! 2019 talk on moldable development, the idea that developers should build custom tools and views for each software system they work on. It draws on the Pharo and Glamorous Toolkit environments.
HN cites it as the clearest pitch for programmable, malleable development environments, especially in threads on Smalltalk, Emacs and user-programmable systems.
7:157 minutes of Pharo Smalltalk for Rubyists
Avdi Grimm
37K views • 11 years ago
1:14:32Building Your Own Dynamic Language
Stanford
21K views • 18 years ago
1:10:02Building Software at Google Scale Tech Talk
Google TechTalks
58K views • 14 years ago
44:43Ron Pressler - Pull Push: Please stop polluting our imperative languages with pure concepts-Curry On
Curry On!
25K views • 11 years ago
30:50Why Google Stores Billions of Lines of Code in a Single Repository
@Scale
317K views • 11 years ago
58:23Evan Czaplicki - Let's be mainstream! User focused design in Elm - Curry On
Curry On!
82K views • 11 years ago
20:01PDE: A different take on editing code
TJ DeVries
88K views • 4 years ago
8:19Code Bubbles: Rethinking the User Interface Paradigm of Integrated Development Environments
AndrewBragdon
284K views • 16 years ago
40:332016 LLVM Developers’ Meeting: D. Dunbar “A New Architecture for Building Software”
LLVM
7K views • 9 years ago
41:19Stuart Sierra - Components Just Enough Structure
ClojureTV
36K views • 12 years ago
33:26Jujutsu: A Git-Compatible VCS - Git Merge 2022
GitHub
17K views • 4 years ago
49:54The Clean Architecture in Python
Next Day Video
114K views • 12 years ago
3:34Marble adding machine
MatthiasWandel
2.4M views • 19 years ago
25:06"Making Impossible States Impossible" by Richard Feldman
elm-conf
63K views • 10 years ago
43:37Lambda World 2018 - What FP can learn from Smalltalk by Aditya Siram
Lambda World
25K views • 7 years ago
55:29Marco Baringer's SLIME Tutorial Video
손주일 (Cecil)
33K views • 15 years ago
58:39Tim Ewald - Clojure: Programming with Hand Tools
ClojureTV
48K views • 12 years ago
46:06Gtk to Qt - a strange journey [linux.conf.au 2014]
Konstantin Bläsi
46K views • 12 years ago
59:31ClojureScript in the Age of TypeScript — David Nolen
ChariotSolutions
29K views • 5 years ago
1:00:10Functional architecture - The pits of success - Mark Seemann
NDC Conferences
152K views • 10 years ago
4 comments from Hacker News
Do not take it as a judgment of your work, it's instead a broad observation using your work as a catalyzer to state it: I have much more integration with a much older app, it's name is Emacs, in my case it feature: - a Windows Manager, module named EXWM - a very powerful noting tool, org-mode - integrate to the note module there is file attachments, calendar, tasks, ... - a mail module, notmuch in my case, fully usable inside the note tool, so I can link a single message, a thread or a search query in a note, something simple as notmuch-search:tag:unread that open all my unread messages. - of course being a fully user programmable environment a mere link can execute code, meaning I have a clickable link to transform a note into a slide (zpresent, my favorite, but a mere zoom might suffice in most cases), a link can open a mail compose buffer and so on - I have various nice file handling goodies like mass renaming, regex selection and so on. This since DECADES. Now ending the joke the statement: classic desktop model feature an OS witch is a complete user-programming environment, apps are just bits of code, listings part of the OS, meaning that if you have a CAS functionality you can solve an ODE inside an email you compose, annotating it while composing and made a slide out of it. Take a look at link for Emacs, a demo for Pharo (a modern Smalltalk, the oldest of such classic desktop systems from Xerox) ▶ this video and so on. The statement is simple: for COMMERCIAL REASONS we tr
I believe this to be an artifact of our current paradigm of software development, which is based purely around static "batch processing" where the software can't be molded easily. (I didn't want it to come off as a plug, so I didn't add it to my original message, but I'm working on something to solve that.) To get a better idea of what I think is the better approach, check out these talks: Tudor Gîrba - Moldable development - ▶ this video Jack Rusher - Stop Writing Dead Programs - link
Wrote a review on it on the website, copypasting : Glamorous Toolkit[1] promotes the idea of moldable development[2]. There's a talk on it: Tudor Gîrba - Moldable development.[3] The basic idea is to have multiple views and editors for any piece of data in your system (including code). Kind of interesting, but the toolkit looks and acts more like a fancy computational notebook type of environment, but without explicitly being a computational notebook. The site on moldable development states its difference with literate programming: They are similar in that they both promote the use of narratives for depicting systems. However, Literate Programming offers exactly a single narrative, and that narrative is tied to the definition of the code. Through Moldable Development we recognize that we always need multiple narratives, and that those narratives must be able to address any part of the system (not only static code). And that's a sensible viewpoint. But I still see it as an advanced version of a literate programming, all done within an interactive environment. The focus of Glamorous Toolkit seems to be on explaining a code base or a certain part of the system via presenting it via a custom tool. But I am not too convinced with the top-level development model / workflow it assumes for you. I guess it's too narrowly-focused / opinionated. It's also a custom fork of Pharo, so the question of long-term stability is even more unclear than that of Pharo itself. I can't say I can comp
Where has this tool been my whole life? :P Thanks for the link, I didn't know that one. Yes, this ▶ this video is the kind of programmable system I'm talking about, creating behavior on top of your stored content with methods specific to the particular collections of data already in your system, and ideally with minimal syntax for transferring data among the different tools.