3 ms·
Python is so big and diverse that you won't get any clear answers to this question. In fact I don't believe that anyone could possibly give a definitive answer.
by memracom 13y ago
Python is so big and diverse that you won't get any clear answers to this question. In fact I don't believe that anyone could possibly give a definitive answer.
The fact is that Python is not a single language (PyPy, IronPython). Like Linux, there are many competing Python distros to choose from. Many of these distros target scientific users on the surface, but they include components that are more generally useful such as NumPy for scaling systems to huge amounts of data.
In my opinion it is not a bad time to learn Python because, at minimum, if the Python core team stops everything tomorrow, there are thousands of packages that you can use with Python, and there are some 20 years of development work built into the latest 2.x version. You can leverage all of that by learning Python.
Sure you could use Clojure instead, and again be leveraging a huge ecosystem of packages and some 20 years of development effort (JVM mainly). Your choice.
Or you could go for cool and pick a new language with few users and few packages available. That is not necessarily bad. It makes for a more exciting life and those new languages will likely evolve to have ecosystems as big and complex as Python or the JVM.
Python is one of the first non-functional languages (i.e. not LISP, not Haskell, not Erlang) to include functional features such as lambda, iterators, generators. At this point these features are generally considered the correct way to write code rather than writing "for" loops. Read the docs for the itertools library to see what you can do with this style of programming. You can write monads in Python if you wish.
I suggest that you try to implement a minimum viable product (MVP) using Python 3.4. Yes it is beta now, but it will be in a release version before you finish your final product. More importantly, spend a week or two doing this and at the same time, look around at available packages that you MIGHT need, and see if they are available in a 3.x version. If you run into issues with this, then after your first week or two, you will need to decide whether to continue working with Python in the 2.7.6 version ( and fix your code to conform) or whether to leave Python altogether.
If you don't actually try to build something in Python for a week or two, then you won't have enough info to decide. Part of the decision is the hunt for packages that have already implemented some function and the hunt for answers to questions on StackOverflow. To really judge this you need to use the language. And the same thing goes for any other language that you might be considering.
The experts cannot help you. They know too much about their favourite language and they are highly skilled in using that language. You need to make this decision for yourself, and not just blindly copy the expert's decision.
And finally, consider what happens when a person who knows virtually nothing, asks for an expert opinion. They will get a huge number of possible answers and something like 90% of those answers come from a person with average skill or lower in the tool that they recommend. They seem like an expert to you because you don't know any better. The end result of this, repeated a few dozen times, is what gave the world PHP.
Do you want to risk falling into this trap? http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-de...