Hacker News new | ask | show | jobs
by antod 3520 days ago
> 1. It's a general attitude toward building interfaces; the reader of the code is put first. Yeah underneath things may be messy, but using those things should be nice. The onus is placed on the implementor, rather than the user. Ruby libraries will go to fairly extreme lengths to make things nice to use.

I struggle with this a little as newish ruby coder (but not new to coding). The efforts to make a 'nice' interface can interfere with keeping underlying implementations elegant/simple.

Too much focus on the happiness of a dev cranking out new code at the expense of the happiness of developers coming along afterwards trying to understand it.

Ruby is fun to create stuff with, but I kinda prefer the Python culture that tries to drum into devs the importance of readability and explicitness for other developers. As a dev you do far more poring over others code than creating brand new stuff.

1 comments

Explicitness. << This is key. Ruby/Rails just feels really implicit and magical for someone who spent the first 15 years of his career in C++, C#, and JavaScript. (I've only been doing Rails professionally for a year, though, so maybe my opinion will change with more experience.)
That's mostly an effect of Rails. "Convention over configuration" was one of the early mantras, and usually it serves well for such a large API...but sometimes it's just magic.

Ruby itself is a fairly explicit and consistent language. Some of the syntax might seem surprising at first if you haven't bought into the "everything is an object (really)" perspective.

Chef is pretty magical as well. I think it's easy to get carried away with syntax-sugary DSLs at the expense of of straightforwardness in Ruby if you aren't disciplined about simplicity.