Article View: pl.comp.programming
Article #216719Re:Czemu Python jest jaki jest?
From: slawek
Date: Fri, 03 Jan 2020 09:04
Date: Fri, 03 Jan 2020 09:04
53 lines
2947 bytes
2947 bytes
"M.M." <m@g.c> Wrote in message:
>Często czytałem że większe programy pisane w językach z dynamicznym typowaniem szybko stają się trudne w zarządzaniu, nawet powtarzałem tę opinię. Ale nie wiem ile w tym prawdy. Jakie jest uzasadnienie?
Dlaczego w tym języku można efektywnie tworzyć oprogramowanie pod
warunkiem że nie przekracza 5tys linii, w tym do 100tys, a w
jeszcze innym do milionów?
Ja szacuję to tak, że 100 tysięcy LOC to jest to robota dla np.
10, może 30 programistów. Czyli trzeba mieć 10 programistów
doskonale znających Pythona, trzymających jeden standard
kodowania, zdyscyplinowanych i nie przeszkadzających sobie
wzajemnie. Ok. Tyle że Python nie ma narzędzi zmuszających do
zachowania porządku. Nie "pomagających" - ale właśnie
zmuszających.
Czy na pewno nadal rozmawiamy o języku programowania czy już o
bibliotekach? Pół miliona to 100 razy więcej niż 5tys. W C++ też
pisze się efektywnie, ale trzeba mieć odpowiednie
biblioteki.
W C++ też to można zrobić w 50 linijkach, kwestia bibliotek.
Owszem. Ale dla C++ nie ma PyPI - repozytorium ogólnie dostępnych
bibliotek z sensowną licencją. Prosty przykład - w Pythonie jest
matplotlib - a w C++ jest... No właśnie, nie ma czegoś
takiego.
3. Siłą Pythona jest abstrakcja - patrz niżej:
def commute(a, b): return a*b - b*a
Dowcip w tym ze definicja commute jest zupełnie ogólna - mogą tam
być zwkłe int, mogą być macierze, mogą być operatory różniczkowe.
Niby w C++ też, ale zapis jest z lekka rozwlekły:
template< class T >
void compute(T &a, T &b) { return a*b - b*a; }
Niezupełnie. Powinno być:
template<class Ta, class Tb, class T>
T compute(Ta a, Tb b) { return a*b - b*a; }
Ups, klasa T jest nieustalona
4. Python ma parę PASKUDNYCH wad.
a. Brak odporności na inżynierię odwrotną.
b. Brak sensownej wielowątkowości. Patrz GIL.
c. Ogromny rozmiar exe - dla hello world to około 30 mega.
d. Czasami 1000 wolniej działa niż to samo w C++.
e. Totalnie olane kwestie bezpieczeństwa.
f. Problematyczna implementacja niektórych operacji wbudowanych w
sam język.
Technical Details
Message-ID:
<qun02d$i3d$1@news.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mailReferences:
<913ee55b-6577-46ef-8ef2-92c748a43610@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail From: slawek <x.y@org.org> Newsgroups: pl.comp.programming Subject: Re:Czemu Python jest jaki jest? Date: Fri, 3 Jan 2020 10:04:11 +0100 (GMT+01:00) Organization: news.icm.edu.pl Lines: 53 Message-ID: <qun02d$i3d$1@news.icm.edu.pl> References: <913ee55b-6577-46ef-8ef2-92c748a43610@googlegroups.com> NNTP-Posting-Host: eim157.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: news.icm.edu.pl 1578042253 18541 83.15.68.157 (3 Jan 2020 09:04:13 GMT) X-Complaints-To: usenet@news.icm.edu.pl NNTP-Posting-Date: Fri, 3 Jan 2020 09:04:13 +0000 (UTC) X-Newsreader: PiaoHong.Usenet.Client.Free:1.65 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit