4 ms·
Python shoot itself in the foot by breaking compatibility in version 3 and not even providing automated transition tools (like Go does). Look beyond the propaga
by stefantalpalaru 14y ago
Python shoot itself in the foot by breaking compatibility in version 3 and not even providing automated transition tools (like Go does). Look beyond the propaganda and notice the interval between the launch of Python3 and major libraries being ported to it.
- jerf 14y agoYou mean like http://docs.python.org/2/library/2to3.html http://docs.python.org/2/library/2to3.html ? Static typing arguably makes it easier to provide a deeper and more accurate translation, but Python did at least try. And note that's a link to Python's official docs, not a side project or something; 2to3 was created by the core Python team as part of the official upgrade path, not an afterthought.
- stefantalpalaru 14y ago"Sometimes 2to3 will find a place in your source code that needs to be changed, but 2to3 cannot fix automatically. In this case, 2to3 will print a warning beneath the diff for a file. You should address the warning in order to have compliant 3.x code."
- jerf 14y agoSorry, that's goalpost hiking. You said they didn't provide an automated transition tool, not that it wasn't perfect. Go's tools will only issue warnings in some cases too, so I'm really lost as to what you think you're saying here.
- jemeshsu 14y agoTo be fair, Go promises only single version compatibility. Which means all point releases 1.x will be backward compatible. I can see Go 2 breaking compatibility.
- stefantalpalaru 14y agoSo far "go fix"[1] took care of incompatible changes pre-1.x . [1] http://golang.org/cmd/fix/ http://golang.org/cmd/fix/
- sigzero 14y agoThat is a poor comparison at best. Guido laid down a 5 year transition plan from Py2 to Py3 and that is actually working very nicely.
- stefantalpalaru 14y ago> a 5 year transition plan from Py2 to Py3 and that is actually working very nicely For whom? Five years is long enough to realize that you might as well try new languages instead of porting all your code base (and maybe some libraries that you need) to the slightly improved but backwards incompatible version of Python.