Upload

Factor: an extensible interactive language

GoogleTechTalks GoogleTechTalks·1,782 videos
146,652
33,949
Like     Dislike 8

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to like GoogleTechTalks's video.

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to dislike GoogleTechTalks's video.

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to add GoogleTechTalks's video to your playlist.

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.

Loading icon Loading...

Loading icon Loading...

Loading icon Loading...

The interactive transcript could not be loaded.

Loading icon Loading...

Loading icon Loading...

Ratings have been disabled for this video.
Rating is available when the video has been rented.
This feature is not available right now. Please try again later.

Top Comments

  • Satyajit Nashikkar

    Interesting..kinda like FORTH on steroids

    · 6

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Satyajit Nashikkar's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Satyajit Nashikkar's comment.
  • leimy2k

    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.

    · 2

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate leimy2k's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate leimy2k's comment.

All Comments (27)

Sign in now to post a comment!
  • thatmartolguy

    "Metacircularity" is a horrible word to use for self-compilation or bootstrapping.

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate thatmartolguy's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate thatmartolguy's comment.
  • Bjarke Ebert

    This is one of the most inspirational programming language talks I have ever watched!

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Bjarke Ebert's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Bjarke Ebert's comment.
  • TheSidyoshi

    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 with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate TheSidyoshi's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate TheSidyoshi's comment.
  • TheSidyoshi

    This is pretty amazing!

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate TheSidyoshi's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate TheSidyoshi's comment.
  • b43xoit

    How different from Joy?

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate b43xoit's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate b43xoit's comment.
  • Tia1ko

    "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 with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Tia1ko's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Tia1ko's comment.
    in reply to leimy2k (Show the comment)
  • Tia1ko

    @valberm: Right now I can see at the lower right corner of the video: "20 032 views" ;-)

    ·

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Tia1ko's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate Tia1ko's comment.
    in reply to valberm (Show the comment)
  • johnmair

    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 with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate johnmair's comment.

    Sign in to YouTube

    Sign in with your YouTube Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to rate johnmair's comment.
  • Loading comment...
Loading...
Loading...
Working...
Sign in to add this to Watch Later