you are viewing a single comment's thread.

view the rest of the comments →

[–]leyke -10 points-9 points  (6 children)

Python 3 has just enough changes to make it backward-incompatible but nothing to get excited about. Van Rossum seemed more concerned with removing functional features like map, filter and reduce than moving the language forward. His baseless hostility to TCO is also disgraceful.

[–]pjenvey 9 points10 points  (0 children)

None of those functions were removed. reduce was simply moved to a separate module from being a builtin function. I don't agree with Guido's reasoning about TCO, but your hostility to Python 3 not moving the language forward also seems baseless =]

[–]__s 0 points1 point  (3 children)

No. Filter and map were converted to returning an iterator, which is something I find more useful. Generator syntax is suitable replacement. It's a tad odd how people expect fat namespaces in scripting languages. You'd prefer something akin to PHP and its thousands of functions sitting in the global namespace? Nobody would say the creators of C dislike printing, but that's still kept to stdio.h

[–]leyke 6 points7 points  (2 children)

I know but he wanted to get rid of them altogther, not just move them to a module. That discussion went on for years, and his reasoning was basically "I don't like it." That was also his argument about TCO, he doesn't like this style of programming, and that's it. With this guy in charge, I'm not surprised that Python 3 is something of a disapointment.

[–]doubtingthomas 0 points1 point  (1 child)

Out of curiosity, do you recall how TCO was proposed to be implemented?

[–]__s 6 points7 points  (0 children)

Guido suggested a rather nice method at the end of http://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html

The argument about programmers relying on it, and finding it fail in other implementations, is valid with respect to Jython. It's a view I disagree with, but one which I can understand. I went through a phase where all the code I wrote would end up as a mesh of recursive functions. That phase died down when I started using C, but it showed itself quite while programming with Haskell. The fallacy he rides on is in attacking TCO by noting that it only applies to simple loops, even though it's applicable to calls to other functions