17 ms·
Ask HN: Is Python dying?
Go for systems and backend, JS for frontend, Julia for data science.
It seems python is assaulted on all fronts..would now be a bad time to invest in a python stack, or will efforts to future-proof python (numba, blaze, nuitka, pyjion, Django channels, pyparallel) bare fruit?
- bobby_9x 11y agoGo doesn't have anywhere near the amount of libraries or support that we see with Python. Python isn't being assaulted on any front. We have always had multiple programming languages and some are better than others. My issue is that we seem to have these fad languages, like Ruby-on-rails. I still remember when it was rammed down our throats on HN around ~2008 and you were instantly down voted if you wanted to objectively talk about it's pros and cons. Now, all of the same people from that community (which I noticed, are mostly designers, not developers) have jumped ship and moved into Javascript frameworks like Ember.js and node.js. PHP, while flawed and not cool anymore, is still one of the most popular languages. Python will be around for a long time.
- deleted 11y ago[deleted]
- Jach 11y agoI'd say PHP is still cool, there's nothing quite like it. (For good reason, according to snooty devs, who are the ones that don't think it's cool or ever was cool...) I'm probably closer to a snooty dev myself now too with my favorite languages to sip on being Clojure/Lisp/Python2.7/Nim, but man PHP was the most awesome thing when I was 15-16 and learning web programming. I still find aspects of it cool when I do web stuff in other languages (though a lot of that is probably from the CGI model), and there's no way it can maintain its 80% market share if no one (even out of ignorance) thinks it's cool. When people ask if Python is dying on the web... seems kind of irrelevant, it never had much market share there anyway. Python's strength is in its breadth, with a few deep anchors here and there. I agree it's not going anywhere.
- stray 11y agoSome people will always flock to Teh Shiny -- but python isn't going anywhere.
- sr_banksy 11y agoIt has massive support and libraries for almost anything imaginable. It's not dying. Yes, the transition from 2 to 3 is a bit of a hiccup, but it's going to be around for a long time! A tad bit old, but read this: http://www.curiousefficiency.org/posts/2012/10/pythons-future-global-perspective.html http://www.curiousefficiency.org/posts/2012/10/pythons-futur... TL;DR: No.
- viraptor 11y agoThat may be a view through the distorted HN lenses. Spend some time on Lambda the Ultimate and you'll think imperative programming is dying. Go is new and has lots of issues. It's annoying on many fronts and badly needs improvements in packaging area. It's good for some things and worse for others. JS is for frontend, because it's the only supported language. (although there are python-to-js compilers available if you really want to use it) Julia for data science? Only if you started recently. R, numpy/scipy, mathematica, matlab, etc. still rule data science. The projects you listed for python are fairly new. I expect half of them will be dead and forgotten in a year and other half will get more popular, but they're not future-proofing anything. Python always had a lot of experiments going on and will likely get more of them in the future. Trying to predict language popularity is like trying to play on the stockmarket. Unless you can research what's really happening inside the biggest players (companies/organisations) you won't get realistic answers. Just learn what you like and what's relatively popular. Expect you'll need to learn something else in 5 years. BTW: Go was created in 2009, julia in 2012, reasonable js (ecma5) in late 2009. Python's around since 1991 - do you really expect it's just going to disappear?
- eru 11y agoReasonable Python is much younger than that. (Only fair, if you make an adjustment for reasonable js.)
- jedberg 11y agoReading HN, you'd think Java was dying (dead?) too. But it's not. It's an established language with a lot of very senior people still using it. It has it's issues for sure, but it also has a ton of libraries and support. Python I'd say is in a similar boat. Strong and established with tons of libraries, not popular amongst the kids. Edit: Apparently my use of "kids" as a sarcastic way of referring to those who won't use "old" languages was missed. :)
- wrong_variable 11y agoAs a "kid" - you are right !
- deleted 11y ago[deleted]
- aerovistae 11y agoWhat? The kids? I see young people using python more than any other language by FAR. What region are you? I've seen this through the northeast and midwest United States.
- tanlermin 11y agoLet's look at Julia for example. Its currently gaining steam in numerics, machine learning other technical computing areas...I hypothesize this is compound growth. For general computing, what would happen when it gains static compilation and can be distributed easily on Linux/Windows, Mobile and then web (with Emscripten/web assembly). Then its as expressive if not more than python, easy to read/write and faster (unless its written poorly).
- GFK_of_xmaspast 11y agoIt's really easy to get a huge growth rate if you start from a very small number.
- deleted 11y ago[deleted]
- droithomme 11y agoNo. Python is extremely useful and will remain so. However Python has fundamental design problems regarding unicode handling and 2/3 discrepancies that make it challenging to work with in a number of contexts.
- mjevans 11y agoI agree completely. Python could fix a LOT of that by using the (completely seriously named) https://simonsapin.github.io/wtf-8/ https://simonsapin.github.io/wtf-8/ WTF-8 (Wobbly Transformation Format − 8-bit) encoding for it's native Unicode (like) strings. Additionally Python should then allow the (explicit) casting of WTF8 datatype to bytes and from bytes to WTF8 datatype (edit: note, I mean invalid data would be read, stored within a WTF8 datatype as such, then converted /back/ to an invalid UTF-8 bytestream identical to the one read in). The main reason that Python Unicode handling is broken is that it creates problems that aren't necessary to exist or solve. In the real world, you encounter unvalidated data; and many times you don't /care/ if it's valid. It's just some human name for a bytestream. Or some not-quite valid Unicode stored within a file, or maybe something else that you want to handle like a bytestream but pick matching Unicode bits out of.
- zokier 11y agoYou mean something like PEP-0383? https://www.python.org/dev/peps/pep-0383/ https://www.python.org/dev/peps/pep-0383/
- normac 11y agoPython occupies a niche that isn't going away any time soon: making it easy and natural to write readable, straightforward, more-or-less imperative, slightly boring code of the type you learned in CS 101. This is still a very practical way to solve many problems and I'd wager for most programmers it's still the easiest way to do things. Maybe it will always be. It's hard to imagine there'll be a generation of programmers some day that finds it easier to compose dozens of tiny modules, chain callbacks with a variety of async abstractions, and implement as much as possible in tiny idempotent functions. I feel like the worst case scenario for Python is that it will fade into the wallpaper of mature and unsexy languages like Java and C++ that nonetheless run the world and will probably be around for another 100 years at least. I'm guessing Guido would be cool with that.
- tanlermin 11y agoWhy can't Julia fill that role?
- andybak 11y agoWhich role? A general purpose programming language with an emphasis on readability?
- tanlermin 11y agoYes...but one that is also very fast, portable and with great generic programming.
- 21 11y agoStuff like Numba greatly decreases the need for Julia. C++17 also feels surprisingly dynamic, and together with Cython for easy Python-C++ interop also decreases the need for Julia. And reports from the Julia world are not exactly encouraging - http://danluu.com/julialang/ http://danluu.com/julialang/
- 11y ago
- brianolson 11y agoPython is fine. I just came off a job in it and interviewing around saw a couple other jobs in it. I see it competing with Ruby and server-side-js. Python is more mature than either, and has a different flavor that will appeal to some people. Choose your environment to taste. OTOH, job[-2] was switching away from Python due to run speed concerns, towards Go. But while the application would be less Python, the 'devops' system glue would still be all Python.
- Alex3917 11y agoNot only is Python not dying, but it's stronger than it's ever been. The majority of top colleges are now teaching CS using Python. It's completely dominant in academia, finance, and startups. It has the best libraries and documentation of any language. And Django has arguably the strongest community of any open source project period. That's not to say there are zero problems, but Python is so much better than all the other alternatives that this just seems like a ridiculous question.
- tkimmel 11y agoAgreed. It's much easier to hire for Python skills today than it was even 2-3 years ago. While Python may be 'under assault' from a conceptual point of view, the job market would beg to differ!
- deleted 11y ago[deleted]
- matroosberg 11y agoCompletely dominant in finance? Do you have a source for that claim?
- brianwawok 11y agoHis rear end I suspect, I saw more Java, C++, and .Net in finance in my time.
- Alex3917 11y agoActually that's probably not accurate now that I think about it. Python is mostly used by quants and people figuring out what trades to make, as well as for some of the internal business tools. Whereas the people building the actual exchanges are probably using Java or C++.
- dodders 11y ago"Finance" is such a broad term with respect to IT - you'll find anything if you look hard enough. The following is based on my experience only - I'm sure there will be lots on here with different experiences: * I've seen more C++/Java/C# than anything else, with a large legacy base of COBOL/RPG (yes, GMI, we're looking at you...). * Industrial-grade quant libs (for risk, P&L, models that need regulatory approval) tend to be in C++, with the infrastructure to run them increasingly in Java. * Lots of VBA on the desktop. Every department runs on Excel... * Python is making inroads (see Quartz at BofA, Athena at JPM), but I suspect that it's still vastly outnumbered (by whatever measure) by C++/Java. Some firms (and departments in bigger shops) embrace new technology agressively - at my firm I know of large Scala projects, python, big data (mainly Mongo/Hadoop), R and some Haskell. That said, on my first job in the UK for a large insurance firm, we employed a team that wrote custom CICS machine code for Z-series mainframes. Beat that with yer fancy functional languages... So no, I wouldn't say that python is dominant.
- 21 11y agoInteresting stats regarding version 2/3 usage from a moderator of /r/python today: Here's the breakdown by which Pythons were used to download from PyPI in the last two weeks: 2.7 85.90% 2.6 6.66% 3.4 4.64% 3.5 2.09% 3.3 0.56% 3.2 0.12% (Two weeks was ~133 million downloads) https://www.reddit.com/r/Python/comments/45sm94/what_are_the_most_recent_python_3_vs_python_2/czzy5wa https://www.reddit.com/r/Python/comments/45sm94/what_are_the...
- jsmeaton 11y agoBe aware that PyPI isn't a great way to get accurate statistics. One of the reasons is when tox tests via a matrix, Python 2.7 is usually the first python listed, and if it fails then Python > 3 will not be tested. Also, it'll reuse libraries from the pip download cache. I don't doubt that python 2.7 accounts for the majority of the downloads, but I sincerely doubt 2.7 usage is at ~85%. 2.6 usage is probably almost exclusively RHEL/CentOS 5/6 system pythons and not representative of actual projects.
- viraptor 11y agoAlso it's important to remember that system-wide packages get installed once, while pypi stuff will get redownloaded a lot. It means that for example users of recent arch, ubuntu and other distros which install python3 by default are more likely to have some of the dependencies already there, while anyone installing just python2 base package will download deps from pypi. Also pip itself got upgraded to use caching by default not that long ago. All distributions defaulting to python2 will still have old pip which redownloads your packages on every installation (`tox -r` for example). More recent distros will give you tox which caches the downloads locally (which lowers the numbers). Pypi also doesn't count private repos. If openstack started testing commits using pypi repository and turned off caching, I'm guessing it would add at least 10% to python 3.4. TL;DR: pypi stats are interesting, but don't rely on them to give you precise answer.
- voltagex_ 11y agoDebian Popcon is interesting too, but don't rely on it either: https://qa.debian.org/popcon-graph.php?packages=python3.4%2C+python2.7&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1 https://qa.debian.org/popcon-graph.php?packages=python3.4%2C...
- dudul 11y agoI think it's HN echo chamber. A lot of articles here about new exciting technologies, but when you look at job postings for example this is not the same song. I'm very excited about Elixir for example. There is a new Elixir blog post/article/github repo posted on HN every day, you would think that Elixir is the new cool thing. Well, not easy to find companies that actually use it.
- tanlermin 11y agoyes, but are these articles early sensitive indicators of things to come or just esoteric blovation?
- abrookewood 11y agoI think they're an indication that people find something interesting, which is often because it's novel.
- BuckRogers 11y agoElixir is so interesting (to me) because if a company does adopt it, there's almost no risk. I always view tech from business-tinted glasses. Elixir is a winner from both sides. It's built on technology older than Java. I'm not sure most people need what it offers immediately, but it's certainly a safer bet than most new things. Including CPython3 and Perl6.
- dcolgan 11y agoI play around with NodeJS and front end frameworks like React for my own side projects, but all of my paying client work is made with good ol Django. It just does so many things well and is very mature. I recommend for production code using libraries that have a strong community and have been around for a while so that they don't keep changing all the time.
- andybak 11y agoDon't forget that Django and React make a great combination. You probably still want Django to handle server-side rendering for most of your site (unless you're a masochist). Django Rest Framework for the API, and React (or whatever) to handle the app-like parts.
- mrdrozdov 11y agoWhy not render client-side?
- andybak 11y ago1. On the whole 'normal' websites with an overabundance of client-side rendering are in a kind of 'uncanny valley'. They nearly behave the way a normal server-side rendered site would but something always breaks whether it be the back button or link behaviour, caching/refreshing or something. So from the user's perspective it's often a bit off. 2. It's still more work from the developer's side. You have to implement stuff you get for free with server-side rendering. And currently (and for the foreseeable future IMHO) Python/Django is still simpler, more maintainable and nicer to work with. So I'd prefer to keep the client-side code where it belongs - the parts of the site that are more like an 'app' than a 'website'.
- silviogutierrez 11y agoThis was my original approach. After all, no need to do an SPA for regular pages. Only the app-type parts with a DRF backend and an Angular/React frontend. But... as I started publishing these apps on mobile app stores (cordova), I found myself also having to write a REST endpoint and client side renderer for the app versions. Even though I'd much rather do a contact form, for example, in a server side view. But if I also need the REST API and client-rendered version for the app version, I might as well only write it once.
- Animats 11y agoI like Python, but it's gone downhill. Python was doing just fine until Python's little tin god came up with Python 3 and tried to drive a stake through the heart of Python 2. That backfired, badly; six years on, Python 2 still has far more production use than Python 3. (No, it's not about Unicode. Python 2.6 and later do Unicode just fine. I've written sizeable all-Unicode systems in Python 2.6. It's just that in 3.x, it's the default.) Coming up next, Python 4, with typing syntax that isn't checked. Ugly typing syntax - some in comments, some as annotations. There's an argument for optional type declarations that are checked, but unchecked declarations are trouble waiting to happen. The PyPy crowd has brought off a miracle - an optimizing compiler for Python that supports almost all the dynamism of CPython. It took a long time, but they did it. CPython should be retired now, or made to conform to PyPy. But no; the little tin god insists that his CPython defines the language. The PyPy developers struggle to keep up. The language isn't the worst problem. It's the wildly variable quality of the libraries. The great thing about Go is that it has libraries which are used internally by Google, and thus have been executed billions of times. Python's PyPi (formerly Cheese Shop) has no quality control, and many versions of very similar libraries, each with different bugs. There's no convergence.
- andybak 11y agoShame you started with "Python's little tin god" as it meant I took everything else you said less seriously.
- Animats 11y agoI'm worried about a repeat of the Pascal debacle. Pascal was a good language, invented by Niklaus Wirth. It had some flaws, which were fixable. But Wirth was insistent on not doing anything which would invalidate his elegant, but limited, recursive-descent compiler. He didn't like separate compilation of modules, for example; everything was supposed to be in one big file. He had this thing about conformant-array parameters, where arrays were passed with size info. Strings were limited to 255 characters. The I/O operations all aborted on error. Integers and subranges were designed on the assumption that integers were very big. (The original implementation was for the CDC 6600, with 60-bit integers.) He pushed his version into being an ISO standard.[1] ISO Standard Pascal is useful mostly as a teaching language. You can't do much real work in it. So Pascal fragmented, badly. There were lots of incompatible variations. In time, Pascal was abandoned. Sometimes the original language guru has to be pushed aside before they run the language into the ground. [1] http://www.pascal-central.com/docs/iso7185.pdf http://www.pascal-central.com/docs/iso7185.pdf
- dperetti 11y agoPython is not dying, it's mature and stable.
- lucb1e 11y agoI started using Python because everyone around me was starting to use it about a year ago. By now I'm rather proficient at it and it's replacing my primary language (PHP) to write quick scripts to run from the command line. In a few weeks I'll also be working on a web project in Python (where I'd normally have picked PHP). I still use PHP and bash a ton, will use Java in school next semester, used C# during my internship, but Python is among my core tools right now. I notice that library support for Python is so, so much better than for PHP, making my life a lot easier at times. As for Go, I still intend to look at it, at some point in the future. Basically like I intended to look at Python three or four years ago. Javascript, yeah for in browsers. Julia? I heard of it but I still think of the girl first and the language second. Never looked at it and don't see it come by that often. Data science you say? I thought R was hot there, a language I was going to look at somewhere in the next few months (my girlfriend will get it in university, good opportunity for me as well).
- hoodoof 11y agohttp://www.simplyhired.com/search?q=python http://www.simplyhired.com/search?q=python Showing 1-10 of 169,970 Python jobs http://www.simplyhired.com/search?q=ruby http://www.simplyhired.com/search?q=ruby Showing 1-10 of 128,305 Ruby jobs http://www.simplyhired.com/search?q=java http://www.simplyhired.com/search?q=java Showing 1-10 of 190,126 Java jobs http://www.simplyhired.com/search?q=golang http://www.simplyhired.com/search?q=golang Showing 1-10 of 219 Golang jobs http://www.simplyhired.com/search?q=julia http://www.simplyhired.com/search?q=julia Showing 1-10 of 206 Julia jobs http://www.simplyhired.com/search?q=%22python+3%22 http://www.simplyhired.com/search?q=%22python+3%22 Showing 1-10 of 151 Python 3 jobs http://www.simplyhired.com/search?q=%22python+2%22 http://www.simplyhired.com/search?q=%22python+2%22 Showing 1-10 of 141 Python 2 jobs
- yorktimsson 11y agohttp://www.simplyhired.com/search?q=perl http://www.simplyhired.com/search?q=perl Showing 1-10 of 220,326 Perl jobs
- hoodoof 11y agoWow that is a surprise. No-one even seems to talk about perl anymore.
- leftnode 11y agoThey're too busy getting paid writing Perl.
- abrookewood 11y agolol .. It's still pretty shocking. I know lots of programmers, including some that used to write lots of Perl, and none of them are still working on it. Those job numbers are crazy.
- hoodoof 11y agoCould it be that there's so many open Perl jobs because there are no programmers to fill them?
- bliti 11y agoNo, it's not dying. It has simply gone enterprise. Which means it is no longer "cool". Python is a good glue language that runs everywhere.
- no1youknowz 11y agoI don't know. As a single developer house, I have a behemoth of a project. Started out with PHP, then used Python for the backend (php sucks as daemons). Expanded to NodeJS for real-time elements. Used JS exclusively for the front-end. When I found python not working as it should be for heavy concurrent tasks, I used Go. So PHP, Python, NodeJS, Go, JS all for 1 project. Couple this with NoSQL, Postgres, Varnish, Nginx and being a linux sys-admin and throw in clustering, security and a whole lot of other things. Wow, something has to give. 4 months ago decided to learn Go. Now I'm almost at the point where I have a JS front-end and Go backend. I regularly see complaints about Go having issues. I don't see this as the case. I went from PHP/Codeigniter MVC backend including sessions, validation, integration with nodejs using historyJS and a small JS footprint for the front-end SPA... To a couple of days worth of work which involved grabbing GIN (the framework), make it do MVC, put in JWT, use GIN for validation and Gorilla/websockets for real-time. There are many blogs, code samples on github, for a lot of different use-cases or to get the gist of how something is supposed to work. I havent yet found myself not being able to do what I need with Go. I think what is the sticking point. A lot of developers want to import packages and just build the core of their app. I don't know. I find myself WANTING to build everything out because then I can trust that it will work and work in production. So if a library isn't available. Fine, I'll just build my own. In fact, the net benefit for me, was that I no longer need to think about scaling my entire application. I made every facet of my old application into micro services that can now be clustered. In addition, the overhead for running Go is now very minimal. The outlay of $$$ each month dramatically went down vs running PHP/Python. Finally yes, I understand that if I wanted to double down with Python or NodeJS, I could have probably achieved the same result. I'm sure someone will reply saying, why didn't you use X or why didn't you use Y. The fact is, I used Go. The barrier to entry to learn it was minimal to none. I hit the ground running with Go on day 3. Go has paid back lots of dividends and it continues to do so. All my new development is with Go and I don't miss any of the other languages and not only that, upgrading from 1.4 to 1.6 hasn't bothered me in the slightest. I hope that trend continues with 1.7 and 1.8 and beyond. Oh and getting http2, better GC and other goodies to boot. May that trend also continue. I think in the next 5 years, things will be different. I think if Go starts to match the number of libraries Python has, it will be different. At this point, yes, Python may well be dying.
- markstanford 11y agoNo we use python a lot, we are a python shop
- hyperion2010 11y agoI heard an anecdote from a colleague who was surveying undergraduate CS courses. The prof was explaining what the course was going to be about and said that the students could choose any language they wanted to complete the work something like C or Java or anything didn't have libraries for everything. A student wanted to know if this meant they couldn't use python. Prof said, ya, you probably shouldn't use python for this, too tempting to cheat. Grumbling, so prof asks, how many people actually know C, Java, or something like that? ~50% hands. How many only know Python? ~40% hands. These were CS majors, in an upper level CS course.
- thebouv 11y agoThere are lots of tools and even lots of toolboxes. What do you like to do? What can you find work for? If you know other languages, you can shift easily. It's not like you have to invest years into a new language if you're already proficient with others. You're not going to forget if/else logic, what functions do, or object oriented basics. Most languages just have their own syntactic sugar on all of that. Learn Python. Learn Node. Learn Julia. Be flexible.
- lmm 11y agoThe moment a language is born is the moment it starts dying. No language lasts forever. My opinion: Python will outlive the three languages you list. But it's dying outside data science, and maybe even there. Optional typing can't compete with modern type inference, and there is too much dynamism in the existing Python ecosystem (even though it's so rarely used - there's not a monkeypatch culture like in Ruby - it's used often enough that you can't just remove it). But not today, probably not in five years either. In fact with the community finally having rallied around 3.x this is probably the best moment in years to leap into Python. But yeah, all languages are dying, some faster than others. You have to make your own judgements, and learn general skills so that you're not bound to one particular language (unless you're very confident in that one language).
- bulutsuzku 11y agoPython is just a fashion language. If you want truly survivor languages look at Smalltalk. More than 30 years and still alive. Is not about modern type inference or dynamism... it's always about the people. And people in Python doesn't have that commitment with the technology, they are more like freeloaders.
- gkya 11y agoIn case of Go, it is a dead baby, the language and the tooling suffer from dogmatism and inflexibility. Python is stable and good now, it does not need to change that much. Thus, those who mix up version numbers with stock prices and become happy when they increase switch away and complain. Ignore them.
- mixedCase 11y ago>the language and the tooling suffer from dogmatism and inflexibility The inflexibility and dogmatism of the language is its biggest strength, lending it to create universally readable codebases that any Go programmer can pick up and be productive with. The tooling has never stopped improving, and Go 1.6 is going to make the VENDOREXPERIMENT an official, supported part of the language. Plus the real reason why backend devs are abandoning Python for Go is a numbers game that Python, short of PyPy pulling a miracle, will never even hope to compete against.
- gkya 11y agoGo tries to make code readable via dumbed down features and arbitrary rules. The tooling hasn't stopped changing. Improving? Not as sure. In the last paragraph you compare oranges to apples. Python has never promised to be fast, its promise is convenient use, easy start up and interactive development. Go on the other hand a speed focused thing that gives up developers' comfort for dogma and modern features for ease of development of the compiler.
- zerohp 11y agoDon't forget that dumbed down features and arbitrary rules were what made Java popular.
- gedrap 11y agoThis is an interesting example of what might happen if you think that the things which are the most frequently mentioned on HN are the ones which are the most commonly used in production/industry :) It's a bit dangerous bias/distortion, you can easily trick yourself into thinking that everyone is running everything with docker, soon everyone will be spinning up clusters with tensor flow to compute on their petabytes of data :) (nothing personal, OP, just something I've noticed lately).
- chm 11y agoNot in my sphere of activity. I have a friend who recently started his PhD... and is moving all of his development from C/C++/Fortran to Python. Numerical code even - he just doesn't want to bother.
- happywolf 11y agoCiting this example isn't very convincing. Would be more interesting to know what language he uses when he finishes his Ph.D.
- chm 11y agoWell, I also have two other colleagues who started using it some months ago to parse data. They don't know about Go or Julia. I think the "wow" factor of Python might be lower than it used to be, but it's not considered dead, at least not in science. Does that reflect the broader reality? I don't know :)
- shiftoutbox 11y agoNoooo freebsd and Python are dying , zombie-Linux-Javascript-Jesus will save us with docker on mint .
- edem 11y agoYou might want to check [This].(http://www.itjobswatch.co.uk/jobs/uk/python.do http://www.itjobswatch.co.uk/jobs/uk/python.do) It doesn't look like dying to me.
- majestik 11y ago>>> Is Python dying? False
- bulutsuzku 11y agoIt is dying
- thkim 11y agoUnless there is another language that beats Python in terms of simplicity of toolchain, deployment and syntax, Python is not going to die. Very few people care about the performance of a language (this is same as asking whether Intel i5 or i7 is a better choice when most of what you'll be using is Microsoft Word or PowerPoint), and Python provides reasonable and handy solution to that problem as well (pypy). Bottom line is that performance does not predict whether a language will die or live. That's not what most people care about.
- tumdum_ 11y ago> Unless there is another language that beats Python in terms of simplicity of toolchain, deployment and syntax Actually those 3 things are much simpler in Go.
- jerf 11y agoThe word for Python is mature. If fireworks aren't going off with every release, it's because it's past that phase of life. The only concern I have for Python is exactly the temptation to keep adding features and chasing other language's tail lights. I've recently gotten the chance to see a fairly novice programmer dip toes into some Python-based testing code, and it's definitely gotten pretty easy to make awfully magical and complicated Python code after all the decades of accumulated features. They get a very different experience with Python getting the whole thing dumped on them at once than I did riding with the language from roughly 2.0 and watching the features come in one by one. Python has many advantages over, say, Go right now, but the advantages that Go has over Python, Python is not in a position to reasonably add to itself. Is it "future-proofing" Python, or is it taking something already pretty complicated and crusting on one-too-many layers of "features"?
- noobermin 11y ago>The word for Python is mature Exactly, one could use the same criteria of the OP and conclude C is "dying", and how wrong they'd be. Just because it seems like there isn't new and hot stuff for Python doesn't mean it is actively used and sought after today. Perhaps it's strange because Python always seemed like the hot new scripting language thing until it now where it has become the well known scripting language thing it is today
- bulutsuzku 11y agoPython is dying because is the freeloader language of choice. And you realize it when you explore the QUALITY of python libraries out there. You know what I mean. Quality in Python code sucks.
- cwyers 11y agoPython's maturity is a problem because it provides very little incentive for users to resolve the 2/3 split.
- jerf 11y agoThe word for Python is mature. If fireworks aren't going off with every release, it's because it's past that phase of life. The only concern I have for Python is exactly the temptation to keep adding features and chasing other language's tail lights. I've recently gotten the chance to see a fairly novice programmer dip toes into some Python-based testing code, and it's definitely gotten pretty easy to make awfully magical and complicated Python code after all the decades of accumulated features. They get a very different experience with Python getting the whole thing dumped on them at once than I did riding with the language from roughly 2.0 and watching the features come in one by one. Python has many advantages over, say, Go right now, but the advantages that Go has over Python, Python is not in a position to reasonably add to itself. Is it "future-proofing" Python, or is it taking something already pretty complicated and crusting on one-too-many layers of "features"?
- d1ffuz0r 11y agoNo. Python is rather getting stronger and going enterprise than dying
- mindcrime 11y agoCOBOL and FORTRAN aren't dead, and you think Python is going to die anytime soon? I don't see it. For the most part, technologies never really "die" per-se. Now as to the question of what stack to invest in from a career standpoint... my guess is that Python would still give you a very good ROI. Look how popular it is in the machine learning / data science world, for example. I'd bet there will be more jobs for Python coders than for Julia coders for at least another 5 or 10 years or more. But hey, hedge your bets... invest in something for today like Python, but start spending a few cycles here and there on Julia and Go. Flexibility helps in this field. In my 17 some odd years doing this stuff, I've gone from focusing on C++ to mostly Java, then to Python, back to Java, then on to Groovy, and now am using Java, Groovy and Python. But I'm also spending some time on R, as well as Julia, Go, and Rust, just to stay current.
- zanny 11y agoI, for one, look forward to the day I have Python in my frontend. Browser support for <Script type=text/python>! Viva la revolution! I would need so much less migraine medicine that the pharma industry would lobby against it.
- antod 11y agoThat day was 15+ yrs ago. Back in the IE4/5 days with ActivePerl and/or ActivePython installed you could do just that (along with VBScript). It also allowed you to use them in ASP pages too. eg: https://msdn.microsoft.com/en-us/library/ms974552.aspx https://msdn.microsoft.com/en-us/library/ms974552.aspx http://www.icodeguru.com/WebServer/Python-Programming-on-Win32/ch21.htm http://www.icodeguru.com/WebServer/Python-Programming-on-Win... Apparently Perl tended to work better than Python though due to not being as picky about whitespace in an HTML script element :)
- crdoconnor 11y agoNot really: https://www.google.com/trends/explore#q=go%20programming%2C%20python%20programming&cmpt=q&tz=Etc%2FGMT https://www.google.com/trends/explore#q=go%20programming%2C%...
- mrdrozdov 11y agoFirst there was Perl. Now there's Python. Until there's another powerful scripting language that starts with a P, I think Python is going to be safe. That being said, rumor is that Perl is back on the rise...
- mixedCase 11y agoPython is very strong in data analysis, as strong as ever in DevOps, and it's very versatile to always see it show up in other areas. Most of our Python use is for cross-platform mobile development with Kivy and we're happy with it so far. Certainly happier than having to deal with Java and the disgustingly horrendous Android SDK.
- Paul_S 11y agoPython pretty much replaced Perl in everything yet Perl is alive and well today. So, no.
- deleted 11y ago[deleted]
- deleted 11y ago[deleted]
- MichaelBurge 11y agoThere's projects where you're trying something new, and there's projects where you're trying to get something done. I recommend keeping the two separate, and for the second type using whatever you feel most productive with. Mixing the two just increases the risk of your project for no real benefit.
- smegel 11y ago> Go for systems and backend Certain sorts of systems and certain sorts of backends maybe. There is a reason people prefer dynamic languages for web based backends for example - the amount of text mangling and arbitrary data structure manipulation becomes a serious headache in a compiled language, be it Go, C/C++ or what-have-you. I work on a large system written entirely in Python -we've considered introducing Go to speed up certain processes, but Python will remain the foundation for the foreseeable future.
- BuckRogers 11y ago>I work on a large system written entirely in Python -we've considered introducing Go to speed up certain processes, but Python will remain the foundation for the foreseeable future. Consider doing what Dropbox does, use PyPy for those few processes that need more CPU performance. They run 2.7 for most things and PyPy where they need to.
- spiralpolitik 11y agoAll the interns we've recently interviewed all have Java and Python skills so neither language is dying in any sense of the word. In fact I would probably say that those (plus Javascript) are probably the languages new programmers are learning first. Both languages are however going through transition periods, with Python the 2.x to 3.x migration is still dragging on and shows no sign of ending. Java is in a period of libraries rebasing themselves around Java 8 and Java 9 will similarly be a disruptive release once project Jigsaw finally lands. But both languages will continue to be around for a long time.
- oniMaker 11y agoThe code written to control the LIGO detectors was all python.
- mpdehaan2 11y agoAbsolutely not. Python strikes an amazing balance in being a rapid development but also sustainable language, that makes for maximally maintainable code. While I can't speak for it's growth in data science, it's widely used in systems programming and web development and web services as well. Go is simply not as agile, it's a lower level systems tool for "tight" low-level code, yes. Python has never been a front end language. I still think Javascript is a HORRIBLE language, but that's beside the point. At least from my experience, it's exactly in the perfect sweet spot of language design for being unexciting and getting massive amounts of work done.
- deleted 11y ago[deleted]
- noelsusman 11y agoPython is dying in much the same way that C is dying, and by that I mean it's not dying at all. I'm no expert on Go or JS but Julia is not even close to being a serious competitor to Python for data science right now. Besides, Julia has a role more similar to R than Python.
- aninteger 11y agoI think C and even C++ are basically dead from a job market perspective but seem alive and doing ok in the opensource community. The need for paid C development pales in comparison to the job market for python. The industry, at least outside HN, for "backend" type work has settled on java/.net languages. They are just good enough for 95% of use cases and easy enough to hire for.
- eva1984 11y agoAFAIK, for a competitive backend programmers, besides C++/Java, good at least one script language(tool) is a must, let it be bash/perl/Python, etc... More and more people are picking up Python for this role, simply because it is more a complete package than its competitors. I do agree with you, knowing ONLY Python is not really something to feel good at, but same thing can be said for any other programming language...
- sdfin 11y agoHow is Python doing as a replacement for Bash scripting?
- melted 11y agoPython was never a front end language, and it was never a systems/backend language, at least not a good one. Its main strength is that "batteries are included" and you can get something usable going really quickly. None of these purported challengers has that strength.
- eva1984 11y agoJulia for data science is not as nearly as true. The landscape of data science or machine learning is shifting so fast because of the recent deep learning revolution, which, IMHO, makes some Julia's featured improvements a little awkward. If it anyway has to delegate the computation to something like GPU, then the goodie Julia has promised, like auto vectorization, are less important. JS for frontend...Is python ever used in frontend? Only Go is worthy mention here. Yes, Go has some goodies in terms of performance, so it will eat up some Python's share in server-side programming, which I won't deny. TL;DR: Python is on rise as the dominant language for data science, which I didn't think any other language can challenge it in short time. It will still be used/favored in light to middle complexity web services depends on tastes.
- USNetizen 11y agoQuite contrarily, I've seen an increasing amount of Python usage in enterprise software, especially analytics applications. More and more job postings are starting to mention Python, and the web frameworks associated with it (Django, Flask, etc.) are more popular than ever.
- hoodoof 11y agohttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.tiobe.com/index.php/content/paperinfo/tpci/index.... Python is 5th place after the three C's and one J.
- TYPE_FASTER 11y agoPython, as a language and a community, seems to focus more on producing code than marketing. This is an observation, not a judgment on Python or other languages. Look more at what you want to implement, then see if Python makes sense as a language.
- ausjke 11y agoPython is the new BASIC these days.
- zmmmmm 11y agoMy suggestion is not to ask not whether your favorite language is dying. Ask why you are so worried about that. If you plan a career of any length of time technology you will have to up sticks and move to new language countless times. In fact, in some ways doing that is one of your core skills. Embrace it and enjoy it. Perfect your ability to digest and consume a new language complete with its idiomatic quirks and warts and its various ecosystem of tools and frameworks. In terms of a choice of a language for an actual project, Python is so established that there is basically zero risk in starting a project in Python now. There is exactly zero chance that it's going to be abandoned and you will be left without a viable community of support any time in the next decade. So if Python solves your problem today just use it.
- hartator 11y agoDespite some rifts in the community around 2 vs 3 versions, Python is still widely used, no worries. My take is Python 3 has done more damage to community than we accept to recognise. Python 3 has taken a strong academic approach to make the language better while being valid made it feels like a regression compared to Python 2. The 'print "abc"' not working anymore without brackets is a good example of it.
- someguydave 11y agoAgreed. If anything, Python 3 is dying - Python 2 is going strong. If the above is true, the Python language has outlasted the Python developers - like C.
- lacker 11y agoNo. Python is the third most popular language on Github, for example. Ahead of either Go or Julia. http://githut.info/ http://githut.info/ The Python 2 vs Python 3 debacle has stalled the adoption of new features into Python for quite a while now. Nevertheless, Python has a very nice design at its core. Maybe it doesn't need that many new features.
- hellbann0r 11y agohttps://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines https://en.wikipedia.org/wiki/Betteridge%27s_law_of_headline...
- gaur 11y ago"What language will replace python?" "No."
- nl 11y agoJulia for Data Science? Ha! I think Julia might maybe have a shot at the space Matlab plays in the moment. But I'd define that more as scientific computing than data science. Does Julia even have a properly supported HBase interface? People are confused about how to connect to SQL Server[1] - until some pretty basic things like that are sorted out I don't think anyone will take it seriously for data science. Also: http://danluu.com/julialang/ http://danluu.com/julialang/ [1] https://groups.google.com/forum/#!topic/julia-users/BOeyuSlzCXE https://groups.google.com/forum/#!topic/julia-users/BOeyuSlz...
- Blahah 11y agoJulia is not even at 1.0 yet, and will be full of holes until at least then. It's still a wonderful language for technical/scientific computing, but you don't want it to be your only language if you have to make diverse real things.
- nl 11y agoCouldn't have said it better myself. That's almost the complete opposite of Python, which has the ugliness of real world use (eg, 2.7 vs 3), but also has those thousands or real world hardened packages.
- nl 11y agoWow, this got more downvoted than I've had in a long time! I'm pretty sure that this is an uncontroversial view so I'm a little surprised, especially since I work in this field. Enlighten me, Julia fans?
- shele 11y agohttp://danluu.com/julialang/ http://danluu.com/julialang/ is telling but certainly gives little insight whether a statement "Julia for Data Science? Ha!" is justified or wise.
- ddw 11y agoDjango, Flask, PySpark, tons of solid GIS stuff, IPython Notebook, Ansible, etc. etc. So no.
- brianchu 11y agoI do a little work in machine learning (as an undergrad). Deep learning specifically is dominated by Python and C++ (Python for the interface, C++/CUDA for the implementation). Theano's interface is in Python. Caffe has C++, Python, and Matlab interfaces (Python and C++ being the most popular in my experience). Tensorflow has C++ and Python interfaces. ipython notebooks started with Python. The odd one out is Torch; its interface is in Lua. Machine learning also, at least from my academic view, seems to be dominated by C++/Matlab/Java/Python (and things seem to be moving to Python). But more broadly, you'll have to learn dozens of languages as a programmer anyways. I wouldn't get too caught up in Python vs. other things.
- yahyaheee 11y agoThe practicality of Python will keep it around for the foreseeable future
- emmelaich 11y agoIt's merely plateau'd. That's not something that brings news. If you graph the popularity I would say the derivative gives you newsworthiness (golang, julia) but the integral gives you the popularity.
- tanlermin 11y agomy point exactly.
- Jsonzhang 11y agoAs a JS developer I think python is strong than ever before , it can use not only in web but also in data analysis. The coming Big Data trend can lead extensive use of python. The LIGO Scientific Collaboration announced that they use python when in their first direct detection of gravitational waves. https://www.reddit.com/r/IAmA/comments/45g8qu/we_are_the_ligo_scientific_collaboration_and_we/czxnlux https://www.reddit.com/r/IAmA/comments/45g8qu/we_are_the_lig... And they are also make some lib of python they used open source in github. https://github.com/ligo-cbc https://github.com/ligo-cbc It is excited , isn't it ? Thanks to these news , I have decided to continue learning python since I break it off two years ago.
- mountaineer 11y agoPython has been the #1 language/technology in Hacker News whoishiring threads 11 of the past 12 months[1]. Seems to be a fine time to invest. (Disclaimer: I publish these trends) [1] http://www.ryan-williams.net/hacker-news-hiring-trends/2016/february.html http://www.ryan-williams.net/hacker-news-hiring-trends/2016/...
- mastazi 11y agoI think that says it all. Your HN Hiring Trends site is awesome!
- thearn4 11y ago> Julia for data science I work in scientific computing, and while me and my colleagues have all experimented with Julia at some level (and definitely welcome having more options), I don't yet know of anyone who has built any part of their permanent toolchain with it yet. Are there any notable use cases out in the wild yet (known internal use by an organization, or major FOSS tool or framework)?
- ihnorton 11y agoI won't comment on organizations using Julia, but some conclusions can be drawn from the presenters and sponsors at JuliaCon 2015: http://juliacon.org/2015/ http://juliacon.org/2015/ Here is a brief list of some major packages that I am aware of: - https://github.com/JuliaOpt/JuMP.jl https://github.com/JuliaOpt/JuMP.jl - https://github.com/JuliaOpt/Convex.jl https://github.com/JuliaOpt/Convex.jl (Stephen Boyd's current and former students) - https://github.com/ApproxFun/ApproxFun.jl https://github.com/ApproxFun/ApproxFun.jl (Nick Trefethen's former students) - https://github.com/dmlc/MXNet.jl https://github.com/dmlc/MXNet.jl - http://nemocas.org http://nemocas.org Julia has been used (and cited) in at least one Nature publication: http://www.nature.com/nature/journal/v526/n7575/full/nature15707.html?WT.ec_id=NATURE-20151029&spMailingID=49884916&spUserID=MjA1NzcwMjE4MQS2&spJobID=783976831&spReportId=NzgzOTc2ODMxS0 http://www.nature.com/nature/journal/v526/n7575/full/nature1... A larger list (with associated publications): http://julialang.org/publications/ http://julialang.org/publications/ Julia is also being used for courses at a number of universities: http://julialang.org/teaching/ http://julialang.org/teaching/
- luckydude 11y agoI'm a guy who has funded a bunch of tcl development. You think python is dead? Wow. Python seems pretty alive to me.
- aabajian 11y agoI was taught Java in college and use it at work, but over the years I've done a little BASIC, Perl, Haskell, Lisp, C and C++. All of these languages were interesting and fulfilled specific use cases, but I couldn't see anything distinctive about them. Moreover, there weren't any ah-ha moments...until I learned Python. Python is a beautiful language, and what I like to call programming at its purist. It removes the distraction of syntax from the task of problem solving. It's simple enough that a 7 year old can grasp it, and yet powerful enough that Google used it for its TensorFlow's API. Python syntax is so close to pseudocode, that I'll often code a solution in Python, see that it works, and then recode it in Java. It's difficult to describe if you haven't spent 7+ years using Java, but it's way more satisfying debugging Python code than rewriting solutions in Java.
- CuriouslyC 11y agoPython isn't going anywhere. No other language has such a rich set of tools for the complete analytic workflow from data acquisition and transformation, through analysis to end product creation (i.e. web/application development). I think in terms of an exploratory/prototyping language it is going to be at the top of the heap for a long time. Julia is an extremely interesting language, in some ways it is more "pythonic" than Python (at least in regards to consistency), while also being surprisingly lisp-like. Unfortunately, the library ecosystem is still extremely immature. Within ten or fifteen years, I expect Julia will take over pretty much all of Python's niches. As for systems/backend code, I'd bet on Scala over go; much more interesting language, and able to leverage the massive java ecosystem.
- tanlermin 11y agoYou think it will take that long?
- jay_kyburz 11y agoThere are a lot of great comments in here already but I'll add my 2c anyhow because it's something I have been thinking a lot about lately. Python is my absolute favorite language without a doubt. But Python is dying for ME I think there is a lot of value in having front and back end code in the same language. Python is significantly slower than JavaScript and I just don't want to have to run 2x the number of servers to handle the same number of requests. I host my games on App Engine. Google has no public plans to move Python app engine to Py3. Python 2 EOL is just 5 years away. I move slow - need to start moving now. -- Also while on the topic, let me just rant about how great the Python Standard Library is and how much I hate NPM and the javaScript ecosystem. I really hate having to evaluate 5 ways of doing every little thing. I wish the node folks would start building a batteries included standard library.
- bendmorris 11y ago>Python is significantly slower than JavaScript I don't think there's anything inherent about either language that makes it faster or slower than the other, and it's not really fair to compare one high-performance implementation (Node) with another specific implementation (CPython) when there are other options. For example, have you compared Node vs. PyPy? In my experience they're very close.
- transfire 11y agoBelieve it or not COBOL is still a thing. So it is doubtful Python will ever die die. At least not for a very long time. But, and I think this answer is probably more to the real spirit of your question, one could reasonably argue that Python has reached it's peak.
- ryan-allen 11y agoI don't think so, it seems to be the go-to language for scientific stats work, maybe for web development it is trending down though? Udacity's stats courses use R and Python, a friend of mine who works in environmental research, it is all they use! Google still use it heavily as far as I know?
- deleted 11y ago[deleted]
- 746F7475 11y agoI'm not quite sure why people are always so concerned about programming languages "dying", like if the language not being popular has anything affect on the applications already using it. If you are starting your own company or a side project choose a language that a) best suites your needs and b) you know. Unless your goal is to learn a new language you probably don't want to write your business logic in a completely new language just because it's popular at the moment. And outside of stuff you actually have a say in (i.e. stuff you do for your employer) it doesn't matter what language(s) you know as long as you know something that's applicable. I learned PHP as my first language (well, I wrote some VB stuff for school before that, but I never wrote it on my spare time), after that I went on to JS just before college and in college I learned C#/Java, but also for my web side projects (which I made some money from) I learned Ruby. Now since graduating I've also dabbled in Python and very lately little in Perl6 (just because the syntax looks so nice), but for my actual job I'm mostly working with Python. It's not my favorite language, but my Ruby and JS (as well as general programming knowledge) carries me through the tasks, it's not like I'm in completely different world where I can't function. My point is as long as you know how to program the language shouldn't matter, obviously jumping from something like Python to C++ is a bigger change than going from Ruby to Python, but it's not imposible and if your employer really just cares about your languages they are either super specialized and doing some weird shit (which might be your thing and then all you can do is to learn that language) or they really don't know what they want/need.
- simonw 11y agoI forget where I saw it, but someone said Python is the second-best language for pretty much everything, which is why it's such a useful language to have in your tool chest.
- EdwardDiego 11y agoMate, you've got to stop taking the social media hype at face value. I remember desperately trying to learn Haskell during my pedagogical years because all of /r/programming was talking about it. Clearly it was the next big thing! In the end I decided that I enjoyed F# more, but since then neither language has been anywhere close to relevant in my career. I write my back-ends in JVM languages, because the JVM is performant for my use cases, and the ecosystem is very rich. I'm currently liking Kotlin as a better Java, and I dabble with Clojure for fun. Oh, and I can't resist having a jab at the ol' Go-has-no-generics thing. Go has no generics, which leads to type-unsafe upcasting to interface{} or copy and paste. Both of which are shite. I write my data science code in Scala (on account of how that's the nicest Spark API, although the Python one looks good). Yep, JS for the front-end when you're doing heavily dynamic sites, but if it's a slightly-less-than static CRUD site? Django is ideal, free CRUD interface, no fucking around with the tool and fad filled hell-hole of modern JS development. (I must admit to some hypocrisy because despite the above statement, I quite like React).
- zmanian 11y agoThe thing you ideally want from a language is the ability to benefit from an ecosystem adding functionality, teaching, open sourcing libraries etc. The Python ecosystem seems healthy to me. Interesting things are happening in the language around incremental typing and async. Python seems like the language of choice for binding C and C++ libraries. Python devs seems widely in demand. There is definitely a pullback in using Python in performance critical conditions where Go seems to be making huge progress.
- BuckRogers 11y ago>There is definitely a pullback in using Python in performance critical conditions where Go seems to be making huge progress. I work a regular gig, but also have a home business built on Django. I would do it as Dropbox does it- run the company on CPython2.7 and then CPU performance critical services on PyPy. GVR noted they have at least 1 thing running on PyPy. I wouldn't personally bring another language into the stack unless it's absolutely unavoidable. When starting from scratch, I'd probably still go with Python. ...Or maybe Ruby. I'm starting to see the Ruby guys as being luckier than they think. You can run an entire Ruby shop and transition new services over to the Rubyesque Elixir. Which has significant benefits over anything the Python ecosystem has. I've never used Ruby but may give it another shot, due to Elixir's existence.
- ninjakeyboard 11y agoPython is used in academia (eg SICP) so it's not going anywhere. Consider it's a google approved language like Java and Go and Javascript. I can't see python going anywhere.
- drvortex 11y agoJulia? Now you're just making me laugh. Julia has a lot of potential but won't even begin to scratch Python for about 5 more years. Scientific programming is very very addicted to its tools. There is a reason even SciPy (for Python) is compiled Fortan (yes Fortan!) code. R is king for data science and the only reason it lost ground to Python is that R is a one trick pony compared to jack of all trades Python.
- firebones 11y agoIt's called the Lindy Effect: https://en.wikipedia.org/wiki/Lindy_effect https://en.wikipedia.org/wiki/Lindy_effect Python (and Fortran), having survived this long, seem destined to live a lot longer than the challengers.
- deleted 11y ago[deleted]
- crimsonalucard 11y agoDon't trust any of the statements here. People are just responding with qualitative predictions and observations of the tiny little programming microcosms they dwell in. No one here can produce an accurate prediction of the stock market anymore than they can predict the future of python. The thing with stocks though is at the very least they can look at a pricing trend line. People responding to you here aren't even looking at any quantitative data. See the data here: https://en.wikipedia.org/wiki/Measuring_programming_language_popularity#/media/File:Tiobe_index.png https://en.wikipedia.org/wiki/Measuring_programming_language... Is python dying? The data says "Maybe?"
- windlep 11y agoYes, Python is dying, that's why it just moved up in the Tiobe rankings to #5, displacing PHP (which obviously no one ever uses): http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.tiobe.com/index.php/content/paperinfo/tpci/index.... It's dominance of science is why Python has 25% science talks this year at PyCon, and why we see articles like: http://www.infoworld.com/article/3012442/application-development/python-scales-new-heights-in-language-popularity.html http://www.infoworld.com/article/3012442/application-develop... But yes, if you didn't know any languages, then of course you should invest in an immature language with no mature libraries for the tasks you need to complete, because you were given a few months of extra runway time by your boss to fill-in the library ecosystem instead of getting your job done. We'll ignore that PyPy places you damn close to Go in terms of performance (except with mature proven libs), and that usually your task won't be CPU-bound anyways (the GIL release on I/O tasks).... Why do troll questions like this even hit the front page of HN?
- bpatrianakos 11y agoI don't see a need for the snark. I don't see this as a troll question at all. Python is obviously thriving for scientific programming but it's not hard to tell that the question being asked is about whether Python is losing popularity as a general purpose web programming language. If someone wanted to get into building web apps would Python be a good choice? The answer is likely to be colored by your experience. I'd say yes, it is losing ground to other languages in the context of programming for the web. The people who use it know why they're using it. Othetwise you don't see many coding boot camps teaching Python. It's all about Ruby and Node. But is Python dying? Not by a long shot. It's just getting less attention right now because of some of the other new toys that are making a lot of noise right now.
- windlep 11y agoAmongst what bubble of people you're entangled with? I consider this a troll question because frequently I see HN questions like this completely disconnected from programming communities at large (which do not participate in HN), extrapolated to the wider web of all programmers. By this factor alone I'd expect Java to be completely obsolete by now.... but obviously no one is oblivious enough to reality to suggest that. As for that question, if you want to build webapps right now, then yes, Python, as well as Ruby, and PHP, would be absolutely fantastic choices. The library ecosystems for all three of these are incredibly rich, mature, and well supported. Choose the language of these 3 that appeals to you the most, you will not be disappointed. I'm not going to tell you which one to choose, I think you'll be happy with whichever of these 3 languages appeals to you the most. If you don't mind filling in the occasional gap, and like the bleeding edge of newness, try Rust, or Go. I've done both, they're fun languages with interesting paradigms (built-in lightweight threads vs. memory-safety at all costs FIGHT!). Getting less attention? According to what? Did you see the the link about dominating science? Attention according to what group of people?
- davidw 11y agoNo, it's just pining for the fjords. People still use Perl and Tcl and Cobol. You'll be fine with Python if it's a good fit for what you're doing. It's a solid language with a solid community.
- datashaman 11y agoOver the last year (for the first time) Python surpassed PHP in popularity and seems to be gaining on C#. Python has never been more alive, IMO. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.tiobe.com/index.php/content/paperinfo/tpci/index....
- coldtea 11y agoFor the frontend, and asynchronous server backend (Node), JS won hands round. I don't see Python getting there. More systems and backend use Python (including at Google) than Go. An insignificant amount of people use (or will use in the next 5 years) Julia for data science. Python (and R, Matlab) rule there almost completely.
- basketcasing 11y agoPython is the least-worst general purpose imperative not-performance-critical OO scripting language. It has lots of problems (weird scoping, community issues, roundabout docs, `''.join()`, crippled lambda, no variable declarations, some lousy naming, module distribution issues, yet more ways to do string formatting, whitespace-sensitive syntax instead of curlies+semis), but the alternatives have worse problems, so Python is at the top of the heap for its type of language. I think Python could easily be replaced --- for greenfield projects --- by something better, but there's nothing better right now, and more and more people will keep using Python for that very reason.
- aldanor 11y agoWhat's wrong with `''.join()`? It's fine as is, I think, same logic as '{}'.format().
- basketcasing 11y agoRe. join, I think Perl got that one right: `join(glue, pieces)`. `','.join(pieces)` just seems unnecessarily weird, and present simply for OO's sake. Not everything needs to be some object's method.
- aldanor 11y agoYes but then you can map things more easily without having to create partials, and it's consistent with how all other methods work in Python (e.g. format method) >>> phrases = [['a', 'b', 'c'], ['d', 'e']] >>> print(list(map('-'.join, phrases))) ['a-b-c', 'd-e']
- monster2control 11y agoI've only been using Python for 2 months now. I'm coming from a Ruby, Java, Node background. The things I don't understand about Python and what I miss the most from those other languages is a solid tool chain. From package management down to the test runners. I miss Ruby gems, Bundler, Rack, and Gaurd tools. I miss Maven and the plethora of plugins. I miss NPM. Pip is just OK. It feels like it's missing something. Could be a simple lack of experience still. I haven't found anything like Gaurd yet and yet to find a replacement for rack and NPM 's simple package.json. There is setup.py but it feels harder and wrapped in mystery still and doesn't work universally the same for Python 2 and 3 which I have been causing some road blocks and extra cycles being wasted. Most of all I hate the backward compatibility issues of Python 2 to 3. I rarely have issues running older Ruby or Java code in newer versions of the language. It seems ridiculous that it's been a little over 7 years and people are still fighting with issues between Python 2 and 3 and you still need to pick a version to use. Sure you can code around it, but why the interpreter doesn't handle backward compatibility with deprecation statements is just amazing to me. This isn't a new thing. Languages like Java and Ruby do it as do plenty of others I'm sure if you wanted to make a syntax change you can handle the code in the interpreter and issue warnings to uograde them without breaking all old code bases. But any ways, I digress, I don't think Python is going anywhere. Too many people and companies use it. It's got a lot of good libraries and and if you just start with Python 3 it's language is just like any other programming language. It's got some things you have to get used to that are unique to it but in the end, you can make it do what you need. I personally think Ruby allows for nicer looking code and readability, and NodeJS has a far better Eco system. Hell, Languages like Elixir feel like a nice mixture of both with the huge added benefits of being highly parallel at the VM layer. PyPy seems like a better place to invest resources since the JIT can really speed things up. That's my 2 cents.
- csense 11y ago> Ruby allows for nicer looking code and readability Have you ever actually used Ruby? Here's what FizzBuzz looks like in Python: def fizz_buzz(number): if number%3 == 0: return "fizz" if number%5 == 0: return "buzz" return str(number) for num in range(1,101): print(fizz_buzz(num)) Compare that to the hideous mess of fizz buzz in Ruby [1] -- there's a lot of magic going on there. Many unfamiliar operators, line #2 is a magic string interpolation thing with tons of weird escaping going on (the #{} seems to be some kind of template which makes stuff inside the "" string actually be interpreted as code which itself contains '' strings, and I don't want to think about the potential injection vectors that could be introduced by this), the ternary operator, absolute value bars, an anonymous function, and defining a function by binding an anonymous function created with -> function call syntax to a name. People on HN keep saying Ruby is intuitive and easy to learn -- no it isn't. The Python code by contrast is basically the same as the pseudo code you would write on a napkin in "not-any-particular-language-I-just-want-to-describe-an-algorithm-without-language-specific-issues-to-get-in-my-way". [1] http://hostiledeveloper.com/2014/04/26/on-why-learning-to-program-is-hard.html http://hostiledeveloper.com/2014/04/26/on-why-learning-to-pr...
- teekert 11y agoI just got into Python, as a biologist. I'm happy I did it because now the entire large healthcare company I work for (or at least the research department) is switching from Matlab to Python. I have never heard the name Julia before here. Could be because I'm a biologist.
- mheiler 11y agoI'd say it does well compared to other languages: https://www.google.com/trends/explore#q=python%20tutorial%2C%20go%20tutorial%2C%20javascript%20tutorial%2C%20julia%20tutorial https://www.google.com/trends/explore#q=python%20tutorial%2C...
- flohofwoe 11y agoI've switched to Python a little while ago for the following use-cases, and couldn't be happier: - Non-performance-critical command line tools for game-data export-pipelines that I previously wrote in C/C++: Python code is usually more compact, and everything I ever needed is in the standard library. If performance is critical I still prefer python to call out to minimal C or C++ tools which do the heavy-lifting. - Replace native shell-scripts and Windows batch files with portable python scripts that run on Windows, Linux and OSX. - Stitching together 3D content-creation-tools and command line tools, most DCC tools of have become python-scriptable in recent years. - Code generation for C/C++ and shader code. These are all very pragmatic and simple things, I don't care whether my python scripts are 'pythonic' or elegant, and I don't care about the 2 vs 3 debate. Python gets the job done, works everywhere, and I enjoy writing it because of its friendly syntax and powerful standard library.
- SixSigma 11y agoNetcraft confirms it
- devlim 11y agoFor the past few years, many say java is dead, ruby is dead, nobody want C and etc, still today, individuals and business still continue using those language and invest new framework/plugin/tools for those language. So i pretty sure python is not dead. 'Dead' is for framework when community move from one framework to another.
- BuckRogers 11y agoPython2 is not dying, its momentum is the main reason for Python's continued meteoric rise. Python3 is languishing though. At roughly 10% of Python right now but might(?) pick up that slack once Python2 starts to die. I've always used Python, but I'm starting to wonder if I didn't back the wrong horse. I've been dabbling with Erlang as my side-language for a years, and Elixir is extremely intriguing to me. I'm considering using Ruby for a new project simply because the syntax is closer to Elixir. A Ruby+Elixir shop makes a ton of sense. I think the better question would be "is Python losing focus?". The answer to that would be yes. Which includes not only the ~8 year Python3 debacle that's ~10% complete from a usage standpoint, but also the Python3 feature soup. They've just added a 4th string formatting method in Python 3.6.[0] I don't even have words for Python3's feature soup, it's absurd in its own right. [0]http://learning-python.com/books/python-changes-2014-plus.html#section4 http://learning-python.com/books/python-changes-2014-plus.ht...
- la6470 11y agoThe real improvement in development will be when code generation is automated to the point that writing an application is as easy as writing an word document. Remember when editing a document in a computer with editors like wordstar used to be sort of programming but now editing a rich document in computer is a no brainer. We need that kind of revolution in programming. Programming still requires high skillset but there is huge oppurtunity for disruption we can develop something that is is as easy for end users to "write" up an web or distributed or any kind of application as editing a word document. It's time to automate coding!!
- zoffix222 11y agoYes. Join the club. Sincerely, Perl Programmers :)
- readme 11y agoNo, python's strong. It's just not a fad anymore? Is PHP still cool? Not really. Yes, there was a day when it was. But guess what: from http://php.net/usage.php http://php.net/usage.php PHP: 244M sites, 2.1M IP addresses -- sites powered by PHP. Python's not going anywhere. It might go out of style, but it's not going out of use. ... they are still trying to replace retiring cobol programmers.
- Dowwie 11y agoI love Python and the community behind it.
- cblock811 11y agoIf people still use PHP I'm sure Python will be fine.
- mydpy 11y agoIf anything, it is growing. Large companies are now adopting Python.
- pkenjora 11y agoPython has always been under attack because people using it are busy making things instead of wasting time with language debates. Just because Python doesn't have zealots doesn't men its dying.