Learning a new language
My grievances with Python.
Every language has its drawbacks. Object Oriented Javascript is a headache but I’ll leave that rant for another post. After working with Python for 4 months, I found myself missing some features from other languages.
Here are some issues I’ve faced when programming in Python:
- Concurrency: Threading is super slow thanks to the Global Interpreter Lock. Also, the threading module is quite beta.
- Object Orientation: I hate OOP in Python. Everyone who’s programmed in Python has probably come across the dreaded Diamond Problem. I’d love Python Interfaces but thats a bit of a longshot. Modules like PyProtocols could mitigate this issue for now but I’d love to see it as a part of the standard library.
- Type safety: When code hasn’t been properly documented, it’s hard to find the type of a variable. If there are many layers of indirection, the only ways you can really find the name of a variable is by putting a breakpoint in the script or by printing the type of the object.
- Std Library: The standard library is missing a ton of very useful modules. Modules like BeautifulSoup, Numeric and mechanize are super useful and really should be considered standard on any Python installation.
- Monkey Patching: As useful as this may be, it shouldn’t be allowed especially when your doing it on production machines. Need I say anymore?
Anyway, I’ve decided to start programming in a new language. After looking at the hitlist, I’ve decided to take a deep dive into Scala. Scala is the perfect mix of OOP, Functional Programming and concurrency. It might be useful in 4 months time :D
Email me when Arvin Ami publishes or recommends stories