>Parallelism is very bad on CPython and PyPy; GIL was added because the early python libraries were not written to be threadsafe. This was a terrible oversight and frankly should have been corrected at some point. The underlying implementations use pthreads. It's actually worse, because as multi-core devices came out the "lock-thrashing" behavior of the GIL got worse. Rather than fixing the problem we have 'multiproc…
Problems I Have with Python
201–210 of 239 posts
Re: Problems I Have with Python
#202Earlier quoted context omitted.
Because other high-performance languages have been improving their readability and expressiveness. Personally, my tool of choice is C# right now. I find it quite readable, and every bit as expressive as python - even moreso, plus it has the performance advantages of being designed from square 1 as a compiled language instead of an interpreted one. It has async/await, it has functional features that Guido hates, it ha…
But then, if you want to write a script to convert a bunch of files from one format to another, will you start a whole C# project? If you want to quickly to a mathematical calculation with matrices, then plot and visualize it, will you use C#? "Tool of choice" is misleading. Maybe you are a webdev. Maybe you write GUI applications for a living. I don't think there's clear "Tool of choice" for all jobs. The job dictat…
For reusable scripts I make a command-line app. I admit the project structure is a bit heavy weight for that but I have visual studio open all the time anyways.
Re: Problems I Have with Python
#203Earlier quoted context omitted.
The lack of tail-call optimization to make the CPython interpreter simpler and debugging easier by preserving the call stack. It was a choice, not an oversight.
From a debugging viewpoint, this does not make sense, there is usually no interesting information in the in between frames. TCE can also make debugging easier, how useful is a stack trace of 1000 lines consisting of ... File "bla.py", line 4, in fib return fib(n - 1) + fib(n - 2) File "bla.py", line 4, in fib return fib(n - 1) + fib(n - 2) File "bla.py", line 4, in fib return fib(n - 1) + fib(n - 2) ... Not so much I…
In any case, this particular problem is no longer an issue as of Python 3.6, as that now collapses repeated stacktrace lines (see https://bugs.python.org/issue26823). Although this doesn't work for mutual tail calls, it does solve the debug noise issue in the most common case.
Re: Problems I Have with Python
#204Earlier quoted context omitted.
Nah, just people connecting that sentiment with other statements. It should be cleared up since it's causing some mass confusion. It's funny because I preface it by saying "Remember that it's a matter of opinion" (and, well, the title alone) and people come out of the woodwork completely disregarding this, or outright misinterpreting sections of it. I maintain that a large reader base here does not actually... read.
Stating that something is a matter of opinion does not mean that insults do not hurt. Either you don't want people to listen to you so you don't have to worry about what you say or you do want people to listen in which case how you phrase things matters. Or put another way: I'm a core developer of Python and I found your post somewhat insulting (I've unfortunately seen worse). You claim I'm possibly incompetent and I…
I retract the "ignorance" sentiment, as I do not actually know what Python developers are considering.
I do apologize for that, and thank you for your contributions. It is still by far one of my favorite languages, and I use it daily. :)
Re: Problems I Have with Python
#205Earlier quoted context omitted.
Nah, just people connecting that sentiment with other statements. It should be cleared up since it's causing some mass confusion. It's funny because I preface it by saying "Remember that it's a matter of opinion" (and, well, the title alone) and people come out of the woodwork completely disregarding this, or outright misinterpreting sections of it. I maintain that a large reader base here does not actually... read.
I've read your piece, and unfortunately the overall tone sounds like a rant. I'm sure it wasn't your intent, but tone is hard to convey in a purely textual medium sometimes. I fall victim to this often, and have been actively working to try to avoid excessively negative tone (even if I feel that way). The ranty tone of the piece obscures the rest of the points you were trying to make - many are good, but a strong ton…
Re: Problems I Have with Python
#206Earlier quoted context omitted.
Nah, just people connecting that sentiment with other statements. It should be cleared up since it's causing some mass confusion. It's funny because I preface it by saying "Remember that it's a matter of opinion" (and, well, the title alone) and people come out of the woodwork completely disregarding this, or outright misinterpreting sections of it. I maintain that a large reader base here does not actually... read.
I'm pretty sure everybody here can read. We are asserting that your sentence: "These are obvious flaws in design, in my opinion, that warrant re-looking at, but to which no real improvements are being made for some reason. (Incompetence? Politics? Both? Who knows.)" sets a very negative tone and makes your "list of problems" look like a "list of complaints that these incompetent losers should fix asap". In my opinion…
Then right back at you -- that triggers the same problems as the original statement. :D
You could very well have stated your point more constructively with that.
Re: Problems I Have with Python
#207Earlier quoted context omitted.
Oh don't be silly, he's applying multiple possible reasons to the set of frustrations. You're applying all of them to a single frustration. What you've done isn't logical.
When he claimed that the properties P or Q are of each of the set of A, B, C, D, E, you claim that I can't conclude that he said that P or Q are the properties of A? I used A has property P, substitute A has property Q, it's still wrong claim of him, for the very same reasons: Python has a huge user base, if he can improve it in any of his points (I just selected one) and keep it working for the user base, please. I…
Says the person missing that it's an opinionated list, lol. It was more meant to provoke discussion, not hurt feelings (like your obviously seem to be).
Re: Problems I Have with Python
#208> Quite to the point, lambdas (anonymous closures) in Python are gimped. They are single-expression functions, which means no statements, even global/nonlocal qualifiers. I remember once on rosettacode I wanted to write a Runge-Kutta function in Python with a lambda. I was stopped by the lack of variable assignment, until I remembered that they can be emulated by nesting function calls: def RK4(f): return lambda t, y…
Re: Problems I Have with Python
#209http://coconut-lang.org/ looks really interesting - it seems it is a patch exactly for parts of Python I am missing. (Though, not sure if want to use another language just that case. Vide CoffeeScript and JavaScript; in this case JS absorbed the best pars of CS.)
Actually my favorite part of CS is the instance var intitialization. e.g.:
constructor(@x, @y) ->
would initialize @x and @y to the arguments.
It makes writing records much nicer.Re: Problems I Have with Python
#210Earlier quoted context omitted.
Stating that something is a matter of opinion does not mean that insults do not hurt. Either you don't want people to listen to you so you don't have to worry about what you say or you do want people to listen in which case how you phrase things matters. Or put another way: I'm a core developer of Python and I found your post somewhat insulting (I've unfortunately seen worse). You claim I'm possibly incompetent and I…
Fair enough, I never intended it to be posted to HN or receive this much attention or I'd have taken much more care with the tone. I retract the "ignorance" sentiment, as I do not actually know what Python developers are considering. I do apologize for that, and thank you for your contributions. It is still by far one of my favorite languages, and I use it daily. :)
> I do apologize for that
Maybe making your apology visible on your blog too?