Python vs Bash - w jakich zadaniach każde z nich wyprzedza inne pod względem wydajności? [Zamknięte]


97

Oczywiście Python jest bardziej przyjazny dla użytkownika, szybkie wyszukiwanie w google pokazuje wiele wyników, które mówią, że ponieważ Python jest kompilowany bajtowo, jest zwykle szybszy. Znalazłem nawet to, które twierdzi, że widać poprawę o ponad 2000% w przypadku operacji opartych na słownikach.

Jakie masz doświadczenie w tej sprawie? W jakich zadaniach każdy jest wyraźnym zwycięzcą?

Odpowiedzi:


96

Typowy przepływ w komputerze mainframe ...

Input Disk/Tape/User (runtime) --> Job Control Language (JCL) --> Output Disk/Tape/Screen/Printer
                                   |                          ^
                                   v                          |
                                   `--> COBOL Program --------' 

Typowy przepływ Linuksa ...

Input Disk/SSD/User (runtime) --> sh/bash/ksh/zsh/... ----------> Output Disk/SSD/Screen/Printer
                                   |                          ^
                                   v                          |
                                   `--> Python script --------'
                                   |                          ^
                                   v                          |
                                   `--> awk script -----------'
                                   |                          ^
                                   v                          |
                                   `--> sed script -----------'
                                   |                          ^
                                   v                          |
                                   `--> C/C++ program --------'
                                   |                          ^
                                   v                          |
                                   `--- Java program ---------'
                                   |                          ^
                                   v                          |
                                   :                          :

Powłoki są klejem Linuksa

Powłoki Linuksa, takie jak sh / ksh / bash / ..., zapewniają funkcje wyznaczania wejścia / wyjścia / kontroli przepływu, podobnie jak stary język sterowania zadaniami na komputerze mainframe ... ale na sterydach! Są kompletnymi językami Turinga , będąc jednocześnie zoptymalizowanymi pod kątem wydajnego przekazywania danych i kontroli do iz innych procesów wykonawczych napisanych w dowolnym języku obsługiwanym przez system operacyjny.

Większość aplikacji Linuksa, niezależnie od języka, w którym napisana jest większość programu, zależy od skryptów powłoki, a Bash stał się najbardziej powszechny. Kliknięcie ikony na pulpicie zwykle uruchamia krótki skrypt Bash . Ten skrypt, bezpośrednio lub pośrednio, wie, gdzie znajdują się wszystkie potrzebne pliki i ustawia zmienne oraz parametry wiersza poleceń, ostatecznie wywołując program. To najprostsze zastosowanie powłoki.

Linux, jaki znamy, nie byłby Linuksem bez tysięcy skryptów powłoki, które uruchamiają system, reagują na zdarzenia, kontrolują priorytety wykonywania oraz kompilują, konfigurują i uruchamiają programy. Wiele z nich jest dość dużych i złożonych.

Powłoki zapewniają infrastrukturę, która pozwala nam używać gotowych komponentów, które są ze sobą połączone w czasie wykonywania, a nie w czasie kompilacji. Komponenty te są samodzielnymi programami, których można używać samodzielnie lub w innych kombinacjach bez konieczności ponownej kompilacji. Składnia ich wywoływania jest nie do odróżnienia od składni wbudowanego polecenia Bash , aw rzeczywistości istnieje wiele wbudowanych poleceń, dla których istnieje również samodzielny plik wykonywalny w systemie, często mający dodatkowe opcje.

Nie ma różnicy w wydajności między językami Python i Bash . Zależy to całkowicie od sposobu kodowania każdego z nich i wywoływanych narzędzi zewnętrznych.

Każde z dobrze znanych narzędzi, takich jak awk, sed, grep, bc, dc, tr itp., Pozostawi wykonywanie tych operacji w dowolnym języku na uboczu. Bash jest zatem preferowany w przypadku wszystkiego, co nie ma graficznego interfejsu użytkownika, ponieważ wywoływanie i przekazywanie danych z narzędzia takiego jak Bash jest łatwiejsze i bardziej wydajne niż z Pythona .

Występ

Zależy to od programów wywoływanych przez skrypt powłoki Bash i ich przydatności do podanego podzadania, czy ogólna przepustowość i / lub responsywność będą lepsze, czy gorsze niż w równoważnym Pythonie . Aby skomplikować sprawę, Python , podobnie jak większość języków, może również wywoływać inne pliki wykonywalne, chociaż jest to bardziej uciążliwe i przez to rzadziej używane.

Interfejs użytkownika

Jednym z obszarów, w którym Python jest wyraźnym zwycięzcą, jest interfejs użytkownika. To sprawia, że ​​jest to doskonały język do tworzenia aplikacji lokalnych lub klient-serwer, ponieważ natywnie obsługuje grafikę GTK i jest znacznie bardziej intuicyjny niż Bash .

Bash rozumie tylko tekst. Inne narzędzia muszą być wywoływane w celu uzyskania GUI i danych zwrotnych z nich. Python skrypt jest jedna opcja. Szybszymi, ale mniej elastycznymi opcjami są pliki binarne, takie jak YAD, Zenity i GTKDialog .

Podczas gdy powłoki takie jak Bash działają dobrze z GUI, takimi jak Yad , GtkDialog (osadzony interfejs podobny do XML z funkcjami GTK +) , dialog i xmessage , Python jest znacznie bardziej wydajny i lepszy dla złożonych okien GUI.

Podsumowanie

Budowanie za pomocą skryptów powłoki przypomina składanie komputera z gotowymi komponentami, tak jak komputery stacjonarne.

Budowanie za pomocą Pythona , C ++ lub większości innych języków przypomina raczej budowanie komputera przez lutowanie układów scalonych (bibliotek) i innych części elektronicznych, tak jak smartfony.

Najlepsze wyniki zwykle uzyskuje się, używając kombinacji języków, w których każdy może robić to, co robi najlepiej. Jeden z programistów nazywa to „ programowaniem poliglotowym ”.


17
Nie potrafię rozpoznać, jak można przyjąć odpowiedź. Nie daje wglądu w to, do jakich zadań te dwie osoby są bardziej odpowiednie.
strażnik

2
@vigilancer Mam nadzieję, że właśnie opublikowane modyfikacje i dodatki są pomocne.
DocSalvager

1
Chociaż zgadzam się z innymi komentarzami, to nie odpowiada dokładnie na pytanie. To jedna z najlepszych odpowiedzi, jakie kiedykolwiek czytałem!
Jim Mitchener,

72

Ogólnie bash działa lepiej niż python tylko w tych środowiskach, w których python nie jest dostępny. :)

Poważnie, muszę codziennie radzić sobie z oboma językami i jeśli dana mi możliwość wyboru, od razu przejmę Pythona nad bash. Niestety, jestem zmuszony używać basha na pewnych „małych” platformach, ponieważ ktoś (omyłkowo, IMHO) zdecydował, że Python jest „za duży”, aby się zmieścić.

Chociaż prawdą jest, że bash może być szybszy niż Python w przypadku niektórych wybranych zadań, nigdy nie może być tak szybki, ani tak łatwy w utrzymaniu (przynajmniej po przekroczeniu 10 linii kodu). Jedyną mocną stroną Basha w stosunku do pythona, rubinu, lua itp. Jest jego wszechobecność.


5
Czy Python nie jest już dostępny na każdym Linuksie / Uniksie, nawet MacOS? Jestem ciekaw, jakie operacje są szybsze w bashu - z tego, co zrozumiałem, wywołanie różnych oddzielnych poleceń sprawia, że ​​jest znacznie wolniejsze niż polecenia Pythona oslub shutilmodułu.
NoBugs

1
@NoBugs To zdecydowanie nie byłoby w każdej dystrybucji Linuksa / Uniksa. Prawie na pewno występuje w każdej większej dystrybucji Linuksa (np. Dystrybucjach opartych na Debianie, Slackware itp.) I Mac OS X, jednak jeśli zbudujesz własne ISO z yocto ( yoctoproject.org ), nie możesz go mieć, ponieważ sam dostosowujesz każdy pakiet. Ale prawdopodobnie można bezpiecznie powiedzieć, że dla każdego większego systemu operacyjnego Unix obecnie-a-dni, będzie on instalowany z pythonem2 (przynajmniej) i być może również pythonem3.
dylnmc

Python to doskonały język skryptowy do złożonych zadań, takich jak w pełni funkcjonalny graficzny interfejs użytkownika. Co równie ważne, wymusza dobre praktyki programistyczne, dzięki czemu programy są łatwiejsze w utrzymaniu. Bash wymaga narzucenia dobrych praktyk, których nauczył się gdzie indziej, aby można go było utrzymać. Robiąc to i używając narzędzia dialogowego GUI lub Pythona dla interfejsu użytkownika, zapewnia doskonałą wydajność (dzięki niezwykle szybkim programom narzędziowym wywoływanym z Bash), a także dobry UX.
DocSalvager

34

Wydajność programisty ma dla mnie znacznie większe znaczenie w scenariuszach, w których zarówno bash, jak i Python są rozsądnymi wyborami.

Niektóre zadania dobrze nadają się do basha, a inne do Pythona. Nie jest też niezwykłe, że zaczynam coś jako skrypt bash i zmieniam go na Pythona, ponieważ ewoluuje przez kilka tygodni.

Dużą zaletą Pythona są narożne przypadki związane z obsługą nazw plików, podczas gdy ma on glob , shutil , podproces i inne dla typowych potrzeb skryptów.


5
Pytanie miało na celu porównanie wydajności, które oznacza wydajność maszyny, a nie wydajność programisty. Zobacz moje testy wydajności w innej odpowiedzi.
Grzegorz Luczywo

26

Podczas pisania skryptów wydajność nie ma znaczenia (w większości przypadków).
Jeśli zależy Ci na wydajności 'Python vs Bash' to fałszywe pytanie.

Python :
+ łatwiejszy do pisania
+ łatwiejszy w utrzymaniu
+ łatwiejsze ponowne wykorzystanie kodu (spróbuj znaleźć uniwersalny, odporny na błędy sposób dołączania plików ze wspólnym kodem sh, ośmielam się)
+ możesz też z nim zrobić OOP!
+ łatwiejsze analizowanie argumentów. cóż, nie łatwiej, dokładnie. nadal będzie to zbyt rozwlekłe jak na mój gust, ale Python ma argparsewbudowaną funkcję .
- brzydki brzydki „podproces”. spróbuj łączyć polecenia i nie wypłakiwać rzeki, jak brzydki stanie się twój kod. zwłaszcza jeśli zależy Ci na kodach wyjścia.

Bash :
+ wszechobecność, jak powiedziano wcześniej, rzeczywiście.
+ łańcuch prostych poleceń. w ten sposób w prosty sposób sklejasz ze sobą różne polecenia. Również Bash(nie sh) mają pewne ulepszenia, na przykład pipefail, więc łańcuchy są naprawdę krótkie i wyraziste.
+ nie wymagają instalowania programów innych firm. można wykonać od razu.
- Boże, jest pełna pułapek. IFS, CDPATH… tysiące z nich.

Jeśli piszesz skrypt większy niż 100 LOC: wybierz Python
Jeśli potrzebujesz manipulacji ścieżką w skrypcie: wybierz Python (3)
Jeśli potrzebujesz trochę podobnego, aliasale nieco skomplikowanego: wybierz Bash / sh

W każdym razie należy spróbować obu stron, aby zorientować się, do czego są zdolni.

Być może odpowiedź można rozszerzyć o pakiety i punkty wsparcia IDE, ale nie znam tych stron.

Jak zwykle do wyboru jest kanapka z łajnem i olbrzymi natrysk. I pamiętaj, jeszcze kilka lat temu Perl był nową nadzieją. Gdzie to jest teraz.


4
Tak, kod z bash żyje wiecznie. Zakodowałem dużo Perla, są teraz bezużyteczne.
Raymond gsh

Tylko dla perspektywy ... Obecnie największy skrypt, jaki napisałem, i którego używam codziennie, waży 4121 linii rzeczywistego kodu bash bez komentarza lub pustej linii. Dzięki rozbudowanym komentarzom i tym podobnym, to 7261 linii. Towarzyszy mu plik pomocy z dokumentacją podobną do strony podręcznika dla każdej funkcji, która zawiera kolejne 6650 wierszy. Każda funkcja ma opcję, która może natychmiast pobrać i wyświetlić jej tekst pomocy w najlepszej dostępnej formie wyjściowej, która obecnie zawiera 3 wersje YAD, Zenity, dialog lub po prostu zwykły tekst CLI. Nazywam to „zestawem”. jest w wersji 44 w chwili pisania tego tekstu.
DocSalvager

To jest cieżkie! (c)
strażnik

1
Nie sądzę, aby LoC był naprawdę czynnikiem decydującym o wyborze Pythona. Co więcej, jak złożone jest zadanie, które wykonujesz? Jeśli łączysz tylko 100 poleceń, to prawdopodobnie w porządku, jeśli w bashu jest tylko 30 LoC, ale może być łatwiejsze do zrozumienia w Pythonie - użyj Pythona.
JFord

@Akito jest w porządku, kiedy nic go nie dotyka. ale jest kilka sytuacji, w których coś może pójść nie tak. ustawiłeś go na inny niż domyślny i zapomniałeś go wyczyścić. coś z zewnątrz go zmieniło, ale twój skrypt opiera się na domyślnych i tak dalej. zawsze należy pamiętać o IFS, ponieważ niektóre narzędzia domyślnie go używają.
strażnik

22

Pod względem wydajności bash przewyższa Pythona w czasie uruchamiania procesu.

Oto kilka pomiarów z mojego laptopa Core i7 z systemem Linux Mint:

Starting process                       Startup time

empty /bin/sh script                   1.7 ms
empty /bin/bash script                 2.8 ms
empty python script                    11.1 ms
python script with a few libs*         110 ms

* Biblioteki ładowane w Pythonie to: os, os.path, json, time, request, threading, subprocess

Pokazuje to ogromną różnicę, jednak czas wykonania basha szybko się zmniejsza, jeśli musi zrobić coś rozsądnego, ponieważ zwykle musi wywoływać procesy zewnętrzne.

Jeśli zależy Ci na wydajności, używaj basha tylko do:

  • naprawdę proste i często nazywane skryptami
  • skrypty, które głównie wywołują inne procesy
  • kiedy potrzebujesz minimalnego tarcia między ręcznymi działaniami administracyjnymi a skryptami - szybko sprawdź kilka poleceń i umieść je w pliku file.sh

... i /bin/echoprzewyższa bash o taką wielkość, że trudno to zmierzyć. Więc zamiast uruchamiać bash, możesz użyć /bin/echo mycommand > named_pipe(wyślij polecenia / komunikaty do nazwanego potoku lub gniazda) ... i mieć w tle proces Pythona odczytujący polecenia / instrukcje z tego potoku i uruchamiający je. Więc bash nie jest dobrą „optymalizacją kosztów początkowych”.
Cezary Bagiński

Zwykle powinieneś używać wątków zamiast procesów, gdy zadanie jest naprawdę krótkie i szybkie. Wiele procesów to kwestia wysokiego poziomu i tak długo, jak rozpoczęcie jednego następuje w ciągu pół sekundy, wydaje się to całkiem rozsądne w większości, prawda?
Timothy Swan

16

Bash to przede wszystkim język skryptowy wsadowy / powłoki, który obsługuje znacznie mniej różnych typów danych i wszelkiego rodzaju dziwactwa wokół struktur kontrolnych - nie wspominając o problemach ze zgodnością.

Który jest szybszy? Ani też, ponieważ nie porównujesz tutaj jabłek z jabłkami. Gdybyś musiał posortować plik tekstowy ascii i używałeś narzędzi takich jak zcat, sort, uniq i sed, to spalisz Pythona pod względem wydajności.

Jeśli jednak potrzebujesz odpowiedniego środowiska programistycznego, które obsługuje zmiennoprzecinkowe i różne przepływy sterowania, to Python wygrywa. Jeśli napisałeś, powiedzmy, algorytm rekurencyjny w Bash i Pythonie, wersja Pythona wygra w rzędzie wielkości lub więcej.


13
Więc cały morał mojej tyrady brzmi: używaj odpowiedniego narzędzia do właściwej pracy.
Justin

2
zmiennoprzecinkowy jest obsługiwany przez narzędzia takie jak awk, bc i powłoki takie jak zsh / ksh, więc dlaczego mówisz, że Python wygrywa bez wysiłku?
ghostdog74

4
Ponieważ te narzędzia nie są Bash. Wskazałem na wyraźną różnicę. Te narzędzia są używane w skrypcie powłoki, ale sam natywny Bash nie obsługuje zmiennoprzecinkowych.
Justin

2
Nie. Spróbuj sam. gzip duży plik dziennika i użyj zcat, sort itp., aby przeprowadzić filtrowanie, a następnie użyj natywnych bibliotek Pythona. Dzięki natywnym narzędziom jest znacznie szybszy.
Justin

6
@justin, tak, te narzędzia nie są Bash, ale istnieją od czasów starożytnych i są często używane w skryptach powłoki. jeśli chcesz zmiennoprzecinkowe, użyj awk / bc. Jest to połączenie tych narzędzi, które sprawiają, że skrypty powłoki są tak samo wydajne jak Python.
ghostdog74

12

Jeśli chcesz połączyć szybkie narzędzie przy minimalnym wysiłku, bash jest dobry. W przypadku opakowania do aplikacji bash jest nieoceniony.

Wszystko, co może sprawić, że będziesz wracać w kółko w celu dodania ulepszeń, prawdopodobnie (choć nie zawsze) lepiej pasuje do języka takiego jak Python, ponieważ kod Bash zawierający ponad 1000 linii jest bardzo trudny w utrzymaniu. Kod Bash również irytuje debugowanie, gdy robi się długi .......

Część problemu z tego rodzaju pytaniami wynika z mojego doświadczenia, że ​​skrypty powłoki są zwykle zadaniami niestandardowymi. Było bardzo mało zadań związanych ze skryptami powłoki, z którymi się spotkałem, w przypadku których istnieje już dostępne bezpłatnie rozwiązanie.


8

Są 2 scenariusze, w których wydajność Bash jest co najmniej równa, jak sądzę:

  • Tworzenie skryptów narzędzi wiersza poleceń
  • Skrypty, których wykonanie zajmuje tylko chwilę; gdzie uruchomienie interpretera języka Python zajmuje więcej czasu niż sama operacja

To powiedziawszy, zazwyczaj nie przejmuję się wydajnością samego języka skryptowego. Jeśli wydajność jest poważnym problemem, nie wykonujesz skryptów, ale programujesz (prawdopodobnie w Pythonie).


4

Piszę tę późną odpowiedź głównie dlatego, że Google lubi to pytanie.

Uważam, że problem i kontekst naprawdę powinny dotyczyć przepływu pracy, a nie narzędzi. Ogólna filozofia zawsze brzmi: „Używaj właściwego narzędzia do pracy”. Ale zanim to nastąpi, wielu często zapomina, kiedy gubią się w narzędziach: „Wykonaj zadanie”.

Kiedy mam problem, który nie jest do końca zdefiniowany, prawie zawsze zaczynam od Basha. Rozwiązałem kilka trudnych problemów w dużych skryptach Bash, które są zarówno czytelne, jak i możliwe do utrzymania.

Ale kiedy problem zaczyna przekraczać to, o co należy poprosić Basha? Mam kilka czeków, których używam, aby ostrzegać mnie:

  1. Czy chciałbym, żeby Bash miał tablice 2D (lub wyższe)? Jeśli tak, czas uświadomić sobie, że Bash nie jest świetnym językiem przetwarzania danych.
  2. Czy wykonuję więcej pracy przygotowując dane dla innych narzędzi, niż w rzeczywistości używam tych narzędzi? Jeśli tak, jeszcze raz zdaj sobie sprawę, że Bash nie jest świetnym językiem przetwarzania danych.
  3. Czy mój skrypt staje się po prostu zbyt duży, aby go zarządzać? Jeśli tak, ważne jest, aby zdać sobie sprawę, że chociaż Bash może importować biblioteki skryptów, brakuje mu systemu pakietów, takiego jak inne języki. W porównaniu z większością innych jest to naprawdę język typu „skręć swój własny”. Z drugiej strony ma ogromną wbudowaną funkcjonalność (niektórzy mówią za dużo ...)

I tak dalej. Podsumowując, kiedy ciężej pracujesz, aby utrzymać uruchomione skrypty, dodając funkcje, czas opuścić Bash.

Załóżmy, że zdecydowałeś się przenieść swoją pracę do Pythona. Jeśli twoje skrypty Bash są czyste, początkowa konwersja jest dość prosta. Jest nawet kilku konwerterów / tłumaczy, którzy wykonają za Ciebie pierwszy przebieg.

Następne pytanie brzmi: Czego rezygnujesz z przejścia na Python?

  1. Wszystkie wywołania zewnętrznych narzędzi muszą być opakowane w coś z subprocessmodułu (lub odpowiednika). Można to zrobić na wiele sposobów, a do wersji 3.7 trzeba było trochę wysiłku, aby to zrobić dobrze (wersja 3.7 została ulepszona, subprocess.run()aby samodzielnie obsługiwać wszystkie typowe przypadki).

  2. Co zaskakujące, Python nie ma żadnego standardowego, niezależnego od platformy narzędzia nieblokującego (z limitem czasu) do odpytywania klawiatury (stdin). Polecenie Bash readto niesamowite narzędzie do prostej interakcji z użytkownikiem. Moim najczęstszym zastosowaniem jest wyświetlanie pokrętła, dopóki użytkownik nie naciśnie klawisza, jednocześnie uruchamiając funkcję odpytywania (z każdym krokiem pokrętła), aby upewnić się, że wszystko działa dobrze. Jest to trudniejszy problem, niż mogłoby się wydawać na początku, więc często po prostu dzwonię do Bash: Drogi, ale robi dokładnie to, czego potrzebuję.

  3. Jeśli programujesz w systemie osadzonym lub z ograniczoną pamięcią, zużycie pamięci w Pythonie może być wielokrotnie większe niż w Bash (w zależności od wykonywanego zadania). Ponadto prawie zawsze w pamięci jest już wystąpienie Bash, co może nie mieć miejsca w przypadku Pythona.

  4. W przypadku skryptów, które działają raz i szybko się zamykają, czas uruchamiania Pythona może być znacznie dłuższy niż Bash. Ale jeśli skrypt zawiera znaczące obliczenia, Python szybko idzie do przodu.

  5. Python ma najbardziej wszechstronny system pakietów na świecie. Kiedy Bash staje się nawet nieco skomplikowany, Python prawdopodobnie ma pakiet, który sprawia, że ​​całe fragmenty Bash stają się pojedynczym wywołaniem. Jednak znalezienie odpowiedniego pakietu (pakietów) do użycia jest największą i najbardziej zniechęcającą częścią zostania Pythonistą. Na szczęście Google i StackExchange to Twoi przyjaciele.


2

Nie wiem, czy to jest dokładne, ale odkryłem, że Python / Ruby działa znacznie lepiej w przypadku skryptów, które mają dużo obliczeń matematycznych. W przeciwnym razie musisz użyćdc lub innego "kalkulatora z dowolną dokładnością". To po prostu staje się bardzo dużym bólem. W Pythonie masz znacznie większą kontrolę nad liczbami zmiennoprzecinkowymi w porównaniu z intami i znacznie łatwiej jest wykonać wiele obliczeń, a czasami.

W szczególności nigdy nie pracowałbym ze skryptem bash do obsługi informacji binarnych lub bajtów. Zamiast tego użyłbym czegoś takiego jak python (być może) lub C ++ lub nawet Node.JS.


Arytmetyka Bash jest ściśle całkowitoliczbowa, więc musisz wykonywać operacje zmiennoprzecinkowe, wywołując coś innego (np. Awk lub dc) i przechwytując z tego wynik. Proste działania pieniężne można często wykonać wewnętrznie, mnożąc je przez 100 i dostosowując przecinek dziesiętny na wyjściu.
DocSalvager,

0

Jeśli chodzi o wydajność, oba mogą robić to samo, więc pojawia się pytanie, które oszczędza więcej czasu na rozwój?

Bash polega na wywoływaniu innych poleceń i przekazywaniu ich do tworzenia nowych. Ma to tę zaletę, że można szybko tworzyć nowe programy, używając tylko kodu pożyczonego od innych osób, niezależnie od używanego przez nich języka programowania.

Ma to również efekt uboczny polegający na dość dobrym oporze przed zmianą poleceń podrzędnych, ponieważ interfejs między nimi to zwykły tekst.

Dodatkowo Bash jest bardzo liberalny, jeśli chodzi o to, jak można na nim pisać. Oznacza to, że będzie działać dobrze w szerszej gamie kontekstów, ale opiera się również na zamiarze programisty, który ma zamiar kodować w czysty i bezpieczny sposób. W przeciwnym razie Bash nie powstrzyma Cię przed budowaniem bałaganu.

Python jest bardziej zbudowany pod względem stylu, więc niechlujny programista nie będzie tak bałaganiarski. Będzie również działać w systemach operacyjnych poza Linuksem, dzięki czemu będzie od razu bardziej odpowiedni, jeśli potrzebujesz tego rodzaju przenośności.

Ale wywoływanie innych poleceń nie jest tak proste. Więc jeśli twój system operacyjny to Unix, najprawdopodobniej okaże się, że programowanie w Bash jest najszybszym sposobem na rozwój.

Kiedy używać Bash:

  • Jest to program nie graficzny lub silnik programu graficznego.
  • To jest tylko dla Uniksa.

Kiedy używać Pythona:

  • To program graficzny.
  • Powinien działać w systemie Windows.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.