1,029 karma · joined March 11, 2009
I've worked in company which added a "funny" codename to everything: features, libraries, sprints, sections of backoffice interface. I don't know, maybe for some developers it makes things more engaging, for me it added a ton of unnecessary stuff to memorize or look up.
Also one of the reasons I don't like AWS. You really can call a router just "router", virtual machine "virtual machine" and so on.
just because you don't like US imperialism, you don't have to suck up to Russian one.
yeah, we can go a long way with that reasoning.
"abc".slice(4, 10) || ""
_and_ check those inputs in one go if needed. substr = "abc".slice(start, len)
raise "wrong inputs" if substr.nil?
just that one feature (only nil and false are falsy) of ruby makes it positively stand out among all the languages that have "null" as concept`foo + bar` and `foo+bar` are `foo()+bar`, but `foo +bar` is `foo(+bar)`
ternary ? : also has some interesting whitespace dependent mixups with symbols, but I cannot remember what. I think that parser has many gotchas like that, but they are really really rare to bite you, because ruby's magic follows human intuition as much as possible.
Also ruby is great in allowing complexity to grow smoothly, no sudden hiccups. You start with just one line (everything goes into module main implicitly), extend it to a single-file script, require some built-in libraries, then add a module or helper class in the same file, and only then maybe extract those files to required files, add gems, whatever. No boilerplate whatsoever, no jumps, no big rewrites.
meanwhile, a lot of tooling nowadays is written in Go, and I have no idea why, it's not friendly for os manipulation at all, and number crunching power is not needed in many, many tasks of that sort.