Hacker Newsnew | past | comments | ask | show | jobs | submit | nas's commentslogin

Just an FYI, for people looking at the low pass rates for mypy and ty and concluding they must not be very useful. These test suites are checking many odd corners of the typing spec.

For "normal" Python code, I find mypy does pretty good. Certainly I find it helpful, especially on a large code base and when working with other developers of various experience levels.

The reason I prefer pyrefly over mypy is mostly because of speed. Better accuracy is nice but speed it the killer feature. Given the quality of uv and ruff and the experience of the team working on ty, I'm quite confident it's going to be great in that respect as well.


> people looking at the low pass rates for mypy and ty and concluding they must not be very useful

Yeah, that would be the wrong takeaway from this blog. The point of the blog was to add context to what the conformance results mean and clarify their limitations, since I saw quite a few people sharing links to the tracker online w/o context.


I dont know, I've seen some truly simple things check out as ok in mypy

Example

def foo(bar: bool) -> bool:

  if bar:
 
    m = True
 
  return m
No error that m is defined conditionally? What's going on?

ty and zuban also don't give an error. pyright and pyrefly do.

My CS college used Turbo Pascal as a teaching language. I had a professor who told us "don't turn the range and overflow checking off, even when compiling for production". That turned out to be very wise advice, IMHO. Too bad C and C++ compiler/language designers never got that message. So much wasted to save that less than 1% performance gain.


I get:

3.9: 2.78

3.14: 3.86

3.14t: 3.91

This is a silly benchmark though. Look at pyperformance if you want something that might represent real script/application performance. Generally 3.14t is about 0.9x the performance of the default build. That depends on a lot of things though.


Pyperformance is a bloated, over-engineered test suite that does not catch anything. Due to the bloat it is hard to see what is even measured.

This benchmark demonstrates that global variables are not needed to find severe regressions.


The "starve the beast" strategy (https://en.wikipedia.org/wiki/Starve_the_beast) has been around for a long time and is something that some right wing conservative people want to do. E.g. Norquist's quote that "My goal is to cut government in half in twenty-five years, to get it down to the size where we can drown it in the bathtub.".

As someone else mentioned, this isn't only about improving efficiency of the government but also about it doing less. So things that currently you would be getting from the government you would no longer be getting. You might agree or disagree with this idea.

Predicting what Trump is going to do is not easy. I don't think he really knows himself each day what he will get up to. Mostly draw a lot of attention to himself, seems the main goal. He's doing fantastic on that front. Regarding policy, he is a lot more purposeful vs his previous term and he is pretty closely following the Project 2025 playbook:

https://old.reddit.com/r/OutOfTheLoop/comments/1itd7xq/whats...

https://docs.google.com/spreadsheets/d/1RHMnJmuv82n6OuY8KYmJ...

Enacting government policy primarily through executive orders is an "interesting" approach. I would say that's not how you want a government to work. Maybe Trump's extreme use of EOs will prompt some reform or maybe it will become the new norm. The other branches of the US government don't seem very interested in actually performing their job.


The congress in 2021 seemed very interested in doing their job but the minority in the Senate did a really good job of obstructing anything and everything using the pocket filibuster.


Every PyObject structure has a ob_type pointer.


Every Object in Java has a getClass method. If we changed all the static type information in Java to the `Object` type, that'd be pretty close to Python's case.

GP's post is probably the "unityped" critique of dynamically typed languages by Robert Harper: https://existentialtype.wordpress.com/2011/03/19/dynamic-lan...


Thank you for sharing. I hadn't read that critique but I am in wholehearted agreement. Dynamic typing imposes significant cognitive overhead in exchange the privilege of letting you writing incorrect programs.


The key enabling tech is thread safe reference counting. There are many other problems that Sam Gross solved in order to make it happen but the reference counting was one of the major blockers.


Is this implemented with lockless programming? Is it a reason for the performance drop in single thread code?

Does it eliminate the need for a GC pause completely?


You should probably just read the PEP, which explains these things:

https://peps.python.org/pep-0703/#reference-counting

If by GC you mean the cyclic GC, free-threaded Python currently stops all threads while the cyclic GC is running.


Thank you:)


There are a whole set of problems, IMHO. The code-of-conduct working-group (CoC WG) members are self selected. There is no effective oversight mechanism. No matter if you think they are currently doing a good job or not, it's not a proper way to organize such a group. The steering council (SC) did a poor job in communicating and their tendency towards secretiveness does not inspire confidence that the machinery regarding these things is working correctly. Part of the justification for secrecy is that they are protecting the banned person. That is hard to believe since it's trivial to figure out who they are talking about given their initial ban announce posting (X number of posts in a certain topic points to exactly one person). So it looks more like the secrecy is to avoid answering uncomfortable questions about the decision making and the process and not about actually protecting the accused.

Someone made a great analogy about what is happening here. You have a machine that is supposed to make toy dolls. One day you notice the dolls coming out the machine are deformed and weird looking. So, you say to the doll factory manager:

> I think something is wrong with the doll making machine.

They say

> No, this is a very high quality doll making machine, look at the specifications on the great looking dolls it will make. Don't you trust that this machine will make proper dolls? The manufacturer and people running the machine are all very trustworthy

You say:

> That might be true but I see the dolls coming out are deformed, something must be wrong.

Tim does not get a free pass to behave badly just because he is a long-time Python contributor. However, given his literal decades of civil behavior in many public forums, it is hard to believe he did something that was justifying a ban. Based on looking at what the CoC WG shared and what Tim shared, I don't see anything that justifies it. So, I don't think the "machine" is working correctly.


It took me a while to realize that the SC people were talking about in this thread was the Python Steering Committee. I thought it stood for Star Chamber.


Very encouraging news!


I think it means it could be a title from a Monty Python skit, not that it necessarily is taken from one.


darktable is still being developed. There are pretty regular releases. I use it as my main photo processing software (raw-based workflow).

As I said in my other comment, Aurélien has strong opinions. He felt he could not effectively work with the other darktable devs and decided to fork the project.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: