Hacker News new | past | comments | ask | show | jobs | submit login

I would rather that Python catches up with Common Lisp tooling in JIT/AOT in the box, instead of compilation via C.



Python is designed from the ground up to be hostile to efficient compiling. It has really poorly designed internals, and proudly exposes them to application code, in a documented way and everything.

Only a restricted subset of Python is efficiently compilable.


I'd kill for AOT compiled Python. 3.13 ships with a basic JIT compiler.


In 3.13 you need to compile Python yourself if you want to test the preview JIT.


mypyc can compile a strictly-typed subset of Python AOT to native code, and as a bonus it can still interop with native Python libraries whose code wasn't compiled. It's slightly difficult to set up but I've used it in the past and it is a decent speedup. (plus mypy's strict type checking is sooo good)


Why is it named after a type checking library?



Because it uses that library for type checking?


[flagged]


Unfortunately there are folks that believe we have to use Python, and then rewrite in C, while calling those wrappers "Python" libraries, regardless of how much I would like to use JVM or CLR instead.

So if Python has taken Lisp's place in AI, I would rather that it also takes the JIT and AOT tooling as well.


Well, then, I guess, I should've prefaced what I wrote with "ideally".

Of course, there are circumstances we, the flesh-and-blood people cannot change, and if Python is all there is, no matter how good or bad it is, then it's probably better to make it do something we need... One could still hope though.


PyTorch and JAX have very good — but narrowly scoped — compilation facilities, and this suffices for a lot of really compelling AI applications.

A strong general purpose compilation story for Python is unlikely to materialize, IMO.


The pressure from slow and steady Julia's adoption, Mojo arriving into the scene, Facebook and Microsoft jumping into the JIT story, changing CPython team opinion on the matter, still leaves some hopes it might happen.

However now having Pytorch, Tensorflow and ONMX exposing the underylying native libraries to more programming languages, might mean to leave Python as it is, and use the other programming stacks for production.


I’m very excited about Mojo as a Rust 2.0 with first-class Python compatibility and support. Who knows if it’ll take off, but I love the project’s ideas and respect its ambition.


This is a horribly outdated take and ignores many of the benefits Python has brought to so many fields. At best it's elitist, at worst egotistical and based upon outdated interpretations.

Also, why so divisive? There's really no need for the deviciveness.


gosh, pythonistas must have called you really bad names.

JVM wanted to be Self, but Sun was on its last legs by then. now it's just a weird historic artifact, still casting a shadow, or at least causing an unpleasant smell.

I'm curious about the masters-have-left claim: do you really thing current Python action is somehow foolish?


I don't know about "foolish", but the current efforts adding complex threading and a JIT that promises 30% speedup over 3.10 look misguided.

Before, the selling point was simplicity and C extensions.

Just go to GitHub: Apart from the people who are paid to integrate the above features development has all but stalled. The corporate takeover of the "free" software Python (without a standard or viable other implementations like C++) is complete!


Python was never a good language. It was always a joke. But jokes have a short shelf life. The reason to use it was to be in the opposition to the pompous way of how the mainstream was trying to do things.

It's like with academic drawing. A student would spend countless hours or even days trying to draw a model, and would still come out with broken anatomy, made of plaster and not even a bit similar to the model itself. And they would use a huge arsenal of tools, and probably some expensive ones. While a master could scoop some ash from an ashtray, and in a few lines drawn by a finger accomplish a lot more than that student's day's work, and have the model look alive, with plausible anatomy etc.

Python was the ash from an ashtray. It didn't need to be good as a tool to accomplish its goal. Actually, the opposite. But now, with the masters gone, the students don't know why the masters were so good at it, and they try to copy whatever they did, including finger drawing with ash. It works even worse than if they used their huge arsenal of tools, but they no longer have anyone to guide them.

You might think this is a ridiculous story, but this actually happened before my eyes in academic drawing in a particular art academy. But it's a story for a different time.

So, to answer your question, with some examples:

Yes, Python today is thousand times worse than what it was 15 years ago. In general, adding to a programming language makes it worse. Python not only adds, it adds useless garbage. Stuff like f-strings, match-case, type annotations, type classes, async... all this stuff made the language a lot more complex and added nothing of value.

Lots of Python libraries were burnt in a name of "progress" (broken backwards-compatibility). Making tools for Python became prohibitively expensive due to the effort it takes to work with the language.

But, it didn't stop there. The community itself changed its shape dramatically. Python, from being usually the second language, learnt by someone intelligent enough to see the problems with the mainstream and looking for alternatives, it became the first language programmers learn on their way into trade. Python more and more started to bend to meet the demands of its new audience: the unwilling to learn amateurs. And that's where Java was good! Java was made for exactly this purpose. Java came packed with guard-rails and walking sticks.


Where have the masters gone from Python?


Into management? :)

There is no career path for programmers. Once you are a programmer, that's the end of your career. You climb the ladder by starting to manage people. But you don't become a super-programmer.


This is very much false. Many companies explicitly have a career path for individual contributors, even. Managers can jump higher, sure, but there's still a world of difference between a junior and a principal; and then there's technical fellows.


I work in a company that has principals and fellows. Here's what you are missing:

* Overwhelming majority of programming companies don't have anything like that.

* Overwhelming majority of programmers, even if they work in a company who has that will never become principals or fellows simply because there's no official process of becoming one. It's usually a gift from your management. You don't take a test, nobody's going to count your commits or measure your programming output in any other way and say "whoa, this guy now qualifies for this title!"

* You are confused between being good at what you do and a title HR puts on your paycheck. To make you understand this better: say, if you are a surgeon, then bettering yourself as a surgeon is very likely to make you more valuable in the eyes of your employer, and, subsequently, put more money into your bank account. If you better yourself as a programmer, in most likelihood you will end up disappointed you wasted all this time for nothing. You will have problems getting a job, since often you'll be overqualified for what's on the offer. On top of this, a title you earned with one employer doesn't translate into an equivalent title at a different employer. Employers use these "principal" or "fellow" titles to justify paying you a bit more, so that they don't have to deal with hiring a replacement for you. If you switch jobs, the new employer has no incentive to hire you at the same level of "pretend seniority".

In other words you are confused between added pay that you accumulate as long as you keep working for the same employer, no matter the quality of your output, with the pay you get for being good at what you do. Usually, in many professions, people become better the longer they spend in their field. In programming this is less so.


No offense, but it sounds you're generalizing too much of your own personal experience onto others.


What about 10x programmers


Haha, good one. Well, I'm not saying there's no difference between programmers in terms of how well they can do their job. All I'm saying is the difference isn't reflected in the paycheck.

If you are a good programmer (ok, a 10x one!), then, eventually, one of these will happen to you:

* Despair. You come to despise the peers, the tools you have to work with, the market that will never acknowledge nor learn how to utilize your skills... and you become a vertical farmer, or an Irish pub owner, or a part-time elementary school PA teacher. (All of those I've witnessed firsthand.)

* Like I mentioned before, you become a manager. Or maybe go back to academia and become a professor. You still program, sort of, but mostly on a whiteboard.

* The technology you dedicated your life efforts to dies. And then you find yourself in an unfamiliar although related field where your past successes and fame aren't acknowledged. You feel too tired to prove yourself once again and succumb to a boring and meaningless desk job. Perhaps you become a better home cook, or a better parent.

* Start your own company. Very few do this. Most of those who do fail, and then loop back to the of the first three. Otherwise, you are promoted into the owners class. I don't know what happens there, it's happening behind closed doors, at least I was never invited.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: