3 ms·
Go and Javascript are "winning"? That's news to me. They might be buzzier right now, but their compiler/interpreters only appeared in 2009 and Python has been a
by pixelmonkey 12y ago
Go and Javascript are "winning"? That's news to me. They might be buzzier right now, but their compiler/interpreters only appeared in 2009 and Python has been around since 1991. Is it really such a surprise that the hype period is over for Python as a language spec?
Now people are just getting a lot of stuff done with this productive language and nobody needs to be convinced any longer how good a language it is. Most people already know.
Now, we're onto the good work of building a huge ecosystem of open source modules atop it. Call me when Go and JavaScript have the equivalent of the PyData stack and rock-solid drivers for every database technology on the planet. Then maybe I'll look at them for anything other than niche use cases. (Obviously JavaScript is still the only game in town inside the browser and Go seems like a pretty interesting alternative to C for UNIX system utilities.)
- rattray 12y agoThanks; I should clarify. I agree Python is, in my subjective opinion, the best language spec and community in programming. It's simply the most fun, productive environment. But people are leaving; important people and newcomers and loyal stalwarts. Im on the go right now so can't access links, but there have been a handful of posts here in the past 6mo or so of prominent members leaving, or sharing their disenchantment. Many other "I'm moving to go" posts. And the velocity of npm/go are undeniable (look at the stats). Remember, npm is largely for the server, where js shouldn't have an advantage. I love Python. I want it to win. Maybe "lose" is too strong of a word, but it's certainly slipping.
- pixelmonkey 12y agoI am reminded of Yeats: Things fall apart; the centre cannot hold; Mere anarchy is loosed upon the world, The blood-dimmed tide is loosed, and everywhere The ceremony of innocence is drowned; The best lack all conviction, while the worst Are full of passionate intensity.
- shadowmint 12y agoWell... I think javascript is a terrible broken language, but you can't deny that it's been chosen as the flagship language by Microsoft, or that at least 3 major players (Microsoft, Google, Apple) are investing serious time and money in the runtimes for it; or that those runtimes are actively deployed on the future on computing: mobile devices. As a full time python developer I'm seriously concerned about how viable it is as a platform going into the future; this 'everything is fine' attitude is the problem. WAKE UP. Python is not doing fine. It's growing as the target for scientific computing (which is great~), but I'd argue that's masking a downturn in the use of python for serious software engineering tasks, where the people who traditionally used it (webdevs, backend system tool makers, like disqus) are turning to tools with better performance and distribution tooling (like Go, node-webkit, etc) and less drama (py3).
- XorNot 12y agoEveryone investing in JS is focused on it as an intermediate language. You support JS so things like asm.js port cleanly. Then you build a JIT which says 'oh hey, run this as native code'. I would argue this means quite the converse - JS will die while bejng replaced by language ports which compile to JS. Python included.
- hyperpape 12y agoIt's not at all clear to me that asm.js is the endgame. Where are the big projects that are using that strategy? It certainly seems like a possible endgame, but it also looks like many bug companies are writing a lot of JS.
- Cyther606 12y agoI'm currently using Nimrod as a replacement for Python on a Bitcoin project. The code so far looks very similar to Python, but it has the performance of C with native code generation not dependent on a VM. The community has been amazingly helpful. secp256k1.nim: https://www.refheap.com/9f22921d3d39d2c47ce8a633b https://www.refheap.com/9f22921d3d39d2c47ce8a633b secp256k1.py: https://www.refheap.com/97fcb85a23fff65a6e207add2 https://www.refheap.com/97fcb85a23fff65a6e207add2
- coldtea 12y ago>Go and Javascript are "winning"? That's news to me. They might be buzzier right now, but their compiler/interpreters only appeared in 2009 and Python has been around since 1991. Is it really such a surprise that the hype period is over for Python as a language spec? It's not about "hype period". It's about moving on with the times to avoid becoming the next COBOL or TCL. Being even older and problematic than Python haven't stoped a language like C++ to ease its users problems and make them happy with C++11. Javascript, almost as old as Python (1995 vs 1991) got 20-100x speed boost with the 2006-era generation of JITs. A ho-hum remake, like Python 3, that breaks compatibility without much important to offer, doesn't cut it. If you're gonna break compatibility solve real problems people have. A large speed boost (entirely possible as V8, LuaJIT and co have shown even for a most dynamic language) is a great thing to entice upgrades. A good async/multicore story also. The removal of GIL. Etc. Those are things people have been nagging Python devs about, not improved Unicode or print as a function. >Now people are just getting a lot of stuff done with this productive language and nobody needs to be convinced any longer how good a language it is. Most people already know. Languages that nearly vanished from the job market and current use trends, like Smalltalk, TCL and Perl also said the same thing...
- orangecat 12y agoA ho-hum remake, like Python 3, that breaks compatibility without much important to offer, doesn't cut it. If you're gonna break compatibility solve real problems people have. Exactly this. Python 3 was an unfortunate triumph of purity over practicality. We'd be in a much better place if half of the effort expended in the Python 3 transition was instead focused on the issues you listed, and I'd also include browser support by compilation to JS.
- pixelmonkey 12y agoYou have strong points. I agree with you about Python 3 "not cutting it" in terms of offering some fundamentally new stuff. But I also think there is something admirable in that. You mention "a good async story" -- that has already been addressed with asyncio. A better multi-processing API has also been addressed in the concurrent.futures module. It's true that "multi-core" is still unsolved in Python, but most practitioners work around this problem by just using process-oriented parallelism instead. Nonetheless, the frequent complaints about multi-core haven't fallen on deaf ears; they will probably come next! It's pretty much the primary focus of the pypy project and recent development work has begun on a Software Transactional Memory implementation that would remove the GIL. GvR at PyCon 2014 said that he thinks pypy is the future of core Python development -- and that at some point in the future, pypy might become the reference implementation rather than CPython. So, to conclude, I agree with your points, but progress is already advancing on many of the fronts you are demanding from the community.
- zak_mc_kracken 12y agoI see a lot of Python developers switching to Go, and it's hard to deny that Python 3's adoption has been... underwhelming. I think the future of programming languages clearly belongs to statically typed languages, and Python will not be part of this future unless it evolves in that direction.
- vhost- 12y agoI was very, very critical of Python programmers switching to Go for a while. I recently got fed up with python and have been doing C, Go and Lua instead. I've started to rediscover programming and I'm enjoying myself much more. Go is very addicting. It all started when I tried to get one of my projects that requires a lot of concurrent IO working in both Python 2.7 and 3.x. Gevent, of course only works in Python 2, so I tried to switch to the asyncio family. This was a disaster. I'm sad to see it go, but I've decided to mostly drop Python. I'll probably still use it for Flask apps (I seriously love Flask). But anything that requires heavy lifting will probably be done in Go or C.