This hit me. Not sure when this was used and was deprecated.
Say "stackless tasklet" five times fast.
> Very carefully, and in multiple stages.
That answer is so 3 months ago
modern Python went in a somewhat different direction with asyncio, but with tasklet and continuation it could be a much powerful combo.
If the outcome or outputs / test cases are known, AI is great at language translations.
Yikes. 2010 ... python is built forever.
But, ignoring this - I think when the "scripting" languages can bridge the speed penalty towards C, even if not reaching it for many reasons, then they become real contenders here.
I wish there was a test instance people were allowed to play around on. I never did it but for a while the game client wasn't really secure & you could just talk to the python repl basically, and script the game. I think that would be an incredible experience all unto its own, to teach coding, to be an interesting experience. Feels like with Carbon being open source, there's need for just a little more to get back around to that halycon moment.
googled it so this becomes a PSA: https://simonwillison.net/2026/Aug/25/eve-online-move-to-pyt...
so it's neither, it's their own: https://github.com/carbonengine/scheduler
so that's interesting
But after using it for a production project I have to say I'm deeply satisfied and surprised by the maturity, quality of APIs and performance in general.
I was proven wrong and I'm happy about that :)
[0] Old man yell at clouds type of meme
Can someone kindly explain this?
edit: I misread it as “In Python 2 2.1/2 is 0, while in Python 3 it is 0.5”
Is there anything similarly great around now?
Basically the community is people checking it out, bots, and the terminally addicted multi boxing 30 accounts.
Did you find readability to be improved by going async?
I mean that's true for Python in general, but sadly these days you can't really avoid it.
I sometimes think about logging in (I think I ragequit likely in a pod inside a wormhole in the middle of nullsec) and then I realise that way madness (and much sunk time) lies.
(I am actually designing such a game, but I'm open to suggestions)
My main activity in the game was stealing loot from under carebears' noses to sell for profit. A true rat scouring the battlefields for scraps. That must say a lot about me.
It was amazing in the early days, it felt like nothing else. I had a background in Ultima Online and Dark Age of Camelot. I liked PVP and I wanted full loot drop on kill.
EVE online has many times been referred to as the spiritual successor of UO, what made it really special however was the one server architecture (until China shard).
My name was Dieter Rams—I ganked, scammed and griefed. I probably made a lot of people quit the game; this was the appeal. I wanted to play a game where I could be the villain (successfully).
This was the original trailer for the game, in my opinion the true vision: https://youtu.be/GwpgXFA3UQk
Over the years it lost its soul as the internet grew, social media became more prevalent and information disseminated more rapidly (watch madseasonshow on youtube for a great coverage on this topic) around the optimal ways to play etc.
All MMOs suffered for this, you could look everything up before doing anything and so the sense of discovery and adventure was lost. The frontier was no longer undiscovered, and once pay to win came into play everything came off the rails.
The developer made this video in 2014:
This is EVE - Uncensored https://youtu.be/AdfFnTt2UT0
This is when I quit for real or as the EVE players say "won EVE".
A better comedic version of the video is this one by Honorable Third Party (typical EVE humor): This is REALLY EvE https://youtu.be/LmS9vcVNr5A
I came back in 2020 for a month but it's like that saying you can't step into the same river twice. I was older but the game had also changed so much. Other players were pressuring me to multibox (play multiple accounts), it felt terrible.
I knew a guy who played 30 characters at the same time, his setup was a technical marvel but it made me sad what gaming had become. There was a similar issue with buffbots in Dark Age of Camelot.
The fact that EVE needs a new player tutorial says everything you need to know about the state of the game (and gaming in general). Everyone needs a lot of handholding these days, in 2004 you were just thrown into the universe with nothing but the chat and other players to help you out.
Figuring things out was part of the game.
There were no YouTube guides, no tutorial and no real money to make things easier. The playing field was equal no matter who you were.
The magic was lost because of money, it's always the money in the end.
I'll say more, it went the wrong direction. I see async thing in Python as a step backwards. For some reason Guido heard of Twisted and deferreds and somehow got influenced by it, and here we are with "async def" and "await" sprinkled all over the place.
I mean, we had stackless, eventlet, gevent, we could have started something from that. We even had the example of Erlang and with a much better concurrency pattern. Go went with goroutines and channels and in retrospect made the right choice, not as good as Erlang/Elixir imo but still better than sprinkling async everywhere.
More Music, Less Nessman
Schwab?
> Buy low, sell high. Specialize in industry, trading, transportation
I did all of this, quite profitably and for quite a long time, in EVE?
But nothing raised my heart rate like getting into a fight. 30 seconds of terror. I would have to take a break after these, win or lose, until my HR returned to normal and my hands stopped shaking.
I've never experienced that in any other game.
Too few of these are revealed to the rest of us, as the piece notes. It's a shame, there's lots to learn there. Instead most will be lost to the mists of time, and some dumpster diving digital archaeologist will have to get lucky for us to hear about them.
Half joking.
The server isn't fast enough and it ends up slowing the game down to 10% speed as a workaround.
It is kind of 'insane' but also, meh..
There's more dragons out there than we've been led to believe :}
Python + tests cross compiled to rust has huge benefits for memory footprint and secondly cpu.
It’s allowing me to achieve wonders on a small amount of hardware.
There are very few games (actually, only EVE comes to mind with its skill system) that require you to specialize if you want to compete over everybody else.
Moreover, most of Eve's bottleneck isn't single server speed, it's mostly network IO and database queries and latency. The big TiDi skirnishes in particular are slow due to this.
I'm looking at the problem with the eyes of a prospective game dev, and saying that there should be more games focused on free market economy, which is often just a half-arsed mechanic on the side, not the core game.
I see it for a specialized solution for a specific class of problems, which can lead to surprises if your problem evolves. There are always trade-offs to be made (performance, flexibility, hardware cost, etc.), asyncio just has different characteristics than the alternatives. Maybe since a upper bound of concurrent users it is always a great (the best?) solution, someone with more experience along all the design and requirements space could comment.
But today? Ain't nobody got time for that.
But sometimes I personally forget that it’s allowed and enjoyable to just read 20 mins here and there…
I got into Dwarf Fortress around 2015 and I was hooked. These days it's something I often play together with my son. I love how dynamic and deep it feels. It was such a privilege to get to buy a copy when it finally came to Steam.
Well if you enjoyed it it's was not a waste of time! Much human endeavour (and _all_ hobbies!) are ultimately pointless.
If it negatively affects other aspects of your life it's a different story though.
EVE (and other MMOs) had their moment and the ideas of MMOs with a persistent lived in world were very cool but the moment for them seems to have sadly passed beyond the horizon for whatever reason. If you had asked me 20 years ago I would have told you MMOs were the future of gaming.
It may be helpful to point out the definition of "Claude" as "lame; crippled" since the Roman Emperor and his gens.
https://en.wiktionary.org/wiki/claudus#Latin
limping, halting, lame, crippled
c. 347 CE – 420 CE, Hieronymus, Vulgate Matthew 11:5:
Caeci vident, claudi ambulant […] The blind see, the lame walk […]
https://bible.usccb.org/bible/matthew/11?5Participating in the big corporation wars was boring in comparison to small scale stuff. In the big wars, I was just a pawn for the commanders that actually made decisions and could play a giant strategy game.
I find it interesting when someone mentions that X is bad for something it was not designed for, as much as I am interested when someone mentions that X is good even if it was not designed for something.
“People shouldn’t use this tool, unless they want stuff quickly and easily”.
Excel isn’t outdated, and has no competitor (there are many things that compete on sub parts of what Excel does, but nothing that competes on all or even most of its capabilities). Business-side people are creating fairly massive application-type tools in Excel every day, by the thousands. If I had a nickel for every new, growing, modern business I’ve worked with that uses Google for an office suite but has a few departments with Windows/MS Office just so people can process data in Excel, I’d have a lot of nickels.
There's a legitimate argument for some P2W mechanics, though. To keep a game going you need new players, and if you're looking at losing every PvP encounter for years as you skill up your character you probably won't stay.
Looking at what GTA6 is shaping up to be, and wondering how R* is evolving the online side, I think we might simply have seen MMO's turn into something people our age don't recognize.
Some examples of women named Claude: https://en.wikipedia.org/wiki/Claude_Pompidou
https://en.wikipedia.org/wiki/Claude_Bessy_(dancer)
Back when I was playing with my friends and the game was a little harder (BC & WotLK), there was a sense of shared accomplishment when overcoming difficult regions and raids.
Around that sort of time you would encounter known groups/people, e.g. characters that had a reputation as extremely good in PvP etc.
Then along came the cross-realm stuff, and fairly quickly community ceased to matter, you just queue up, play, and move on.
Great for ease of play etc, terrible for community.
(Well, that was how I saw it anyway).
My credentials: I played every expansion (but not every tier) since vanilla with the same group of people. I only stepped away in The War Within after family obligations and time zones got in the way.
When news about the server code leak broke containment and the open servers started I was initially intrigued, but I discovered that playing with randos just wasn't as much fun.
It was substantially less fun when I was on the other side of that and got scanned down in my officer fit Archon and popped. Finally I said to myself “why am I doing this to myself?” and quit. My wife approved.
Capsuleers,
EVE continues to evolve, as a part of the EVE Evolved initiative, and it is time to cast the spotlight on the code itself!
Underneath every gate jump, market order, and fleet fight in EVE Online, there is a very large amount of Python. It has run New Eden for more than two decades and now begins its transition to Python 3. For you, that means better tools to fix bugs sooner, room for new features, and a faster EVE over time.
The definition of success for this migration is simple: it should be completely unnoticeable, aside from the occasional moment when something runs more smoothly.
Many of you have already tested our first steps on Singularity, and those changes were deployed today. This is only the beginning of a long road ahead.
EVE launched in 2003, built on Stackless Python, a version of Python whose lightweight "tasklets" let a single server node juggle thousands of pilots at once. Fenris Creations did not just adopt Stackless; it became one of its most significant contributors.
Some of you may remember upgrading to Stackless Python 2.5 in 2007, then to Stackless Python 2.7 in 2010. That was the last time EVE changed its Python version. Python 2.7 reached official end of life back in 2020, the rest of the software world moved on, and a whole generation of capsuleers has been born, gone to school, and started flying frigates while EVE stayed on the same language version. It was reliable enough that a large, potentially risky migration never justified itself, until now.
Sixteen years on the same version says a lot about how well it worked. The Carbon engine helped massively, but it, too, has moved forward now!

The short version: staying on Python 2 increasingly holds EVE back, and moving to Python 3 means a healthier, better-supported game for you.
One reason is performance. Recent Python 3 releases have delivered some of the largest speedups in the history of this language. Over time, that opens the door to a faster EVE, though it is too early to say exactly what that will mean.
Another reason is the ecosystem. Modern libraries, debuggers, and profilers are all built for Python 3. Every year we remain on Python 2, more of them slip out of reach, and the more we must maintain ourselves instead of improving the game. Better tools mean we can find and fix problems faster.
Python 3 simplifies many of the language's core building blocks.
Text is handled through a single, consistent string type, making localization more reliable. Integers no longer have arbitrary size limits, growing automatically when needed. Even Python's class system has been unified, removing legacy behavior and making object-oriented code more consistent.
Every character, every skill point, every asset in every hangar, every ISK in every wallet was written in Python 2 code, and all of it must read back under Python 3 exactly as it was.
The path ahead is hard, we must update a massive amount of code while EVE keeps running for you, but we know the destination is reachable, because EVE Frontier already runs our Carbon engine on modern Python 3, and it works.
The Frontier migration covered twelve minor versions of Python in one go, sixteen years of language evolution in a single project. Tranquility has twenty-three years of accumulated code, and, more importantly, twenty-three years of real player data, the history of capsuleers. And it must keep breathing 23.75 hours out of every 24.
The EVE codebase consists of 2.4 million lines of Python. A lot of it predates even Python 2.7, written to standards from the 2.3 and 2.5 era that Python 3 refuses to parse at all.
So how do you migrate 2.4 million lines of code?
Very carefully, and in multiple stages.
Some of these stages will use tools developed by the Python community (e.g., Python Futurize), while others will focus more on EVE’s unique features.
When we hit key milestones, we will request your help by getting involved in playtests on Singularity, as you did in July, where we can observe how parts of the updated system behave under conditions closer to the Tranquility server.
The first stage, where we are now, makes the code Python 3-ready while it still runs on Python 2.7.
We use a tool called Python-Future, built on the same code-rewriting machinery (2to3) that Python itself shipped to help exactly this kind of migration. It applies automated "fixers", each of which rewrites one obsolete pattern, into a modern form that both Python 2.7 and Python 3 accept.
Once all the code works under both versions, the genuinely hard work begins: the code that runs on both, but behaves differently.

How do you even know how far you are from Python 3?
We measure it. Every one of our ~20K Python files is compiled under a real Python 2.7 interpreter and a real Python 3 interpreter, because the compiler is the ground truth for whether code parses.
The first scan was a pleasant surprise: 95.9% of files already compiled under both versions. The blocking lines, the ones using syntax rejected by Python 3, numbered about 3,300 out of 2.4 million.
The mountain turned out to be a large and very measurable hill:
~ 1,500 old-style print statements,
~ 800 "long" number literals like 123L,
~ 600 exception clauses in a syntax deprecated before EVE existed,
50 uses of <>, a way of writing "not equal" so old that many working Python developers have never seen it.

Parsing is the easy part.
The same scan counts roughly 20,000 lines of code that compile fine under both versions but behave differently in Python 3. The classic example is division: in Python 2, 1 / 2 is 0; while in Python 3 it is 0.5.
In EVE where those numbers might be damage, ISK, or coordinates, each of those lines needs a human decision rather than a mechanical fix. That work is part of Stage 2, which is why Stage 1 comes first: clear the mechanical debris so human attention goes only where humans are needed.
In the short term, nothing, and that is by design. Stage 1 changes are meant to be invisible. In the long term, this is some of the most valuable groundwork we can lay for EVE's future: a faster interpreter to power fleet fights and market hubs, modern tooling that helps us find and fix bugs sooner, and a codebase new developers can work on more productively, which means features reach you faster. It is infrastructure for the next twenty years of EVE Online.
Noticing nothing at all is the goal, and you are the ones helping us reach it.
At the end of July, you tested the first set of changes on Singularity. Thank you to everyone who took part.
We are now deploying these changes to Tranquility. This is where we rely on you: keep doing what you always do, and if anything feels off, please let us know by filing a bug report.
In addition, we are preparing the agent mission backend for Python 3, but you should not notice a thing.
This is just the first step of many. Clearing the mechanical debris was the easy part. The real work, the code that must be read line by line, is still ahead of us, and that is where we will need you most.
Keep an eye on our channels for future tests. If you have ever wanted to tell your corpmates you helped move EVE to Python 3, this is your chance!
Fly safe, on whatever version of Python you find yourself.