PowerShell vs Bash

stojí na soapboxu

Dnes jsem narazil na tweet a ve skutečném Elder millennial módu jsem se spustil. Tweet byl tento (jméno a popisovač zmatené):

Twitter cituje o "nadřazenosti" bash

důvod, proč mě to spouští, není jen proto, že psi na PowerShell (udělal jsem na něm zdravou kariéru, Chvála Snover), ale také porovnává jablka a pomeranče. Kdybych byl tesař, bylo by to jako říkat „Podívej, kladivo je skvělé a všechno, ale bylo by lepší, kdyby to byl šroubovák“. Správcům se často říká, aby „vybrali jednu stranu plotu“, což jen brání jejich schopnosti. Faktem je, že PowerShell a bash jsou dva různé nástroje s různými (i když podobnými) účely. V tomto článku vám dám fakt, pozorování a názor na rozdíl mezi PowerShell a Bash.

skutečnost: Technické rozdíly mezi PowerShell a Bash

pro ty, kteří zcela neznají předmět, je bash příkazový shell a skriptovací jazyk pro většinu systémů Linux, zatímco PowerShell je příkazový shell a skriptovací jazyk pro většinu systémů Windows. Mnoho lidí vaří tento argument na jednoduchý „Linux vs. Windows“, ale dnes budeme mluvit o samotných skriptovacích jazycích.

vím, že bych mohl být těžce kritizován za to, co se chystám říct, ale jednoduchá pravda je, že mezi bash a PowerShell existuje pouze jeden hlavní rozdíl. Bash zachází s výstupy jako s řetězci, zatímco PowerShell zachází s výstupem jako s objekty. Filozoficky, bash říká, že protože vy, jako správce, jsou všichni mocní, jste zodpovědní za kvalitu toho, co zadáte do bash, a to bude mít přímý dopad na kvalitu výstupu z bash. PowerShell, na druhé straně, určuje trochu výstupu pro vás. Strukturováním výstupu jako objektů můžete ukládat a manipulovat s objekty různými metodami a vlastnostmi.

jedním ze způsobů, jak o tom přemýšlet, je, že s bash představují vaše příkazy a výstupy jednu část celku. Poskládejte dostatek dílů dohromady a můžete vytvořit něco působivého. To se podobá použití jednoho kusu skriptu k sestavení motoru, další některé nápravy, a třetina vašich kol. Na konci dne budete mít auto, když je kombinováno. PowerShell na druhé straně reaguje na váš příkaz celým vozem a musíte pracovat dozadu, abyste získali individuální komponentu.

vím, že existuje mnohem více rozdílů, ale v kostce, která by vás měla dostat do rychlosti.

pozorování: kariéra trajektorie

existuje několik věcí, které jsem si všiml v průběhu let v průmyslu. Za prvé, jsou to, co s láskou nazývám „inženýři s levým kliknutím“. To jsou lidé, kteří neznají žádné skriptovací jazyky, natož Velké dva PowerShell a bash. Častěji než ne, Jedná se o typ, který se předává pro propagační akce, přehlíží se, pokud jde o kompenzaci založenou na výkonu, a pravděpodobně bude automatizován nebo propuštěn během několika příštích let.

dále jsou lidé, kterým bylo řečeno, aby se drželi na jedné straně plotu. Vlastně je mi z těchto lidí opravdu smutno, protože ať už to jejich šéf ví nebo ne, zabíjejí kariérní vyhlídky svých zaměstnanců. Nemohu myslet na jediný obchod, který jsem konzultoval, pracoval pro, nebo měl drink s tím byl homogenní Linux nebo Windows shop. Existuje prostě příliš mnoho věcí, které vyžadují více operačních systémů, a proto více skriptovacích jazyků. Naštěstí PowerShell je nyní k dispozici na Linuxu, a tam je Linux subsystém pro Windows, ale to není přímý překlad v obou směrech. Možná byste mohli dokonce tvrdit, že orchestrace nahrazuje přímou potřebu obou jazyků,ale také jsem se nesetkal s obchodem, který je 100% orchestrovaným prostředím. Faktem je, že skriptovací jazyky budou kolem a budou nezbytné pro horkou minutu.

konečně existují lidé, kteří mohou pracovat v jakémkoli prostředí pomocí PowerShell nebo bash. To jsou druhy lidí, které zaměstnavatelé považují za žádoucí, protože mohou být přiřazeni k jakémukoli úkolu a nebudou psa na ostatní členy týmu za to, že jsou správcem Linuxu nebo Windows. To je podobné celé debatě PC vs. Mac 15 před lety, kdy si lidé Windows mysleli, že jsou lepší z důvodů a, b, A c, zatímco uživatelé Mac si zároveň mysleli, že jsou lepší z důvodů x, a, nebo z. zábavný fakt: kóduji PowerShell na svém MacBooku Pro a miluji ho. Napsal jsem bash skripty na mém počítači se systémem Windows připojit do Jenkins s nulovými stížnostmi.

stanovisko: být dvojjazyčný

nemá smysl znát pouze jeden „jazyk“ (to znamená, pokud dokonce považujete některý z těchto nástrojů za plnohodnotný jazyk). Ve skutečnosti existuje dostatek funkčních ekvivalentů mezi PowerShell a bash, že Windows je dokonce dodáván s některými příkazy bash. Zpět v den, budete muset hack vaše PATH s cílem získat ls být zacházeno jako dir na příkazovém řádku systému Windows. Nyní můžete přejít na PowerShell, zadejte ls a získejte očekávanou odpověď. Dnes máte tolik multiplatformních skriptů a nástrojů, že se rozdíl zmenšuje, ale kódové základny jsou stále polarizované. Některé obchody budou používat pouze bash k vytvoření svých skriptů, zatímco jiné obchody budou používat pouze PowerShell. Nedávno jsem vešel do obchodu bez jediného skriptu PowerShell-všechno bylo napsáno v bash nebo dokonce perl. Trvalo to nějaký čas, ale nyní máme mezi našimi skripty docela rovnoměrné rozdělení v téměř 50/50 rozdělení Windows a Linux. Chcete-li vstoupit do prostředí a být si jisti,že máte schopnost řešit úkoly, znáte obojí.

doufám, že jste se naučili něco užitečného.

kroky dolů z soapboxu

nemůžete mě nabažit? Ujistěte se, že mě následujte na Twitteru @_brycemcdonald.

Věděli jste, že jsem k dispozici k pronájmu? Kontaktujte mě pro podrobnosti přes twitter, e-mailem, nebo na webových stránkách NorthCode Solutions.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.