TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Python Is Eating the World

879 pointsby giladalmost 6 years ago

73 comments

blaisioalmost 6 years ago
Python has a lot of problems that really slow down development, but they are all fixable.<p>The biggest issue, in my opinion, is in dependency management. Python has a horrible dependency management system, from top-to-bottom.<p>Why do I need to make a &quot;virtual environment&quot; to have separate dependencies, and then source it my shell?<p>Why do I need to manually add version numbers to a file?<p>Why isn&#x27;t there any builtin way to automatically define a lock file (currently, most Python projects just don&#x27;t even specify indirect dependency versions, many Python developers probably don&#x27;t even realize this is an issue!!!!!)?<p>Why can&#x27;t I parallelize dependency installation?<p>Why isn&#x27;t there a builtin way to create a redistributable executable with all my dependencies?<p>Why do I need to have fresh copies of my dependencies, even if they are the same versions, in each virtual environment?<p>There is so much chaos, I&#x27;ve seen very few projects that actually have reproducible builds. Most people just cross their fingers and hope dependencies don&#x27;t change, and they just &quot;deal with&quot; the horrible kludge that is a virtual environment.<p>We <i>need</i> official support for a modern package management system, from the Python org itself. Third party solutions don&#x27;t cut it, because they just end up being incompatible with each other.<p>Example: if the Python interpreter knew just a little bit about dependencies, it could pull in the correct version from a global cache - no need to reinstall the same module over and over again, just use the shared copy. Imagine how many CPU cycles would be saved. No more need for special wrapper tools like &quot;tox&quot;.
评论 #20674186 未加载
评论 #20672329 未加载
评论 #20672392 未加载
评论 #20672238 未加载
评论 #20674082 未加载
评论 #20672363 未加载
评论 #20672235 未加载
评论 #20672405 未加载
评论 #20672314 未加载
评论 #20672449 未加载
评论 #20674125 未加载
评论 #20674347 未加载
评论 #20672813 未加载
评论 #20672315 未加载
评论 #20681002 未加载
评论 #20675085 未加载
评论 #20674795 未加载
评论 #20675523 未加载
评论 #20697112 未加载
评论 #20674147 未加载
评论 #20677162 未加载
评论 #20672408 未加载
评论 #20691838 未加载
评论 #20672283 未加载
评论 #20673922 未加载
评论 #20675387 未加载
评论 #20672308 未加载
brainlessalmost 6 years ago
Remember NOT to jump into Python for your new product if don&#x27;t know Python. If you are developing for a young startup, have time crunch, then stick to what you know.<p>IF you do not have a language, or know Python a bit, then pick Python. Here are some of the reasons why I stick to Python (young startup&#x2F;web APIs):<p><pre><code> - OOPs is not too strict (might give a headache to some folks) - Mixins, lambda, decorators, comprehensions - Pythonic ways make me feel productive easily - Create a data Model, drop into a shell, import and try things - Can do that on a live server - Do the same with Controllers, or anything else actually - really nothing fancy needed - Command line processing, SSH, OS integration, etc. has so many great libs - Python Dict someone looks like JSON (this is purely accidental but useful) - Debugger support even in free IDE like PyCharm Community Ed is great - Integration to a world of services is so easy, even ones you do not commonly see - Documentation - many libs have consistent structure and that helps a LOT - Really large community, perhaps only smaller than Java - The even larger group of people using Python in all sorts of domains from Biotech to OS scripts </code></pre> What I would like improved in the language would be an even longer list. Every language has a list like that, but when you are focused on being scrappy and building a product, yet making sure that software quality does not take a big hit, Python helps a lot.
评论 #20683447 未加载
评论 #20673359 未加载
评论 #20673711 未加载
评论 #20686375 未加载
KirinDavealmost 6 years ago
Reading this got me thinking and I wonder if other people feel like me about this, so I&#x27;m going to share it. This is not serious, but not entirely unserious...<p>I try to be a good sport about it, but every time I write python I want to quit software engineering. It makes me angry how little it values my time. It does little for my soured disposition that folks then vehemently lecture me about the hours saved by future barely-trained developers who will ostensibly have to come and work with my code. Every moment working with python (and that infernal pep-8 linter insisting 80 characters is a sensible standard in 2019) increases my burnout by 100x.<p>I try to remind myself that we&#x27;re trying to make the industry less exclusive and more welcoming to new developers and &quot;old&quot; isn&#x27;t necessarily &quot;good&quot; (in fact, probably the opposite), but damn I just don&#x27;t understand it.<p>It used to be that I could focus on other languages (Erlang, Nemerle, F#, Haskell, Ocaml, even C++) and sort of balm myself. But now, I can&#x27;t even overcome the sinking feeling as I read the Julia statistics book that I&#x27;m going to be dragged back to Python kicking and screaming in the morning, so why even bother?<p>And frustratingly: it&#x27;s one of the few languages with decent linear algebra libraries. And that means it&#x27;s one of the few languages with good ML and statistics support. So it&#x27;s very hard not to use it because when you want to cobble together something like a Bayesian model things like PyMC or Edward actually give you performance that&#x27;s obnoxiously difficult to reproduce.<p>This is what the industry wants and evidently a lot of people are okay with it, but to me it&#x27;s misery and I can&#x27;t work out why people seem to like it so much.
评论 #20672722 未加载
评论 #20672468 未加载
评论 #20673399 未加载
评论 #20672876 未加载
评论 #20672499 未加载
评论 #20673282 未加载
评论 #20672746 未加载
评论 #20672830 未加载
评论 #20673497 未加载
评论 #20672475 未加载
评论 #20673478 未加载
评论 #20672716 未加载
评论 #20672461 未加载
评论 #20672495 未加载
评论 #20672733 未加载
评论 #20673104 未加载
评论 #20672534 未加载
评论 #20672443 未加载
评论 #20673369 未加载
评论 #20672845 未加载
评论 #20673209 未加载
评论 #20672837 未加载
评论 #20673211 未加载
评论 #20673738 未加载
评论 #20672467 未加载
评论 #20674930 未加载
评论 #20673216 未加载
评论 #20676867 未加载
评论 #20673535 未加载
评论 #20673458 未加载
评论 #20672478 未加载
评论 #20672912 未加载
评论 #20672795 未加载
评论 #20673125 未加载
评论 #20673363 未加载
评论 #20672553 未加载
评论 #20673734 未加载
评论 #20673688 未加载
评论 #20672952 未加载
umvialmost 6 years ago
If only its package management were as easy as its syntax...<p>I wish pip worked the same way as npm: -g flag installs it globally, otherwise it creates a local &quot;python_modules&quot; folder I can delete at any time. And optionally I can save the dependency versioning info to some package.json...<p>Instead, pip is a nightmarish experience where it fails half the time and I have no idea where anything is being installed to and I&#x27;m not sure if I&#x27;m supposed to use sudo or not and I&#x27;m not sure if I&#x27;m supposed to use pip or pip3, etc.
评论 #20672134 未加载
评论 #20672128 未加载
评论 #20672203 未加载
评论 #20672197 未加载
评论 #20672334 未加载
评论 #20672874 未加载
评论 #20672140 未加载
评论 #20672118 未加载
评论 #20672110 未加载
评论 #20672138 未加载
评论 #20672113 未加载
评论 #20672136 未加载
评论 #20672115 未加载
评论 #20672117 未加载
Ensorceledalmost 6 years ago
Holy Crap! What a lot of irrational, hyperbolic hate for Python.<p>I think everybody should spend their first couple of years working in Fortran IV on IBM TSO&#x2F;ISPF. No dependency management because you had to write everything yourself. Or maybe [edit: early 90&#x27;s] C or C++ development where dependency management meant getting packages off a Usenet archive, uudecoding and compiling them yourself after tweaking the configure script.<p>I&#x27;m not saying Python is perfect, but if it&#x27;s causing your burnout&#x2F;destroying your love of programming&#x2F;ruining software development you seriously need some perspective.
评论 #20676024 未加载
评论 #20674216 未加载
评论 #20674935 未加载
评论 #20674701 未加载
评论 #20674480 未加载
评论 #20675478 未加载
评论 #20675414 未加载
评论 #20674394 未加载
评论 #20675183 未加载
评论 #20675482 未加载
评论 #20674731 未加载
评论 #20675191 未加载
评论 #20676453 未加载
评论 #20674513 未加载
评论 #20674288 未加载
评论 #20675619 未加载
评论 #20675331 未加载
评论 #20676029 未加载
评论 #20675066 未加载
评论 #20675197 未加载
评论 #20674622 未加载
评论 #20675220 未加载
评论 #20677272 未加载
评论 #20674832 未加载
评论 #20674434 未加载
评论 #20676611 未加载
评论 #20674418 未加载
评论 #20674090 未加载
评论 #20674160 未加载
randomsearchalmost 6 years ago
According to people who work with a lot of programmes teaching coding, the reason python is so appealing to new coders is the syntax. Particularly the lack of braces, the indents, the nice keywords, that make reading code much easier to a newcomer.<p>Having taught both python and JavaScript, I can tell you that the former is far far less confusing to newcomers than the latter. Imagine explaining the problem with equality comparison or prototypes in JS to someone who just learnt what an IF statement is.<p>The reason I agree that python will dominate programming for decades to come is the batteries included and pythonic approach that enables people to do cool things with just a few lines of code. As a result of the above, the ecosystem has reached critical mass. For most tasks there’s a library that does that, and it’s good, and it’s easy to use, and the developer of the library usually doesn’t expect you to understand their opinionated philosophy to use it.<p>I <i>love</i> the python convention of putting a minimal example on the homepage of a library.<p>You’re not going to get your average developer to appreciate the beauty of Lisp or the value of static typing. They want their ML to work, or their graphics to display, that’s all. Ends not means, almost entirely, for most people who aren’t full-time programmers.<p>Let’s not hate on a language that opens up programming to the world, unless we want to be gatekeepers. If you want to maintain an air of superiority, just learn Lisp or Haskell or C++ and write code that’s “deeper” into the tech labyrinth. Programming will probably specialise into “end user programming” and “Service and system programmers”. Embrace the democratisation of coding.
评论 #20673223 未加载
评论 #20673262 未加载
xxxpupugoalmost 6 years ago
The part that Python really bothers me, as someone who had write Python for almost 10 years, and right now doing it professionally, though personally I don&#x27;t consider myself a Python developer rather than a Python senior user, is actually obvious to nail down, and frustratingly, difficult to handle.<p>SLOW. The sin of all. I don&#x27;t want to make other arguments with people who just come to repeat &#x27;Oh you can make it fast, you are doing it the wrong way&#x27;. Sorry, I have heard that 100 times, now is sounds like bug-as-feature excuse to me.<p>Sorry, but Python is just slow. All the stuff people might bring up is just trying everything to bypass Python itself. Multiprocessing is hell to work with, buggy and unpredictable. Cython is OK but it is not Python.<p>Python&#x27;s slowness is like cancer, and terminally so. Down deep, it is because its overtly flexible&#x2F;loose type system, the never-going-away GIL, and prematurely exposing of C-API makes it almost impossible to optimize without breaking the existing compatibility.<p>And most importantly, I don&#x27;t think it is solvable, truth is the patches are so integrated, people already forget what problem they tried to fix in the first place and just live with it.<p>But it will haunt Python in long term though, people will be struggling with Python in performant production until they start reimagining a world that without Python. Maybe a better Python in that sense.
评论 #20673467 未加载
ssivarkalmost 6 years ago
Python&#x27;s success is richly deserved. The fact that it has been a long time coming (Python is almost 30 years old!) is an indication of the amount of sheer effort involved, and should give heart for all those working on building up the next generation of languages.<p>Since this forum is likely to have some folks looking towards the future, I found interesting a couple of talks by Python veteran Armin Ronacher [1, 2]. Watching that presentation makes me wonder whether I should think of this in the context of &quot;Worse is better&quot;. That said, Python&#x27;s runtime introspection is such a killer feature that it&#x27;s difficult to explain how empowering it feels for someone who is relatively new to programming.<p>[1]: How Python was Shaped by leaky Internals -- <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=qCGofLIzX6g" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=qCGofLIzX6g</a><p>[2]: A Python for Future Generations -- <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=IeSu_odkI5I" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=IeSu_odkI5I</a>
DonHopkinsalmost 6 years ago
It&#x27;s so refreshing to not see anyone here whining about Python forcing them to indent their code properly. The kind of people who think that&#x27;s a PROBLEM instead of a FEATURE really should not be ever writing any new code, and instead should be punished by forcing them to maintain other people&#x27;s code written with that same lazy misguided attitude, until they recognize how self indulgent, inconsiderate, and disrespectful that is not just to other people who have to read their code, but also to themselves.<p>The same kind of people criticize Lisp for having too many parenthesis, then go on to write unintelligible shell scripts, Perl and C++ code chock full of skewbald menageries of sigils and punctuation bound together with a towering inferno of precedence rules, terribly worse than Lisp&#x27;s &quot;too many parenthesis&quot;.
评论 #20672753 未加载
评论 #20677743 未加载
评论 #20673088 未加载
评论 #20674254 未加载
评论 #20673311 未加载
评论 #20672730 未加载
mantapalmost 6 years ago
In general JavaScript is eating the world.<p>Python still dominates in numerical computing and JavaScript hasn&#x27;t been able to make a single dent. Because nobody wants to write<p><pre><code> a.mul(k).add(b) </code></pre> rather than<p><pre><code> k * a + b </code></pre> or<p><pre><code> a.set([i,j], b) </code></pre> rather than<p><pre><code> a[i,j] = b </code></pre> JavaScript&#x27;s lack of operator overloading is keeping Python alive.<p>Python also has integers that feel part of the language, rather than being segregated from normal numbers in case anybody uses integers by accident.
评论 #20672563 未加载
评论 #20673354 未加载
评论 #20673133 未加载
评论 #20672568 未加载
评论 #20673724 未加载
评论 #20673483 未加载
Agentlienalmost 6 years ago
What stood out to me, reading the comments, is how among the first few comments I read there were 4 comments from people with decades of experience writing python professionally. Each stating their dislike for the language and citing entirely different parts of the language as its biggest problem.<p>Personally, I&#x27;m primarily a C++ programmer with about a decade of professional experience in C++. I also used to do daily work in C# for a few years. For me, python is a language which I use for making simple command line tools, for processing input and clobbering together different tools. I use it to build interfaces which streamline certain workflows. Essentially, I use it as a more powerful replacement for bash or batch. For that purpose, I find that the language works wonders and is quick and easy to work with.
评论 #20674348 未加载
RcouF1uZ4gsCalmost 6 years ago
Python is not eating the world so much as becoming the new Excel. It has a pretty easy learning curve for people who are not programmers. It has pretty good built in tooling. A domain expert, who is not a programmer, can put together pretty impressive models and visualizations relatively quickly.<p>However, like with Excel, there are serious issues regarding reproducibility, performance, and long term maintenance.
评论 #20672608 未加载
评论 #20675479 未加载
lucb1ealmost 6 years ago
For what it&#x27;s worth, I have none of the issues the currently top voted comments describe. Dependency hell (apt does that for me), closer to burnout any time I work with it, would rather work with C++ (a language with a completely different purpose)? If the author of the article had written this, people would fall over themselves to say how wrong they are. Nearly everyone who tried Python loves it. From this thread you&#x27;d think we&#x27;re talking about Visual Basic for Applications.<p>There is a reason Python is one of the most popular languages. PHP was popular because it&#x27;s quick and dirty, but Python is popular because people love working with it. The arguments in this thread are beyond me. (They&#x27;re also unsubstantiated, but if I ask for substantiation I&#x27;m sure someone can rationalize some reasons to dislike any language, so that&#x27;s pointless.)
mixmastamykalmost 6 years ago
One thing very interesting about Python is how gradual the ride up has been. Perl dominated then sputtered. Java shot up and hit the ceiling. C# is mostly limited to Windows, JavaScript mostly to the web. Ruby stole the spotlight for a few years and then faltered mysteriously. Others found their niche. But Python just keeps chugging along slowly gaining ground almost everywhere like a tortoise to multiple hyped-up hares.
sunaurusalmost 6 years ago
Am I correct when I assume that most of the people hating on Python here are using it for medium or big projects?<p>I feel like the dev community figured this out ages ago: Statically typed languages are easier to read, harder to write, dynamically typed languages are easier to write, harder to read (and also harder to refactor).<p>For small projects (scripts, prototypes, etc), you don&#x27;t care about readability, you just want it to be as easy to write as possible. Python really shines here.<p>For bigger projects, using Python is painful, but that&#x27;s also the case with pretty much any other dynamic language..
评论 #20678240 未加载
pbreitalmost 6 years ago
Considering Python can power the largest web sites (Netflix, Instagram), I don’t understand why there’s so much use of much more complicated platform&#x2F;languages (eg java, .net)?<p>Note: I am an amateur which is likely the reason for my ignorance.
评论 #20672200 未加载
评论 #20672631 未加载
评论 #20672387 未加载
评论 #20672185 未加载
评论 #20672145 未加载
评论 #20672178 未加载
评论 #20672435 未加载
评论 #20672980 未加载
评论 #20672216 未加载
评论 #20672254 未加载
emersonrsantosalmost 6 years ago
Definitely EVE Online&#x27;s MMO secret weapon is Python: <a href="https:&#x2F;&#x2F;www.eveonline.com&#x2F;article&#x2F;stackless-python-2.7" rel="nofollow">https:&#x2F;&#x2F;www.eveonline.com&#x2F;article&#x2F;stackless-python-2.7</a> - as well as its numerous ecosystem utilities like Pyfa, Evernus, used by tens of thousands per day.
评论 #20672195 未加载
dehrmannalmost 6 years ago
There ware a time when I wondered if I should learn Ruby or Python. These days, unless I&#x27;m going to be a Rails dev, hands-down Python.
评论 #20672880 未加载
评论 #20672668 未加载
评论 #20672982 未加载
blumomoalmost 6 years ago
Reading all the comments here I have the impression that there are 2 groups of programmers:<p>There&#x27;s one group that uses Python regularly and which is getting their stuff done right now.<p>And there is the other group which has time to complain about Python.
simula67almost 6 years ago
In my opinion, the biggest problem facing Python is still concurrency. The mitigation efforts still look to me like Perl&#x27;s &#x27;bolted on&#x27; implementation of object orientation. Python should have gotten rid of the GIL during the 2 to 3 transition. It may have also been an opportune moment to introduce optional typing and maybe even optional manual memory management, making it useful to develop almost all kinds of software. Write a WASM backend and it could have even been used for front end development.
评论 #20672710 未加载
评论 #20673987 未加载
评论 #20672531 未加载
winter_bluealmost 6 years ago
This makes feel a bit sad&#x2F;somber, because a lot of people are missing out on the exhilarating power of using advanced powerful type systems. I wish the ML community had picked up a few notes from Python, and built an Ocaml-like language with beginner-friendly Pythonic syntax (Reason comes close). I wrote about this here in the past (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=15549101);" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=15549101);</a> quoting myself below:<p><i>I&#x27;m a big fan of strong static type systems. I believe type-safety increases code quality significantly. I used to think several years ago, that the main benefit of strong static typing was code safety &#x2F; eliminating a whole class of bugs. But I&#x27;ve changed my opinion. I now think the biggest benefit is that it makes the code a lot easier for other people to read and understand.<p>I mean I have multiple personal projects where I&#x27;ve used Python (which is a dynamically typed language), but these are small one-off projects. But I think when working in a team, especially a large team, having types becomes a huge thing. Having types for objects is especially useful. Having types forces you to think more clearly about the structure of your data.<p>It&#x27;s really sad when I see `foo(bar)`, and I have no idea what the type of `bar` is, and if it&#x27;s an object, I have no idea what fields `bar` has. I have to simply guess the structure of the various implicit types by looking at the code (sigh). It makes the code difficult to read, and rather unpleasant to work on. Not to mention, all the multitude of bugs that come from duck&#x2F;dynamic typing.<p>I don&#x27;t think good statically typed languages are hard to use at all. Type inference has spread everywhere that the old argument of having to repeat your types doesn&#x27;t hold anymore. TypeScript, Flow (JavaScrpt), Haskell, languages from the ML family are really good at type inference. Even the `auto` type inference in C++17 was better than I&#x27;d expected.</i><p>If dynamic typing continues to grow in popularity, I don&#x27;t want to even begin to fathom the number of large projects that are going to built, which will suffer from a avalanche of TypeError-class bugs that could have easily been avoided with static typing. One encouraging sign I&#x27;ve seen in the Python world is that <i>optional</i> static typing is reluctantly being adopted in many circles. There was mypy for a while, and now, there&#x27;s a new type checker called Pyre (written in Ocaml). I find hope in these little things.
moosethemuchaalmost 6 years ago
I&#x27;ve been told that my choice of python was poor numerous times. &#x27;Do java&#x2F;.net&#x27; etc. is something I&#x27;ve heard all throughout my career. I use python because it doesn&#x27;t work against me - It&#x27;s not the best language but I think its definitely the most versatile. I love python and it will be around for another decade I guarantee it.
systemsalmost 6 years ago
Python and JavaScript<p>Ease of use trumping advanced features every time
评论 #20672318 未加载
评论 #20672208 未加载
评论 #20672333 未加载
评论 #20672802 未加载
crypticaalmost 6 years ago
The number of views of questions on Stack Overflow is a bad metric to measure language popularity. This metric combines popularity and complexity&#x2F;unintuitiveness. If a language is half as popular but twice as complex (or unintuitive) as another language, then it will get the same number of questions and same number of views.<p>If the language is becoming more fragmented; more different kinds of frameworks and tools then it will translate to more questions on stack overflow. Fragmentation of the language is not necessarily a good (or bad) thing but it has nothing to do with the popularity of the language.<p>But definitely the JavaScript ecosystem is pretty homogeneous at the moment (ReactJS or VueJS on the front end and Node.js on the backend).
kamyargalmost 6 years ago
If you hate python, just write whatever your hearts desires. There is no use in saying &quot;oh python does not let me know when a variable I expect to be list is string&quot;, well yes, it is a dynamically typed language, please learn the difference between dynamically and statically typed languages before hating on any language. As a bonus, you can check if a value is list or string and throw your own error, python is versatile, although it probably would be an antipattern and you should go back to writing C. If you love the good old days of Fortran, then I am sure many Financial Institutions and Aerospace industry or old school mathematicians would love to have you.
ragerinoalmost 6 years ago
I would argue that Pythons biggest issue is performance, which translates in large applications directly into costs. You will need more machines to scale and you will need more power per operation compared to other programming languages.<p>see here: <a href="https:&#x2F;&#x2F;benchmarksgame-team.pages.debian.net&#x2F;benchmarksgame&#x2F;fastest&#x2F;python.html" rel="nofollow">https:&#x2F;&#x2F;benchmarksgame-team.pages.debian.net&#x2F;benchmarksgame&#x2F;...</a><p>I think Python makes sense for prototyping and stuff like Jupyter Notebooks. But once mature and going into production I recommend porting stuff to something faster like Java or even Javascript nowadays.
评论 #20673933 未加载
Dowwiealmost 6 years ago
While I use more than just Python in my work, it remains my go-to toolset for a range of tasks. For instance, Python offers the best interactive programming experience of any language today. You can step through code flow and inspect values with great ease. This is particularly valuable during prototyping, as you are getting a handle on interactions between your application and third party dependencies. Further, as designs take shape, you can quickly assemble a proof of concept and learn how to address a problem or design. Python can be used with little or any inheritance. Adopt a compositional style. You can assign types. You don&#x27;t need to use all of its bells and whistles if you don&#x27;t want to. This allows you to use Python in a way that streamlines it for porting to a strongly typed, high performance language such as Rust, should the need or desire to do so ever arise.<p>The Python community is truly global, hosting local events in hundreds of countries. So many talented, helpful people have been dedicated to the language and community over a very long period of time. Look at its ecosystem on GitHub to get an idea of how that manifests. Questions about how to solve a problem are often a single search away from being answered on Stack Overflow, Google groups and countless channels on Freenode IRC. Python conferences are a great place to learn and connect.
cztomsikalmost 6 years ago
I like a lot of things in python, but unfortunately, everytime I happen to use anything which uses python, there&#x27;s a good chance it won&#x27;t work on my environment. And so I&#x27;m very surprised how python can be so successful if it doesn&#x27;t actually work. I literally fix my env for some tool A, only to make it incompatible with tool B. And I can&#x27;t believe I&#x27;m alone.
C1sc0catalmost 6 years ago
The comment &quot;Meanwhile, the Unix shell had different problems -- it offered a suite of utilities for common tasks, but ran so slowly it couldn&#x27;t handle complex logic.&quot;<p>This doesn&#x27;t make sense and also why the F is the &quot; Dutch national research centre for math and computer science. &quot; using c and nor Fortran
newbie578almost 6 years ago
Interesting article, I would love to read one regarding Java and Kotlin, or if even someone here would share some knowledge with me, I would be grateful.<p>Is Java dying, what is its future? Where is Kotlin heading, currently it is the hottest language for Android development, can it also compete with Python in some branches?
评论 #20682082 未加载
jasoneckertalmost 6 years ago
I recently gave a Python book to a co-worker that wanted to experiment with deep learning. <i>Co-worker: Wow - this book is like 900 pages long!</i> <i>Me: Don&#x27;t worry, it&#x27;s mostly whitespace.</i> And that is one of my favorite features of Python - easy to trace and code!
sakesunalmost 6 years ago
&quot;I was very disappointed in how the people who disagreed technically went to social media and started ranting that the decision process was broken, or that I was making a grave mistake. I felt attacked behind my back,&quot;<p>May I ask who did he mentioned about ?
评论 #20672658 未加载
mobilefriendlyalmost 6 years ago
This is wrong in terms of the web space. With the modernization of PHP and the emergence of Laravel, and continued evolution of Drupal and Wordpress, I don&#x27;t think PHP has ever been this dominant in the web stack. Django is an also-ran.
zer0faithalmost 6 years ago
You can&#x27;t deny Python is versatile language with a moderate learning curve and packages that will do almost anything.<p>These things have made me more productive programmer and allowed me to get stuff done in a reasonable amount of time.
zettaquarkalmost 6 years ago
I love Python but.... I would not go to the lengths that this article proposes. The dev world recreates itself every year with dozens of new high level languages and task specific support libraries. Every developer has their favorite language (Everyone is comfortable with their personal preference) That being said, I enjoy Python and it provides a quick, easy script to accomplish task in my space but I would not go as far as the article in saying that it is the end all be all for everyone. Use what you like, and understand that all languages have strength and weaknesses for task.
chrisfinazzoalmost 6 years ago
Is there a reason people don&#x27;t choose Perl much anymore? It&#x27;s a fine scripting language and supports the UNIX C API almost full stock.<p>^ Another Siracusaism, who&#x27;s still - by his own admission - a Perlhead.
评论 #20678285 未加载
ashishbalmost 6 years ago
I find Python to be a great alternative to writing bash scripts. I did that with this semi-popular Android tool (<a href="https:&#x2F;&#x2F;github.com&#x2F;ashishb&#x2F;adb-enhanced" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ashishb&#x2F;adb-enhanced</a>). Python is close enough to be a language but straight-forward enough to be a shell script.<p>For the Python haters here. No, Python is not as good as GoLang or Kotlin for maintenance but IMHO, it is better Javascript&#x2F;Typescript&#x2F;C++ for writing non-performance critical code.
deltron3030almost 6 years ago
What I find baffling is that almost every program I&#x27;m interested in as a creative power user has a Python API for scripting, from type and graphic design to 3D modeling, rendering and music making.<p>I&#x27;m a bit into web design&#x2F;frontend as well, and was thinking about either learning JS and Node more deeply, or add some other &quot;backend language&quot; like PHP or Ruby, and learn their frameworks like Laravel or Rails.<p>Should I pick Python, Django or Flask instead to cross the gap to my creative hobbies?
评论 #20672790 未加载
评论 #20676232 未加载
mlwhizalmost 6 years ago
I have been a Python guy for 10 years now switching from another profession - I was a mechanical engineer. I tried to learn other languages like Java ,C and was partially successful too. But I don&#x27;t remember creating anything useful in those languages.<p>Everything was so verbose that I got drowned in the syntax rather than the logic behind the program. For me, Python signifies ease of development and fast iterations and as such is suited for any young developer.
rafaelvascoalmost 6 years ago
A joy to write and read. But a pain to debug and maintain. Coded a big project in Python once. When the project was still small everything was perfect. When the project grew it became unsustainable. Of course I was an already experienced C# dev, just getting started with Python but the problem is there. A whole lot of errors spilling to runtime is a big pain. But that&#x27;s a problem with every dynamic language at variable levels.
评论 #20678185 未加载
safgasCVSalmost 6 years ago
I cant comment on general software engineering but in the data science domain coming to Python from SAS &#x2F; SPSS feels like being given free superpowers
hajderralmost 6 years ago
I&#x27;ve not written that many heavy applications in Python (Java mostly). I do like the dynamic nature of it. I find myself leaning more towars dynamic these days, appreciating Javascript today as well. I like the v.env side of Python. Many languages have this plumbing to get a project started and Python is the most comfortable of them all. Python is smart. Python is easy to teach also.
vincent-toupsalmost 6 years ago
If you ask me the world only needs two programming languages, Scheme and OCaml and it would be better if OCaml had s-expressions as syntax.
评论 #20677147 未加载
sgt101almost 6 years ago
It&#x27;s easy to get going on it, it&#x27;s productive for writing scripts and experiments. It&#x27;s dreadful for programming in the large, but only in comparison to languages designed to take account of the lessons learned about large code bases and team working. Most programmers have never encountered these and have very little idea of what they are missing.
altmindalmost 6 years ago
Can totally agree that python is eating the world, while in the same time being too opinionated on certain things and lacking in certain points. I would rather see lua more adoption - its the language designed right - minimal and logical, easy to comprehend quickly for anyone who got any exposure to other C-like languages. Easy integrations as a bonus.
lame88almost 6 years ago
Python’s killer feature - and perhaps reason for its popularity- seems to be it’s nice-looking syntax, which is only the most superficial of qualities. Below that surface, the semantics and its standard libraries are all very irregular, and always leave a bad taste in my mouth. I now avoid touching it if i can.
fratlasalmost 6 years ago
<a href="https:&#x2F;&#x2F;outline.com&#x2F;4zf4Dd" rel="nofollow">https:&#x2F;&#x2F;outline.com&#x2F;4zf4Dd</a>
Jerry888almost 6 years ago
I have used all code from c+, java, php, javascript, ruby and more and found python is the easiest and simplest to use (you do not have to setup 5 classes to declare 1 variable) the only thing i hate about python is there is no built in parser to handle formatting.<p>Which is a simple but big design flaw for me.
Maledictusalmost 6 years ago
Anybody else sad that this is not Ruby?
fredthomsenalmost 6 years ago
Funny that I seen a few articles titled somewhat like this in reference to javascipt.
评论 #20672287 未加载
agumonkeyalmost 6 years ago
Saying this again, is this a cover effect ? I&#x27;m strongly thinking that python reign just peaked, and that either python will change drastically into a more solid static core or people will go Julia..
enginaaralmost 6 years ago
Never had the chance to use python but what I hear most about Python is that it&#x27;s easy to develop&#x2F;saves developer time. Is it still true when maintaining a project vs developing from scratch?
Tehchopsalmost 6 years ago
Wow. uBlock registers at least 50 unique blocks, and my laptop still churns trying to load all the extraneous ad content ZDNet tries to jam down the pipe. ZDN stopped being journalism long ago
spenrosealmost 6 years ago
Best thing I have ever read on Python&#x27;s history. Really fine work.
pc2g4dalmost 6 years ago
It&#x27;s such a great language, and so incredibly slow :-&#x2F;
评论 #20672906 未加载
karl11almost 6 years ago
I am just happy to see that debates on whether some programming language is awesome or the worst are still popular on HN.
mellingalmost 6 years ago
Are there any good cloud solutions for developing in Python?<p>I’ve been using Pythonista on the iPad but it doesn’t support numpy.
评论 #20672317 未加载
评论 #20672325 未加载
评论 #20672409 未加载
评论 #20672592 未加载
评论 #20673690 未加载
breatheoftenalmost 6 years ago
It’s really terrible that python should be growing. It’s a bad language and a bad ecosystem ...<p>The knowledge exists that we shouldn’t be encouraging systems to be built with the patterns&#x2F;tools commonly advocated in the python world — at what point do we acknowledge that the forces promoting this kind of ecosystem are essentially propaganda-like mind viruses ... so much future suffering that will not be prevented ...
mark_l_watsonalmost 6 years ago
Well, I could be put in the ‘Python hater’ category: I do love Python for short programs using TensorFlow, the SpaCy NLP library, PyTorch, etc. I really hate using Python for large applications. Everyone gets to choose their own favorite languages, and for me that would be Common Lisp, Haskell, Java, or Scala for working on large projects. Each to their own though.
victorayalmost 6 years ago
It&#x27;s not flexible as PHP does, but I guess it&#x27;s faster than PHP.
评论 #20673111 未加载
评论 #20672498 未加载
seisvelasalmost 6 years ago
I really hoped Julia would become a major player in scientific computing and data science, but it looks like ever less probable. I like Python, but for science I like Julia more.
ameliusalmost 6 years ago
Is it fair to say that Python is the new BASIC?
DonHopkinsalmost 6 years ago
&gt;&quot;In the past, it had always been clear that if there were a decision to be made about a change in the language or an improved feature, a whole bunch of core developers would discuss the pros and cons of the thing. Either a clear consensus would appear or, if it was not so clear, I would mull it over in my head and decide one way or another. With PEP572, even though it was clearly controversial, I chose &#x27;Yes, I want to do this&#x27;, and people didn&#x27;t agree to disagree.<p>This is a characteristically practical, effective Dutch attitude, known as the &quot;Polder Model&quot;. The United States currently suffers from the opposite problem of extreme partisanship and gridlock.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Polder_model" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Polder_model</a><p>The polder model (Dutch: poldermodel) is consensus decision-making, based on the acclaimed Dutch version of consensus-based economic and social policy making in the 1980s and 1990s.<p>The polder model has been described as &quot;a pragmatic recognition of pluriformity&quot; and &quot;cooperation despite differences&quot;. It is thought that the Dutch politician Ina Brouwer was the first to use the term poldermodel, in her 1990 article &quot;Het socialisme als poldermodel?&quot; (Socialism as polder model?), although it is uncertain whether she coined the term or simply seems to have been the first to write it down.<p>[...] Other uses<p>The term polder model and especially the verb polderen (to polder) has been used pejoratively by some politicians to describe the slow decision-making process where all parties have to be heard. The model flourished under the &quot;Purple&quot; governments of Dutch prime minister Wim Kok, a coalition including the traditional rivals the Labour Party (a social-democratic party, whose colour is red) and the People&#x27;s Party for Freedom and Democracy (right-wing liberals, whose colour is blue). In the declining economic climate of the early 21st century the model came under fierce attack particularly from right-wing politicians and Pim Fortuyn in his book entitled De puinhopen van acht jaar Paars (&quot;The wreckage of eight years Purple&quot;).<p>Historical background<p>[...] A third explanation refers to a unique aspect of the Netherlands, that it consists in large part of polders, land reclaimed from the sea, which requires constant pumping and maintenance of the dykes. So ever since the Middle Ages, when the process of land reclamation began, different societies living in the same polder have been forced to cooperate because without unanimous agreement on shared responsibility for maintenance of the dykes and pumping stations, the polders would have flooded and everyone would have suffered. Crucially, even when different cities in the same polder were at war, they still had to cooperate in this respect. This is thought to have taught the Dutch to set aside differences for a greater purpose.
coleiferalmost 6 years ago
What stood out to me: online bullying (dressed-up sometimes as concern&#x2F;outrage) is what led to Guido stepping down.<p>Python is great, but it will never be perfect. But the outrage stuff, the entitlement stuff, essentially anything that happens on Twitter... Python seems like a victim of it&#x27;s own success. Once it got popular, it couldn&#x27;t scale the checks that might have stopped this runaway train of shit-tweets and bickering on the mailing list.<p>Personally I don&#x27;t like a lot of the things that have happened in 3 (asyncio, type whispering, fstrings). I can&#x27;t help but wonder if, again, this is due to becoming too popular too fast. I say that because aesthetically these features seem to go against the Zen of python.<p>May you never have users, but if you do, may they not have Twitter accounts!
评论 #20677509 未加载
评论 #20673313 未加载
GnarfGnarfalmost 6 years ago
Dynamic typing does not scale.
peter303almost 6 years ago
Python is a prototyping language, but not a serious software engineering languagebfor large and fast projects.
paulcarrotyalmost 6 years ago
Switch to JS was like obtaining new home, don&#x27;t want to write Python code anymore. Also &quot;Eating the World&quot; isn&#x27;t correct anymore, &#x27;cause Python popularity decreasing last ~5 years according to Github stats.
captainblandalmost 6 years ago
I wonder what the consequences of this are given Python&#x27;s apparently very poor energy consumption profile: <a href="https:&#x2F;&#x2F;thenewstack.io&#x2F;which-programming-languages-use-the-least-electricity&#x2F;" rel="nofollow">https:&#x2F;&#x2F;thenewstack.io&#x2F;which-programming-languages-use-the-l...</a><p>It appears to consume over 17x more power than JavaScript, 40x more power than Java or 75x more than C&#x2F;Rust. The only language which performed worse than it in terms of pure power consumption was Perl.<p>While I&#x27;m sure these results aren&#x27;t exactly indicative of day-to-day usage as they&#x27;re based off of benchmarks which are not exactly representative of day to day use cases it nevertheless raises the question of whether Python is an appropriate choice of language where the application itself is likely to see a high level of total use. I suspect the answer is &quot;more work needs to be done&quot; on the subject to truly assess the impact and a big part of the answer is &quot;depends on how you&#x27;re using it&quot;. It&#x27;d be good to see some standardised tests of web frameworks. For instance, load testing a standardised server side version of the TodoMVC project to determine what happens for each framework there, along with what happens when you stick a cache in front of them and so on.<p>It&#x27;d also be interesting to attempt to estimate how much power consumption and hence CO2 generation each given programming language is responsible for given their marketshare and typical usage profiles - although I suspect in practice this would be quite difficult given the diverse usage profiles of modern programming languages. And obviously the fact that machine learning libraries, for instance, will naturally be quite energy intensive - it&#x27;s probably the case that Python actually does quite well there because most of its popular libraries for that are just wrapping C or similar rather than being pure Python code.<p>Given the success of V8 and PHP7 in terms of boosting the performance and presumably energy efficiency profile of their respective languages it&#x27;d be nice to see the mainline CPython interpreter undertaking a similar kind of transformation. Obviously we have things like PyPy but it seems to me the Python community needs to be united around a solution to this which forks simply are not going to be able to drive.
评论 #20678335 未加载
flyinglizardalmost 6 years ago
I feel like the world has gone insane when it comes to Python. Or have I gone insane?<p>Python is an incredible waste of time. No types, IDEs that suck (a side effect of not having types), very partial validation with linting tools that are an afterthought to the language, indentation is a mess (good luck moving files between different editors and environments or through clipboards), slow, agonizing deployment (pyenv? Come on).<p>I’ve been doing C# these past two years and it is laughably effective in comparison, almost like cheating. Standard libraries covering almost anything, tooling that couldn’t get any better, runs everywhere, lighting fast builds.<p>Most importantly, in C#, due to the incredible tooling and language design, if it’s built successfully then there’s a very high chance it’ll do what I want it to right out of the bat. In C&#x2F;C++, much less so. In Python it’s almost guaranteed not to do anything but crash unless I’ve ran everything through in depth coverage testing and I’d still take the C# build checking every time.<p>My Python is pretty good, and I’ve known it for more than 15 years now. I’m not taking this position out of ignorance.<p>For the love of god, go learn a proper language. It can be C#, which I think is as perfect platform&#x2F;language as anything, or Rust or Go or even Java.<p>I see young devs on their vim or Sublime editors developing Python and I want to shout to them, that’s not how it’s done. You’re missing out on decades of industry evolution and know how in things like the Visual Stdio and .NET or even Java and JetBrains&#x2F;Eclipse. You’re using stones to start fires where you could just use an oven.<p>I still use Python, but it’s always for very short and specific programs. It’s just a bad tool for more than that. If you are unable to resist the temptation of using Python for that short program, just make sure it never ever has a chance to grow.<p>Regrettably the ML world lives on Python, fine; let them have it.
评论 #20673045 未加载
评论 #20673516 未加载
higherkindedalmost 6 years ago
And that&#x27;s a sad thing to hear. Before my death by thousand downvotes, I&#x27;d like to tell you why do I feel that way.<p>Back in the day when I was way more inexperienced than I&#x27;m now, I was a die-hard Python fanboy. To me, it seemed like a best option available due to it being way more concise and readable than JS&#x2F;PHP, not to mention that it was way more powerful and dense. I didn&#x27;t really bother with type safety at the time and I wasn&#x27;t exposed to any real criticism of it at the time, as it happens often when you&#x27;re just too new, and I was more than fine with it.<p>Time mercilessly marched forward since then. I worked with different codebases, changing tech stacks and languages a bit, learning new stuff and so on. With some experience, lots of self-education and a vast amount of different workflows to compare with, I&#x27;ve realized one important thing. While Python may be better than some languages that are considered trash by industry consensus, it&#x27;s also a trashcan language to ones with sound and flexible type systems, not to mention that, across dynamically typed contenders, it&#x27;s nowhere near as powerful as literally any solid Lisp.<p>That said, I feel bad for the industry that &quot;dives into Python&quot; more and more over the last years. While it may seem like a pretty easy and cool-ish language to write in, you will inevitably have large problems at scale, it just doesn&#x27;t have what it takes to be easily scalable, and most importantly, it&#x27;s just tedious to refactor when it&#x27;s big, even though the language itself is mind-numbingly easy and even your grandma can jump right in.<p>In a conclusion I&#x27;d like to say that you&#x27;ll be better off without using Python as your project&#x27;s main driver. Yes, it&#x27;s simple to write it and the developers supply is abundant. It&#x27;s easy to start. It&#x27;ll just be a major pain to scale it and support it later on.<p>Edit: Made a pun.
评论 #20677253 未加载
TekMolalmost 6 years ago
Two things I don&#x27;t like about Python:<p>1: No seperator sign like &quot;;&quot;, so you cannot express everything you want in one line. Oneliners are often so useful that I don&#x27;t want to live without them.<p>2: By default, it caches the bytecode on disk. This is slow and spills those files into the filesystem. I prefer PHP in this regard, which caches the bytecode in memory.
评论 #20672951 未加载
neyaalmost 6 years ago
I am currently writing Python based software for a client on serverless architecture. Honestly, I really feel like myself and a lot of people I know use Python only because it has some useful libraries like Pandas compared to other languages. In addition, the effect of 2.xx and 3.xx fiasco can still be felt during development.<p>These days, I really wish I could write my stuff in Elixir, but too bad its data science eco-system isn&#x27;t as strong as python&#x27;s. In the very least, even Ruby as a fallback is much much better to write code with since its philosophy is drastically different from Python&#x27;s - &quot;Optimize for programmer happiness (Ruby) vs Fuck the programmer and optimze for computers (Python)&quot;.[1]<p>[1] <a href="https:&#x2F;&#x2F;rubyonrails.org&#x2F;doctrine&#x2F;" rel="nofollow">https:&#x2F;&#x2F;rubyonrails.org&#x2F;doctrine&#x2F;</a>
评论 #20673163 未加载
lwansbroughalmost 6 years ago
Recently was trying to convert Python to C#... there are few things that are as absolutely incomprehensible as a Python programmer being clever with numpy. I gave up on the conversion. Perhaps this is a point for Python’s flexibility, but I’d say it’s just a waste.<p>Here’s the code. Try to convert this to any C style language.<p><pre><code> mins = X.min(axis=0) maxs = X.max(axis=0) idxs = np.random.choice(range(self.dim), self.dim-self.exlevel-1, replace=False) # Pick the indices for which the normal vector elements should be set to zero acccording to the extension level. self.n = np.random.normal(0,1,self.dim) # A random normal vector picked form a uniform n-sphere. Note that in order to pick uniformly from n-sphere, we need to pick a random normal for each component of this vector. self.n[idxs] = 0 self.p = np.random.uniform(mins,maxs) # Picking a random intercept point for the hyperplane splitting data. w = (X-self.p).dot(self.n) &lt; 0 # Criteria that determines if a data point should go to the left or right child node. return Node(X, self.n, self.p, e,\ left=self.make_tree(X[w],e+1,l),\ right=self.make_tree(X[~w],e+1,l),\ node_type = &#x27;inNode&#x27; )</code></pre>
评论 #20673009 未加载
评论 #20672426 未加载
评论 #20672510 未加载