These days, the Cocoa text system on Macs is so ridiculously feature-complete that you can do this in web browsers and chat programs as well, along with “smart quotes” and automatic spelling correction.
Rails folks are like that. Even though the rest of the Ruby community is much more reasonable, the weekly Rails debacle has driven a lot of people away from Ruby, including me.
If Rails weren't around, it would be much easier to enjoy Ruby without having to use it in isolation. Then again, a whole lot of people wouldn't have gotten into it in the first place.
Ruby lived fast and died young. If you don't want to use Python, learn Haskell.
There are a lot of bogus links showing up on the front page with obviously falsified vote counts (numbers starting with the digits "1337"). I'd say, yeah, it's been seriously compromised.
The fix is correct. I was there at the time, but not directly involved. There was a competition to design a language to replace the large number of languages and variants used by the military. Pascal was in vogue at the time and 3 of the 4 proposals were Pascal derivatives. OO pretty much didn't exist. Simula and Smalltalk were there but nobody in the competition was paying any attention. The requirements documents were a laundry list of things from every language but Cobol, including a number of ideas that had never been implemented in a production language. Rendezvous comes to mind. The compiler for language turned out to be extremely difficult to implement and it took much longer than expected, not a first for the military. The colonel in charge was insistent that there be no subsets. When it finally arrived, the world had passed it by.
(define (foldr f end xs) (if (null? xs) end (f (car xs) (foldr f end (cdr xs)))))
(define (foldl f start xs) (if (null? xs) start (foldl f (f start (car xs)) (cdr xs))))
Typesafe generics have been in ML from the get-go (1970s) from what I remember. People like to talk about how type inference is useful, but it's really the generic polymorphism that makes it shine.
I was hacking together an Arc interpreter in Haskell the other day, and after refactoring some of the hairier monadic code, I was horrified to see that the type signature for a particular function was twice as long as the function body. And that's with the compiler figuring it out for me... I don't know what I'd have done if it was C++ instead.
It's really amusing (in an oh-my-God-I'm-fucked way) to try and debug type errors in Happy-generated parsers. There have been times when the type of the function (not even the whole error message) has been a page long.
Intel's C++ compiler produces much more readable error message, I find. Though, almost perversely, I've gotten used enough to GCC's cryptic template error output that I'm more comfortable with it.