4 ms·
When I went to learn Python I was immediately faced with a choice that would have profound effects on my future success: Python 2 or Python 3. Both sides are
by stevecalifornia 11y ago
When I went to learn Python I was immediately faced with a choice that would have profound effects on my future success: Python 2 or Python 3.
Both sides are extremely persuasive and thus I felt that no matter what choice I made it was the wrong one and would haunt me down the line.
So I just stuck with a different modern language that has wide acceptance and isn't battling with itself.
- aoro 11y agoSo, what did you choose?
- markdown 11y agoPHP.
- ausjke 11y agoPHP is still the king at web, php5-cli might not be as popular as Python. Python seems more popular at Academics, and it's essentially the Basics for the generic public, or replacing Java at colleges nowadays. That been said, I use PHP myself, PHP7 looks promising. Python 2 vs 3, AnguarJS 1 vs 2, the self-conflicted "upgrade" is double-sided.
- thejosh 11y agoPHP7 new features are very welcome and look great. Speed improvement is great as well. Seeing 2-5x speed improvements. :)
- adrianlmm 11y agoThe same thing hapenned to me in 2011, so I ended learning Ruby, no regrets.
- takeda 11y agoWhich is quite ironic, because (at least from my experience) Ruby constantly breaks backward compatibility.
- adrianlmm 11y agoNot at all, I can easily migrate 1.9 Ruby projects to 2.2.3 w/o any problems.
- takeda 11y agoI remember that code for Ruby 1.8 required changes in source to make it run on Ruby 1.9 and that was just a minor version change.
- danso 11y agoWhen was your experience? I could definitely agree with that pre 1.9.x. But I can think of barely a handful of examples in which minor things have broken during my time in Ruby from 1.9.3 to 2.1.5...even when booting up a year-old laptop with godknows what actual version of Ruby via rbenv I have on it...things just seem to work...And even problems that arise from specific scenarios with libraries, or when I simply must move an old system from 2.0 to 2.1.x or whatever...Upgrading the Ruby and then running bundler almost always just works. In contrast, with Python, on a weekly basis I run into 2.x and 3.x problems...last week it was running the Google Cloud SDK, which is 2.x only. I say this as someone who has almost switched exclusively to Python (3.x) and enjoy it...but man I miss the days of Ruby's ease-of-use. (but yeah, 1.8 to 1.9 was not a lot of fun, but thankfully, many years have passed since then)
- takeda 11y agoYes, it was 1.8 to 1.9 and frustrating because the change was just increase in minor version number.
- jrumbut 11y agoIt's not necessarily about breaking or maintaining backward compatibility that matters here. It's about how supporting two similar looking yet ultimately incompatible versions creates confusion for new users, driving them away. This is the same issue facing Perl (although the Perl situation seems more dire) WRT Perl 5 vs Perl 6. For Python maybe the benefits of keeping Python 2 alive for large users offsets the harm of any confusion, I have small projects (all in Python 3) so it's a rare annoyance rather than a deal breaker.
- RussianCow 11y ago> Both sides are extremely persuasive and thus I felt that no matter what choice I made it was the wrong one and would haunt me down the line. It really isn't that big or hard of a decision. For the vast majority of projects, the choice doesn't matter, so I'd default to Python 3 at this point. Really, the only reason to choose Python 2 for a new project is compatibility with libraries you need[0], but the list of Py3-incompatible libraries is constantly getting smaller and smaller. That said, if you already have a lot of Python 2 code written, there probably isn't any point to upgrading--the benefits are marginal at best, and it can be a lot of work to migrate a large code base. [0]: Here's a pretty good reference for Python 3 support in popular libraries: http://py3readiness.org/ http://py3readiness.org/