55 ms·
My prediction is that one day some alternative Python interpreter (Stackless, or GIL-less, or which compiles ahead of time to machine code, or something like th
by 2bitencryption 11y ago
My prediction is that one day some alternative Python interpreter (Stackless, or GIL-less, or which compiles ahead of time to machine code, or something like that) will go from being merely an interesting concept to a dominant runtime. Python is such an excellent language, and it only has a small handful of elements holding it back from being even better. I feel like eventually something has to give, and either there will be a radical new official Python runtime, or an alternative one that becomes the de-facto standard (Pypy, Jython, Cython, Stackless, etc).
Or maybe that's just wishful thinking. I just want it to be so.
- mixmastamyk 11y agoIt's unlikely unless someone with deep pockets steps up, such as a corporate benefactor. But it will continue to improve as it does every other year.
- harlowja 11y agoFATpython is starting to become some of this. https://fosdem.org/2016/schedule/event/fat_python/ https://fosdem.org/2016/schedule/event/fat_python/
- vram22 11y agoYes, one reason for the success of Java was the huge amount of investment Sun put into it - in both marketing and tech improvements. I read that they spent millions on that. And it did result in benefits. Across the span of some years, anecdotally, the performance of Java apps improved a hell of a lot - I remember noticing it, say maybe from 1.2 to 1.6 or so. E.g. some servlet + JSP based app running a lot faster at the end of that period than at the beginning. A pity that they did not seem to handle the business side of things well, and went down and were bought. (I'm sure there were external factors too, don't mean to say it was partly or wholly their fault. Just don't know.) Don't know much details on exactly why that happened, though I did read about it now and then, and follow Jonathan Schwartz's (last CEO of Sun) blog for a while.
- yahyaheee 11y agoI totally agree with this. I think the Python community is becoming increasingly aware that this is the next major fix. I thinking 3-4 years before we see it, but we need to stay vigilant and make sure it happens.
- agumonkey 11y agoA slightly leaner object model with a fast runtime would make it perfect.
- TylerE 11y agoAnything that breaks code AGAIN will kill the language for sure.
- imron 11y agoNot sure why you're getting downvotes. The 2 vs 3 has already split part of Python's userbase. Another change that broke significant amounts of code would just make things even worse.
- x0x0 11y agoI'm not sure that's true. My objection to 3 was it did nothing for me. All I got out of it was work dumped in my lap just so my code would continue running. Giving us a GIL-less pypy with jvm-scale performance would be worth a lot of hassle.
- sangnoir 11y ago> My objection to 3 was it did nothing for me...Giving us a GIL-less pypy with jvm-scale performance would be worth a lot of hassle. worth a lot of hassle to you. I imagine there are people who wouldn't find it worth the hassle. e.g. people who use python as a glue language where it's not close to being near the performance bottleneck - breaking the language to make it 'faster' would do nothing for them.
- pmarreck 11y agoObject-oriented languages are Dead Men Walking due to the problem of global mutable state management in any medium- to large-sized codebase, coupled with dependency/inheritance hell, leading to complexity hell, leading to geometric progression of tech debt. Compounding this is the lack of good unit test suites across the board, meaning that even if you write absolutely perfectly tested and maintainable Python (or Ruby, or Java, etc.) code, you still are stuck using libraries that have not been written with that in mind. And yes, I'm talking broadly about the rise of FP.
- pjmlp 11y agoYou mean all those FP languages that happen to support OOP as well? Lisp, Clojure - CLOS OCaml - The O is for Objective, e.g. Objects Scala, F# - Hybrid FP/OOP Haskell - Type classes support polymorphism and extensibility. Erlang - Message passing as envisioned by Smalltalk So what are FP languages that have zero support for OOP concepts and are on the rise?
- provemewrong 11y agoTo be pedantic, Clojure has nothing to do with CLOS. It does leverage JVM and lets you use objects and OOP patterns though.
- pjmlp 11y agoSo where do you think multi-methods and protocols come from?
- provemewrong 11y agoOkay, TIL, still there's more OOP in Clojure beyond CLOS influences.
- aninhumer 11y ago>Haskell - Type classes support polymorphism and extensibility. While most of your examples are valid, I don't think Haskell is remotely object oriented. Type classes are not classes.
- kayamon 11y agoMicroPython is already pretty much there on some fronts.
- Chris2048 11y agoWould it be possible to port it to the erlang-vm?
- reddit_clone 11y agoNot a good fit. Too imperative/oo to fit into Erlang's functional world. A subset may be.
- fenollp 11y agoThe Async stuff, generators & yields surely. Maybe even yield from. One obstacle is that Python code is often not recursive nor makes use of pattern matching. So it all depends on what kind of Python you want to port.
- Alphasite_ 11y agoI really want ZiPy to take off, a fast Python 3.5 for the JVM would be lovely.
- Rapidwire 11y agoYou mean "ZipPy": https://bitbucket.org/ssllab/zippy https://bitbucket.org/ssllab/zippy.
- btreecat 11y agoI completely agree. Fixing the run time would be a large effort to addressing one of the big complaints. However I want to see packaging addressed as well, if not first. Unfortunately packaging has gotten so wonky, it is easier for me to shove my small projects into huge docker containers and liberate my sysadmins from maintaining virtual environments on servers. Servers that need to be rebuilt with more modern versions of gcc and other system libs.
- tanlermin 11y agoHave you tried nuitka or Conda?
- vram22 11y agoInteresting. What's the size / overhead of a Docker container? Not familiar with it, though know what it is, and that it is smaller than a complete VM.
- actsasbuffoon 11y agoIt depends on the Linux distribution you use. Using Alpine Linux as a base can keep the overhead as low as a few megabytes.
- vram22 11y agoGot it, thanks.