14 ms·
I Am Worried About The Future Of Python
- manojlds 14y agoIronic that one of the things that got me hooked into programming and python was PyS60. I could write programs on my phone and run them. That was awesome. This was about 8 years ago on Nokia symbian phones.
- eric_bullington 14y agoTake a look at Kivy. Write code in Python and run it on Android and iOS. Building the dev environments for those platforms is still a pain, but once those are set it, it's a snap. Also, there's an online build server available for Android at no cost. Main drawback is a slow first-time start-up time as the package files are unpacked. Subsequent start-ups are fine in my experience. Once a kivy program is started, it runs like a charm on modern hardware. I'm building a scaffolding for productivity apps in Kivy here: https://github.com/esbullington/vite-vite https://github.com/esbullington/vite-vite You can try out the (very alpha quality) Android app build with the scaffolding here: https://github.com/esbullington/vite-vite/vitevite-0.1-debug.apk/qr_code https://github.com/esbullington/vite-vite/vitevite-0.1-debug... I should have some more time to work on this next week, at which point I'll be cleaning up the code, adding more documentation, and adding a few features. Suggestions and pull requests are welcome.
- INTPenis 14y agoDon't you worry about the future of Python, let me worry about blank! - Guido
- shawabawa3 14y agoIncase someone doesn't get this: http://www.imdb.com/title/tt0584440/quotes?qt=qt0361067 http://www.imdb.com/title/tt0584440/quotes?qt=qt0361067
- jayflux 14y ago"Python behind the webserver is a powerful tool and one that has enabled a lot of great sites and products and services. Unfortunately, once the content hits the wire, the Python stops." Not sure if im being ignorant here but surely this is a problem for most server side languages? PHP, Ruby, Go, Perl would all suffer the same problems. Browser vendors only want to have JS client side for obvious reasons, this doesn't just affect python. Js is clearly doing a fine job at client side programming, should we not be happy with that? Why are people obsessed about creating a "jack of all trades" language instead of letting languages do what they do best? Taken from the comments... "I suspect javascript will become like assembly and all languages targeting the browser platform will need to be compiled to javascript." That sounds like hell to a front-end developer. Its bad enough learning coffeescript or other dialects if a company uses them, but other languages too?
- anonymouz 14y agoI agree. Python is very popular for web development (server-side) as well as for GUI/CLI application development. It has attained "critical mass" a long time ago, and won't go anywhere anytime soon. Python has a number of strengths and weaknesses that make it suitable for many applications and not so suitable for many others. But that's ok, it doesn't need to be the one-and-only language to succeed.
- icebraining 14y agoThat sounds like hell to a front-end developer. Its bad enough learning coffeescript or other dialects if a company uses them, but other languages too? Isn't that like saying that having many server side languages is hell to server-side developers? And isn't it making JavaScript effectively a jack of all trades? You might want to run code on the browser that is better expressed in a different language. After all, the days of client-side code being just a few value checks and DOM manipulation are beginning to disappear.
- valdiorn 14y agoJs is clearly doing A job at client side programming, because there is nothing else available. I would so, so happily drop Javascript for just about ANYTHING else that works on IE+Chrome+Firefox+Safari. IMO, Javascript is just awful, and I know I'm not alone with that opinion.
- lutusp 14y agoFor myself, I'm worried about the future of writing -- you need a spell checker. An automated spell checker would have caught the majority of the misspellings in your article.
- Terretta 14y agoSpell check would be a good soltuion.
- manuscreationis 14y agoAnd here I was hoping for some kind of thesis on the woeful state of affairs surrounding the fact they've had 2 major versions competing for developers attention, the with "older" fork being the more the widely supported one.
- j2labs 14y agoEvery language deals with this until about x.3 of the newer version.
- debacle 14y agoNot every language has such a broad chasm between two versions of the language. In fact, I can't really name one. Maybe ActionScript?
- dalke 14y agoPerl6 v. Perl5. Visual Basic .NET vs. VB6. ANSI C vs. K&R C. Looking now, "Appendix A of the Fortran 77 standard lists 24 things that are not backward compatible in moving from f66 and f77." Please tell me how the chasm between Python 2.7 and Python 3.3 is significantly broader than the chasm between the aforementioned languages.
- manuscreationis 14y agoI would go so far as to say VB.NET vs VB6 is the same as comparing any flavor of C++ to C#. It doesn't really make a lot of sense, even though they share the same pedigree. VB.NET is effectively a different language entirely. It's programming .NET with VB-like syntax, not the VB language running on .NET (in my mind, anyways)
- dalke 14y agoAhh, but the goal is to find another language with "such a broad chasm between two versions of the language." It seems I can't win if people decided that my examples are so far apart that they are no longer two versions of the same language. ;) What about Old S v.s New S? S v.s S4? S vs. R? What about D1 and D2 of the D programming language? Classic awk vs. nawk? Honestly, I could go on. I think the person I'm responding to really doesn't know much about programming language histories.
- wladimir 14y agoI really think PyPy is the future of Python. A faster python with better support for paralellism by leveraging STM. This makes Python suitable to a lot of use-cases where it's currently too slow. What is lacking at this moment is compatibility with a lot of the libraries in the ecosystem (see https://bitbucket.org/pypy/compatibility/wiki/Home https://bitbucket.org/pypy/compatibility/wiki/Home), due to limited C-API compatibility (which is non-trivial to say at least due to different memory management and locking semantics). This is serious because a big part of what makes Python so cool is the wide library support.
- jayflux 14y agoI agree, PyPy is looking like the future of Python. Once it supports third party libraries or things change I believe python will be flying. I for one am not worried.
- dbaupp 14y agoCould you clarify what you mean by "third party libraries"? Do you mean libraries written in Python like those [which are pure Python] on http://pypi.python.org/pypi http://pypi.python.org/pypi ?
- lrem 14y agoThese are not all written in Python. A lot of them are actually C or C++, some are Haskell or Fortran (that's no error, Fortran). Even the ones written in pure Python often ultimately depend on something that's just a wrapper over something in another language. In fact, could be an interesting side project to determine how much of PyPI doesn't work with PyPy...
- dbaupp 14y agoYes, I knew that. There was an implicit (now explicit) "written in Python" in my comment above. (The purpose of my original comment was because PyPy does work with third party libraries, especially if they are pure Python, and so I was asking if these were the sort of libraries that were being referred to.)
- tocomment 14y agoHe forgets about concurrency. That's a major point of weakness for the future of Python (even though no one will admit it).
- lvh 14y agoWhy is he forgetting about concurrency? There seem to be plenty of tools for managing concurrency right now in Python, and they are working fine for me. What languages are you considering that have a better story here? Note that better story has to mean more than "syntax-level support" -- I run highly concurrent services in Python right now using Twisted without language level support, and it's not always obvious in which ways language level support would make things nicer in ways that aren't already implemented (e.g generators + @inlineCallbacks).
- jedbrown 14y ago1. You might like gevent. 2. You can't parallelize computation if it's written in Python. (Yeah, yeah, concurrency is different from parallelism, but there is a lot of overlap.) Even if it's written in a different language, the granularity is constrained due to the GIL.
- lvh 14y ago1. I don't, but that's an entirely different story. 2. Sure I can :) Usually this means deferToThreading with things that release the GIL, sometimes it means multiple processes, both of which have quite good tools in Python. Not that they can't afford to be better, but I've never thought "man, the GIL is really holding me back now" -- despite having dealt with projects that are almost entirely about heavy computation.
- cmwelsh 14y agoHave you tried using PyPy and gevent? In a well-designed benchmark[1], it outperforms Node.js. That means it's at least competitive when it comes to concurrency... right? The GIL is not a big deal because shared state concurrency is a fundamentally broken model. [1] http://mrjoes.github.com/2011/12/15/sockjs-bench.html http://mrjoes.github.com/2011/12/15/sockjs-bench.html
- RBerenguel 14y agoMost of the problems look like Lisp problems 20 years ago. Maybe Python is not the best for mobile or for games, but... so what? It's great for some things, and if it excels in those, why does it need to be perfect for everything?
- batista 14y agoBecause else you end like this Lisp of "20 years ago" ended up: used in some niches, largely forgotten in the main. For languages, number of programmers translates to: higher quality and number of libs, better tested, more work on the efficiency, compiler, more companies built around the ecosystem, more tools, more books, more tutorials, more open source projects in and with it, more bugfixes, new APIs with support for the language, new bindings etc. It doesn't have to be "perfect for everything", but it has to be good in the kind of things that interest the most people people now. Scientific computing ain't it. Much better to use a bad language with 100,000 programmers than a good one with 1,000, as people reluctant of JS in the past have found out.
- singold 14y agoI feel this is kind of what happens with php, it isn't the best language, but for someone new in server-side webdev there is plenty of info around the web to solve most problems
- cmwelsh 14y agoLua, a programming language I think might appeal to Pythonistas, is in a solid position to profit from the compile-to-JavaScript fad. I did some tests with mherkender's lua.js[1] a while back and Lua translated to JavaScript was only taking around 40% more time (I forget the exact numbers) to run the horrible benchmarks I wrote. There's still low hanging fruit to improve those numbers. Lua is a beautiful language. In addition, it's the language with the best chance at making it into a browser engine. It's lightweight - the compiled binary is around 120KB. [1] https://github.com/mherkender/lua.js https://github.com/mherkender/lua.js
- JasonFruit 14y agoI'm not sure that Lua is going to appeal so strongly to Python programmers. It's wordy and its design makes opposite choices from Python's; vide global vs. local, for example. I think the brevity and safe assumptions of Python are a lot of what people value in it.
- ufo 14y agoThats if you only focus on syntactic issues like that. If you see how the languages work they are actually much more similar (both have generators, operator overloading, lexical scope, etc...)
- JasonFruit 14y agoUsing any syntax, "local unless you specify global" and "global unless you specify local" are different in an important way. And syntax is important to most programmers; there are dozens of languages that provided the semantic equivalent of Python before it existed, but haven't matched its popularity. Python's practical syntax is much of the reason.
- azakai 14y ago> Lua [is] the language with the best chance at making it into a browser engine For better or for worse, I think there is pretty much 0 chance of Lua or for that matter Python showing up natively in browsers. There are too many technical and political things in the way. But we already have good tools for compiling both of those languages into JavaScript. If for example the Python community made JavaScript a priority to compile to, we could make it run very well and integrate nicely with the browser environment.
- vxxzy 14y agoThere are some innovative ideas that may help "ease" over to python-on-mobile... One of them being pyBead: http://sourceforge.net/projects/pybead/?source=directory http://sourceforge.net/projects/pybead/?source=directory Another would be Muntjac...
- dazzawazza 14y agoRegarding games: I chose lua over python because: * smaller runtime foot print. * faster runtime. * simpler to embed * the fewer batteries that are included are simpler to embed in your runtime. Python's libraries are often very tricky to embed. I prefer python to lua, although they are both expressive and powerful languages, however the convenience of python isn't enough to trump the flexibility and speed of lua. (edit formatting)
- protomyth 14y agoThere is also a lot more experience in the mobile space of using Lua than Python. That means a lot more blog posts and documentation.
- dazzawazza 14y agoAh yes, thanks for reminding me. This is also very important.
- gte910h 14y agoAnd corona is a pretty nice kit for iOS/Android and is fully supported. http://www.coronalabs.com/products/corona-sdk/ http://www.coronalabs.com/products/corona-sdk/
- bitcracker 14y agoI also like Lua. The speed of the virtual machine is awesome. But sadly Lua is still missing Unicode support. This is a big issue that needs to be solved.
- threedaymonk 14y ago> But sadly Lua is still missing Unicode support. Whenever I hear someone complain about (lack of) Unicode support, my ears prick up. See, Unicode support is a many-headed beast, and almost no languages have very much of it, and most of what people naively think of as Unicode support (length, indexing into "characters", case conversion) doesn't really work when you take into account combining diacritics, ligatures, Turkish I, German S, etc. I'm not especially familiar with Lua, but it transparently stores and compares UTF-8 strings, and there are even bindings for ICU. So what's missing from "Unicode support"? Script specifiers in regular expressions, perhaps? I'm asking out of genuine curiosity.
- lloeki 14y ago> We see more major titles written in Flash and ActionScript than we see written in Python. People want to write games in Python (myself included). They really do. The problem is, try to get pyopengl/pyglew/pygame/pyogre/pysdl or whatever running on your development machine. Now try to make it work on five different machines, across Windows/OSX/Linux. Then try to create a reliable distribution scheme for it. I've tried it. Even the first step is painful, often requiring intimate knowledge of C, autoconf/make/whatever build systems and the system you're targeting, jus tto get you going. It's such a pain I just end up writing stuff in C, and only maybe plug in the python stuff later on, if at all. Really, the lowest levels like PyOpenGL should have been part of the official Python distribution, just like tkinter, even if they are thin ctypes-like wrappers.
- wwwtyro 14y agoI'd really like to see some responses to this, even if incomplete. Is there a way forward here? Even a hunch at a way forward?
- takluyver 14y agoI haven't tried it myself, but have you experimented with Panda3d? It's a game engine that supports code written in Python, but it has a much more coherent story for getting set up for development, and for distributing your game when you're done.
- davedx 14y agoDidn't the author mean using python as a scripting language for gameplay with a C game engine for the other stuff? Do you really need all those opengl / ogre / sdl whatevers; is it not possible to just have a python interpreter running in your game engine and only running vanilla Python code? That's how we've done it before with LUA and other scripting languages in game dev. You don't expose anything low level to the gameplay scripting beyond simple primitives. You certainly don't touch anything to do with OpenGL - even the C++ game code rarely goes that deep.
- nuje 14y ago> is it not possible to just have a python interpreter running in your game engine and only running vanilla Python code? Sure, but it means much bigger swaths of C/C++ code and your game app is no longer a python program that imports some extension modules for performance critical tasks or third party lib bindings.
- lmm 14y agoWe see some games written in Flash and ActionScript, but not AAA titles like Eve and Civ 4. How many general-purpose languages get used to write such titles? I can only think of C, C++... yep, that's it. Is the author's point that we're moving away from "big" games and towards less complex, "casual" games like are popular on mobile, and the latter aren't using python?
- deleted 14y ago[deleted]
- jgeralnik 14y agoThat was his whole point, so does Eve.
- mh- 14y agoit's worth pointing out that Eve uses Stackless Python http://www.stackless.com http://www.stackless.com
- smacktoward 14y agoAnd Civilization 5 ditched Python for Lua. This seems like a good illustration of the problem.
- lmm 14y agoTrue, which is why I made a point of saying general-purpose language. If python is being displaced by lua in an area for which lua is specialized, I don't see that as a problem (or at least, it's unavoidable). If python is being displaced by another general-purpose language that's more cause for concern.
- hythloday 14y agoEvery game that uses Scaleform (that's a lot of them) uses Actionscript. Here's a list of games--many of them AAA titles--using Lua: http://en.wikipedia.org/wiki/Category:Lua-scripted_video_games http://en.wikipedia.org/wiki/Category:Lua-scripted_video_gam...
- pjmlp 14y agoOne should not focus in a single programming language, as such the article looks like a developer's cry to use his favorite language everywhere. Just make use of the best tool for the job. In some cases that tool is not Python, as simple as that.
- willvarfar 14y agoI want a Python environment running in Chrome NaCL.
- 7952 14y agoAgreed! The constant focus on browser security means that this kind of thing is avoided out of hand even when security is not an issue (for internal deployments for example).
- willvarfar 14y agoI blogged about that: http://williamedwardscoder.tumblr.com/post/14127327004/google-native-client-to-be-app-store-for-windows http://williamedwardscoder.tumblr.com/post/14127327004/googl...
- 7952 14y agoI am really arguing the opposite point. There are lots of situations, particularly in business where you want to be able to interact with the file system and OS. Currently your options are very limited if you want to use a browser as a UI. How do you add a "send as attachment using outlook" button in a web page? Native client does not help with this due to the sandboxing.
- wilfra 14y agoFor web dev (not game dev) what is Python in danger of losing to? Rails?
- nikcub 14y agoIMO the largest competitor for new developers would be Node.js, and for existing developers would be Go
- bti 14y agoHaven't really been following Go at all. Are there any companies (besides Google) that are using Go on the web?
- ehutch79 14y agoI don't know about companies using it, but here's the django equivilent... totally confident it's a production ready replacement for django, RoR, etc. http://www.getwebgo.com/tutorial http://www.getwebgo.com/tutorial
- dalke 14y agoGiven that it has no template language and (seemingly) no database mapper, much less support for caching, user account, etc., I'm confident that it's not in the same space as Django or RoR. For example, how do I get it to talk with a Postgres database, and do LDAP authentication?
- dmbaggett 14y agoMy startup has built our entire system around Python and I have found it a lovely language to code in but a challenging language to deploy in practice, mainly for these reasons: 1) Python 3's backward incompatibility has made a mess of library support and has trapped us on Python 2.7. 2) memory usage is a problem on mobile for nontrivial Python programs; iOS isn't even a formally supported target. 3) Pythonic programs can't use multiple cores. Now before you jump down my throat and tell me how bad a programmer I must be, etc, etc, let me provide some anticipatory clarifying comments: 1) Most libraries do now work in Python 3.3; we are waiting on gevent, pyasn1, and tlslite, and, of course, all our own stuff. 2) There's at least one fork of Python 3 on bitbucket with a bunch of promising memory-reducing changes (can't find it now). 3) Yes, I know about (multi)processing and that real threads are hard to work with. Literally every few weeks we are confronted with a new problem caused by one of the above. The latest one: there is no WinRT port of Python yet, and the one Martin Loewis is working on is for Python 3.3. (Of course: Python 2.7 is barred from noncritical patches.) So we need to either make 2.7 work on WinRT or not ship a WinRT version. Windows 8 launches Oct 26; Python is frankly just not ready, and no one but Martin L and a few others seem to care (or even notice). (And yes, I know Win32 stuff still runs under Windows 8... but not on the ARM devices, and not in the UI-formerly-known-as-Metro.) I wouldn't say I regret having chosen Python as the basis of a 250k-line system, because in retrospect it was still the best of the dynamic language choices. But I definitely feel like Python qua programming language has become a missed opportunity in many ways. Nowadays if someone were to ask me what they should write a nontrivial new system in, I would probably recommend coding everything in JavaScript or C++11. This makes me sad, because Python's syntax and sensibility are unparalleled; I have never been as productive a coder as I have been coding in Python these last few years. And I've been coding in C dialects since, seriously, 1979 (on a Heathkit H89 with 64K of RAM!)
- briancurtin 14y ago> Windows 8 launches Oct 26; Python is frankly just not ready, and no one but Martin L and a few others seem to care (or even notice). Part of the problem is that you could count on one hand the number of contributors who have worked on non-trivial Windows issues in CPython in the last 12 months (probably even 24). I think we're pretty aware of this, but there are still only 24 hours in a day. In fact, my new SSD should be arriving today to complete the build of my new machine, and Martin's work on WinRT probably jumps ahead on my todo list.
- ghettoCoder 14y agoThis is a good post and the comments are equally good. Here's the deal. Python nation isn't doing anything new here. Other languages have caused the same soul searching, think of C, Java or Delphi (of bad example). The point is that once a language grows up, and yes it can take takes ten years, it's a natural progression. I've only been using Python for a few years and now I don't know how I managed to get anything done before. Python as a solid base and excels at certain things. Move on. Use the tool that fits. As for the mobile hardware being low on power and battery life. Give it time. My computer 12 years ago had a difficult time doing anything when converting video. Now, I can play games while I convert a video and it uses less power/puts out less heat. Patience.
- b0rsuk 14y agoI recognize that most of the response I'll probably get from this post amounts to, "You're complaining about silly things. Python doesn't do that, it isn't meant to. Stop putting a round peg in a square hole and complaining when it doesn't work." If you agree with the above quote, you are committing a Texas Sharpshooter Fallacy. We're not using Python for that, because the interpreter has a significant startup time, because Python performance is not stellar, etc. But it could be different. I'm a novice programmer without commercial experience, but the statements in bold ring true to me: - Python is Expensive On Mobile - Python is Without a Door On Browsers - Python has Failed for Game Development
- protomyth 14y agoI'm a little confused by the first point. How is Objective-C not a dynamic language? Is he talking about something other than dynamic dispatch? Is there some reason other than time that prevents an implementation of Python to mirror what was done with Objective-C?
- scott_s 14y agoPython is interpreted, but Objective-C is compiled. That is, a Python program is executed through the Python interpreter, yet an Objective-C program runs natively. Although he may indeed be confused about "dynamic," since dynamic dispatch has nothing to do with the above, and is supported by all OO languages.
- protomyth 14y agoThis is where I'm really not clear. What makes Python harder to compile than Smalltalk (which had some native compilers - Smalltalk/X) or Objective-C?
- loodno 14y agoWell nobody said it would be harder to compile. However the fact is that there is not a compiler for Python, so unless someone writes one that is a downside. Also, the semantics of Python would likely not lead to efficient compiled code anyway, when compared to something like C, Java, or even Haskell - static languages.
- maxerickson 14y agoThe corners of the language make it difficult to benefit from compilation. Per the language, things like the internals of an instance of a class can be manipulated at runtime, so the compiled output ends up needing to support the entire dynamic runtime. Cython and Nuitka (among others) do this to varying degrees.
- randomdata 14y agoDidn't Smalltalk basically invent the idea of being able to open up objects at runtime? Even Objective-C, with its strong Smalltalk ties, allows for runtime modification.
- ippisl 14y agoShedskin might be one solution. From the shedskin forum[1]: " I've built and run shedskin apps for the iPhone - it works great actually. It required commenting a few things out, and swapping in the boehm gc for iOS port. Of course, no native ui widgets available - but I used phonegap to do the ui in html5 and it called shedskin c++ for all the actual app logic. Phonegap supports connecting html5 -> native c++ via a plugin architecture. Works wonderfully. High powered, efficient apps on the iPhone via python is a bit of paradise compared to apples own obj-c, I must say. Huge potential for shedskin adoption there if someone packaged things up this way for the general public..." [1] http://groups.google.com/group/shedskin-discuss/browse_thread/thread/1c49df0b22795d68/c2b996ad9fb5f502?lnk=gst&q=iphone+html5#c2b996ad9fb5f502 http://groups.google.com/group/shedskin-discuss/browse_threa...
- skrebbel 14y agoThis is like writing an article in 2003 saying "I'm worried about the future of PHP". Even if you're right and Python is doomed, so what? You'll have another good reason to broaden your resume and become a generalist engineer.
- Tloewald 14y agoIn 2003 PHP was already the most popular web dev language and web dev was where the action was and the transition to PHP4 from PHP3 was pretty smooth. This article points out that he's got code stuck on Python 2.x, Python is not doing well on the current hotmess (mobile) and it's not now and never has been as popular as PHP. How is this similar?
- skrebbel 14y agoYou're taking things too literally. I took PHP as a language that was very popular for web apps in the past, and much less so nowadays. PHP's popularity for the web in 2003 is not dissimilar to Python's popularity for the web in 2012. Anyone predicting in 2003 that PHP would become less popular and/or suitable for the web would've turned out to be right. Yet, I bet anybody who might've made such a prediction just learned a new language (maybe even Python) and is still enjoying creating great software just like back then.
- nacker 14y agoThere is a Door on Browsers for Python right here: http://pyjs.org/examples/ http://pyjs.org/examples/ https://github.com/pyjs/pyjs/wiki/GettingStarted https://github.com/pyjs/pyjs/wiki/GettingStarted Needs more developers... (Hint)
- nacker 14y agoIn spite of the Elop shenanigans at Nokia, Qt is very healthy, and Qt5 has even been demoed on the Raspberry Pi. Pyside is now totally integrated and mature. Please take a look. http://qt-project.org/wiki/PySide-Tutorials-by-Experience-Level http://qt-project.org/wiki/PySide-Tutorials-by-Experience-Le... http://doc.qt.digia.com/4.7-snapshot/gettingstartedqml.html http://doc.qt.digia.com/4.7-snapshot/gettingstartedqml.html http://qt-project.org/wiki/PySide-and-QML-Playground http://qt-project.org/wiki/PySide-and-QML-Playground
- mpdehaan2 14y agoSo I can't say I'm worried much. Python strikes a very good balance between rapid development prototyping and something that is sustainable, and has an excellent level of readability that makes it outstanding for gathering patches from even non-professional programmers. Most of the interesting parts of computing now cluster around web applications and web services, where the action happens on the server and Python is still reasonably well suited -- and in the servers behind them, where it's quite critical in Linux distributions. I write a ton of software for systems administrators and can't really see using anything else if I wanted the same contributor rate. Sure, it doesn't run in the browser, but I can't see myself pining for the return of Java applets either. It all comes down to what types of applications you are writing. If I was doing HFT, I'd clearly want something statically typed, fast, and functional. Those same properties are things I don't want in other applications. It's pretty much a screwdriver vs carburetor type of problem. Yes, I'd love to see more investment in the runtime -- but I'm also reasonably fine with where it's at.
- pcote 14y agoPython does not typically end up in a video game's main code base. However, to say it failed is to have a pretty limited view of game development. Art asset creation often requires customized tools within software packages like Blender or Maya. Python is doing just fine within it's part of the development pipeline.
- ehutch79 14y agoSo, what should we be using instead NOW? It's sort of frustrating reading these types of articles. I mean should I not be using python for my web apps anymore? Since we shouldn't be using python anymore, what should i use in the mean time? no suggestion? guess i'll sit here twiddling my thumbs until the next big thing hits hacker news.
- modernerd 14y agoAs a PHP developer slithering away from PHP at great speed on the back of Python, I am excited about its future. Yes, I would love to be able to use Python for games and mobile development too, but I do not expect to be able to use it for these things, just as I do not expect to be able to build web apps with Objective-C (even though some do). For me, the power, elegance, philosophy, and community that sustain Python are enough to make it a worthwhile choice in a finite but important number of domains.
- bduerst 14y agoSame. I cut my teeth on PHP but have recently started working in Python and like it. PHP is nice because you can throw it on any LAMP stack and it's interpreted, but Python runs much smoother for heavy data lifting.
- kamaal 14y agoDon't worry about the future of a tool. They just come and go. As a developer worry about the problems, quality problems you would like to solve. Think about 'whats in it for you'. The inevitable nature of changing requirements in programming mean, there is always going to be demands for new changes and new features in a programming language. Changes in Syntax and excess syntactical sugar many times come only at the expense of breaking backwards compatibility. What you are seeing now is a saturation with Python. Python is good, but people now want more. I bet you unless Python is ready for major backwards incompatible changes in another 5-6 years they are going to lose this battle against other languages. NodeJS, Go they are all going to eat Python's lunch. What you will see now is cool stuff getting built in some language like Go and will go viral every 15 days. People who had originally no interest will learn just because its getting famous. Architects who just want to sound different and distinct will use it, Slowly but sooner or later there will be job demands for Go. This is inevitable and going to happen. Suddenly people will find every reason under the sun to hate python and love go. Python will increasingly find itself in the same situation Perl was some years back. And its fans will have to face the same trolling. Its just your usual technology cycles. By the way I guess its time to start learning Go.
- TwoBit 14y agoI never took Python very seriously because of its shitty documentation.
- LBarret 14y agoI also built my first startup in python. It was a technical success (and a financial failure) but using it imply a few things : * good coders. ( bad coders can do much more damage. ) * you need to use cython (and maybe numpy). * memory profiling is hard * you need to search pypi alot, there is likely something there to help you. * windows builds of extensions can be tricky. I am also concerned about its future, the community seems in a "I know better than you" attitude and I don't see anything major coming, except pypy.
- vorg 14y agoThe article didn't mention Python's availability in China. Their website download page (http://www.python.org/download http://www.python.org/download) has been blocked by the Firewall since late 2009.
- olivier1664 14y agoAfter loking for an explanation: "http://www.python.org/ftp http://www.python.org/ftp could bypass GFW to download it. Because of version 2.6.4, the sensitive number 'June 4' to government, so the GFW block the download page." according to wpopenid on http://posted-stuff.blogspot.hk/2010/07/downloading-python-from-china-or-not.html http://posted-stuff.blogspot.hk/2010/07/downloading-python-f...
- vorg 14y agoThanks, that "June 4" reference could be the reason, but I'd think too many webpages would be blocked if it were. (Of course, I had to look at the .in version of that blogspot page as HK's version, like many others, is blocked in the mainland.) The FTP site works for me. I visit Hong Kong often enough so not having access to the latest internet stuff isn't usually a problem for very long.
- yason 14y agoThis is just an old rant that has been heard before from many language people, Lisp community included, and the author seems to know it but also refuses to get along with that and is upset because that square peg really, really can't be banged into a round hole. Python has been in decline for years, maybe 5-6 years now. Python3 definitely cemented a lot the current downward angle. Python isn't out and possibly never will be, but its design has gradually shifted away from the hacker community. And that means the momentum will consequently shift into other languages and environments. And that's fine. Each language will gather the following it deserves, in the ever-changing environment.
- nandoflorestan 14y agoHmm. I still see many people griping about Python 3 incompatibility, so here is my comment. If you have some code that you would like to have working under Python 3, check out a little library called "six". With it, it is simple to maintain a single codebase that works with both Python versions (no translations necessary, forget the 2to3 tool). For example, the Pyramid web framework (and many related libraries) have been successfully using this approach. This way one can support Python 2.6, 2.7 and 3.2+. Together with "from future" imports (for Python 2.6 and 2.7), this is easy to understand, though "upgrading" the code may still take time. At the top of every module of mine I have this: from __future__ import (absolute_import, division, print_function, unicode_literals)
- just_testing 14y agoLink to syx library: http://packages.python.org/six/ http://packages.python.org/six/