Factor: an extensible interactive language
Sign in to YouTube
Sign in to YouTube
Sign in to YouTube
Uploaded on Oct 28, 2008
Google Tech Talks
October 27, 2008
ABSTRACT
Factor is a general-purpose programming language which has been in development for a little over five years and is influenced by Forth, Lisp, and Smalltalk. Factor takes the best ideas from Forth -- simplicity, succinct code, emphasis on interactive testing, meta-programming -- and brings modern high-level language features such as garbage collection, object orientation, and functional programming familiar to users of languages such as Python and JavaScript. Recognizing that no programming language is an island, Factor is portable, ships with a full-featured standard library, deploys stand-alone binaries, and interoperates with C and Objective-C.
In this talk, I will give the rationale for Factor's creation, present an overview of the language, and show how Factor can be used to solve real-world problems with a minimum of fuss. At the same time, I will emphasize Factor's extensible syntax, meta-programming and reflection capabilities, and show that these features, which are unheard of in the world of mainstream programming languages, make programs easier to write, more robust, and fun.
Speaker: Slava Pestov
Slava was born in the former USSR and emigrated to New Zealand at the age of 7. He moved to Ottawa, Canada when he was 18 to study for a Bachelors and Masters degree in Mathematics. He now resides in Minneapolis, Minnesota. An early adopter of Java, Slava wrote the popular jEdit text editor, then went on to design and implement the Factor programming language. At his day job he hacks on web apps, optimizing compilers, garbage collectors, and everything in between.
-
Category
-
License
Standard YouTube License
Loading...
Loading...
Loading...
Loading...
Loading...
-
6:13
Larry Wall: 5 Programming Languages Everyone Should Knowby bigthinkFeatured
128,877
-
1:29:54
Think faster focus better and remember moreRewiring our brain to stay younger...by GoogleTechTalks
399,295 views
-
56:23
Tangible Functional Programmingby GoogleTechTalks
41,505 views
-
1:09:03
Let's Go Further: Build Concurrent Software using the Go Programming Languageby GoogleTechTalks
20,530 views
-
1:15:44
Advanced Python or Understanding Pythonby GoogleTechTalks
105,385 views
-
71
videos
Play all
GoogleTechTalksby datadigger
-
59:26
The Go Programming Languageby GoogleTechTalks
301,505 views
-
59:23
The Next Generation of Neural Networksby GoogleTechTalks
275,666 views
-
9:06
CMM2.wmvby Raystm2
967 views
-
59:35
The Web That Wasn'tby GoogleTechTalks
59,957 views
-
54:09
The Clean Code Talks - "Global State and Singletons"by GoogleTechTalks
56,861 views
-
57:53
Larry Wall Speaks at Googleby GoogleTechTalks
45,416 views
-
48:54
Cognitive Neuroscience of Mindfulness Meditationby GoogleTechTalks
314,297 views
-
1:15:44
Another Go at Language Designby StanfordUniversity
6,106 views
-
46:56
Emacs Org-mode - a system for note-taking and project planningby GoogleTechTalks
113,005 views
-
1:00:18
How To Design A Good API and Why it Mattersby GoogleTechTalks
173,335 views
-
56:41
Erlangby GoogleTechTalks
28,003 views
-
59:48
Gitby GoogleTechTalks
160,390 views
-
59:35
Slightly Advanced Python: Some Python Internalsby GoogleTechTalks
30,366 views
-
36:58
Go Behave! A BDD Framework for the Go Programming Languageby GoogleTechTalks
11,590 views
-
4:43
F# - Putting the Fun into Functional Programmingby MSRC08
10,415 views
- Loading more suggestions...
Top Comments
Satyajit Nashikkar 4 years ago
Interesting..kinda like FORTH on steroids
Sign in to YouTube
Sign in to YouTube
leimy2k 4 years ago
Haskell doesn't *really* have this problem. Classes are groupings of functions, and you can later make things instances of those classes by defining functions of that class for your new object.
I don't see a major advantage yet to factor, but the Forthiness is neat.
Sign in to YouTube
Sign in to YouTube
All Comments (27)
thatmartolguy 4 months ago
"Metacircularity" is a horrible word to use for self-compilation or bootstrapping.
Sign in to YouTube
Sign in to YouTube
Bjarke Ebert 4 months ago
This is one of the most inspirational programming language talks I have ever watched!
Sign in to YouTube
Sign in to YouTube
TheSidyoshi 7 months ago
How about:
[ ... code here in forward polish notation ... ] reverse call
So for example I could write:
[ map [ 1 + ] [a,b] 1 10 ] reverse call
Which reads: map the plus one function onto the integers from one to ten. At school we learn to read left-to-right. The computer can read either way, it doesn't care.
Of course you could write it better, and make it traverse down all quotations. Isn't this more readable?
Sign in to YouTube
Sign in to YouTube
TheSidyoshi 7 months ago
This is pretty amazing!
Sign in to YouTube
Sign in to YouTube
b43xoit 2 years ago
How different from Joy?
Sign in to YouTube
Sign in to YouTube
Tia1ko 3 years ago
"Classes are groupings of functions"
Is this properly called "function", or is it rather a more abstract, uhm, "operation"? (Isn't there a special term for this stuff in CT, anyway?)
Sign in to YouTube
Sign in to YouTube
Tia1ko 3 years ago
@valberm: Right now I can see at the lower right corner of the video: "20 032 views" ;-)
Sign in to YouTube
Sign in to YouTube
johnmair 3 years ago
what he said about ruby (@ 45 mins) is only true of block parameters, not true of variables defined within the block/lambda in general. Further this was acknowledged as a 'bug' and is fixed in the most recent version of ruby.
Sign in to YouTube
Sign in to YouTube