Just some guesses/thinking-out-loud:
* people are getting sick of php (well, sicker than usual)
* Python 3 has been out for a while and it's starting to be used by more people
* Perl 6 is seeing regular releases, some tutorial material is showing up out there, so maybe it's having an effect of getting people interested in new languages
* It's possible that some Rubyists who left the ship are now returning.
Does that make me an unqualified hacker?
What's next? a few pages on Ruby's method_missing? :-)
What the article seems to miss, though (only skimmed it), is that you need to be incredibly careful with taking kwargs, specially if you're passing them along into secondary functions within the called function. Hidden bugs lie that way, as you could end up with bad/misspelled args that you think are having an effect, but aren't.
Always make sure all kwargs get unpacked.
A much, much more simple way to put it is
anything *args is a list, anything **kwargs is
a dictionary.
The * simply means list (set).
** simply means dictionary (name/value pairs)
* and ** has a much different meaning in other
languages as parameters.
* args is very similar to ... in other languages
that let you send n arguments. def test(a, b, *args, **kwargs):
print a, b, args, kwargs
>>> test(1, 2, 3, 4, aa=5, bb=6)
1 2 (3, 4) {'aa': 5, 'bb': 6}
'nuff said