Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RubyKaigi 2013: Beyond Ruby

RubyKaigi 2013: Beyond Ruby

Ruby is the most flexible language out there, imposing no limitations on the developers, giving all the expressiveness possible. Or so we think. But there are languages pushing dynamic features and expressiveness far beyond what is possible in Ruby. Some are old, like Lisp and Smalltalk, some are just emerging, purely experimental languages, like Ioke or Newspeak. In this talk, we will take a look at some of these languages and what they can do that Ruby can't. What does it mean, to be homoiconic? How does a language without keywords work? Can I dispatch in more than one direction? And what is partial evaluation?

Konstantin Haase

June 01, 2013
Tweet

More Decks by Konstantin Haase

Other Decks in Technology

Transcript

  1. @konstantinhaase github.com/rkh “Second to K&R, the most lagom technical book

    I’ve read.” Peter Cooper (Ruby Inside) Discount Code: AUTHD 50% off ebook ($6.50) 40% off print
  2. @konstantinhaase github.com/rkh “I made up the term object-oriented, and I

    can tell you, I did not have C++ in mind.” Alan Kay
  3. @konstantinhaase github.com/rkh “ OOP to me means only messaging, local

    retention and protection and hiding of state-process, and extreme late-binding of all things.” Alan Kay
  4. @konstantinhaase github.com/rkh Outer = 23 module Wrapper Inner = 42

    class Nested def result Outer + Inner end end end
  5. @konstantinhaase github.com/rkh "In computer programming, homoiconicity is a property of

    some programming languages, in which the primary representation of programs is also a data structure in a primitive type of the language itself, from the Greek words homo meaning the same and icon meaning representation. This makes metaprogramming easier than in a language without this property." Wikipedia
  6. @konstantinhaase github.com/rkh ?- sort([1, 3, 2], X). X = [1,

    2, 3] ?- sort(X, [1, 2, 3]). X = [1, 2, 3] Continue? [Y/n]