Thursday, October 23, 2014

Inconsistent naming in Computer Science

I can't count the number of times I start finally reading about a concept or technique and realize that I already know it, just under a different name.  Currying is sometimes called partial application.  Dictionaries in Python are hashes in Perl, associative arrays (or just objects, depending on how pedantic you are) in Javascript, HashMaps in Java (I think?), and who-knows-what-else in other languages.  Lambdas are just anonymous functions, as far as I can tell.  Promises are called futures in some cliques.  Mixins vs roles (hint: they're the same thing).  Aspect-oriented programming is also referred to as monkey-patching.  I can keep going, but I think you get the point.

I think it would vastly improve interviews, and conversations with coworkers, if we could all agree on a single name for all these concepts we are expected to know.  But I guess that's life.  Soda vs pop, anyone?

No comments:

Post a Comment