The brief blurb about how GIL came to be, in light of Python’s success as a language and a tool, makes me question my s/e belief system. Things like this are like when good things happen to bad people and bad things happen to good people. It makes you question the meaning of it all.
Is there no great architect in the sky? Is there no software god after all, looking down, punishing sloppy engineers and granting blessings to thoughtful engineers? How else to explain this injustice of sloppy engineering eating the world (to say nothing of JavaScript)?
Tools win not because they are "better" in some platonic ideal of a programming language but because they are more practical for solving the problems people have.
Python, JS, C, Bash aren't even particularly great at the problems they solve, but they succeed mostly on inertia (it's where all the libraries are, it's what people know) and occupying developer mindshare.
They are full of obvious design mistakes; things that not even the creators of the language (nor any of its users) can defend, yet those languages are used infinitely more than languages that eschew those mistakes. Why? Because they solve problems people have.
If this sounds terrible to you, the good news is that there is a tonne of low-hanging fruit in the programming language design space.
Consider that most developers know nothing of sum-types, or eschew the idea of typing entirely.
Consider that most developers see no fundamental problem behind having to venv or dockerise software lest it bitrot over a month.
Consider that programmers actually use bash.
These terrible, obviously broken tools are somehow the most pragmatic things we actually have. The fruit is low-hanging; the door is wide open, if you wish to grab it.
This is basically the only part of your post I disagree with, for reasons you pointed out yourself.
Low-hanging-fruit would imply that it is easy to displace these flawed languages with something better. And you have made a beautiful argument for why that is very very very difficult indeed.
> Python, JS, C, Bash aren't even particularly great at the problems they solve
I would argue the "problem" that Python really solves is the amount of engineering effort required to read and write code for common software use cases. Ie, it's purpose is to help developers write better code faster and easier than other languages, while execution speed has usually had a lower priority. In that framing, it's great at solving the problem of development time and old code being hard to maintain, and that's why so many engineers like myself love it.
Of course there isn't. Software is developed by people.
But consider that maybe it wasn't a sloppy design at all. For decades, the explicitly stated philosophy of the CPython development team was to prioritize simplicity of implementation over performance. I don't think anyone ever envisioned Python becoming the wild success that it is today.
That is, the GIL wasn't sloppy at all. It was perfectly reasonable and pragmatic decision that made sense given the tradeoffs of the time.
While there is some truth in what you are saying, you have a common misunderstanding of the situation. Part of the reason the GIL has proved so difficult to remove is that it is actually a good solution. In fact, there have been multiple largely successful attempts to remove it over time over the entire range of aggressiveness from CPython changes to writing an entire JIT stack (PyPy), but it has never gone in to CPython because it would either ruin all existing 3rd party libraries that used C (which is a lot of them), it would diminish performance for an already-slow language, or as in the case of PyPy, it isn't even a "patch" so much as a new project.
Especially when you consider this over the whole of Python's lifespan, which very, very firmly includes many years in which multicore was simply not a thing, followed by some years where it was a thing but it didn't work very well anyhow at the OS level so who cares what Python does with it.
It is not as if back when it was put it the choice was either to use a GIL or to correctly write a multithreaded interpreter and fix all the 3rd party libraries at the time for exactly the same cost. The latter option was orders of magnitude more expensive, and harder then than it is now, with better tooling and more collective developer experience. The choice of not using a GIL, rather than being some sort of nirvana that we could just be in if they hadn't chosen poorly 15 years ago, could well have killed the language. We don't really know. I do know that a programming language that just sort of breaks every so often when you use threads and there's absolutely nothing you can do about it from the Python level is not a very appealing proposition and it's hard to know how badly this could have hurt the language.
And Python of all the languages now has a well-justified fear of breaking everything and demanding that everyone upgrade.
So, to put this in a nutshell, if you believe the GIL is simply bad and should never have been an option, you have a very immature understanding of software engineering, especially in the light of being the leader of a very very large community who will be impacted by your decisions. It may not have been the only choice, but it was a good one, and regardless of what decision was made 15 years ago there would be some consequence to deal with now. No programming language community can be expected to get everything right in 2003 that the people of 2023 will want any more than we can expect any current programming language to be the perfect programming language of 2043 right this second.
Thanks jerf for your thoughtful reply. tbh I was trolling hn for the very first time in 14 years and based on the response I have a natural talent for it. Who knew. The multi-core point is well taken, as it maps to my own professional experience in that transitional era as well.
Watch people's commentary here when talking about the good and bad of various technologies.
There's no 'bad' tech, just tech with lots of users. Or the tech is good because you can hire for it. Because it has lots of users. Or it has a rich ecosystem, because it has lots of users.
Read the advice given by those who tell you to get to market first instead of polishing the tech.
We're the users of that tech which went to market unpolished and gathered all the users.
That's a good thing! Models are fit on data, data doesn't fit to models. This is like when people learn elementary music theory then go analyze some actual composer and it doesn't fit the model at all. Well kiddo the problem is that "music theory" is simply a model, a model people created after training some very limit set of musical data, everything outside of that data will probably behave different and you'll have to change your models.
If your software engineering model predicts Python would be unsuccessful, but there is evidence that Python is successful, this simply means your software engineering model is unpredictive and therefore must be revised.
How is this sloppy engineering? And no of course there is no grand architect, orchestrating everything neatly form a central place of command, instead everything is an emergent process including the decisions made by the python team.
What are you even complaining about? What is your point?
Interesting how the nth term index for n-Sonos non-integral is itself monotonic. Intuitively it seems it doesn’t have to be. (Handwavy looking at the n-S() behavior as hitting a ‘catastrophic’ transition at the n-th, so question is why is this index increasing as n increases?)
Your story about operation Ajax is just that - a story. Iran’s PMs were all elected by parliament and the one before Mr. Mossadeq was assassinated by Islamists allied to your “democrat” who then let the killer get off with no jail time.
You also fail to note that the PM in question had a “99%” referendum during his tenure. You also fail to mention that the said PM refused his constitutionally valid dismissal by the Shah and then proceeded to launch a COUP against the constitutional monarchy.
You fail to mention all this because NYTimes and CIA and the rest of the Western world is perfectly happy with the narrative of Kermit Roosevelt getting off the plane with a suitcase of dollars and then taking over a “99%” supported regime overnight! CIA is sure impressive!
The facts are that the PM in question began to alienate his allies — the Islamists — so they withdrew support, and very substantial chunk of the nation absolutely did not agree with his coup and his program of unilaterally changing the outcome of the 1905 Constitutional Revolution of Iran which do grant certain powers to the monarch. This includes dismissing the PM.
So, now that we have a more ‘rounded’ historic context of what actually led to ‘53 counter coup encouraged and supported by US and UK (which failed) and the next day’s Army’s counter-coup (which succeeded), the topical point remains:
Whatever CIA, or “Anglo-Saxons” or this or that evil empire has done in NO WAY excuse or elucidate the dictatorial regime of the clergy and their very open trampling the rights of women in Iran.
I am not sure what is the Islamist version of “Tankee” but you are it.
[and a ps for Iranians in the audience]
If you continue to repeat the ridiculous NYTimes/CIA version of the story you are denigrating our great people. The idea that some flunky from CIA with a suitcase of cash managed to unseat a “99%” PM overnight mainly says that Iranians are mindless chumps who are trivially manipulated. This is neither flattering or accurate.
Most people today would agree with Mossadegh's initiative and the point remains that he was ousted from power for his nationalization of a western oil company and his inimity with the islamists and the Shah. The US helped in the process. And it's no disrespect to the iranians to state those facts.
Everyone in Iran, including the Shah, wanted Iran’s oil nationalized. It was the economic consequences that tempered others. The Good Dr. had to go hat in hand to US and beg Eisenhower to aid after oil revenues stopped. That was his bright idea.
Also your story is not the propaganda narrative that is repeated. This is the single paragraph story:
Iran did have a democratic government, but because the PM nationalized the oil, US did a coup and installed a dictator, the shah.
And that is entirely different from your “US helped in the process”. That would be accurate because that is all it was: in the main political support. Then, we in fact had a decade were Generals were powerful, until the Shah, finally in 60s (without CIA and to the great annoyance of the Kennedys) assumed all the power after having disbanded the Communist party and defanged the National Front. The “dictatorship” began 10 years later and it was far more benevolent than say a psycho killer like Mao who murdered millions. But Mao was a “great man” and the Shah is a “dictator”. Go figure.
They are denied education, freedom of movement, and freedom of conscious.
It is not slavery, as you are correct to point out - it is a regressive reading of Islam and its insistence on removing the sexual from the public space (which is fine - it is in principle a modality of civilization — that takes that stance which is not inherently oppressive of a given sex, it places restrictions on both sexes’ behavior in public space).
A sign of your backwardness is considering women —- decent, moral, upright but lacking a covering tent — as “naked”. But imo, it is not that the woman showing hair is “naked”, rather the eyes that behold are soaked in lust. It is this lust that you can not control, so “let’s control women”.
That's what the media tells you. What we should do is give them the benefit of the doubt until they clear the brainwashing attempts the west tried to put in their curricula. They already said they have no issues with women getting education, let's give them time to clear up the mess that the west made, after 20 years of bombardment and brainwashing and occupation.
A sign of your bigotry to straw man the argument and then describe the veil that our women wear as "tents". It's a sad spectacle that the "white man's burden" exists to this day.
No, the point does not remain that “research” “shows” anything. Seems there is agreement that ‘meaningful experiments have never been done because it is too complex and expensive’ so there is no significant research data.
But the basic argument is that a programming approach — having a compiler and a type system is not a “style” btw — that employs development time tools to reduce the burden of runtime operational tools, afford greater application of a wider set of optimization techniques at runtime, and also add to the information bandwidth of source code via type annotations is reasonably expected to be more rigorous than the other approach.
Fair point. If there was good research showing no difference, it would be equally pointless to argue either side is right, but it wouldn't be mere opinions, like they are today.
As for the move between runtime to development time tools, it still misses the cost of it.
We could move all our code to Haskell and have absolute guarantees for a lot of the common found bugs, but we don't because it's costly. And I don't mean rewrite cost, I mean the cost of its own complexities.
Nobody argues that typed languages aren't more rigorous, but that's not the only variable we care about.
Rigor is not the only variable, agreed. The issue (again) is that the other variables are many and they are non-linear in the main. (For example, the variable of ‘competence of development organization’ is not smoothly distributed. Our field is not a “smooth” domain it is ‘chunky’.)
So where does that leave us? Opinions are one option - comparative views to other ‘industrial’ age type of activities may be informative.
I propose to you that “we moderns” live in a typed world. It is not strongly typed but it is typed. One could argue that that is a side-effect of physical world artifacts produced at scale. I would be interested in hearing the argument as to why that near universal phenomena* does not apply to software, in your opinion.
(* Industrial production at scale and emergence of standards)
Maybe my point got lost within the threads but I never said types aren't useful or that we should reject them at all. After all, what you said is true. Whether we want it or not, everything is "typed" in one way or another.
My issue is a practical one. Using limited typed languages like TS has several drawbacks for little benefit. Using a strongly typed language like Haskell would add a ton of greatly needed rigor and correctness, but it's also not without huge drawbacks. Same goes for dynamic languages.
It's not a question of whether or not we should model our software based on our worldly types, it's about how strict we should be about it and the benefits and drawbacks that come within this spectrum. For that reason I argue there's no single general answer to this and claiming there is one is nonsense.
It’s a client-server architecture with a bit of CRDT inspired algorithm sprinkle on for offline mode. The name of the game remains consensus and CRDTs convoluted approach is there to server a niche in the spectrum of distributed consensus. It is slower, more complex, and less transparent. I wouldn’t really use it outside of long lived and erratic P2P nodes — CRDTs solve that problem and that is what they are really designed for: partition prone, long lived, distributed, peer to peer, collaborative global state changes.
[This is just data - I’m sure it was “abnormally hot” in many places, but NYC was not one of those places. Believe it or not, 2000 and 1960 were just randomly picked out of a hat and the only other dates I tried fwiw]
NYC will and nearby will hold on just a little longer as all the ice water from Greenland is holding our temps down some, more in the spring, early summer but even now in early Autumn. This won't last over the years. Ice takes lots of energy to melt, but it takes much less energy to warm water beyond that.
OP’s author is a prof. of religious studies and has a book on Hebrews so possibly his point of view requires the preeminence of Hebrew alphabet.
I also found some of the reasoning questionable. The reason Latin teaching was the job of Greek slaves was precisely because they were Greeks and Roman nouveau rich were adorning the education of their children. Who teaches the children of elite today? Millionaires or smart poor people? The second questionable idea of his is that “sex” and stuff like that are not of interest to “elite”. This confused thinking disregarding content for medium also was a rather weak argument. Maybe the elite were using writing as a private very exclusive chat app and sending textual selfies.
Hebrew must be first if you are a religious person who believes in God speaking Hebrew letters and creating the world. It just doesn’t work if it turns out the Egyptians created the alphabet.
Well, a whole load of them did come from ancient Egypt and Babylon.
Given the Moses of Exodus came from Egypt, it’s highly unlikely he created a new script when wandering the desert. I’d imagine he had more critical issues.
Also, he was brought up as an Egyptian royal and would have been taught how to write.
It is plausible that the folks from Babylon brought their script too.
That is a very odd historic analog to pick but deliciously ironic in that you apparently (?) missed the bit in the OP about “few powerful” interests controlling the labeling of data and thus ‘vocabulary of discourse’ of generativeAI. It is ironic because Luther too had “few powerful” parties behind him — various Princes iirc — who also wanted to unseat Vatican and thus amplify their own power.
So sure, “journalism” is at a low prestige level because a “few powerful” interests -own- all mass media, including press, and we have a handful of “press services”.
Key issue here is the troubling “few powerful” regardless of their declared ‘denomination’, so to speak, don’t you agree?
I don’t disagree with your point about those things being a problem, but I think GP’s interpretation of this article is correct:
> This power goes to the core of journalism’s public service, namely its capacity and obligation to artfully, eloquently, and intentionally use language to create and debate the ground truths that anchor shared social realities.
They are upset at being potentially replaced as one of the “few powerful” who get to create fundamental truths. These authors seem to really think controlling thought is the job, which seems pretty anti-freedom to me.
For sure you could make an analogue between Luther with his princely backers and the fact that generative AI is currently dominated by a handful of corporations that (mostly) want to remove the power of traditional media. But just as the printing press was a global event that went way beyond the Reformation, I think generative AI will eventually be too big and widespread to be contained by a small number of organizations.
Edit: just to add another point, I don’t think the loss of trust in media has come from “the other side” attacking it. It’s come from the media’s own actions.
Re your edit, if you re-read my op you should find we’re in agreement regarding the press’s standing and its causes.
Numerous assumptions are embedded in your optimistic analogy of printing press and machine learning systems, including continued access to general purpose computing devices (for the unwashed), data (and we can work our way up from just there to far flung concerns).
What is actually happening is that capital is no longer satisfied with owning the presses, but rather wants to own the language. That, erasure of the distinct concern of “journalism” (regardless of du jour state), via erosion of control over language and what is “correct”, is the actual issue.
Were these machines benevolent cyber prophets that were discerning ‘veritable truths’ about the human condition and thus their conditioning of the language and acceptable discourse a clear benefit, there would be no concern. But they are not, and again a reminder that the same people who own the press own the ai shops (class wise).
I understand what you’re saying, but I’m not sure I agree that’s what the future will be, and what the impact of the internet and generative AI will be. I think we’ll see a lot more of so-called “fringe” news, independent news, and so forth. People ultimately trust people more than machines, and so while generative AI might replace the traditional media, I don’t think it’ll replace the Joe Rogans of the world.
Is there no great architect in the sky? Is there no software god after all, looking down, punishing sloppy engineers and granting blessings to thoughtful engineers? How else to explain this injustice of sloppy engineering eating the world (to say nothing of JavaScript)?