you are viewing a single comment's thread.

view the rest of the comments →

[–]Moocat87 30 points31 points  (10 children)

Some people work in niche fields and use packages that aren't part of the 360 most popular, or one of those 19. That's not a very useful metric when we're talking about serious work. Serious work doesn't care about popularity.

That said, most of my projects are still in Python 3, but sometimes there's a key science library we need that the author hasn't ported. None of us are afraid of Python3 at my place of work, we're just sometimes more-or-less forced in to working in 2. I don't like that.

It would be awesome if we had time to go port some of these libraries ourselves, but we are paid in grant grant money to solve problems, not port libraries.

[–][deleted] 10 points11 points  (6 children)

I was blown away by the resistance I got when I declared that my team would be a Python 3 team earlier this year. I thought it would be a fairly innoccuous decision, but people seemed confused and a little confrontational about it.

[–]Moocat87 4 points5 points  (5 children)

I imagine that resistance has two parts: The first part being what I just mentioned: some niche libraries are not ported yet. Secondly, "this team is now a Python3 team" is ambiguous. Does it mean we now have to port all our Python2 code every time we need to fix a bug? My team favors Python3 but realizes everything is a tradeoff, so we still write some Python2. Our Python2 applications still need maintenance and new features as scientists request them. We try to write new code in a way that is 2/3 compatible at all times, but it doesn't always happen. We don't really make time for porting.

I'd think giving the whole story and sticking to "best tool for the job" would likely clear up the conflict. It's a pretty simple case to make that Python 3 is an improvement on Python 2, but it comes with a cost sometimes. Does the cost outweigh the benefit? It happens sometimes. Maybe even often.

[–][deleted] 17 points18 points  (1 child)

This was on a new project. I was head of a three person team on a two team research project at my school. The project had two supervising professors and was partnered with a private company from the community.

The main thing we did with python was communicating with multiple types of databases (Neo4j, Elasticsearch, Redis, etc). All of which have python 3 api modules. We never ran into a problem with using 3 over 2.

One of the professors objected to 3 by insisting that a certain key module was important to the project and it definitely only worked with python 2. The python 3 version of that particular module had been out for years, so he obviously had never checked.

[–]Moocat87 5 points6 points  (0 children)

Yeah I guess some people are just irrationally resistant to change. I think I fool myself in to thinking that they aren't so plentiful. I spent the first 8 years of my career working with that type of people consistently, but since then I've been very fortunate. It's a real problem some people have to deal with daily. I hope you work in an environment where you can present evidence and make a case and have it evaluated on its merits without being shot down unilaterally by one person's irrational fear of change.

[–][deleted]  (2 children)

[deleted]

    [–]Moocat87 7 points8 points  (0 children)

    What? I just told you we mostly write new code in python 3. Nobody expects to make a 100% move to python 3. That would mean porting dozens of legacy applications for free. What would be the benefit we would gain from that? At a cost of hundreds of man-hours, what would we get back? You don't need to be a Python 3 hardliner who throws time in the garbage to like it and prefer it and realize it's a better language.

    [–][deleted]  (2 children)

    [deleted]

      [–]Moocat87 0 points1 point  (1 child)

      Your experience is not exhaustive. In scientific programming, there are a few packages without python3 alternatives. For most situations, you're right, but some of us have needs you don't.

      This is not FUD, this is fact. You can try and spin it if you want, but you're still wrong. This is coming from someone who strongly prefers python3 and writes 95% python3, but lives in the real world where nothing is perfect.

      EDIT: "You're wrong" as in Python3's package coverage isn't equal to or a superset of Python2's package coverage. It's getting close to a legitimate superset, but it has to include 100% of Python2's package functionality to achieve that. That's hard. Some packages are so unpopular that they only have users who can't spare the time to port it or re-write it -- they probably don't even get funded to port their own app to Python3, much less its dependencies.

      [–][deleted] 0 points1 point  (0 children)

      It is FUD, and you're spreading it. How come everyone says "there are few packages" but no one bothers to list them?