Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does Python work in larger teams? [closed]

I read this post last night and it got me thinking. I like python and "batteries", pypi and such. But I've only done python solo. Never tried it in a team.

Are the points that Ted mentions valid? If they are how do teams cope with them? Does Python work in teams or even large teams? Or it kills productivity?

I personally see the problems he mentions when I come back to my old code. Even when working with other modules sometimes I need to peek inside. I would like to hear people with experience on this.

like image 258
Kugel Avatar asked Jun 08 '10 16:06

Kugel


3 Answers

Python works fine in teams. Whether a language works in large teams is largely a factor of how well the team works together, and has little to do with the language.

like image 178
Bryan Oakley Avatar answered Nov 14 '22 07:11

Bryan Oakley


I currently work on a large Django app, and in my previous job I worked on a large Java project (desktop app, not web, but still appropriate to this discussion), and I'm kind of torn between agreeing and disagreeing with the author.

While I enjoy Python over Java, and have ample experience working with other dynamically-typed languages like Ruby and Objective-C, I'm still not convinced of which is better (static vs. dynamic). Sometimes in Python-land, I do think that it would be nicer to have static types and a compiler to prevent some errors; I don't like Java's type model, but Scala has a decent type system that doesn't get in the way but prevents a lot of errors.

That said, I think the successes/failures of using Python or Java have more to do with a team's experience and background. I feel like this article would be better titled "Straying from Java makes me nervous", since the author seems to mostly be saying, "I have experience with Java. I don't understand/have experience with Python. Thus, I'm more comfortable writing Java code." I think experienced Python developers learn to work with/around most of the "problems" he perceives; Python is not Java and requires a different approach to programming.

I also had to chuckle a bit at this line:

Java has a well thought out hierarchy of checked and runtime exceptions.

I think most would agree that Java's exception hierarchy is confusing at best, and that checked exceptions were a worthwhile but failed experiment that doesn't really make code more robust (I suppose they do if used properly, but how many Java programmers use exceptions properly?).

like image 7
mipadi Avatar answered Nov 14 '22 08:11

mipadi


I've worked on teams using Java and I'm currently working on a team using Python. All things considered, I would say that the Python code is much more precise and far easier to understand than the Java code that my other teams produced. The whole "There should be one-- and preferably only one --obvious way to do it" mantra helps immensely.

I agree with the author's point about PyDev... my team has been using PyCharm for the past few months and its been AMAZING!!!

The author's point about Python's exceptions, in my opinion, isn't a very good one. In the Java world, most checked exceptions (exceptions that are listed after the 'throws' keyword on method definitions) are usually just caught and re-throws as runtime exceptions anyway. It is widely thought that Java shouldn't even have checked exceptions and instead use an exception system closer to what Python's is currently. See this article for more about Java's checked exceptions..

All in all, I think that working in a team setting with Python vs. Java - I prefer Python. I worked in teams doing Java for 6 years and on a team doing Python for 6 months and I've seen some massive productivity benefits from the clean, readable syntax of Python.

like image 1
Matthew J Morrison Avatar answered Nov 14 '22 06:11

Matthew J Morrison