Get 10x more out of...
So you're saying it goes up to 11x?
HN user
Get 10x more out of...
So you're saying it goes up to 11x?
I'm a little tired of this comparison and this point. Its fine if you like Brave New World more than 1984. But does this need to be mentioned every time Orwell is mentioned? Orwell wrote a lot more than 1984 and Animal Farm.
I mean, this article doesn't mention 1984 at all.
Or economics papers for the kiddie version
Not to mention the huge posthumous bump that Rorty got for being labeled "The Philosopher who predicted Trump." There was even a new collection of his essays out in 2022 [0].
[0] https://press.princeton.edu/books/hardcover/9780691217529/wh...
MacIntyre romanticizes ancient communities and traditions, but ignores the fact that plenty of those upheld horrifying practices
What makes you think that? A huge part of After Virtue (basically the whole part, after the initial diagnosis of where we are now and how we got here) is about how to construct and understand communities that might provide a shared idea of human good without simply going back to an Athenian idea of what that looks like. In fact if I were to summarize the book in a nutshell I would argue its an attempt to rehabilitate Aristotelian ethics without simply accepting Aristotle's own moral percepts.
Does the article he links to towards the end of the article address your concerns?
Without complex input spaces, there's no explosion of edge cases, which minimizes the actual benefit of PBT. The real benefits come when you have complex input spaces. Unfortunately, you need to be good at PBT to write complex input strategies. I wrote a bit about it here...
Here's the link: https://www.hillelwayne.com/post/property-testing-complex-in...
Not that you're asking, but https://www.littlewargame.com/ is a good WC1/WC2 clone with a lot of good QoL features included.
I'm aware, but you said Pylance, which to my knowledge is just the VS Code extension.
I'm satisfied with Mypy but curious to someday try other type checkers. Pyright is on the list.
I'm afraid you lost me.
Thanks for clarifying that compilers don't have free will. I was being facetious, sorry.
Hard to conceive of a case where that would occur. Can you think of one?
The implication of what you're saying seems to be that if you're concerned about some kind of correctness you should be writing unit tests anyway and not being so fussed about type checking in a language like Python. I suppose if you are strictly following TDD that might work, but in all other cases type checks give you feedback much more quickly than unit tests ever can. I guess I don't understand.
No, I was correct. Briefly, my question was "why is static typing good?" and the answer given was "static typing is good because it makes development easier." To the extent that "good" here just means "makes development easier" (and I think that is a lot of what "good" means in this context) then the answer I received was question begging to precisely that extent. Which is why I said "... to an extent." The conclusion was not quite assumed but a pretty similar conclusion was.
I can see how it appeared that I was using the phrase in the incorrect way! That usage bothers me too, and I am attentive to it.
Not a VS Code user
What is an example of a compiler that flat out refuses to run (compile) your code? Obviously Python is not an example. The other language I know best is Rust, where as I understand the compiler doesn't refuse to compile your code, it cannot compile your code. Is there a language where the compiler could compile your code but refuses to do so unless the types are all correct?
No offense, but this sounds like user error. I rarely have irrelevant type warnings. If I do, it suggests something is wrong with my design.
If you declare a function parameter as `foo: int = None`... that is just an incorrect declaration. Of course a variable annotated as `int` can take a `None` value, but that is because any variable can take any type in Python. Within the Python type (annotation) system it is simply the case that an `int` and an `int | None` are two different things, as they are in other languages (eg Rust's `T` vs `Option<T>` types).
Mypy used to support the "implicit optional" feature you describe but now you must make nullable arguments explicitly optional. This is in line with Python's "explicit is better than implicit" design philosophy. In any case, how long does it take you to just type `foo: int | None = None`? Or you could re-enable the old behavior to allow implicit optionals with `--implicit-optional` or the corresponding config file option. It seems like you just need to configure mypy to match your preferences rather than fighting with its defaults.
To return to the broader point, I'm unsure what an "irrelevant type warning" is, but I suspect that has something to do with my lack of appreciation for dynamic typing. Can you give an example that isn't just a complaint about typing an extra 6 characters or about mypy being misconfigured for your preferences?
But you can achieve #1 with typing.Protocol in type-annotated Python and traits in Rust. Fitting the "strict definition" sounds like nominal typing but you can opt in to explicit duck typing or structural typing while still being typed. (Someone correct me if I'm using these terms incorrectly.) In short you can still encode a lot of flexibility with types without just abandoning them alltogether.
And with #2, you can get that with static typing too... Let's say a method accepts an instance of an object `Foobar`. I can change the definition of `Foobar` ("change what shape [my] data is") without having to change type annotations everywhere.
I agree with you, I guess, that I find the steel man position unconvincing.
Sometimes, but maybe you haven't written any tests! Type hints and immediate feedback from mypy are a lot easier than writing unit tests.
That would seem to be begging the question to an extent. Why does dynamic typing lead to lower development effort? I mostly write Python and make heavy use of type hints. With LSP set up, mypy informs me immediately of any potential type errors which makes development way easier for me.
Just saying "dynamic typing is easier" doesn't do it for me without further qualification since that statement doesn't conform to my own experience.
Or Micro[0]
Even better, run `mypy` as part of your LSP setup and you don't even need to wait to run `mypy` to see type errors! If I make a mistake I want to be notified immediately.
I would love to read the steel man case for dynamic typing, but "static typing is for people who need therapy" isn't doing it for me. Anyone have something to recommend so I can understand the intended benefits of dynamic typing?
Unsure how this comment is relevant
I feel like the likelihood that a project will say what language it is written in is much higher if that language is Rust. I like Rust but I do find this trend a little annoying. (Even though I acknowledge that "written in Rust" probably means the tool is relatively new, not buggy, and easy to use.)
Sure, but there's not limit to what people can decide to care about. There will always be people who want more speed and less latency, but the question is: are they right to do so?
I'm with the person you're responding. I use the regular suite of applications and websites on my 2021 M1 Macbook. Things seem to load just fine.
I have nushell installed and use it sometimes. Does it have built-in JSON parsing like jq?
Edit: Well, I just found out about `cat some.json | from json` in nushell. Pretty cool! The nested tables are nice.
Why are you conflating "best" with "what you would recommend a friend"?
Many of the best things in life are hard. And you wouldn't necessarily recommend them to a friend.
When you consider specific domains, often the best instances of X tend to be harder versions of X. Or, when people become familiar with many instances of X they seek out the "best" instances of X. Its natural that those best instances would be difficult for people unfamiliar with the domain.
Aren't brick-and-mortar bookshops, generally speaking, as viable as Apatosaurus today?
Not at all. Many of them are doing very well and have rebounded from the hit they took when Amazon entered the scene. Not as many of them as there used to be but they're far from dead. In many cities they're thriving.
Also — secondhand books are generally outdated, undesirable, and/or damaged — do collectors still find diamonds in the rough?
Yes they do, but your premise is incorrect. Many secondhand books are undesirable, sure. Most are. But that doesn't mean there aren't millions of books out there that are valuable either for a collector or to individual buyers.
No reason to waste real estate on any sort of dedicated seller.
Ugh.
What's the fundamental difference between fast food and fine dining? They're restaurants with food; someone makes a few bucks.
1000% yes, at least with the help of book scouts that cull #2 and sell what they find to #1 for ~40% of retail.
If you want a fun fictional take on this, John Dunning's Booked to Die is a biblio-mystery about a Denver detective / book-lover investigating the murder of a book scout within the 1980's Denver used bookstore scene.
But the ranking is not reflective of actual skills. That's the critique. Aside from very frequent open source contributors (and I think these people are the minority of devs), devs will tend to be "profiled" by this tool according to the dot scripts, university projects, Advent of Code, or other half-hearted projects they happen to have put on their Github. (Maybe I'm just projecting...)
The issue isn't that not everyone has a Github presence, the issue is that for most people their Github presence is somewhat unrepresentative of their actual job skills.