Hacker News new | past | comments | ask | show | jobs | submit login

I agree with you that RSpec is confusing as hell - thus the blog post.

A lot of my frustration with Ruby tutorials is that a large pack of them are geared for someone who has never, ever coded before. Syntactically, Ruby isn't that bad. I tried a few courses in Ruby and eventually just switched them off for being too slow.

Part of my issue with Ruby (currently) is that the language can be so flagrantly violated with a gem. I am sure that Python could receive similar treatment... but it would be difficult to pull off, and the community would rip it apart for not being "Pythonic." There's not as strong of a "Ruby-ic" approach to doing things as there is with Python, from my first interactions with the language.




In the Ruby webdev community, RSpec and Devise are considered to be the most Ruby-ic gems around. The idea, much as with Lisp, is to transform the language into something that describes the problem at hand as naturally as possible. RSpec is considered to be a fine example of a language designed for writing software specifications, and it still happens to be valid Ruby.

One of the take-aways from this is that within the Python community, "Pythonic" means "keep close to the language as envisioned by GVR", and within the Ruby community, "Ruby-ic" means "the closer you can get it to English and still keep the code executing, the better."

I personally dislike RSpec, but that's a minority opinion. I dislike the general aim to make everything look as natural as possible, because that approach hides too much complexity, a lot of which leaks often in unpredictable ways. Nevertheless, when it comes to pumping out websites, Ruby is my language of choice, and my efficiency in Rails smokes my efficiency in everything else out of the water.


Your second paragraph was huge for me. I think that's a critical learning point for someone making the jump from Python to Ruby.

I'll probably still have some frustrations, but knowing that gems are written to look natural by design rather than by accident will likely keep me from throwing my computer at the wall. Two completely different communities operating here.


I happen to think that people that say "ruby and python are really similar languages, I don't understand what the arguing is about" almost willfully ignore the fact that in modern (aka Lego) programming, a language doesn't exist on its own, but it is surrounded by a huge community, and in case of Ruby vs Python, the communities couldn't be more different.




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

Search: