I’ve been using Python for a little while now and I am enjoying it, but a few of my friends are telling me to start using a language like C# or Java instead and give these reasons:
- Python is a scripting language
- Python apps don’t port well to people who don’t have Python
- It’s hard to make good GUIs in Python since it’s a scripting language
I like the batteries included approach to Python and the ability to download and upload pre-built modules from PyPI is really useful to me. Is there any specific reason why Python is considered a weak language?
12
Because people readily dismiss things they don’t know much about with pseudo-intelligent rationalizations? I’m not much of a python fan, but those criticisms are bogus.
- Python is a general purpose programming language that happens to be good for scripting tasks. It’s not a weakness.
- If you want to package software written in python with an all-in-one installer, there’s almost nothing stopping you from including Python. It’s not hard; you’d have to have a platform-specific installer, but this would be true for most multi-platform apps you could build. There are even tools to make that process pretty painless; see, for example http://hackerboss.com/how-to-distribute-commercial-python-applications/
- There are plenty of good GUI solutions for Python, and any other scripting languages. For a long list of options, see http://wiki.python.org/moin/GuiProgramming
There are fair criticisms of Python that reasonable people can make, but there’s no reason to completely dismiss it based on the fact that it isn’t C# or Java. For many people, that’s a good reason TO use Python.
3
-
Python is a scripting language
- Just because a language is scripted does not immediately make it worse. It just depends on what you want to acheive with your program. If you want fast execution speed, then Python probably isn’t the right choice, but neither is Java. If you want simplicity with the ease of allowing your customers to change your source code and don’t care about speed then Python is a good choice.
-
Python apps don’t port well to people who don’t have Python
- Java and C# certaintly aren’t any better at this. C# requires the Microsoft .Net Framework or Mono, and Java requires the Java Runtime Environment. If you want a language that doesn’t require dependencies, then start writing in Assembly, or C/C++ (even in C/C++ it’s going to depend on the compiler and the options you use).
-
It’s hard to make good GUIs in Python since it’s a scripting language
- This is not completely true. Python has many GUI frameworks including Gtk, Qt, and many others. Wikipedia even has a whole page listing graphical applications built with or using Python including BitTorrent clients, games, and even ERP software. Granted it probably is easier to develop graphical applications in C# if you are using Visual Studio or an equivilant IDE. I can’t speak for Java since I personally despise it, but my understanding is that even Java requires using a widget toolkit, the most popular of which appears to be Swing.
2