Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The Ranting Rubyists (renaebair.com)
21 points by ashleytowers on Nov 25, 2008 | hide | past | favorite | 17 comments


But who wants to spend time contributing when there’s no money to be made or fame left to be had?

Yeah, who would? Open source is not about altruism. It's about either money or ego. If there are neither of those to be had, what's the point?

However, there is plenty of money and ego left to be had in the Ruby community. The last few years have been about "hey, programming can be fun." Most of us knew this already, but some people assumed that Java was all there was (thanks to JavaSchools). The Ruby community, I think, made it OK to use non-Java languages and still be taken seriously. But with that out of the way, it's time to get serious. It's time to fix the ruby's memory leaks. It's time to tighten up the libraries. People who work on this will get money and fame, trust me.

I have been doing Perl for a long time. Even though I keep hearing that it's a dead language, I know for a fact that there is plenty of fame to go around for library authors and people that work on the core. So there is no need to leave the Ruby community if you want fame and want to use Ruby. (And if you don't like Ruby, why not give Perl a try ;)

(I should also point out that it took the Perl community almost 10 years to get a really solid implementation that didn't leak memory (it took until 5.10.0). The Ruby community has a lot of work ahead of them.)


I'm going to sidestep ranting about ranting about ranting about Ruby. The linked article seems very common-sense to me. But then, I never was much of one for ego-contests. I did however find something worth discussing in the blog post. Let me quote:

For myself, I’ve been learning to program with a language that doesn’t make me want to cry. I remember doing C++ and Java homework in CS classes in college; I do believe I have post-traumatic Java syndrome. It’s unbelievable even to me that I have dared to get into programming again. But Ruby is making it easy; even fun. I’m happy to code with it, and I’m happy to be enjoying the amenities of the lifestyle it has provided for us.

These sorts of experiences give me hope for the future of this profession. I firmly believe that the culture of good ol' boys' clubs and bondage-and-discipline programming languages are fettering access to the minds and talents of too many promising individuals. It's a crying shame.


"These sorts of experiences give me hope for the future of this profession. I firmly believe that the culture of good ol' boys' clubs and bondage-and-discipline programming languages are fettering access to the minds and talents of too many promising individuals. It's a crying shame."

Oh, geez. Melodramatic, much?

I know it's antithetical around these parts, but I like C++. If you want to talk about beauty, there's beauty in OO design. There's beauty in type safety. And there's most definitely beauty in a language that will make correctness guarantees at compile time. But then again, I've been using C++ long enough to have some perspective. I remember when Java was the silver bullet; now it's Ruby. This too shall pass.

Most of the complaints that I hear about C++ come from inexperienced programmers, and most of those complaints boil down to "I don't understand it". That's fine, and to be expected -- I didn't understand anything either, when I first started. The tragic mistake comes when you begin to assume that type-safety, encapsulation, access control, and other "bondage-and-discipline" features of the language were put there simply to make your life more difficult.

There were (and are), talented C++ programmers, and I think it's possible that some of them know what they were doing.


I'm not railing against type-safety, compile-time guarantees, encapsulation, or access control. In fact, I use them every day. I think haskell is pretty neat! And you can definitely get stuff done in C++. I'm not arguing against any of those things.

What I am saying is that in the rush to create the best engineering solutions, we have forgotten how to make programming approachable to the newcomer. Even people with aptitude and inclination get discouraged, if not by the technical stumbling blocks of the language they are using, by the unfriendly culture which has surrounded the craft.

Even children can write simple English. They aren't discouraged from reading and writing because they aren't great novelists. Good teachers try to teach the fundamentals and instill both the technical capability of writing and the joy of reading. Current CS pedagogy fails utterly in this regard. Early students spend so much thought on extraneous things like public static void main and pleasing a compiler that little attention is left to see the beauty in the theory and practice of computation.

The lack of a decent REPL or any useful interactive introspective techniques make C++ and Java particularly awful for teaching introductory computing concepts. Ruby is much more friendly on that level, as are many other languages. Look at projects like _why's Shoes or some of the things being done with Squeak. Look at the volumes of hackers who cut their teeth on things like BASIC. Look at how many industrial-strength best practices we can bypass while still teaching the fundamental joy of programming.

Nintendo's Shigeru Miyamoto, designer of many key gameplay concepts we now take for granted, was once asked in an interview what the fundamental concept behind his games is. He replied that the fundamental nature of a video game is that you press a button and something happens on the screen. It sounds simple but cuts through to the heart of the matter. Similarly I think that the fundamental appeal of computer programming is that I type something in and the computer carries out my wishes.

The love of programming is something that seems to come to people only by happenstance these days. If a language like Ruby can help more people to discover that love then more power to it.


There are some people working on this. The creator of Alice recently talked at my school. Alice is a syntax-free programming language used to tell stories using 3D models. The idea is to teach children computing concepts early, in a fun way, before throwing syntax at them. Right now Alice is used in many CS 1 classes and some high schools, but it could really be taught much earlier if public school bureaucracies weren't so inflexible. A person's first introduction to computing should come well before they enter college.

Alice's creator hopes that it will encourage more women and minorities to enter CS. His thesis is that telling a story is something that is natural and interesting to these groups, moreso than, say, solving the Towers of Hanoi.

Our intro class at UCSD uses Java and the intro professor hates it - being a leading researcher in CS pedagogy. She does do some interesting things with her class though. The earliest programming projects they do are not things like the fibonacci sequence, rather they do cool media projects such as sampling and modifying sounds, using a green screen to put themselves in images, and other fun projects. The students respond enthusiastically when their creativity is allowed to run wild and as a side-bonus, cheating is near-impossible.

The creator of Alice said he was struck one day when interviewing a female who had taken a CS 1 class and she said "Sure, I can figure out how to sort a list of numbers. But why would I ever want to?" CS pedagogy has a long way to evolve, but it is making improvements.


+1. Reminds me of this:-)

http://www.welton.it/articles/scalable_systems/

I should rewrite it though... it's kind of crufty.


C++ and Java are fine to be taught in a vocational context, but not as a CS major's main intro languages.

More to the point, C++ and Java were "invented" to be workhorse "vocational" languages. Java introduced C++ syntax and purposely bastardized Java from being a pure OO language with the requirement to appeal to engineers with C++ backgrounds. This is the main reason they are less fun and so many don't like them. This doesn't make them bad languages. But it is most certainly a turn-off for many learning CS in college.

Best languages to learn with your CS undergrad: C, Pascal, Smalltalk, Scheme, Lisp, Haskell, Prolog, Fortran, Forth. Thats a good starter list. You can add more to this list, but don't bother adding Java or C++ until you need to get a job in the field using it.


i agree, for the most part. i like c++ as well.

i made a stab at learning ruby. i felt lost without compiler warnings and errors. here's how i change the name of a method: 1. change the name in the header file, 2. hit the compile button, and 3. fix every error the compiler spits out, by double-clicking on the error lines in an ide window. i guess the ruby alternative would be search-and-replace, but it's not nearly as foolproof.

i wish c++ were a little less complex, though. i think we're to the point where the language has been balkanized into dialects. there's a lot of c++ code i can't read at all, because the authors used idioms that i choose to avoid.


Great eye to notice that - I remember the same sort of nightmares with C++ (not so much Java).

Bottom line is that things are getting much better these days.


A promising individual will seek out a more expressive language if that's what they're looking for.


A promising individual may not even know that more expressive languages are available. The onus is on us as knowledgeable teachers to show newcomers the world of possibilities.


I promising individual does not have unwavering trust in their teachers and accepts that the knowledge being passed on is likely flawed or incomplete.


If these Ruby bloggers got together and coded instead with the time they take to write and edit these posts to nowhere, they might come up with something pretty cool.


They can't match expectations.

Violent discussions, even with name-calling and everything, is very common in open source projects. Look at Linux, BSD, etc. There will always be a clash of egos. That might even be motivational for the mud slingers, to prove their point.


I’ve been a rubyist for three weeks now and it’s my turn to rant.

No, it isn't.


I'm not sure, but I think she was trying to be ironic (or perhaps irony is the wrong word. sarcastic?)


We bash Ruby because we love it so.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: