Python's Future: A Global Perspective
boredomandlaziness.org
boredomandlaziness.org
But we're seeing a fundamental shift from desktop to mobile that's the same magnitude, if not greater, than the shift from desktop app to web. And the Python community, by and large, doesn't seem to care.
I think Python is such an elegant language and deserves to be more than the glue that holds together UNIX-based systems.
Can you really imagine a future in which people all over the worlds do not work at desks?
Or one in which people sit at desks doing all their work on a tablet or a smartphone?
The issue is an ergonomic one, and I just don't buy the idea that the "shift from desktop to mobile" is "the same magnitude, if not greater, than the shift from desktop app to web".
Python will not end up as mere glue. As the article points out, there is going to be a large supply of new Python programmers (or "non-programmers") arriving shortly, due to educational programs and Pi type devices. Remember "Computer Programming for Everybody", or "CP4E"?
http://www.python.org/doc/essays/everybody/
That was the original vision for Python, and it is slowly happening, don't worry.
I don't recall books/pads/pencils having the major ergonomic risks that we get with desktop computers, but it is possible I am just not remembering well.
I wish badly a way to develop* my iOS apps with python. Obj-c is improving - the main reason I don't move to monotouch, lua or ruby -, and is necessary transparent support to the cocoa-apis... but anyway...
P:D. With develop, with the same support or better as mono-touch, so not only games...
Any statistics on that? Because, 10 guys and their dogs aside, I haven't notice any office workers replacing their desktops for tablets.
Some managers and such might use them, but those were never desk bound office workers to begin with.
The statistics are in the open and well know by now. The industry is moving fast & furios. The mobile space is bigger than the PC/Desktop, and the ONLY way to the dumb phones of today is up. Will not kill the desktop, and as developer, I don't see a mass migration to mobile in the near future, but the thing is moving in that direction -probably as mix between tablet/desktop/smartphone...
You are basically arguing that keyboards and chairs are here to stay which I think short of a good mind-to-computer interface that is true. But just not sure about the current hardware and operating systems.
So now the only difference between your smartphone-desktop and your traditional-desktop is the OS it runs, right?
So which OS do you want to run on your desktop? I can promise it isn't a mobile OS.
Maybe a new hybrid OS (Ubuntu for Android or Windows 8) can offer the best of both worlds, but I'm skeptical.
The language used on mobile apps is largely irrelevant. All devices are proprietary to an extent, and the vendor dictates which SDK you use.
Also, it doesn't make any difference because you won't be using any external libraries anyway - you're at the mercy of the API it ships with.
Everybody who makes money with mobile apps "couldn't care less for mobile"? What?
>Also, it doesn't make any difference which language you use because you won't be using any external libraries anyway - you're at the mercy of the API it ships with.
What? I can use whatever C# library I want with the MonoTouch bindings. And the same holds true for all other bindings...
Regarding bindings... would it make difference for Python? It's not like you're going to run NumPy on your iPhone.
The biggest selling point I see in bindings is the code reuse between platforms. Many cross-platform mobile apps are just web front ends, though.
We are seeing a shift from mobile plus the backend servers that enable mobile applications.
And Python is the language choice of many for developing backend applications and tools alongside other high performance technologies like Java and Go (no this isn't a plug for GAE).
And Python's dominance as the language of choice for scientific applications (on-top of various C/Fortran libraries of course) is only becoming more and more cemented as time goes on.
And we should probably acknowledge the fairly substantial role Python plays in cross-platform and UNIX GUI development, especially in conjunction with Qt. Probably not a lot of growth in this area, especially as tablet devices take over, but worth a mention.
So Python might not rule (or even be viable) in every facet of software development, but being a central player in mobile backend development (an area that will expand in line with mobile itself), and the lingua franca for scientific programming is none too shabby an achievement.
Hey, it could be worse - right Perl? ;-)
To the best of my knowledge, few end users actually run Python. For desktop applications that the "average user" interacts with, Python is even less popular than Java/Swing. Can you name any popular Windows applications written entirely in Python?
The majority of people using Python are using it in ways that aren't going to be replaced by mobile devices any time soon. Nobody's going to replace Django running on a server with some other framework running on a mobile device. Nobody is going to throw away Blender and start doing 3D modeling on their iPhone. There'd be little point in making a scipy library for Android.
Python doesn't have to dominate every single niche on every platform everywhere to be successful.
Can you name any popular Java/Swing desktop apps that aren't development tools?
I don't even have Java installed on my Win7 computer and don't recall even a single occurrence where I missed it, ever.
I have two Python programs that I use regularly: the popular Calibre eBook management software, and the also quite popular Anki flashcard program (both written in PyQt). I am sure there are many other popular cross-platform desktop apps written the same way, perhaps people just don't realize they are using an app written in Python.
Agreed. I've been working high and low with python for years and I did not know it could do that:
> bundle your code with all its dependencies except Python into a directory or zipfile and add a __main__.py file and the Python interpreter will execute it as if it was a script.