Python vs Bash - Performans açısından her biri diğerini geride bırakan hangi tür görevlerde? [kapalı]


97

Açıkçası Python daha kullanıcı dostudur, Google'da hızlı bir arama, Python bayt olarak derlendiğinden genellikle daha hızlı olduğunu söyleyen birçok sonuç gösterir. Hatta buldum bu o size sözlük tabanlı operasyonlara 2000'den fazla Geliştirme% görebilirsiniz iddiaları.

Bu konudaki deneyiminiz nedir? Her biri ne tür bir görevde açık bir kazanan?

Yanıtlar:


96

Tipik ana bilgisayar akışı ...

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

Tipik Linux akışı ...

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                          |
                                   :                          :

Kabuklar Linux'un yapıştırıcısıdır

Sh / ksh / bash / ... gibi Linux kabukları , eski ana bilgisayar Job Control Language'e çok benzer şekilde girdi / çıktı / akış kontrol atama olanakları sağlar ... ama steroidler üzerinde! Onlar edilir komple dilleri Turing verimli ve O / destekleri S herhangi bir dilde yazılmış diğer yürütme süreçlerinde veri ve kontrol geçmek geliştirilmiştir ancak kendi başlarına.

Çoğu Linux uygulaması, programın büyük bir kısmının hangi dilde yazıldığına bakılmaksızın, kabuk komut dosyalarına bağlıdır ve Bash en yaygın uygulama haline gelmiştir. Masaüstündeki bir simgeye tıklamak genellikle kısa bir Bash komut dosyası çalıştırır . Bu komut dosyası, doğrudan veya dolaylı olarak, gerekli tüm dosyaların nerede olduğunu bilir ve değişkenleri ve komut satırı parametrelerini ayarlar ve sonunda programı çağırır. Bu bir kabuğun en basit kullanımıdır.

Ancak bildiğimiz haliyle Linux, sistemi başlatan, olaylara yanıt veren, yürütme önceliklerini kontrol eden ve programları derleyen, yapılandıran ve çalıştıran binlerce kabuk komut dosyası olmadan Linux olmazdı. Bunların çoğu oldukça büyük ve karmaşıktır.

Kabuklar, derleme zamanında değil çalışma zamanında birbirine bağlanan önceden oluşturulmuş bileşenleri kullanmamıza izin veren bir altyapı sağlar. Bu bileşenler, kendi başlarına veya yeniden derlenmeden başka kombinasyonlarda kullanılabilen bağımsız programlardır. Bunları çağırmanın sözdizimi, bir Bash yerleşik komutununkinden ayırt edilemez ve aslında, sistemde tek başına çalıştırılabilir olan ve genellikle ek seçeneklere sahip olan çok sayıda yerleşik komut vardır.

Performansta Python ve Bash arasında dil çapında bir fark yoktur . Tamamen her birinin nasıl kodlandığına ve hangi harici araçların çağrıldığına bağlıdır.

Awk, sed, grep, bc, dc, tr, vb. Gibi iyi bilinen araçlardan herhangi biri, bu işlemleri her iki dilde tozda yapmayı bırakacaktır. Bash daha kolay ve çağrı ile bu gibi bir araç ile ilgili veri geri geçmek için daha etkili olduğu için daha sonra bir grafiksel kullanıcı arabirimi olmadan herhangi bir şey için tercih edilir Bash daha Python .

Verim

Bash kabuk betiğinin hangi programları çağırdığına ve bunların alt görev için uygunluğuna bağlı olarak, genel verim ve / veya yanıt verme hızının eşdeğer Python'dan daha iyi veya daha kötü olup olmayacağına bağlıdır . İşleri karmaşıklaştırmak için Python , çoğu dil gibi, diğer çalıştırılabilir dosyaları da çağırabilir, ancak daha hantaldır ve bu nedenle çok sık kullanılmaz.

Kullanıcı arayüzü

Bir alan Python net kazanır kullanıcı arayüzüdür. Yani Bir o doğal GTK formatını destekler ve çok daha sezgisel geride olduğu yerel veya istemci-sunucu uygulamaları oluşturmak için mükemmel bir dil yapar Bash .

Bash yalnızca metni anlar. Diğer araçlar bir GUI için çağrılmalı ve veriler onlardan geri iletilmelidir. Bir Python komut bir seçenektir. Daha hızlı ancak daha az esnek seçenekler YAD, Zenity ve GTKDialog gibi ikililerdir .

İken gibi kabukları Bash gibi GUI'leri ile iyice işin Yad , Gtkdialog (gömülü XML gibi GTK + işlevlerine arayüzünün) , iletişim ve xmessage , Python çok daha yetenekli ve böylece daha iyi karmaşık GUI windows içindir.

Özet

Kabuk komut dosyalarıyla derleme, bir bilgisayarı hazır bileşenlerle bir araya getirmeye benzer.

İle Bina Python , C ++ veya en başka bir dil daha birlikte akıllı olduğun gibi cips (kitaplıklar) ve diğer elektronik parçalar kaynatılması ile bir bilgisayar bina gibidir.

En iyi sonuçlar genellikle her birinin en iyi yaptıklarını yapabileceği bir dil kombinasyonu kullanılarak elde edilir . Bir geliştirici buna " çok dilli programlama " adını veriyor .


17
Cevabın nasıl kabul edilebileceğini anlayamıyorum. Bu ikisinin hangi görevler için daha uygun olduğu hakkında herhangi bir fikir vermez.
vigilancer

2
@vigilancer Umarım yayınlanan değişiklikler ve eklemeler yardımcı olur.
DocSalvager

1
Diğer yorumlara katılıyorum, ancak bu soruya tam olarak cevap vermiyor. Bu şimdiye kadar okuduğum en iyi cevaplardan biri!
Jim Mitchener

72

Genellikle, bash, yalnızca python'un kullanılamadığı ortamlarda python'dan daha iyi çalışır. :)

Cidden, her iki dille de günlük olarak ilgilenmem gerekiyor ve seçim yapılırsa anında python alacağım. Ne yazık ki, bazı "küçük" platformlarda bash kullanmak zorunda kalıyorum çünkü birisi (yanlışlıkla, IMHO) python'un "sığamayacak kadar büyük" olduğuna karar verdi.

Bazı seçili görevler için bash'ın python'dan daha hızlı olabileceği doğru olsa da, geliştirmesi hiçbir zaman bu kadar hızlı veya bakımı kolay olamaz (en azından 10 satırlık kodu geçtikten sonra). Bash'in python veya ruby ​​veya lua vb. Gibi tek güçlü noktası, her yerde bulunabilmesidir.


5
Python zaten her Linux / Unix'te, hatta MacOS'ta değil mi? Bash'de hangi işlemlerin daha hızlı olduğunu merak ediyorum - anladığıma göre, farklı ayrı komutlar çağırması onu Python'un osveya shutilmodül komutlarından çok daha yavaş yapıyor .
NoBugs

1
@NoBugs Kesinlikle her Linux / Unix dağıtımında bulunmaz. Neredeyse kesinlikle her büyük linux dağıtımında (örneğin, debian tabanlı dağıtımlar, slackware, vb.) Ve Mac OS X'te gelir, ancak yocto ( yoctoproject.org ) ile kendi iso'nuzu oluşturursanız , o zaman buna sahip olamazsınız, çünkü her paketi kendiniz özelleştirirsiniz. Ancak günümüzde herhangi bir büyük Unix işletim sistemi için python2 (en azından) ve belki de python3 ile birlikte yükleneceğini söylemek muhtemelen güvenlidir.
dylnmc

Python, tam özellikli bir GUI gibi karmaşık görevler için mükemmel bir betik dilidir. Aynı derecede önemli olan, iyi programlama uygulamalarını zorunlu kılar, böylece programların bakımı daha kolaydır. Bash, sürdürülebilmesi için başka yerde öğrenilen iyi uygulamaların dayatılmasını gerektirir. Bunu yaparken ve bir GUI iletişim aracı veya UI için Python kullanarak, üstün performans (Bash'den çağrılan son derece hızlı yardımcı programlar aracılığıyla) ve iyi bir UX sağlar.
DocSalvager

34

Hem bash hem de Python'un mantıklı seçimler olduğu senaryolarda geliştirici verimliliği benim için çok daha önemli.

Bazı görevler kendilerini bash için, diğerleri de Python'a borçludur. Bir şeye bir bash betiği olarak başlamak ve birkaç hafta içinde geliştikçe onu Python'a değiştirmek benim için alışılmadık bir şey değil.

Python'un sahip olduğu büyük bir avantaj, dosya adı işlemeyle ilgili köşelerde bulunurken , genel komut dosyası oluşturma ihtiyaçları için glob , shutil , subprocess ve diğerlerine sahiptir.


5
Soru, geliştirici performansını değil, makine performansını ifade eden "performans açısından" karşılaştırmayı hedefliyordu. Performans testlerimi başka bir cevapta görün.
Grzegorz Luczywo

26

Komut dosyası yazarken performans önemli değildir (çoğu durumda).
Performansı önemsiyorsanız 'Python vs Bash' yanlış bir sorudur.

Python :
+ yazmak
daha kolay + bakımı
daha kolay + kodun yeniden kullanımı daha kolay (ortak kod içeren dosyaları dahil etmek için evrensel, hataya dayanıklı bir yol bulmaya çalışın sh,
size meydan okuyorum ) + onunla da OOP yapabilirsiniz!
+ daha kolay argümanlar çözümleme. tam olarak daha kolay değil. yine de benim zevkime göre fazla sözlü olacak, ancak python'da argparseyerleşik bir tesis var .
- çirkin çirkin 'alt süreç'. komutları zincirlemeye çalışın ve kodunuzun ne kadar çirkinleşeceğini bir nehirde ağlamamaya çalışın. özellikle çıkış kodlarını önemsiyorsanız.

Bash :
+ daha önce söylendiği gibi her yerde bulunma gerçekten.
+ basit komutlar zinciri. farklı komutları basit bir şekilde bir araya getirmenin yolu budur. Ayrıca Bash(yok sh) bazı iyileştirmeler var pipefail, yani zincirleme gerçekten kısa ve anlamlı.
+ 3. parti programların yüklenmesini gerektirmez. hemen infaz edilebilir.
- Tanrım, bol bol aldatmaca. IFS, CDPATH .. binlercesi.

Eğer biri 100 LOC'den büyük bir komut dosyası yazıyorsa: Python'u seçin
Eğer komut dosyasında yol manipülasyonu gerekiyorsa: Python'u seçin (3)
Eğer biri biraz benziyor aliasancak biraz karmaşıksa: Bash / sh'yi seçin

Her neyse, neler yapabileceklerine dair fikir edinmek için her iki tarafı da denemeli.

Belki yanıt paketleme ve IDE destek noktaları ile genişletilebilir, ancak bu taraflara aşina değilim.

Her zamanki gibi boktan sandviç ve dev pislik arasından seçim yapmalısın. Ve unutmayın, sadece birkaç yıl önce Perl yeni bir umuttu. Şimdi olduğu yerde.


4
Evet, bash ile kod sonsuza kadar yaşar. Çok fazla Perl kodladım, artık işe yaramazlar.
Raymond gsh

Sadece perspektif için ... Yazdığım en büyük senaryo, her gün tüm gün kullandığım, 4121 satırlık gerçek, yorumsuz veya boş satır bash koduna sahip. Kapsamlı yorumlar ve benzeri ile 7261 satır yapıyor. Başka bir 6650 satır olan her işlev için kılavuz sayfası benzeri belgelerden oluşan bir yardım dosyası eşlik eder. Her işlevin, şu anda YAD, Zenity, dialog veya sadece düz CLI metninin 3 versiyonunu içeren mevcut en iyi çıktı formunda yardım metnini anında alabilen ve görüntüleyebilen bir seçeneği vardır. Ben buna 'kit' diyorum. Bu yazı itibariyle 44 versiyonunda.
DocSalvager

Bu ağır! (c)
vigilancer

1
LoC'nin Python'u seçmek için gerçekten karar verme faktörü olduğunu düşünmüyorum. Dahası, yaptığınız görev ne kadar karmaşık? Sadece 100 komut zincirliyorsanız, bu muhtemelen sorun değildir, bash'de yalnızca 30 LoC ise, ancak Python'da anlaşılması daha kolay olabilir - python kullanın.
JFord

@Akito, hiçbir şey dokunmadığında sorun değil. ama işlerin ters gidebileceği birkaç durum var. varsayılan olmayana ayarladınız ve temizlemeyi unuttunuz. dışında bir şey onu değiştirdi ancak betiğiniz varsayılana dayanıyor ve bu böyle devam ediyor. IFS'yi her zaman akılda tutmak gerekir, çünkü bazı araçlar onu dolaylı olarak kullanır.
uyanık

22

Performans bilge bash, işlem başlatma süresinde python'dan daha iyi performans gösterir.

Linux Mint çalıştıran çekirdek i7 dizüstü bilgisayarımdan bazı ölçümler:

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

* Python yüklü kütüphaneler şunlardır: os, os.path, json, time, requestler, threading, subprocess

Bu büyük bir fark gösterir, ancak genellikle harici süreçleri çağırması gerektiğinden, mantıklı bir şey yapması gerekiyorsa, bash yürütme süresi hızla düşer.

Performansı önemsiyorsanız, bash'ı yalnızca şunlar için kullanın:

  • gerçekten basit ve sıkça adlandırılan komut dosyaları
  • esas olarak diğer işlemleri çağıran komut dosyaları
  • manuel yönetim işlemleri ve komut dosyası oluşturma arasında minimum sürtüşmeye ihtiyaç duyduğunuzda - birkaç komutu hızlıca kontrol edin ve bunları dosyaya yerleştirin.sh

... ve /bin/echobu büyüklükte bash'den daha iyi performans gösteriyorsa, ölçmek zor. Bu nedenle, bash çalıştırmak yerine /bin/echo mycommand > named_pipe(komutları / mesajları adlandırılmış bir boruya veya sokete gönder) ... kullanabilir ve bu borudan komutları / talimatları okuyup çalıştıran bir Python işlemine sahip olabilirsiniz. Yani bash, gerçekten iyi bir "başlangıç ​​maliyeti optimizasyonu" değildir.
Cezary Baginski

Görev gerçekten kısa ve hızlı olduğunda genellikle süreçler yerine iş parçacıkları kullanmanız gerekir. Çoklu süreçler yüksek seviyeli bir şeydir ve bir tanesini başlatmak yarım saniye içinde olduğu sürece, bu çoğunlukla oldukça makul görünüyor, değil mi?
Timothy Swan

16

Bash, temelde çeşitli veri türleri için çok daha az desteğe ve kontrol yapıları ile ilgili her tür tuhaflığa sahip bir toplu iş / kabuk komut dosyası yazma dilidir - uyumluluk sorunlarından bahsetmeye bile gerek yok.

Hangisi daha hızlı? Hiçbiri, çünkü burada elmaları elmalarla karşılaştırmıyorsunuz. Bir ascii metin dosyasını sıralamanız gerekiyorsa ve zcat, sort, uniq ve sed gibi araçlar kullanıyorsanız, Python performansını akıllıca kullanacaksınız.

Bununla birlikte, kayan noktayı ve çeşitli kontrol akışını destekleyen uygun bir programlama ortamına ihtiyacınız varsa, Python eller aşağı kazanır. Bash ve Python'da yinelemeli bir algoritma yazdıysanız, Python sürümü bir büyüklük veya daha fazla sırayla kazanacaktır.


13
Yani benim rantımın tüm ahlakı şudur: Doğru iş için doğru aleti kullanmak.
Justin

2
kayan nokta awk, bc gibi araçlarla ve zsh / ksh gibi kabuklarla desteklenir, öyleyse neden Python'un ellerini kaybettiğini söylüyorsunuz?
ghostdog74

4
Çünkü bu araçlar Bash değil. Belirgin bir farklılığa işaret ediyordum. Bu araçlar bir kabuk komut dosyasında kullanılır, ancak yerel Bash'in kendisi kayan noktayı desteklemez.
Justin

2
Hayır. Kendin dene. Büyük bir günlük dosyasını gzip ile sıkıştırın ve bazı filtreleme yapmak için zcat, sort vb. kullanın ve ardından yerel Python kitaplıklarını kullanın. Yerel araçları kullanmak önemli ölçüde daha hızlıdır.
Justin

6
@ justin, evet, bu araçlar Bash değil, ancak eski zamanlardan beri kullanılıyorlar ve genellikle kabuk komut dosyasında kullanılıyorlar. kayan nokta istiyorsanız, awk / bc kullanın. Kabuk komut dosyası oluşturmayı Python kadar güçlü kılan bu araçların bir kombinasyonudur.
ghostdog74

12

Hızlı bir yardımcı programı minimum çabayla bir araya getirmek istiyorsanız, bash iyidir. Bir uygulamanın etrafındaki bir sarmalayıcı için, bash paha biçilmezdir.

İyileştirmeler eklemek için tekrar tekrar gelmenize neden olabilecek her şey, muhtemelen (her zaman olmasa da) Python gibi bir dile daha uygundur, çünkü 1000'den fazla satır içeren Bash kodunun bakımı çok zahmetlidir. Bash kodu, uzun olduğunda hata ayıklamayı da rahatsız eder .......

Deneyimlerime göre, bu tür sorulardaki sorunun bir kısmı, kabuk komut dosyalarının genellikle tümünün özel görevler olmasıdır. Zaten özgürce kullanılabilen bir çözümün olduğu yerlerde karşılaştığım çok az kabuk komut dosyası oluşturma görevi olmuştur.


8

Bash performansının en azından eşit olduğu 2 senaryo var:

  • Komut satırı yardımcı programlarının komut dosyası oluşturma
  • Yürütülmesi yalnızca kısa bir süre alan komut dosyaları; Python yorumlayıcısını başlatmak işlemin kendisinden daha fazla zaman alır

Bununla birlikte, genellikle komut dosyası dilinin kendisinin performansı ile gerçekten ilgilenmiyorum. Performans gerçek bir soruysa, komut dosyası oluşturmazsınız (muhtemelen Python'da).


4

Bu geç cevabı öncelikle Google bu soruyu beğendiği için gönderiyorum.

Konunun ve bağlamın gerçekten araçlarla değil, iş akışıyla ilgili olması gerektiğine inanıyorum. Genel felsefe her zaman "İş için doğru aleti kullanın" dır. Ancak bu gelmeden önce, çoğu kişi araçların içinde kaybolduğunda unutur: "İşi hallet."

Tamamen tanımlanmamış bir problemim olduğunda neredeyse her zaman Bash ile başlarım. Büyük Bash betiklerinde hem okunabilir hem de sürdürülebilir olan bazı karmaşık sorunları çözdüm.

Fakat sorun ne zaman Bash'in yapması gerekenleri aşmaya başlar? Bana uyarı vermek için kullandığım bazı çeklerim var:

  1. Bash'in 2D (veya daha yüksek) dizilere sahip olmasını mı diliyorum? Cevabınız evet ise, Bash'in harika bir veri işleme dili olmadığını anlamanın zamanı geldi.
  2. Diğer yardımcı programlar için veri hazırlarken bu programları çalıştırdığımdan daha fazla iş mi yapıyorum? Cevabınız evet ise, Bash'in harika bir veri işleme dili olmadığını anlamak için tekrar tekrar gelin.
  3. Senaryom yönetilemeyecek kadar mı büyüyor? Cevabınız evet ise, Bash'in komut dosyası kitaplıklarını içe aktarabildiği halde, diğer diller gibi bir paket sisteminden yoksun olduğunun farkına varmak önemlidir. Diğerlerinin çoğuna kıyasla gerçekten bir "kendi başınıza yuvarlayın" dili. Sonra yine, muazzam miktarda yerleşik işlevselliğe sahip (bazıları çok fazla diyor ...)

Liste devam ediyor. Sonuç olarak, komut dosyalarınızı çalışır durumda tutmak için daha çok çalıştığınızda, özellikler eklediğinizde, Bash'den ayrılmanın zamanı geldi.

Çalışmanızı Python'a taşımaya karar verdiğinizi varsayalım. Bash komut dosyalarınız temizse, ilk dönüştürme oldukça basittir. Hatta sizin için ilk geçişi yapacak birkaç çevirici / çevirmen bile var.

Sonraki soru şudur: Python'a geçmek için nelerden vazgeçersiniz?

  1. Harici yardımcı programlara yapılan tüm çağrılar, subprocessmodülden (veya eşdeğerinden) bir şeye sarılmalıdır . Bunu yapmanın birden fazla yolu var ve 3.7'ye kadar doğru yapmak için biraz çaba harcadı (3.7 subprocess.run(), tüm yaygın vakaları kendi başına ele alacak şekilde geliştirildi ).

  2. Şaşırtıcı bir şekilde, Python'un klavyeyi (stdin) sorgulamak için standart platformdan bağımsız engellemeyen bir yardımcı programı (zaman aşımına sahip) yoktur. Bash readkomutu, basit kullanıcı etkileşimi için harika bir araçtır. En yaygın kullanımım, kullanıcı bir tuşa basana kadar bir değer değiştiriciyi gösterirken, bir yandan da işlerin hala iyi çalıştığından emin olmak için bir sorgulama işlevi (her döndürücü adımında) çalıştırmaktır. Bu, ilk başta göründüğünden daha zor bir problem, bu yüzden genellikle Bash'e bir çağrı yapıyorum: Pahalı, ama tam olarak ihtiyacım olanı yapıyor.

  3. Gömülü veya bellek kısıtlı bir sistem üzerinde geliştirme yapıyorsanız, Python'un bellek ayak izi Bash'inkinden (eldeki göreve bağlı olarak) kat kat daha büyük olabilir. Artı, neredeyse her zaman bellekte zaten bir Bash örneği vardır, bu Python için geçerli olmayabilir.

  4. Bir kez çalışan ve hızlı bir şekilde çıkan komut dosyaları için Python'un başlama süresi Bash'inkinden çok daha uzun olabilir. Ancak komut dosyası önemli hesaplamalar içeriyorsa, Python hızla öne geçer.

  5. Python, gezegendeki en kapsamlı paket sistemine sahiptir. Bash biraz bile karmaşık hale geldiğinde, Python muhtemelen Bash'in tüm parçalarını tek bir çağrı haline getiren bir pakete sahiptir. Bununla birlikte, kullanılacak doğru paketleri bulmak, Pythonista olmanın en büyük ve en göz korkutucu kısmıdır. Neyse ki, Google ve StackExchange arkadaşlarınız.


2

Bunun doğru olup olmadığını bilmiyorum, ancak python / ruby'nin birçok matematiksel hesaplama içeren betiklerde çok daha iyi çalıştığını buldum. Aksi takdirde dcveya başka bir "keyfi hassas hesap makinesi" kullanmanız gerekir. Sadece çok büyük bir acıya dönüşüyor. Python ile, kayan değerlere karşı ints üzerinde çok daha fazla kontrole sahip olursunuz ve bazen çok sayıda hesaplama yapmak çok daha kolaydır.

Özellikle, ikili bilgileri veya baytları işlemek için asla bir bash betiği ile çalışmam. Bunun yerine python (belki) veya C ++ veya hatta Node.JS gibi bir şey kullanırdım.


Bash aritmetiği kesinlikle tamsayıdır, bu nedenle başka bir şey (awk veya dc gibi) çağırarak ve ondan çıktı alarak kayan nokta işlemleri yapmanız gerekir. Basit parasal şeyler, genellikle sadece 100 ile çarpılarak ve çıktıdaki ondalık noktayı ayarlayarak dahili olarak yapılabilir.
DocSalvager

0

Performans açısından her ikisi de eşit derecede aynı şeyi yapabilir, bu durumda soru, hangi geliştirme süresinden daha fazla tasarruf sağlar?

Bash, diğer komutları çağırmaya ve yenilerini oluşturmak için bunları aktarmaya dayanır. Bu, hangi programlama dilini kullanırlarsa kullansınlar, yalnızca başkalarından ödünç alınan kodla hızlı bir şekilde yeni programlar oluşturabilme avantajına sahiptir.

Bu aynı zamanda alt komutlardaki değişikliğe oldukça iyi direnme yan etkisine de sahiptir, çünkü aralarındaki arayüz sadece düz metin.

Ayrıca Bash, üzerine nasıl yazabileceğiniz konusunda oldukça müsamahakar. Bu, daha geniş bir bağlam çeşitliliği için iyi çalışacağı anlamına gelir, ancak aynı zamanda programcının temiz ve güvenli bir şekilde kodlama niyetine sahip olmasına da bağlıdır. Aksi takdirde Bash, bir karmaşa yaratmanızı engellemez.

Python daha çok stil üzerine yapılandırılmıştır, bu yüzden dağınık bir programcı o kadar dağınık olmayacaktır. Ayrıca Linux dışındaki işletim sistemlerinde de çalışacak ve bu tür bir taşınabilirliğe ihtiyacınız olduğunda onu anında daha uygun hale getirecektir.

Ancak diğer komutları çağırmak o kadar basit değildir. Dolayısıyla, işletim sisteminiz Unix ise, büyük olasılıkla Bash üzerinde geliştirmenin geliştirmenin en hızlı yolu olduğunu göreceksiniz.

Bash ne zaman kullanılmalı:

  • Bu grafiksel olmayan bir program veya grafiksel olanın motoru.
  • Sadece Unix için.

Python ne zaman kullanılır:

  • Grafik bir program.
  • Windows üzerinde çalışacaktır.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.