2010-06-08 11 views
6

Przeczytałem to wczoraj wieczorem post i to mnie zmusiło. Lubię pytony i "baterie", pypi i tym podobne. Ale zrobiłem tylko Pythona solo. Nigdy nie próbowałem tego w zespole.Czy Python działa w większych zespołach?

Czy punkty, które Ted wspomina, są ważne? Jeśli tak, jak zespoły radzą sobie z nimi? Czy Python działa w zespołach, a nawet w dużych zespołach? Czy to zabija produktywność?

Osobiście widzę problemy, o których wspomina, kiedy wracam do mojego starego kodu. Nawet gdy pracuję z innymi modułami, czasami muszę zajrzeć do środka. Chciałbym usłyszeć ludzi z doświadczeniem w tym zakresie.

+5

Wydaje się, że robi to źle. Przynajmniej, nawet jeśli kod, który napotkał, nie jest robiony w ten sposób, nic nie stoi na przeszkodzie, by zespół programistów poprawnie dokumentował ich kod (za pomocą docstrukcji itp.), Tak aby dokumentacja zawierała informacje o tym, co nie jest powiedziane przez kod ze względu na brak pisania statycznego. A ponieważ Python jest językiem interpretowanym i często uruchamianym z interpretera, uzyskanie dokumentacji dla metody jest tak proste jak zaimportowanie metody i wpisanie 'help ([nazwa_metody]). (Problem polegałby na tym, że musieliby właściwie udokumentować swój kod, jak sądzę.) – JAB

+0

autor postu nie jest przyzwyczajony do stylu pytonicznego. nie wspomina o doc-stringach. Czytałem doc-stringi. Przeczytałbym dokumentację. Oczekuję, że zespół pracujący nad biblioteką Pythona albo wszystko udokumentuje, albo zbuduje coś, co wymyślę, jak z niego korzystać, bez czytania całego ich kodu. Pierwszą rzeczą, na którą patrzę, kiedy zacznę korzystać z biblioteki, nie są w ogóle sygnatury funkcji, to przypadki testowe i główna aplikacja "main.py" zawierająca kod uruchamiania i zamykania. –

+1

Co do zasady staram się nie przejmować kwestiami poruszanymi przez blogerów, którzy nie są w stanie wyrazić siebie bez wulgaryzmów. Pomyśl o tym jako o "zapachu argumentu". –

Odpowiedz

13

Python działa poprawnie w zespołach. To, czy język działa w dużych zespołach, jest w dużej mierze czynnikiem wpływającym na to, jak dobrze zespół współpracuje i ma niewiele wspólnego z językiem.

7

Obecnie pracuję nad dużą aplikacją Django, w mojej poprzedniej pracy pracowałem nad dużym projektem Java (aplikacja komputerowa, a nie w sieci, ale nadal jest odpowiednia do tej dyskusji) i jestem trochę rozdarty między zgodą a nie zgadzam się z autorem.

Podczas gdy ja lubię Python przez Javę i mam duże doświadczenie w pracy z innymi dynamicznie pisanymi językami, takimi jak Ruby i Objective-C, nadal nie jestem przekonany, który jest lepszy (statyczny vs. dynamiczny). Czasem w Python-land myślę, że byłoby ładniej mieć statyczne typy i kompilator, aby zapobiec błędom; Nie lubię modelu typu Java, ale Scala ma porządny system typów, który nie przeszkadza, ale zapobiega wielu błędom.

To powiedziawszy, uważam, że sukcesy/niepowodzenia w korzystaniu z Pythona lub Javy mają więcej wspólnego z doświadczeniem i doświadczeniem zespołu. Wydaje mi się, że artykuł ten byłby lepiej zatytułowany "Straying from Java denerwuje mnie", ponieważ autor zdaje się głównie mówić: "Mam doświadczenie z Javą, nie rozumiem/nie mam doświadczenia z Pythonem. wygodniejsze pisanie kodu Java. " Myślę, że doświadczeni programiści Pythona uczą się pracować z/wokół większości "problemów", które on postrzega; Python nie jest językiem Java i wymaga innego podejścia do programowania.

miałem też trochę chichotać na tej linii:

Java posiada dobrze przemyślane hierarchii sprawdzonych i uruchomieniowych wyjątkami.

Myślę, że większość zgodzi się, że hierarchia wyjątków Java jest niejasna w najlepszym wypadku, i że sprawdzane wyjątki były opłacalne, ale nie eksperyment, który tak naprawdę nie uczynić kod bardziej wytrzymałe (przypuszczam robią jeżeli są stosowane prawidłowo, ale ilu programistów Java używa wyjątków poprawnie?).

+0

Hierarchia wyjątków poprawiła się, zaczynając od 5 – Justin

+0

typu Java, która jest do dupy z powodu wysokiego poziomu hałasu i wymaganego standardu. jednak bloger nie ma nic przeciwko temu. –

0

Rzeczywiście, Python działa w dużych zespołach, ale jeśli porównasz go do innych języków, to z pewnością ma on pewne wady. Po pierwsze, istnieje więcej narzędzi związanych z zespołami, takich jak C# i Java. Pracowałem w Eclipse nad dużymi projektami zarówno w Pythonie, jak iw Javie, a integracja zespołu działała lepiej w Javie, w szczególności generowanie dokumentów i automatyczne formatowanie.

Jedną z rzeczy, które bardzo podobały mi się podczas pracy nad dużym projektem Pythona, była czytelność. W Javie dużo częściej chodziłem do programistów, aby wyjaśnić kod, ale Python był łatwiejszy do zrozumienia. Oczywiście może to być również spowodowane zakodowaniem tych dwóch programów, ich kodowaniem i moją zdolnością w obu językach.

1

Pracowałem nad zespołami używającymi języka Java i pracuję obecnie nad zespołem przy użyciu Pythona.Biorąc wszystko pod uwagę, powiedziałbym, że kod Pythona jest znacznie bardziej precyzyjny i znacznie łatwiejszy do zrozumienia niż kod Java, który stworzyły moje inne zespoły. Całość "Powinna istnieć jedna - a najlepiej tylko jedna - w oczywisty sposób to zrobić" mantra pomaga niezmiernie.

Zgadzam się z punktem autora dotyczącym PyDev ... mój zespół korzysta z PyCharm przez ostatnie kilka miesięcy i był NIESAMOWITY !!!

Punkt widzenia autora na temat wyjątków Pythona, moim zdaniem, nie jest bardzo dobry. W świecie Java większość sprawdzonych wyjątków (wyjątki wyszczególnione po słowach kluczowych "throws" w definicjach metod) są zwykle po prostu przechwytywane i ponownie zgłaszane jako wyjątki środowiska wykonawczego. Powszechnie uważa się, że Java nie powinna mieć nawet sprawdzonych wyjątków i zamiast tego używa systemu wyjątków bliżej tego, czym jest obecnie Python. See this article for more about Java's checked exceptions..

Podsumowując, uważam, że praca w zespole z Python vs. Java - wolę Pythona. Pracowałem w zespołach zajmujących się Javą przez 6 lat i w zespole wykonującym Python przez 6 miesięcy i widziałem ogromne korzyści w zakresie wydajności dzięki czystej, czytelnej składni Pythona.

+0

pycharm za kilka miesięcy? To nie jest nawet na sprzedaż i jest tylko 45-dniowy okres. – Kugel

+0

Tak, przez ostatnie kilka miesięcy ... istnieje publiczny podgląd, który jest bezpłatny i stale publikują nowe wersje. http://confluence.jetbrains.net/display/PYH/JetBrains+PyCharm+Preview –

Powiązane problemy