News for hackers. Stuff that matters.
Re:Guido van Rossum joins Microsoft by ptx on Thursday November 12, 2020 @03:44PM (#25074730)
What's wrong with virtual environments? The required tools come bundled with Python nowadays and are super easy to use.
Re:Guido van Rossum joins Microsoft by jtdev on Thursday November 12, 2020 @09:25PM (#25078125)
Agreed 100%,in fact of the languages I work with regularly (Python, Java, C#, JavaScript, Go) Python has the simplest dependency management solution via virtualenv + pypi + pip. Not sure why every Python thread turns into a conversation about the pain of Python dep management... seems overblown.
Re:Guido van Rossum joins Microsoft by ulucs on Friday November 13, 2020 @07:45AM (#25081581)
The biggest piece that is missing is you have to go out of your way to get sane dependency management. I have only used JS and F# (same dependency management as C#) out of your mentions, and it's the official tools that enable the local dependency management with a single command ("npm install X" or "dotnet add package X").

If you're using python, you don't know to check out pyenv/etc until you have a huge mess on your computer due to pip's behavior.

Re:Guido van Rossum joins Microsoft by JAlexoid on Friday November 13, 2020 @02:13AM (#25079824)
Hm.... Let me see. The number of operations I have to perform in Maven vs Python for independent packages:

Maven Scala project - create skeleton, add libraries to POM, write app, run app

PIP Venv Python project - create venv, enable venv, create requirements file, write app, run pip to install dependencies(possibly install GCC and extra libraries), run app

(Oh... and god forbid that you forget to deactivate venv)

You're lying when you say that library management is easier in Python. It's just factually untrue.

Re:Guido van Rossum joins Microsoft by ptx on Friday November 13, 2020 @04:49AM (#25080722)
You don't have to activate the environment. I never do; it's a strictly optional convenience (it you think it's convenient).

Instead, simply run the interpreter installed in the environment when you run your app, e.g. "./my_env/bin/python my_app.py", and things will just work. No activation required, no special mode, nothing to forget.

The part about requirements.txt and installing packages could also be simplified if you did it the other way around: install first and create the requirements file from that:

  $ python3 -m venv my_env
  $ my_env/bin/pip install some-dependency
  $ my_env/bin/pip freeze >requirements.txt
  $ my_env/bin/python3 my_app.py
There you go. Setup, install and run in four steps and zero modes.
Re:Guido van Rossum joins Microsoft by JAlexoid on Friday November 13, 2020 @03:01PM (#25086736)
That's literally one step more, than Maven.

That's before you get to package your app...

Re:Guido van Rossum joins Microsoft by Dylan16807 on Friday November 13, 2020 @03:57AM (#25080453)
Most of the steps you're listing take only a few seconds. They're talking about the actual management, not how long it takes you to type . venv/bin/activate
Re:Guido van Rossum joins Microsoft by JAlexoid on Friday November 13, 2020 @03:15PM (#25086923)
A few seconds here and a few seconds there - it's death by a thousand papercuts.

There's no community consensus - that keeps Python from advancing to where it needs to be.

I said it once and I'll say it again - Python lacks mature tooling.

Re:Guido van Rossum joins Microsoft by Dylan16807 on Friday November 13, 2020 @03:35PM (#25087148)
You can't have death by a thousand papercuts when there are exactly three delay-papercuts adjacent to a step that takes a significant amount of time.

There are contexts where little delays matter, and you didn't pick one of those.

Re:Guido van Rossum joins Microsoft by jtdev on Friday November 13, 2020 @08:16AM (#25081814)
Maven is far more complicated and burdensome when compared to virtualenv and pip... pom.xml, what a righteous mess of XML and overly specified nonsense.
Re:Guido van Rossum joins Microsoft by JAlexoid on Friday November 13, 2020 @03:04PM (#25086788)
This is just to run your app, to package it - it's a whole different headache in Python.

It's literally a `mvn jar` and that's it!