Właśnie zacząłem uczyć się języka Python i chciałbym uzyskać więcej informacji na temat języka.
Zdaję sobie sprawę, że w wielu przypadkach Python jest wolnym językiem w stosunku do C lub C ++. Dlatego Python prawdopodobnie nie jest najlepszym wyborem dla aplikacji, które muszą działać tak szybko, jak to możliwe.
Poza tym wygląda na to, że Python jest świetnym językiem ogólnego przeznaczenia, łatwym do czytania i pisania. Dostępne biblioteki zapewniają ogromną funkcjonalność. Gdzie poza aplikacjami krytycznymi pod względem wydajności, używanie Pythona (i dlaczego) jest złym wyborem?
Odpowiedzi:
Oprogramowanie skierowane na cele wbudowane z ich ograniczonymi zasobami. Większość procesorów na tej planecie albo nie może uruchomić Pythona z powodu niewystarczających zasobów, albo nikt nie przesłał wersji do tej architektury. Większość procesorów, nawet teraz, ma mniej niż megabajt pamięci.
źródło
Dwa miejsca, które przychodzą mi do głowy, to rzeczy wymagające dużej współbieżności, do których skorzystałbym z Erlanga. Lub obliczenia numeryczne o dużej wytrzymałości, których prawdopodobnie spróbowałbym użyć w Fortranie.
źródło
Ponieważ Python jest językiem dynamicznie typowanym, bez sprawdzania czasu kompilacji, refaktoryzacja dużego projektu Pythona, który nie ma obszernych testów jednostkowych, będzie trudna.
Więc jeśli masz duży projekt, który musi być utrzymywany i modyfikowany przez długi czas, a twój zespół nie jest zaangażowany w tworzenie automatycznych testów dla wszystkiego, to lepiej jest użyć Java lub C #.
źródło
Jeśli główny nacisk kładziony jest na tworzenie GUI systemu Windows, polecam przeciwko CPython, ponieważ brakuje dobrych projektantów formularzy (w porównaniu do używania .Net).
Jednak IronPython działa na .Net, a do wyboru są dwa środowiska IDE z projektantami formularzy: Visual Studio i SharpDevelop. W rzeczywistości narzędzia Python Tools dla Visual Studio mogą być używane zarówno w CPython, jak i IronPython, co jest całkiem fajne, chociaż jeszcze tego nie próbowałem ...
źródło
To naprawdę zależy od tego, co rozumiesz przez „zły wybór”.
Jeśli masz na myśli aplikacje, w których korzystanie z Pythona jest bardzo trudne, to jest ich stosunkowo niewiele: głównym, który przychodzi na myśl i o którym jeszcze nie wspomniano, jest kod wymagający wysokiego poziomu poprawności w przypadku języków o wyrafinowanych systemach typów (Haskell, języki z typem zależnym) ) są lepszymi opcjami.
Jeśli masz na myśli aplikacje, w których Python nie jest optymalny (to znaczy, że są lepsze wybory), to jest ich więcej, ale są one również bardziej subiektywne. Na przykład, z mojego, co prawda, ograniczonego doświadczenia, praca na kompilatorach i interpretatorach jest znacznie łatwiejsza dzięki algebraicznym typom danych, dopasowaniu wzorców i bardziej funkcjonalnym funkcjom niż Python. Jednak wyczerpujące zestawienie takich aplikacji nie jest możliwe, ponieważ różnią się w zależności od osoby.
źródło
Jest idealny do szybkiego pisania skryptów ze względu na swoją ekspresyjność i szeroką gamę bibliotek pomocniczych.
Dynamiczne sprawdzanie typów i brak wyraźnej deklaracji zmiennych sprawiają, że jest to zły wybór dla dużych projektów obejmujących setki tysięcy, a nawet miliony wierszy kodu. To samo dotyczy systemów o znaczeniu krytycznym lub bezpieczeństwa. Na przykład w systemie awioniki byłoby całkowicie niedopuszczalne, aby system zawiódł z powodu błędu, który mógł zostać wykryty w czasie kompilacji.
źródło
Cóż, tak jak ty, zaczynam też od Pythona. Ale dla mnie w kontekście uczenia maszynowego i analizy danych.
Właśnie zdobyłem całą świeżą wiedzę o Javie 8 i jej nowych bibliotekach zorientowanych na strumień.
Bardzo podobało mi się płynne działanie nowych bibliotek strumieniowych Java 8 i to, jak blisko czułem się dzięki bibliotekom iskrowym Apache. Kiedy wszedłem do Pythona, oczekiwałem tego samego i jeszcze więcej.
Widziałem więcej. Ale o wiele mniej. Słaba dokumentacja, choć było jej dużo; brak płynności i faktycznie zgadywałem, czy metoda rządzi nowym przedmiotem, czy działa na tym; nic blisko mapy / zmniejszenia itp. Byłem zaskoczony, że byłem rozczarowany.
Jednak od samego początku nie spodziewałem się, jak łatwo będzie nauczyć się języka. Okazało się, że miałem rację: niespójny, nie intuicyjny, trudny do nauczenia. Ale to było moje doświadczenie bycia całkiem dobrym we wszystkim, co lubi Java.
źródło