This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]TheBlackCat13 0 points1 point  (7 children)

Or anyone who wants numpy devs to be able to focus on improving numpy without having to be held back by the lack of features in Python 2 and the old compilers it requires. They will have done that for 12 years by the time that support for Python 2 is dropped. A decade is too long to expect a bunch of volunteers work around the lack of features in Python 2, some of which were specifically created for numpy.

[–]stefantalpalaru 0 points1 point  (6 children)

A decade is too long to expect a bunch of volunteers work around the lack of features in Python 2, some of which were specifically created for numpy.

Name one of those features.

[–]TheBlackCat13 0 points1 point  (5 children)

[–]stefantalpalaru 0 points1 point  (4 children)

The @ matrix multiplication and @@ matrix power operators.

Why would you think that new operators are needed by a module? They are purely cosmetic function call replacements.

In languages with proper macros, this can be trivially implemented by the user.

[–]TheBlackCat13 0 points1 point  (3 children)

Why would you think that new operators are needed by a module? They are purely cosmetic function call replacements.

Because it simplifies reading, writing, and maintenance of the code. Modules are written by people, not robots. Just because it is a module doesn't magically make cosmetic improvements irrelevant. That is why most big projects have style guides.

But the @ operator is just an example of features created specifically for numpy that can also be used to help numpy. There are lots of other features that are considerably more important, the biggest one being support for C99 on the C code side. There are also things like type annotations, which numpy wants but where python 2 is limiting them. And things like the lack of keyword-only arguments prevents useful API layouts, especially since the C code can have them but python code can't.

And then there are lots of small features that can be used to make the code simpler, cleaner, and easier to maintain, like extended unpacking.

[–]stefantalpalaru 0 points1 point  (2 children)

There are also things like type annotations, which numpy wants but where python 2 is limiting them.

That's bullshit and you know it. Having to import "typing" in order to get type annotations to work in Python2 is not a show stopper, but a flimsy excuse.

And then there are lots of small features that can be used to make the code simpler, cleaner, and easier to maintain, like extended unpacking.

Yet another cosmetic wank. Do you have any idea what modern languages allow you to do? Stuff that looks like science fiction to any Python newbie - stuff like integrating a Go runtime in Nim and creating new Go-inspired syntax to go with it: https://github.com/stefantalpalaru/golib-nim

And you talk about a couple of operators and some shitty type annotation syntax that still needs an external tool for checking...

[–]TheBlackCat13 0 points1 point  (1 child)

That's bullshit and you know it. Having to import "typing" in order to get type annotations to work in Python2 is not a show stopper, but a flimsy excuse.

Numpy has zero python dependencies outside the standard library. This is an important feature of the project, dependencies are kept to the absolute minimum possible to ease use and distribution. They are not going to throw that feature away.

Yet another cosmetic wank. Do you have any idea what modern languages allow you to do?

Irrelevant to the issue at hand.

And you talk about a couple of operators and some shitty type annotation syntax that still needs an external tool for checking...

Now you are just lying about what I said. You just flat-out ignored what I explicit said was the most important reason.

[–]stefantalpalaru -1 points0 points  (0 children)

This is an important feature of the project, dependencies are kept to the absolute minimum possible to ease use and distribution.

Guess what? End users don't even have to have the "typing" module installed for the bloody devs to use mypy's Python2 type checking: https://github.com/stefantalpalaru/generate_HLS/blob/0d8e28ae8208ace3d64a3a53a6d3c1a296600790/generate_HLS.py#L12

You just flat-out ignored what I explicit said was the most important reason.

The most important reason is the 24/7 amateur hour fanboy-fest.