> But this is why machines now need 16GB of ram and four cores to run the calculator.
This has more to do with the fact that the web stack has become the de-facto app development platform, and thus we inherit the bloat and optimization oversights of that platform.
You're not going to make a 16GB calculator just because you personally prefer copies over shared ownership in a language that gives you the tools to avoid bloat in a myriad of ways.
> Be a business that makes an actual product that people want sufficiently to buy it and cover the costs, because your website is in itself the ad for your company and product.
And how do you suppose people find out about that product?
Like, I hate the modern ad ecosystem as much as the next person, but I also understand the abstract need for the existence of advertisements of some kind.
> And how do you suppose people find out about that product?
Probably by having a good website, that is easily searchable for search engines and found with the right keywords. If I have a need for something, I should be able to search in a search engine and their website should show up in the results. The results should also be specific enough to my query. If I search for some business or solution in my area, it should surface things in my area predominantly.
> Like, I hate the modern ad ecosystem as much as the next person, but I also understand the abstract need for the existence of advertisements of some kind.
We used to have catalogs and yellow pages before ads were everywhere.
I find that this is something reflective of most modern language ecosystems, not just Rust. I actually first started noticing the pervasiveness of MIT on npm.
For me, I am of two minds. On one hand, the fact that billion-dollar empires are built on top of what is essentially unpaid volunteer work does rankle and makes me much more appreciative of copyleft.
On the other hand, most of my hobbyist programming work has continued to be released under some form of permissive license, and this is more of a reality of the fact that I work in ecosystems where use of the GPL isn't merely inconvenient, but legally impossible, and the pragmatism of permissive licenses win out.
I do wish that weak copyleft like the Mozilla Public License had caught on as a sort of middle ground, but it seems like those licenses are rare enough to where their use would invite as much scrutiny as the GPL, even if it was technically allowed. Perhaps the FSF could have advocated more strongly for weak copyleft in area where GPL was legally barred, but I suppose they were too busy not closing the network hole in the GPLv3 to bother.
I love the MPL and I use it wherever I get the opportunity. IMO it has all the advantages of the GPL and lacks the disadvantages (the viral part) that makes the GPL so difficult to use.
The best time for a city to invest in making their city walkable and public-transportation-able is decades ago. The second best time for a city to invest in making their city walkable and public-transportation-able is now.
Not everyone wants walkable. I'd much rather a remote first economy and cars. One of my hobbies is riding motorcycles on race tracks, I need a garage to store them, and a vehicle to tow them there. This is practically impossible in "walkable" cities.
90% of Japanese residents live in, essentially, a walkable megacity, and plenty of them ride motorcycles on the country's many tracks (which you would expect, since Japan houses several of the top motorcycle manufacturers). They don't have any issues participating in their hobby, and you wouldn't either.
Note that this holds without even having to mention that holding the ability for millions of people to be independent and mobile without needing to purchase and maintain a vehicle against a niche and expensive hobby is ridiculous. But there's no need to bring that up because we can have both.
Localities large and small have been moving towards higher density, walkable and transit oriented development for years now. It's happening, and it works.
Every time I attempt to read it, halfway through my brain flips into the mode that is normally reserved for when people start telling me that Ivermectin is a COVID remedy, or something equally farcical.
The comment you're replying to is not OK and I've replied to them to convey that. But the escalation and gudelines-breaking conduct in the thread began with you and was extreme. We need you to stop this style of commenting on HN and make an effort to observe the guidelines if you want to keep participating here. You've been warned before, and after enough warnings we have to ban accounts that keep commenting like this.
Please take a moment to remind yourself of the guidelines and make an effort to follow them in future.
I believe you when you say that nobody at YC put their thumb on the scale for this story in particular.
However, YC very much has control over the algorithm used to rank stories on the Hacker News front page, and this algorithm very commonly downranks threads which are detected as being "controversial."
If the algorithm "working as intended" consistently downranks stories that cast a bad light on YCombinator, the sorts of people y'all mingle with, or the tech industry in general...is that any better than putting your thumb on the scale?
This is kind of why I feel obligated to use https://news.ycombinator.com/active - after all, it's a very good indication of what Hacker News' algorithm and certain cohorts of its readership wants to hide from the casual viewer. And given the sorts of stories it tends to hide, it doesn't reflect well on this site or its users.
> If the algorithm "working as intended" consistently downranks stories that cast a bad light on YCombinator, the sorts of people y'all mingle with, or the tech industry in general...is that any better than putting your thumb on the scale?
That's the exact opposite of what Dan stated, what this thread (and your link) demonstrate, and my own lived experience here.
that's fair but the post was on page 3 for a while. glad to see it restored to the front page. (the charitable explanation is that non-moderators can flag stories, as opposed to an official policy to protect YC companies)
This thread required manual intervention to override the algorithm - intervention that it did not always have and not all stories benefit from.
My argument is that the algorithm, as well as the various gameified engagement mechanisms on this site, are badly conceived and gives too much censure and veto power to ordinary users.
HN is designed to downweight sensational-indignant stories, internet dramas, and riler-uppers, for the obvious reason that if we didn't, then they would dominate HN's frontpage like they dominate the rest of the internet. Anyone who spends time here (or has read https://news.ycombinator.com/newsguidelines.html) knows that this is not what the site is for. The vast majority of HN readers like HN for just this reason. It is not some arbitrary switch that we could just flip, if only we would stop being censoriously sinister It's essential to the operation of the site.
At the same time, we downweight such threads less when the sensational-indignant story, drama, or riler-upper happens to be about YC or a YC-related startup. Note that word less. It means we "put our thumb on the scale" in the opposite direction you're implying: to make those stories rank higher than they otherwise would.
How you get from that all the way back to the notion that we moderate HN specifically to suppress negative stories about YC strikes me as escape-artist-level logic, and citing a web page that we ourselves publish as the best (only?) supposed evidence for this is surely a bit ironic.
> Currently, there is no evidence that non-job submissions about a YC startup receive preferential treatment on the front page, or kill submissions critical of a YC startup. In fact, the moderators have stated that they explicitly avoid killing controversial YC posts when possible.
And also:
> Additionally, founders of YC companies see each other's usernames show up in orange, which — although not an explicit benefit — does allow fellow YC founders to immediately identify one another in discussions.
> If the algorithm "working as intended" consistently downranks stories that cast a bad light on YCombinator
We manually intervene to reduce or remove the penalties that downrank YC-related stories. Thus, stories like this one get more front page exposure and discussion than they would if they were not YC-related. And anyone can audit this via /active, HNRankings and any other tools they may want to build by pulling data from the API.
> the sorts of people y'all mingle with, or the tech industry in general
That phrase reflects an assumption that YC is synonymous with the tech industry and that everyone at YC and in the tech industry “mingles” and agrees with one another. That’s far from true. Even among the YC partners there are differences in opinion about these things, and there have been huge public disputes in recent years between prominent YC-aligned figures and other major tech industry identities.
It’s natural that people come to HN to discuss and scrutinize the activities of the tech industry, given that we’re a major public discussion forum focused on the tech industry. We accept that and make allowances for it. It doesn’t mean we need to apply the same lower-moderation philosophy to every tech industry controversy that we do when YC is a part of the story.
> HN is one of the few places where this feel-good nonsense actually gets rejected
Something I learned a long time ago is that it doesn't matter how well you argue a point with a nincompoop, they will simply shrug and repeat their horseradish verbatim in the next thread, hoping that next time they don't attract an audience with as much critical thinking. Unless you are willing to waste as much time as they are arguing on the internet, it's a fruitless endeavor.
It's really up to the moderators of a social space to keep bad faith nincompoops out, and Hacker News has shown themselves to be complicit and unwilling to do what is necessary to prevent its own enshittification. At this point, this place is just Reddit with a tone policing and a nuclear downvote button.
The way I think about it is that the person I'm arguing with online is not really the person I'm trying to persuade; I'm trying to persuade the rest of the people reading.
The tech community was the source of the largest threat to American science in a century. As cheesy as it sounds, I think its my duty to counter the lazy talking points that otherwise go unaddressed in these circles.
> I'm trying to persuade the rest of the people reading.
That does help, and is part of the reason I myself engage with these folks from time to time, but it requires discipline to recognize when you're throwing good effort after bad.
You want to give your voice the greatest chance of being seen. Strategically responding to upvoted bad faith in a highly visible thread is a good idea. Keeping an argument alive 5-6 levels deep in a subthread that was already flagged is less so.
The mods here are worse than complicit. Dang in the past has allowed threats of violence while warning/deleting/banning petty name calling in the responses. It’s frankly disgusting.
Hacker News is Reddit with a tech-supremacy mindset.
My background is philosophy of language. I studied formal/mathematical logic in grad school. I was always embarrassed that I couldn't code, but the computer sciences classes were teaching languages that were inscrutable for someone even with my background, with syntax heavily focused on jargony math and technical concepts like object orientation (likely java at the time).
Around 2010, I was talking about this with friend about this failing of mine, and he said "you should try python, I've heard it is popular with non-math folks." So I bought a book, and as soon as I opened it, I could just read it. It took me a couple days of reading to wrap my head around object orientation, but on the functional side, I could have written fizz buzz like, maybe half an hour after opening the book.
Humans have logic pre-built into our brains, it's just that we use natural language as our syntax. Python cleverly used as much of the natural language syntax as was practicable to remove the barriers to entry for non-math majors. Whitespace is perfect example of a natural language syntax feature.
The whitespace thing is actually one of python's major flaws. That feature attaches syntactic meaning to non-printing characters. From a human standpoint, there're many examples of silence having some kind of meaning. From an engineering standpoint, that entire methodology is insane. Communication needs to be positive and deliberate.
Remember that Apple SSL bug "goto fail"? That was a whitespace bug, because even if the C feature predated python, everyone's eyes had been trained to slide right off that particularly crass shortcut as python was widespread by that point.
>Communication needs to be positive and deliberate.
I don't know what you mean by this.
>The whitespace thing is actually one of python's major flaws. That feature attaches syntactic meaning to non-printing characters. From a human standpoint, there're many examples of silence having some kind of meaning. From an engineering standpoint, that entire methodology is insane.
It's not non-printed characters, it's alignment. The period is a parallel for the semicolon in programming, to signal the end of a unit, but the whitespace in python is a parallel to the bullet point, or poetic stanza. Those both parallel to python in the form of atomic statements.
Most people's concern is the hanging indentation. Here, I would argue that we can effectively prove that hanging indentation is vastly more parallel to natural language than braces. Simply search for "handwritten recipes" and you will see that in a natural language assembly exercises -- effectively a real world parallel to programming -- human beings naturally default to hanging indentation when grouping sub-categories of items together.
Does this parallel to the jargony math you'll find in math books? No. But it trivially flows from human beings in the real world, and there is nothing formally incorrect in the syntax. Thus, we would likely find that layperson would intuitively understand the hanging indentation, where as braces as syntax is jargony, and must be learned.
> Here, I would argue that we can effectively prove that hanging indentation is vastly more parallel to natural language than braces.
I see where you're coming from. However, I would counter that in the use cases you've shown, as well as all of the use cases I've seen in the real world, there are important differences between them and Python.
1. Hanging indentation is most often used in things that are small in scope, where you can easily see both the start and the end of the list. Python blocks can grow without bound.
2. Hanging indentation in real life doesn't require perfect alignment. Python does.
I don't think it has anything to do with Python. I had plenty of 'if' errors in C++ caused by indenting the second line and not putting braces around it prior to Python. They were always painful to debug. I finally just _always_ put a brace around an 'if' block, regardless of whether it is one line or many, and I've never had that problem again. I think the problem is that C lets you omit the brace for one line; it should always require a brace.
Python executes like it reads, which seems like a positive feature to me. Makes errors like C's two-line if block impossible.
There's functionally little difference between spaces being non-printable characters, unless there are examples of text editors that do not render offset empty space when they're used.
Spaces vs tabs, sure, that's an argument.
But it doesn't seem reasonable to argue that {something that is visible in a text editor} is different than any other kind of character.
It's not like Python was using the bell ASCII or somesuch.
> It is far and away the most common footgun novices run into when I'm answering questions about why their code doesn't work.
It was, in my experience, before Python 3 clamped down on mixed spaces on tabs; before the `SyntaxError`s got better (for example the handling of `try` without `except`); and before VSCode got so popular (such that all the novices were using who-even-knows-what random editor and you had to figure out every time how they were actually producing the indentation, whether it does/can convert tabs to spaces).
And, oddly enough, before LLMs. Not so much because they explain anything all that well, but because lazy clueless people now get correctly indented code generated in-place rather than copying and pasting from Stack Overflow and not having any clue how to make the pasted code line up properly.
But now I far more often see people who are clueless enough that they can't distinguish the REPL from a command line ("why is `pip install ...` a syntax error?"), or are struggling with whatever is the latest attempt by the Python team to make Python easier to install and manage on Windows, or who seemingly can't wrap their head around the idea that Python has to know where on disk to look for the installed libraries (or why it won't work to just put everything in the system environment). And in terms of the language itself, probably the biggest stumbling blocks are things like command-query separation ("why can't I `foo.append(bar).append(baz)`?") and just using functions properly (which typically boils down to "why doesn't `return foo` let me refer to `foo` in the calling function?", but generally stated completely differently).
Whitespace cleanliness is only part of the problem. The much bigger issue is the fact that the ending of a block is invisible. This leads to several problems:
1. It becomes much more difficult to tell beginners where the end of a block is, because the ending of the block isn't something you can describe verbally. You have to point to it instead.
2. Students who might be prone to using the wrong number of "}" or "end" tokens to close a block will instead un-indent the wrong number of times. It doesn't prevent the kinds of mistakes that mismatched parens tend to cause.
3. When closing a block, the thing you're trying to align a prior block with might not be on screen any longer. I don't know why, but I've seen more off-by-one spacing gaffes after the close of a nested block than I ever expected to see.
That said, I don't doubt that Python arrived at the choice of whitespace blocks empirically. However, I highly suspect that the majority of the users learning how to program in the late 80's and early 90's were familiar with monospaced text, which was ever-present in most productivity applications of the day, and thus easier for them to reason about.
And to be clear, I don't really care that much about Python's whitespace blocks. I don't like them, but I'm at the age where I feel like quibbling over minor syntax gaffes is beneath me, and Python is my top "swiss army knife" language when I need a job done quickly. My only point is that I feel like whitespace blocks are a relic of the time when they were developed, and I don't think they are as beginner friendly as advertised.
EDIT: After stepping away from the post, I realized that in my perfect world, a beginner language would look a lot more like Lua than Python. Then I remembered how popular Roblox is, and how popular Garry's Mod was before that. Given the success of those platforms, there might be something to it.
This has more to do with the fact that the web stack has become the de-facto app development platform, and thus we inherit the bloat and optimization oversights of that platform.
You're not going to make a 16GB calculator just because you personally prefer copies over shared ownership in a language that gives you the tools to avoid bloat in a myriad of ways.
reply