Does anyone know what Yegge has been up to? I thought maybe he moved his blogging over to Google+ or something, but that hasn't been updated since 2012 either.
After his effusive praise for pre-Rails-fever Ruby in his initial foray with it, I've been extremely interested in what he thinks of it now, or how long he stuck with it.
For the most part, Ruby took Perl's string processing and Unix integration as-is, meaning the syntax is identical, and so right there, before anything else happens, you already have the Best of Perl. And that's a great start, especially if you don't take the Rest of Perl.
But then Matz took the best of list processing from Lisp, and the best of OO from Smalltalk and other languages, and the best of iterators from CLU, and pretty much the best of everything from everyone.
And he somehow made it all work together so well that you don't even notice that it has all that stuff. I learned Ruby faster than any other language, out of maybe 30 or 40 total; it took me about 3 days before I was more comfortable using Ruby than I was in Perl, after eight years of Perl hacking. It's so consistent that you start being able to guess how things will work, and you're right most of the time. It's beautiful. And fun. And practical.
I'm still laughing over: 'The number zero is simply lambda(), and 1 is lambda(lambda()), 2 is lambda(lambda(lambda())), and so on. Every single Thing in this legendary region, be it noun, verb or otherwise, is constructed from the primal verb "lambda".'
Kind of similar how barbarians count in Terry Pratchett books. They only know three numbers: one, two and many. And counting is done like this: one, two, many, many one, many two, many many, many many one.....
It's a mathematical formalism for minimizing the number of distinct entities in minimalistic theories of numbers, and providing definitions of "number" that are as well-defined as possible, which turns out to be harder than it appears at first blush. In practice, it isn't generally directly used, except in places where proper facilities for using integers haven't yet been created (C++ templates at a certain point, some older Haskell type code before ints become promotable to the type level, etc). (And just to be clear, I'm not saying they've never been used in real code, but that it's a serious code smell to need to use them in real code. They get inefficient, fast; given that they're often showing up in type checking algorithms they can get inefficient superlinearly in their size.)
I vaguely remember that church numerals (or was it some other encoding ?) have been used to minimize conditional jumps in code. If someone is familiar with how that works, would love to hear.
> This story... is neither a story for the faint of heart nor for the critical of mouth. If you're easily offended, or prone to being a disagreeable knave in blog comments, please stop reading now.
That's a neat trick, limiting your blog post to people who won't be critical of it.
Knave doesn't mean combative, it means deceitful (or servant/worker which I doubt he means here). The most important phrase in my reading is "critical of mouth."
Also, reading a paragraph wrong doesn't make a person a combative jerk. Nor does being critical.
25 comments
[ 4.4 ms ] story [ 73.4 ms ] threadAfter his effusive praise for pre-Rails-fever Ruby in his initial foray with it, I've been extremely interested in what he thinks of it now, or how long he stuck with it.
edit: The link for convenience: http://steve-yegge.blogspot.com/2006/09/bloggers-block-4-rub...
I have to highly agree with Jeff Atwood's sentiment, in his explanation of why he was OK with using Ruby for Discourse:
http://blog.codinghorror.com/why-ruby/
Quoting Yegge:
For the most part, Ruby took Perl's string processing and Unix integration as-is, meaning the syntax is identical, and so right there, before anything else happens, you already have the Best of Perl. And that's a great start, especially if you don't take the Rest of Perl.
But then Matz took the best of list processing from Lisp, and the best of OO from Smalltalk and other languages, and the best of iterators from CLU, and pretty much the best of everything from everyone.
And he somehow made it all work together so well that you don't even notice that it has all that stuff. I learned Ruby faster than any other language, out of maybe 30 or 40 total; it took me about 3 days before I was more comfortable using Ruby than I was in Perl, after eight years of Perl hacking. It's so consistent that you start being able to guess how things will work, and you're right most of the time. It's beautiful. And fun. And practical.
Blogging takes too much time.
Check Church numerals: https://en.wikipedia.org/wiki/Church_encoding
Other good posts on that blog:
- http://steve-yegge.blogspot.ca/2006/03/math-for-programmers....
- http://steve-yegge.blogspot.ca/2009/04/have-you-ever-legaliz...
- http://steve-yegge.blogspot.ca/2008/06/done-and-gets-things-...
- http://steve-yegge.blogspot.ca/2008/05/dynamic-languages-str...
- http://steve-yegge.blogspot.ca/2008/03/get-that-job-at-googl...
- http://steve-yegge.blogspot.ca/2008/01/emergency-elisp.html
The abstract, long reads with a good message:
- http://steve-yegge.blogspot.ca/2007/06/rich-programmer-food....
- http://steve-yegge.blogspot.ca/2007/06/that-old-marshmallow-...
- http://steve-yegge.blogspot.ca/2006/12/parabola.html
That's a neat trick, limiting your blog post to people who won't be critical of it.
Also, reading a paragraph wrong doesn't make a person a combative jerk. Nor does being critical.
And I think I'm not alone in this: http://blog.fogus.me/2011/03/27/the-long-lost-art-of-thought...
(Stop writing classes - python) http://www.youtube.com/watch?v=o9pEzgHorH0