As a counter-point, my company was original purely .NET, then added Python (and later JS).
For us, hiring .NET is WAY harder than the other stacks. We get a lot more applicants in general, but almost zero that meet our standards. For Python roles we get way fewer applicants, but the average quality is much much higher than the .NET average. (JS is a whole other thing, and we frankly aren't as good at hiring there yet)
No, we don't do any coding tests, just discussions of what you've done and how deep your knowledge of your tools goes. .NET folks are far less likely to understand much beyond the syntax, nevermind the "why" of things (even WHY you need StringBuilder) or what a database index is, etc.
Interesting. One would thing, "script kiddies" would be more common among Pythonistas. On the other hand, .NET might be more user-friendly, so that devs are productive even without the knowledge of what's going on under the hood. Kudos for the interview practices, that's similar to how I conduct as well :)
yeah, and mac too, can't run league or valorant. vanguard is their kernel-level anticheat, and windows is like 95% of their market and the difficulty of implementing it on another kernel i guess isn't worth the <5%.
League works on macOS just fine, I played yesterday. Vanguard is buggy (it occasionally quits the client after I finish a game), but the game generally works and has for at least several years.
Why would it be a "bold move"? Linux gaming population is damn near zero, they do not provide a higher profit margin like mac gamers would, and the documented evidence is that supporting Linux users is obnoxious because they are rude and entitled but not actually that much better at providing feedback.
Epic Games bought out rocket league and turned off a native linux build and faced no repercussions. Instead they made plenty of money.
Not sure that's fair, given most Linux gamers look like Windows gamers to the metrics.
That said, devices like the SteamDeck run games on Linux (and that's without considering that every Android game ever is technically running on Linux too).
Let's face it though, PC gaming is already small enough these vs the consoles, that further splitting the marked isn't going to make sense for a lot of companies.
>Not sure that's fair, given most Linux gamers look like Windows gamers to the metrics.
No. All the articles and testimony of game devs abandoning native Linux versions is from well before Proton was a thing, including Epic Games buying Rocket League and preventing you from playing the Native Linux build they had.
It also was not related to anti-cheat or underlying engine limitations or anything. Developers were clear that the problem was the massive lack of uptake mixed with a weirdly entitled community.
Personally I don't think gamers are entitled. Ultimately games are anywhere between 60 - 120 dollars and often barely work on their target platforms. With kernel level anticheat, you're literally being asked to pay them to rootkit your computer with software you cannot audit.
The last 10 years of AAA gaming have been an absolute shit show. The only people who seem to be even trying are Nintendo. Everyone else releases stuff that's buggy as hell and about as fun as a dental cleaning.
It's bold because it's breaking stuff that already works and will continue to work even if you do nothing.
It's one thing to choose not to develop a new game for Linux. It's another to take a game that already runs on Linux and intentionally break it. You're guaranteed to alienate SOME people who are already fans of the game.
I got frustrated dealing with my brother's laptop, threw Ubuntu on it, and never had to touch it again. Like, he got 4 or 5 extra years out of that clunker due to that switch.
He's really not a computer guy, and he picked it up no problem.
And then, somehow, the desktop Outlook is better on mac than on Windows.
On Windows I can't even easily copy/paste from one email to another. It strips out half the formatting and any colors that were there. Nor can I copy email recipients from an email into a new one.
I tried switching to Windows last year and I just couldn't do it. So now my expensive and fancy powerful laptop collects dust and I'm back to my 5 year old m1 (which is somehow faster, usually).
I'm surprised at the negative comments about Python here. Python has been my favorite language since I learned it, and nothing else has come close to it.
I'm currently on pure JS project (node and vue) and I'm constantly fighting with things that would be trivial in python or django. Also getting into .NET world and not impressed with that at all.
I know folks like Go, but in decades of being a software consultant I've come across zero companies using it or hiring for it.
There are negative comments about Python every time there's an opportunity presented. There are lots of positive comments too.
The wisecrack goes that Python is the second-best language for everything. I think this is clearly false: it is the best language for soliciting opinionated discussion on a forum.
In NodeJS the most popular ORM is Sequelize. Sequelize struggles with TypeScript, the code to use is extremely verbose (vs Django), and the migrations are simplistic at best. There are other ORMs, but you usually gain TypeScript support at the expense of good migrations (which range from rough SQL-script-only support to literally nothing). Schema migrations are one thing, but if you want to do a data migration that uses business logic, in Django you can potentially just bring in your business code directly into a migration, and you can also explicitly set pre-requisites rather than having to order the filenames (which is what everything else seems to use).
Also in NodeJS if you miss an `await` in your controller, the entire server can crash if that call fails.
That's Node vs Django, though, which isn't completely JS vs Python, but it also really is.
Coming from Python, JS has constant surprises, where code works in one place and not another (in the same project!) due to reasons I don't always understand around ES version and configuration. Everything in JS feels like a hack job, built on a pile of someone else's hackjobs.
Likewise, if I want to know how something in Python works, I just look at the source. I rarely even look at official documentation because the code is right there. That's not a reasonable thing in JS, frankly.
But really the worst part is that I do a ton of "try and test" development, where debugging is hit or miss and console.log is everywhere. In Python, I can just write the code live in the shell/iPython, and then past the working code back into my IDE. This ends up being a huge timesaver.
Sorry for the late response. I appreciate the perspective you are offering.
I totally agree JS can be surprising, and actually I think the greatest skill a JS developer needs is to understand what things are powerful reliable and composable as opposed to hacky, where you can understand hacky things lead to surprising behavior.
For instance, I too have used Sequelize, and it is a painfully bad library. I can only see that network effects have lead the community here, there is no merit. Instead, I think the scrutinizing JS developer - the one who can write reliable JS - needs to just throw Sequelize out. It sucks.
I happily did this, and so I looked elsewhere at what the community was trying in terms of data paradigms. An obviously interesting invention of the JS community at the time was GraphQL. After some time, I decided writing my own resolvers in JS was an exercise in futility, but I found it incredibly attractive to use the tool Hasura to give a free GraphQL API over a DB.
PostgreSQL, Hasura GraphQL Engine, GraphQL, graphql-codegen, and typescript combine to make this amazing chain where you can normalize your DB and rely on the foreign keys to make up the GraphQL relationships, get automatic knowledge in the GQL you author of whether the relationship is nullable or represents an object or array relationship, and then load deeply nested (i.e. semantically rich) queries to author a type-safe UI in. All of this requires 0 packages to be published, I just use a monorepo with `pnpm` and my client can talk to Hasura safely with the generated code from Hasura GraphQL Engine, or to my TS backend via tRPC and tsconfig.json "references".
Now when it comes to migrations, Hasura has first class support, it's really incredible how you can use `hasura console`, click in a GUI to make all your database changes, and have a migration written to source code ready for you to use after this.
So, take it this way: Sequelize sucks, TS can't polish a turd, and the job in JS is to discover something powerful and useful.
In Python, you would never have touched a garbage library like Sequelize because Django is amazing and the community recognized that.
And now, let me show you my personal bias
> Everything in JS feels like a hack job, built on a pile of someone else's hackjobs.
Nah, you have it exactly backwards. How are type hints not meaningful in Python in the year 2025? Sure, named args and some other things are useful, but Python is the king of the untyped dynamic happy-cast do whatever BS. The code is insanely terse but that's directly a bad thing in this day and age when that terseness is directly achieved at the cost of meaningful typing.
I for sure recognize this partially stems from the activities one performs in the language, but having to run your Python to know if it works is objectively hilarious. Well crafted TypeScript and ESLint recommended catches virtually all my programming errors, such that I would never run into this problem
>if you miss an `await` in your controller, the entire server can crash if that call fails
My IDE calls that out! As it should! As Python refuses to!
you mention hasura - is that open source? you are leaning on a product for migrations that are not open source is my main concern with the above comments.
I run v2.x images myself, not sure what v3 and DDN are, besides monetization efforts for the company*.
Also the migrations are just `up.sql` and `down.sql` files, there is nothing coupling you to a proprietary migration format, the value Hasura offers is generating them for you and tracking their application thru their CLI.
Definitely. I get scammers calling me from a caller id that claims to be my bank asking about suspicious charges, and they know my name and have my account info, but they ask for my full credit card number to "verify" it. Yet, they give different suspicious charges every time you ask.
The worst part is that when I call the bank to see if its legit, they are much less pleasant to deal with than the scammers...
I've stopped trying to call - if I think there's a problem I go into my local branch. Much harder to put me on hold for 40 minutes and then hang up in person.
I just realized that's an excellent opportunity for "reverse phishing:" you can mangle the first 4 digits of your card [or make one up wholesale] and if they say "thank you, sir" you know they are fake. The real bank will spot that mistake instantly since that prefix is per financial institution
Just not exclusively.