Factor: an extensible interactive language
Google TechTalks5 HN recommenders · recommended in 5 months, 2014–2025
talk · intermediate · evergreen · 2014–2025 on HN
A 2008 Google Tech Talk in which Slava Pestov introduces Factor, a concatenative language influenced by Forth, Lisp and Smalltalk. It covers the interactive environment, metaprogramming, and the language's modern high-level features and libraries.
HN recommends it as the best introduction to Factor and concatenative programming, with commenters saying it impressed them with the engineering.
Up next
2 mo on HNPerl 6 for Mere Mortals
Curtis “Ovid” Poe
2 HN recommender · 2015–2015
1 mo on HNCANDO: A Compiled Programming Language for Computer-Aided Nanomaterial Design and Optimization
European Lisp Symposium
2 HN recommender · 2016–2019
2 mo on HNSymbOS MP3MSX Demostration
karloch
2 HN recommender · 2014–2018
2 mo on HNThe Unix Chainsaw - Gary Bernhardt
timmonta
2 HN recommender · 2016–2022
6 mo on HNFunctional Composition - Chris Ford
ClojureTV
6 HN recommender · 2013–2023
2 mo on HN01 The History of Standard ML: Ideas, Principles, Culture
ICFP Video
2 HN recommender · 2016–2022
5 mo on HNThe mathematics of weight loss | Ruben Meerman | TEDxQUT (edited version)
TEDx Talks
6 HN recommender · 2017–2024
8 mo on HNAlan Kay: Doing with Images Makes Symbols (Full Version)
Kenneth Friedman
8 HN recommender · 2016–2023
16 mo on HNHow Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
Видео с мероприятий {speach!
15 HN recommender · 2017–2025
12 mo on HNWhy Isn't Functional Programming the Norm? – Richard Feldman
Metosin
12 HN recommender · 2019–2025
11 mo on HNMaybe Not - Rich Hickey
ClojureTV
14 HN recommender · 2018–2025
10 mo on HNConway's Game Of Life in APL
Dyalog
11 HN recommender · 2010–2024
8 comments from Hacker News
It's funny because 3 dropped in 2008, the same year Slava was demonstrating Factor in google tech talks which was a contemporary language to python3 that completely blew Python out of the water. ▶ this video
I just stumbled across this Google Tech Talk on [factor][0] last night! It absolutely blew my mind. The engineering looks to be top notch, and the video is 9 years old to boot! ▶ this video Anyway, really want to give Factor a try for some personal projects. Would love to hear anecdotes from people who futz with this stuff. [0]: link
I agree. I remember his talk on Factor. I wish people gave enough support back then so he could work on it full-time. Here is his talk on Factor: ▶ this video , back from 2008.
As someone who built Forth compilers back in the day, I really like this language. There's a nice overview of Factor as a paper here: link and a Google tech talk video of Slava Pestov (Factor's creator) showing off the language here: ▶ this video
I see what you did there. ps: just in case here's a very enjoyable talk, not about, but by Slava ▶ this video Beautiful and impressive.
Your comment does not make much sense even if it is true. Factor (Forth-like language) implements even its own ":" (defines a word, i.e. a function) using the language itself, it is not builtin, same with "if", and so forth. Thus, "MEMO:" or locals[1] ("::") being implemented as a library does not mean it is a bad thing, on the contrary, in the case of Factor, it makes it quite powerful. The object system is entirely implemented in Factor, too. "Large chunks of functionality are not part of the core language, they are in just as library".[2] And to compare OCaml's type system to Python's is straight out absurd. [1] Locals are entirely implemented in Factor, too, which is only about ~500 lines of code. It is not part of the core language, and on top of that, there is no performance penalty whatsoever! [2] See more here: ▶ this video .
There was always something I liked about Forth when I didn't have to do much stack-thinking. One of the things that felt forth-y to me when I first encountered it was threaded code in Clojure (or any other point-free kind of idiom for that matter). link I'll sometimes abuse Python's compose to do similar things I won't send out for code review. Maybe I really should just try to live in Coconut instead of silly stuff like: import chess import chess.svg from IPython.display import SVG, display from functools import reduce def rcompose(*fs): return reduce(lambda f, g: lambda *xs, **ys: g(f(*xs, **ys)), fs) inline_board = rcompose( chess.Board, chess.svg.board, SVG, display) Factor's quotations dealing with stack management weirdness is super nice, too. link It still has a bit more stack juggling than I like, though. That could just be a "me" problem. Props to that whole community for their effort. ▶ this video
I recently came across a language called Factor that works very similar, if not identical, to this. Here's a video about it: ▶ this video