Skip to content

Instantly share code, notes, and snippets.

@nathany
Created August 26, 2010 20:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nathany/552168 to your computer and use it in GitHub Desktop.
Save nathany/552168 to your computer and use it in GitHub Desktop.
* mixins (include and extend) for simple modularization (vs. multiple inheritance or traits in other languages)
* innovations in the web space (haml, rack middleware, etc.)
* standardized around MIT and GIT
* no public properties (attr_accessor, etc.)
* open classes
* tooling (gem, rake)
* animal references (ducks, monkeys, bacon)
* metaprogramming (unicorns)
* TDD/BDD emphasis and tools
* Proc, lambda, block, blah...
* requiring self.attr= for assignment but not needing self anywhere else (attr= sets a local variable)
* Perlisms (inconsistient behaviors) are confusing to newbs (i.e. && vs. and precendence)
* @@class hierarchy variables (globals)
* too much magick (easy to read, but hard to understand) i.e. acts_as_statemachine until you realize it's being used and how it works.
* @class instance variables vs. @instance variables of objects (confusing, at least at first)
* mind blowing: class is an object, and class is a subclass of the module class
@orklann
Copy link

orklann commented Oct 7, 2013

For Ruby, The Ugly Parts

  • why Proc, lamda, block are in this list?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment