It varies for me depending on my mood state. I find it most vivid in bouts of psychosis. I remember once being in such a state and being overwhelmed by my mind's eye seeming even more vivid than the images coming into my actual eyes. Seeing two distinct views at once was quite disorienting.
I'm a bit surprised at how often it seems to come up in random comment threads. The atmosphere here feels increasingly unwelcoming lately.
Or maybe people feel like they're just having abstract, hypothetical intellectual discussions. But when I read these threads, it just feels like signal after signal that I no longer fit in or have a place here.
I too have noticed some quite transphobic attitudes on HN over the past year or so. It's been a bit shocking at times.
I have considered emailing the admins to state my concerns, or creating an account here to add another voice to threads when things start heading in that direction - but ultimately it seems futile as transphobia seems to have ramped up everywhere recently. It's scary.
Of all the wonderful trans people I know in the real world, very few are getting the medical assistance they need. Those people are fortunate enough to pay for private care, and even then the level of care they are getting is barely acceptable. My other trans friends are approaching their 30s and still on waiting lists.
Many things presented as fact in this thread do not line up with my experiences of trans issues and the wider LGBTQ community. In my opinion many users on HN are truly insightful about tech and programming, but utterly heartless when it comes to social issues.
It's worth noting that most of the people expressing those attitudes here are quite new accounts and/or end up severely downvoted, and often flagged to oblivion. In this discussion in particular I haven't noticed any "regulars" stepping off the deep end. It tends to be less futile to try to keep these things at bay here than most other places, as HN regulars have a low tolerance for heated/controversial political debates at the best of times, even before adding in concern over the specific views expressed, so the threshold for someone to end up flagged over it is pretty low.
If you have concerns that are not resolved by people getting flagged (may take a while for them to reach critical mass of flags) or banned, do e-mail the admins. I'm sure they'll at least listen.
Don't let them drive you away. As I wrote on another comment, most of the people making these comments seem to be new to the site, and while that doesn't make it that much better, most regulars here seem to be pretty accepting people.
Welcome to the world of being a deviant from social norms. I have contamination OCD; it was very mild until mid 2021 when the assholes in charge thought it was a great idea to drop both mask requirements and social distancing requirements at the same time. Then it flared up to moderate OCD and has stayed there ever since.
I live in the SF Bay area and only once overheard a sarcastic comment directed at my mask wearing. But every time I go out shopping in public and see people without masks I feel it. And that's completely discounting all of the articles I've read that favored removing masks and distancing, even from left-wing writers. The few people who are still mask-positive, or at least talk the talk, are nice, but seem less salient before the mask-negative people.
People don't give a shit, even though they know that behaving as normal means that literally hundreds of thousands of people will die each year from disease.
As a person who is not trans, but does have OCD, it's annoying how big a deal the powers that be make being "trans accepting". When at best they just say "tolerate those who continue to wear masks, but don't bother social distancing from them, or wearing your own mask". I think this annoyance (in people who see their own issues not cared about the same) sparks a backlash not necessarily against trans, but against the very large, disproportionately noticeable, social push for not just trans-tolerance, but trans-inclusion.
The main issue with "Trans" is that it covers way too many things these days. Everything from what used to be transvestitism to full-on post-op and hormone transsexualism, and including brand new things such as pronouns. And actions ranging from trans people who still otherwise behave entirely like their birth sex socially, to those who stealth everywhere they can in every way they can, to those who flaunt their transness in various ways. And that's without factoring in the third parties who support transness, and the various kinds of actions they take (such as militantly policing pronouns, or encouraging people to consider whether they're trans without letting the topic arise naturally - which is a definite problem for some people who are on the OCD spectrum [Trans-OCD] as well as people who are suggestible).
And it includes other people who are even more socially deviant (pedophilia, extreme body modification), trying to hitch their wagon to the trans issue, as trans hitched itself to LGB, which brings in the slippery slope arguments.
Basically there's a ton of stuff going on with respect to trans. Various people can be okay with almost all of it, but not with some of it. These people can say what they have a problem with and it can be perceived as blanket anti-trans or "transphobia", when it's not. Or those people can actually become blanket anti-trans because of the one thing they originally had a problem with.
P.S. I found your comment while going back through my thread list and felt the desire to respond.
The Python core devs did not have the time or motivation to support the old codepaths in the CPython runtime, and the legacy code was getting in the way of a lot of longtime wants and needs for improving performance, runtime maintainability, language ergonomics, and the standard library. They also specifically increased the major revision number to signal their intent to move on from that legacy.
But you kind of addressed your entire spiel: Hindsight is exceedingly easy. They didn't realize how inadequate their migration tooling was, or how very entrenched Python 2 is in various places. It's hard when you don't know what you don't know and you're highly motivated by hopeful aspirations.
>The Python core devs did not have the time or motivation to support the old codepaths in the CPython runtime, and the legacy code was getting in the way of a lot of longtime wants and needs for improving performance, runtime maintainability, language ergonomics, and the standard library.
They could have fixed most of this legacy code without changing the external user-facing API so much.
It's an open source project. Is there really much of a difference between "I'm not going to work on this system because it's terrible" and "I'm forking this system and I'm not going to support the previous version"?
In both cases you can say "well someone else will just come along and support it", and for py2 they did, for a bit. In fact I believe you can still pay if you happen to want py2 support.
But if you're not paying, you're saying "hey, this thing you work on and provide to me for free - why are you working on it in the way you want rather than the way I want??"
> In both cases you can say "well someone else will just come along and support it", and for py2 they did, for a bit
Was python-2 handed off to new maintainers? News to me.
> why are you working on it in the way you want rather than the way I want
Is "it" python-2 or python-3?
This isn't users demanding py3 devs support py2 - it's users asking that devs who no longer want to support py2 to hand it off to those that do, rather than blocking it.
When I say "the developers of X could have done Y better" I don't mean that they owe it to me in any way to have done so.
I'm just judging their technical decision making. They are perfectly entitled to delete the whole project and start a new one and I have absolutely no right to say they shouldn't.
But I do have a right to critique their decisions from a technical standpoint.
Yes it's interesting if this is cited as one of the motivations.
That's a problem of a language being oriented around a single implementation. Is it even defined by this implementation?
Compare to eg. C or C++.
Diversity, and interoperability is important as it is a significant contributor to longevity.
I do like that you've used the term "API" as I think that sums it up. To think of "Python" not as a language agreed by multiple implementors, the behaviour here is that of a "library" with an "API".
It would have taken considerable effort, regardless. This cost was offset onto the development teams in companies doing migrations. It was the decision made and if you don't like it, consider using another programming language. Perhaps consider that it's an open source project with a lot of contributors essentially working for free.
How many downstream, Python dependent companies were funding its development? Everyone is entitled to their opinion. But if they build their system on a platform outside their control then they'll have to roll with the changes, fork it, or move to a different platform / fork.
I don’t think hindsight can be claimed here. It was a decision that was not made from ignorance. The Python developers chose to sacrifice backwards compatibility. Other languages do not typically make such choices and if they do they make updating codebases relatively easy.
Nothing about python versioning is easy. It’s a disaster and the key reason I do not start any projects in python.
> The Python developers chose to sacrifice backwards compatibility.
And it is quite clear that that choice was not based on accurate estimates and insights.
The original e.o.l. was laughably short and then had to be doubled. It was quite clear they based their choice on the assumption that consumers would have all switched to e at a time when 2 was still used by 80%.
They made that choice based on what can only be seen as complete ignorance of the cost of rewriting software.
Right now, the biggest reason to drop Python 2 for most serious consumers is not any of the improvements that Python 3 brings, but that it is e.o.l..
> Other languages do not typically make such choices and if they do they make updating codebases relatively easy.
I want to understand what was so hard about porting code from Python 2 to 3. I ported a few tens of thousand lines of Python 2 code to Python 3 and it was pretty trivial. In my experience the only thing that made porting code hard was when a package you depended on was not ported to Python 3 yet. But maybe my experience does not reflect some other cases. Can you eloborate on what was so hard about porting code from Python 2 to 3?
How do I regression test five different pieces of DAQ hardware? My best plan is to pull them working systems and deal with them missing. I don’t think it’s a good use of resources to buy extra DAQ cards just for a regression test bed.
Regardless of that, moving from python 2.5 to 2.7 is not trivial because not all used libraries were even updated to 2.7 from 2.5. Some that were broke backwards compatibility. How far do I have to bend backward just to get in the right place to update to python 3? I see many comments trivializing the effort needed to update to python 3 because they know of narrow use cases and expect large amounts of resources to maintain code. That isn’t the reality for most users.
The hardship of porting from 2 to 3 very much depends on how critical the software is. Porting 1000 lines of python 2 that deals with files encoded in various ways where it’s impossible to test all edge cases and where a failure might lead to huge liability charges is hard not because it’s hard to run 2to3 and do some random tests, but because you don’t know what you have missed. And still, a 300k lines of code project might be fine to just run 2to3 on and then find the bugs as you go. It’s a matter of context.
And the opposite -- tons of little unimportant scripts sitting around that add a lot of value as a whole, but just aren't worth devoting to rewriting on a whim of poor decision making skills of the Python developer team....
I have Python code dating back to when I was an undergrad. It's sad to see the Python team decide to nuke that. My C code from then (mostly) runs fine still.
The team decided to externalize a massive cost on its community without much benefit. That was sad to see at the time, and it continue to be sad to see.
As someone who does a decent part of development in python, I'd say you are using the wrong language, if you can't test your edge cases and have huge liabilities.
Python code is inherently almost-untestable and fragile. These days, when coding something critical and non-trivial, I choose a memory-safe language with static typing and type inference, ADTs, pattern matching and try to write simple yet pure functional code with well defined semantics, that works almost by definition.
> If you have a liability situation, maybe you could work to rectify it
Well yes, sure, of course.
And like you said, maybe Python isn't the right language in the first place for mission-critical life-is-on-the-line software.
But if you have already gotten yourself into a position where some piece of your business infrastructure is dependent on an obscure bit of hard-to-port-to-Python-3-and-maintain-exact-behaviour Python code, then it is exactly the "2to3 transition that's shaking up your house of cards", no?
And, furthermore, like you said, if you find yourself in this position, you should be looking at some other language entirely rather than porting to Py3, eh?
Note that I am not against using python in mission-critical code.
I was referring to untestable code with a myriad of edge-cases, in which case you have a problem that will surface sooner or later, be it 2to3 transition or something else.
If the code is truly static, you can ignore the transition and deprecation. Otherwise you should probably work on documentation/testing/refactoring and/or porting to another language.
2to3 transition was handled badly, up to about 2.7 and 3.4 or so, but the pains described here seem mostly self-inflicted, and I don't see it as an argument against the needed changes.
These are exactly the concerns of serious enterprises that the Python developers have missed, that made them seem as though they be hobbyists that have never dealt software that actually powers infrastructure.
Python was intended for education originally. It's possible that some uses are just too far outside that wheelhouse to expect it to work well forever. Doubtful I'll ever write desktop GUIs in PHP for example, though it appears some have already done it.
The standard library of 2 already came with many facilities that go well beyond that.
They targeted business; it came to be adopted by business; and then they were surprised that business was not enthusiastic about updating currently working code with all the potential regressions and downtime that might come from it.
Could you explain how "Python was intended for education originally."?
As I recall, Python was designed for the Amoeba operating system, and drew on experience from implementing ABC; ABC was definitely designed for education.
But ABC != Python. Checking now, the first Usenet post for Python 0.9 says:
> Python can be used instead of shell, Awk or Perl scripts, to write prototypes of real applications, or as an extension language of large systems, you name it.
There are certainly some cases where even the smallest backward incompatible change would cause serious problems on some systems. Thanks for giving an example, instead of just downvoting.
The problem was that you could only port once all the libraries you use had ported, but libraries didn't want to commit to abandoning Python 2 quickly.
Agreed, that was also my experience as well, the hardest part was not changing our codebase but if we depended on a package that was not ported to Python 3 yet.
> The Python core devs did not have the time or motivation to support the old codepaths
Then sounds like they didn't want to be python devs anymore, good luck on their new project..
Instead they held onto the reins and drove python into the ground so that their new code could devour the remains of the old.
> They didn't realize how inadequate their migration tooling was
A shame then that they decided that migration was mandatory. They don't need to know either, they just have to encourage users to migrate, rather than force them to. Saying "They didn't realize ... how very entrenched Python 2 is" is basically saying "we didn't think we'd encounter (significant) resistance". Their "hopeful aspirations" was that everybody (that mattered) would be onboard, which is why they didn't bother ask..
I've always felt that sustaining oneself with the life another animal or plant or whatever is the ultimate sign of respect and should be considered an almost sacred act.
The not owing a drink thing reminds me of the concept of rounds. I guess Americans don’t practice it so much, but in Oz it’s kind of expected that people cycle through buying rounds. And there’s always a sense amongst a group of who’s up next, even across multiple days/nights.
As an American who only has occasionally bought or received a “round,” your comment reminds me of the strange issues around tipping.
When rounds are not expected, it feels really nice when someone unexpectedly buys everyone a round. Similarly, it feels delightfully magnanimous to buy a round; makes you feel like a King.
I can see how it quickly loses its charm once it’s an expected transaction to honor.
When I visited Taiwan a few years ago I really came to appreciate the tradition of refilling the glass(es) of your companions before your own. Want more tea? Top someone else off first. Same with beer in their comically small glasses.
It’s a much more intimate experience and we formed relationships with people without even being able to speak at a conversational level.
I like your point. However one thing I severely dislike about East Asian meal & drink culture is the implication that drinking alone - simply sipping your drink while enjoying the meal & conversation - means you are not enjoying yourself, and possibly also insulting the host.
This means that every time you want to sip your drink you have to entertain this needless protocol: identify someone around the table - preferably someone you have yet to drink with - say cheers (translation required), and sometimes drink all of the 60 mL cup at once. You should also keep a checklist of who you have and haven't drunk with. The more political, the greater the need to move around the table at random intervals, shake hands, and drink. This is a demonstration often devoid of meaning.
If it's a real party it can be fun to bottoms-up all the drinks. For a more relaxed meal & conversation setting (my preference), as an outsider this is uncomfortable. It ruins the slow enjoyment of expensive alcohol. Why can't I sip my own damn drink with my meal?!
Also as someone who drinks a lot less as I get older, I lately find myself not drinking at all at these events, because there is no middle ground.
I think you overthink the whole thing. I’ve eaten a lot of meals in some of those countries (I live in East-Asia) and I’ve never felt I had to follow such protocol, to the extent they exists at all. The situation may be different in formal setting in China if the internet is to be trusted but besides it really seems like thinking too much after reading a few blogposts. Especially as foreigners we are not bound to every little protocolar details and it would even be strange to be a try-harder.
It sounds like you have more experience with these things but what you are describing is not consistent with my experience.
It was totally acceptable to sip a drink. If I was empty and needed a refill I would simply take the shared container (650ml beer bottle, tea pot, etc.) and first refill someone or everyone’s drink, empty or not. Essentially the personal containers were bottomless.
I never felt an obligation to refill a specific person’s drink. But that situation never really came up because everyone eventually is the person initiating the refills.
It’s possible I was offending a lot of people. In fact it is likely. They were certainly generous enough to not say so however.
One thing I've noticed is that it can take just a few
'reserved' people, to make everyone start second guessing themselves. So I think there is some value in having some spaces and gatherings where it's mandatory to be open.
Also here in Aus there is 'shouting' too. I don't know where the term originated from but generally if you've had some sort of stroke of good luck or unexpected fortune then it's your shout, which is basically a free round of drinks on you.
When I used to go to the pub with my cricket team the person who scored the highest that day would shout the group. Or if you'd won big on the poker machines etc then it would be your shout.
That’s definitely a thing here. I just extend that philosophy a bit. If we go out after work and I buy two rounds but you buy one we are still even. I’m not going to keep track and insist you buy first next time. Also “buy a beer” is kind of shorthand for “do a favor”. If I help you set the idle on your motorcycle I never expect compensation.
Is it unusual to be able to play back music in one’s head and hear it almost exactly the same as hearing it aloud?
When I imagine music in my mind, the sonic qualities all seem the same as what I heard or hear, though sometimes I’ll mentally edit the arrangement intentionally or unintentionally.
I’ve also noticed that when I use my voice to sing melodies for compositional purposes, imagining the melody and singing are basically the same thing or have the same end result. On the other hand, using synthesizers and messing with patches usually leads to things I wouldn’t have always imagined in my head.
I’ve never asked anyone about any of this before, so I never realized others might not experience the same things. Sometimes I wish I could switch subjective experience for a day with another person to get real perspective.
I have to think it's a common skill. I listen to music in my head all the time, and I'm barely a hobbyist guitarist. If I can do it with enough clarity and precision to enjoy the experience, I'd think pretty much anyone could.
I can't speak to how good or effective it is, but the issues you mentioned are, I think, why the rust-lang community communicates through Zulip (instead of email, IRC, etc).
I’m being somewhat facetious or jocular when I say this—and somewhat serious—but…I wonder:
Is that a reflection of the quality of the software implementation? Or is it a reflection of the hardware it’s trying to implement? Or perhaps it’s related to the hardware the emulator is running on?
Or did the emulator emulate the hardware while running on /that/ hardware? Did it pull efficiency gains out of seemingly thin air?