• 0 Posts
  • 15 Comments
Joined 3 years ago
cake
Cake day: June 12th, 2023

help-circle




  • Womble@lemmy.worldtoProgramming@programming.devContempt Culture
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    1
    ·
    edit-2
    11 months ago

    If they had stuck to that I wouldnt have an issue with it, but they broaden it out to

    I’m tired of calling people out again and again for dumping on PHP.

    I’m tired of people dumping on Windows, that most popular operating system, because it’s not what we choose to use

    I dont see critising PHP or Windows as a problem, both have serious faults. The argument put forth here conflates two things: That critising a language is bad (fine IMO), critising people for liking a language is bad (not fine). We should welcome the former while insisting the later isnt acceptable.


  • Womble@lemmy.worldtoProgramming@programming.devContempt Culture
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    5
    ·
    edit-2
    11 months ago

    So should we be entirely uncritical of whichever language people choose to use because it might be percieved as offputting to someone? Would someone writing in brainfuck or whitespace or FORTRAN66 for an actual project (i.e. not just for their own interest) not be subject to critisim for that choice?

    Discussion of how languages have bad features and what they could do better is how progress gets made and languages improve over time. I personally find it annoying the level of recent dumping on python that seems to be popular, but they often have a point. Those points are useful in figuring out either how to make those languages better or how the next language to be created should be. Labeling that as problematic and “actively participating in the exclusion of women from STEM” seems to me to be a huge reach.




  • Womble@lemmy.worldtoProgramming@programming.devSelf-documenting Code
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    5
    ·
    edit-2
    1 year ago

    Good code is not “elegant” code. It’s code that is simple and unsurprising and can be easily understood by a hungover fresh graduate new hire.

    I wouldnt go that far, both elegance are simplicity are important. Sure using obvious and well known language feaures is a plus, but give me three lines that solve the problem as a graph search over 200 lines of object oriented boilerplate any day. Like most things it’s a trade-off, going too far in either direction is bad.



  • I was responding to your general statement that python is slow and so there is no point in making it faster, I agree that removing the GIL wont do much to improve the execution speed for programs making heavy use of numpy or things calling outside it.

    That’s a bit suss too tbh. Did the C++ version use an existing library like Eigen too or did they implement everything from scratch?

    It was written entirely from scratch which is kind of my point, a well writen python program can outperform a naive c implementation and is vastly simpler to create.

    If you have the expertise and are willing to put in the effort you likely can squeze that extra bit of performance out by dropping to a lower level language, but for certain workloads you can get good performance out of python if you know what you are doing so calling it extremely slow and saying you have to move to another language if you care about performance is missleading.


  • Numpy is written in C.

    Python is written in C too, what’s your point? I’ve seen this argument a few times and I find it bizarre that “easily able to incorporate highly optimised Fortran and C numerical routines” is somehow portrayed as a point against python.

    Numpy is a defacto extension to the python standard that adds first class support for single type multi-dimensional arrays and functions for working on them. It is implemented in a mixture of python and c (about 60% python according to github) , interfaces with python’s c-api and links in specialist libraries for operations. You could write the same statement for parts of the python std-lib, is that also not python?

    Its hard to not understate just how much simpler development is in numpy compared to c++, in this example here the new python version was less than 50 lines and was developed in an afternoon, the c++ version was closing in on 1000 lines over 6 files.


  • Nope, if you’re working on large arrays of data you can get significant speed ups using well optimised BLAS functions that are vectorised (numpy) which beats out simply written c++ operating on each array element in turn. There’s also Numba which uses LLVM to jit compile a subset of python to get compiled performance, though I didnt go to that in this case.

    You could link the BLAS libraries to c++ but its significantly more work than just importing numpy from python.