Permalänk
Hedersmedlem
Skrivet av d97jro:

Men ... det beror ju helt och hållet på vad du ska programmera!! För du skriver väl inte Windows .NET-applikationer i Linux och korskompilerar?
Jag tycker att programmering för Windows görs enklast i Windows, och programmering för Linux och andra UN*X-system bäst i sådana system.

Väldigt mycket (majoriteten skulle jag säga, utan att kunna visa några siffror) programmering görs inte med fokus på "Linux eller Windows", utan t ex för webben, för telefoner eller andra embedded-system, direkt mot ramverk eller annan analysmjukvara med multiplattformstolkar (Matlab, root, etc. och även i viss mån när det gäller språk som Java, Python, etc.), customlösningar för dataanalys, etc. Dessa saker kan man programmera för i både Linux och Windows, och när personer säger att de hellre programmerar i Linux så antar jag att de menar att när de fritt kan välja plattform som i fallen ovan så föredrar de Linux — inte att de vill programmera Windows-GUI-applikationer i Linux.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem

Min åsikt i frågan:

Om man ska göra seriös programmering med webben som mål så räcker det inte att köra ett operativsystem, utan då är det verkligen viktigt att ha sina virtuella maskiner att testa med. Så att man kan se att alla olika webläsare beter sig som förväntat (och att man har workarounds för de som inte gör det...) för de system som man tror att besökarna kan använda sig av. Typiskt är att testa IE (Win), Firefox/Mozilla (Win/Lin/Mac/etc.), Chrome (Win/Lin/Mac/Android), Safari (Win/Mac/IOS) och Opera (Win/Lin/Mac/etc. samt helst även IOS, Android och Windows Mobile med lämpliga webläsare. På serversidan är det enklare, förstås, eftersom man själv kan styra. Men ska det kodas för IIS så är det nog knöligt att göra det från Linux-håll. För Apache är det lite enklare att använda olika plattformar vid utveckling.

Så då är vare sig Linux _eller_ Windows svaret på frågan vad man ska använda, utan snarare båda, plus några till.

Visa signatur

/Joakim

Permalänk
Hedersmedlem
Skrivet av d97jro:

Min åsikt i frågan:

Om man ska göra seriös programmering med webben som mål så räcker det inte att köra ett operativsystem, utan då är det verkligen viktigt att ha sina virtuella maskiner att testa med. Så att man kan se att alla olika webläsare beter sig som förväntat (och att man har workarounds för de som inte gör det...) för de system som man tror att besökarna kan använda sig av. Typiskt är att testa IE (Win), Firefox/Mozilla (Win/Lin/Mac/etc.), Chrome (Win/Lin/Mac/Android), Safari (Win/Mac/IOS) och Opera (Win/Lin/Mac/etc. samt helst även IOS, Android och Windows Mobile med lämpliga webläsare. På serversidan är det enklare, förstås, eftersom man själv kan styra. Men ska det kodas för IIS så är det nog knöligt att göra det från Linux-håll. För Apache är det lite enklare att använda olika plattformar vid utveckling.

Så då är vare sig Linux _eller_ Windows svaret på frågan vad man ska använda, utan snarare båda, plus några till.

Testa behöver man göra på flera plattformar om målet är just flera plattformar, precis som du säger, men utveckla (dvs det praktiska kodknackandet) gör man vanligen bara på en i taget — där man har sina verktyg konfigurerade. Användare i tråden sa att de föredrog Linux för detta (andra föredrar säkert annat och det får man så klart göra, bara förtydligar vad de som nämnde det i denna tråd troligen menar). Nätverkstransparens och virtualisering har gjort det än enklare för utvecklare att välja sin miljö.

Något som ibland framförs som kritik mot Linux är att det är just utvecklare som skapat systemet för sin egen skull. Det negativa argumenteras då vara att dessa utvecklare inte skulle förstå vad "vanliga människor" söker. Utan att ta upp den tråden alltför mycket så kan man ju dock konstatera att om det nu är just utvecklare som gjort systemet för sin egen skull så vore det ju konstigt om det inte också var väl lämpat för utvecklare att använda.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Hedersmedlem

*Meddelande borttaget*

Memeinlägg rensat per SweClockers allmäna policy (inte mot uttryckssättet specifikt, men det följer av övriga punkter i §1 i reglerna).

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av phz:

om det nu är just utvecklare som gjort systemet för sin egen skull så vore det ju konstigt om det inte också var väl lämpat för utvecklare att använda.

Visa signatur

/Joakim

Permalänk
Medlem
Skrivet av MarcusW:

Jag upplever personligen att det ofta är mycket enklare att göra större justeringar i Linux. Vill jag ha ett helt nytt DE kan jag bara kryssa i det i pakethanteraren och installera. Visst tar det en stund att ladda ned och installera alla paket men jag behöver ju knappast göra något aktivt under tiden.

Jag tvivlar inte ett dugg på din personliga upplevelse. Ditt specialanpassade arbetsflöde passar säkerligen bäst för just dig. Jag säger att det inte är generellt mer effektivt att arbeta i Linux än i Windows och att den som vill ägna sin tid till specialanpassning av sitt OS kan i praktiken lika gärna göra det i Windows som i Linux.

Visa signatur

Coola låtar i massor!
http://revolvermen.com

Permalänk
Hedersmedlem
Skrivet av Ilja:

Jag tvivlar inte ett dugg på din personliga upplevelse. Ditt specialanpassade arbetsflöde passar säkerligen bäst för just dig. Jag säger att det inte är generellt mer effektivt att arbeta i Linux än i Windows och att den som vill ägna sin tid till specialanpassning av sitt OS kan i praktiken lika gärna göra det i Windows som i Linux.

Argumentet som fördes fram var ju dock att det skulle finnas större möjligheter att anpassa Linux än Windows, dvs större möjligheter att genom enkla val (inte "programmering" som nämndes tidigare — vill man skriva sin egen WM så kan man så klart göra detta till vilken plattform man vill) påverka sin miljö. Det kan vara allt från att klicka i rutan för KDE istf Unity till att köra en minimal "tiling" fönsterhanterare med hemsnickrade snabbkommandon om man vill gräva ner sig mer. Hela spektrumet är representerat.

Hur mycket detta påverkar är en annan fråga med individuella värderingar, men frågeställningen i sig är inte löst med ett påstående i stil med: "man kan konfigurera en fönsterhanterare i Linux, man kan konfigurera Windows — alltså är Linux och Windows lika konfigurerbara". Problemen med den slutsatsen är dels att [fönsterhanterare Foo] ≠ Linux, och dels att "konfigurerbar" inte är ett binärt begrepp.

Som du säger så om man vill ägna sin tid åt specialanpassning så kan tillbringa denna tid i Windows likväl som Linux, men argumenten i tråden syftade väl snarare på att man med samma specifik mängd nedlagd tid har större möjligheter att anpassa Linux än Windows, och att detta skulle vara en fördel.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av Ilja:

Jag tvivlar inte ett dugg på din personliga upplevelse. Ditt specialanpassade arbetsflöde passar säkerligen bäst för just dig. Jag säger att det inte är generellt mer effektivt att arbeta i Linux än i Windows och att den som vill ägna sin tid till specialanpassning av sitt OS kan i praktiken lika gärna göra det i Windows som i Linux.

Jag har inte påstått att det generellt är mer effektivt att arbeta i Linux än i Windows. Jag påstod att jag upplevde det som att det är lättare att anpassa sitt system om man kör Linux än om man kör Windows. Visst går det att anpassa båda, det säger jag inte emot. Jag kan inte påstå att jag vill ägna min tid till specialanpassning, så det får gärna vara så enkelt som möjligt.

Visa signatur
Permalänk
Medlem

Powershell vs bash igen... hmmm...
Har alltid sätt på Power'Shell' som ett skal uppe på Windows och bash som integrerat i Linux. Kanske har fel?
Powershell har gjort enorm skillad för mig iaf... speciellt när 2.0 kom, it changed my world!

Visa signatur

Kamera: D800
Optik:Nikkor 24-70mm f/2.8, Nikkor 70-200 f/2.8 VR, Sigma 50mm f/1.4, 500m f/4 VR

Permalänk
Medlem
Skrivet av Yuong:

Powershell vs bash igen... hmmm...
Har alltid sätt på Power'Shell' som ett skal uppe på Windows och bash som integrerat i Linux. Kanske har fel?
Powershell har gjort enorm skillad för mig iaf... speciellt när 2.0 kom, it changed my world!

Varför just bash? Det är väl inte mer integrerat än sh, ksh, tcsh, zsh eller ash, för att ta några av de vanligare kommandoskalen.
Och på vilket sätt skulle det vara en del av operativsystemet i större utsträckning än PowerShell?
(Tidigare kommentar här i tråden betr. uttalandena från Microsofts PowerShell-utvecklare är dock mycket intressanta.)

Visa signatur

/Joakim

Permalänk
Medlem
Skrivet av CryingFreeman:

linux+driver+issue
Ger 739 000 000 träffar.
windows+driver+issue
Ger 44 700 000 träffar.
Till Wikipedia!
Usage share of operating systems
Linuxanvändare: 1,21%
Windowsanvändare: 91,49%
Så, på varje Linuxanvändare går 75,6 Windowsanvändare.

Nu tittar vi på klagomålen igen. Eftersom Windowsanvändarna är fler så delar vi deras klagomål med 75,6 för att få relativt jämförbara siffror:
Det ger oss 591 269,8 klagomål per normaliserad Windowsanvändarenhet.
Linuxanvändarna ligger kvar på 739 000 000 klagomål per normaliserad Linuxanvändarenhet.

Vi kan nu se att en Linuxanvändare är 1 249,9 gånger gnälligare än en Windowsanvändare. Det verkar rimligt.

Tyvärr är dock siffrorna inte jämförbara från början, men det var en underhållande räkneövning.
För att svara på trådens fråga så använder man Linux för att det löser något problem man har på ett elegant sätt. Exakt samma anledning för att använda Windows, OS X, BeOS eller vad det nu kan bli alltså. Personligen föredrar jag Windows på arbetsstationen och Linux på vissa sorters servrar (eller beräkningsburkar).

Dold text
Visa signatur

.<

Permalänk
Entusiast
Skrivet av oelrich:

linux+driver+issue
Ger 739 000 000 träffar.
windows+driver+issue
Ger 44 700 000 träffar.
Till Wikipedia!
Usage share of operating systems
Linuxanvändare: 1,21%
Windowsanvändare: 91,49%
Så, på varje Linuxanvändare går 75,6 Windowsanvändare.

Nu tittar vi på klagomålen igen. Eftersom Windowsanvändarna är fler så delar vi deras klagomål med 75,6 för att få relativt jämförbara siffror:
Det ger oss 591 269,8 klagomål per normaliserad Windowsanvändarenhet.
Linuxanvändarna ligger kvar på 739 000 000 klagomål per normaliserad Linuxanvändarenhet.

Vi kan nu se att en Linuxanvändare är 1 249,9 gånger gnälligare än en Windowsanvändare. Det verkar rimligt.

Tyvärr är dock siffrorna inte jämförbara från början, men det var en underhållande räkneövning.
För att svara på trådens fråga så använder man Linux för att det löser något problem man har på ett elegant sätt. Exakt samma anledning för att använda Windows, OS X, BeOS eller vad det nu kan bli alltså. Personligen föredrar jag Windows på arbetsstationen och Linux på vissa sorters servrar (eller beräkningsburkar).

Dold text

Sedan skall vi inte glömma att "mörkertalet" över antalet klagande hos Windows är ... stort.
Hur många Windows-användare rapporterar strul? De flesta rycker troligen på axlarna och nöjer sig med de varnings-trianglar dem har i enhets-hanteraren (Och hur många använder enhets-hanteraren?). De flesta köper nog en ny dator, när USB-porten slutar fungera. Det bidrar mer till Windows försäljnings-statistik när den egentligen borde ha bidragit till "Driver issue" statistiken.
Jämför det med den genomsnittlige Linux-användaren. Där rapporterar användarna fel och buggar oftare genom att be om hjälp på forum, eller rentav använda sig av den inbyggda bugg-rapporteringen många distributioner idag kommer med.

Båda systemen har ett mörkertal, men den är högst troligt mycket större under Windows, än vad den är under en Linux-miljö, då de flesta "icke-kunniga / lata" användarna i regel sitter under Windows.

Visa signatur

Bästa programmen till Linux - v2.0
Linux-guide: Val av grafisk miljö. (Att välja distribution).
-
Everyone should have a SGoC in their systems (SGoC: SysGhost on a Chip)

Permalänk
Medlem
Skrivet av SysGhost:

Sedan skall vi inte glömma att "mörkertalet" över antalet klagande hos Windows är ... stort.
Hur många Windows-användare rapporterar strul? De flesta rycker troligen på axlarna och nöjer sig med de varnings-trianglar dem har i enhets-hanteraren (Och hur många använder enhets-hanteraren?). De flesta köper nog en ny dator, när USB-porten slutar fungera. Det bidrar mer till Windows försäljnings-statistik när den egentligen borde ha bidragit till "Driver issue" statistiken.
Jämför det med den genomsnittlige Linux-användaren. Där rapporterar användarna fel och buggar oftare genom att be om hjälp på forum, eller rentav använda sig av den inbyggda bugg-rapporteringen många distributioner idag kommer med.

Båda systemen har ett mörkertal, men den är högst troligt mycket större under Windows, än vad den är under en Linux-miljö, då de flesta "icke-kunniga / lata" användarna i regel sitter under Windows.

Helt klart är det så! Linuxanvändare skriv nog mer i forum och söker hjälp på problem medans den vnaliga svenssnon windowsanvändaren antingen rycker på axlarna som du säger, ringer en vän, ringer datorsupporten osv. De som ens testar Linux är oftast mer än en vanlig svensson, det är folk som är intresserade av lite utmaningar eller som vill testa på nya saker med datorer och givetvis kommer man stöta på problem, men istället för att rycka på axlarna så skriver man flitigt i forrum vilket skapar många träffar på Google.

Visa signatur

Mac mini 2018 with external GPU over Thundelbolt 3 - Radeon RX580

Permalänk
Medlem
Skrivet av SysGhost:

Sedan skall vi inte glömma att "mörkertalet" över antalet klagande hos Windows är ... stort.
Hur många Windows-användare rapporterar strul? De flesta rycker troligen på axlarna och nöjer sig med de varnings-trianglar dem har i enhets-hanteraren (Och hur många använder enhets-hanteraren?). De flesta köper nog en ny dator, när USB-porten slutar fungera. Det bidrar mer till Windows försäljnings-statistik när den egentligen borde ha bidragit till "Driver issue" statistiken.
Jämför det med den genomsnittlige Linux-användaren. Där rapporterar användarna fel och buggar oftare genom att be om hjälp på forum, eller rentav använda sig av den inbyggda bugg-rapporteringen många distributioner idag kommer med.

Båda systemen har ett mörkertal, men den är högst troligt mycket större under Windows, än vad den är under en Linux-miljö, då de flesta "icke-kunniga / lata" användarna i regel sitter under Windows.

...för att inte tala om hur många som konsulterar sina nära och kära med problem under Windows. Själv har jag sedan länge slutat räkna antalet problem jag löst åt anhöriga, men får jag problem med Linux har jag bara nätet att vända mig till.

Edit: Vilket ovanstående talare hann före med... Jäkla mobil.

Visa signatur

Desktop: AMD 3950X, 64 GB RAM, Nvidia 4070 ... (Windows 11)
Serverdesktop: AMD 5600G, 64 GB RAM (Proxmox)
Labbmiljö: Supermicro SC825 X9DRi-F 2xE5-2667v2 64GB RAM
Kamera: Canon R5, Canon RF 100-500, Laowa 100mm f/2.8, Canon RF 24-70 f/2,8

Permalänk
Medlem
Skrivet av SysGhost:

Sedan skall vi inte glömma att "mörkertalet" över antalet klagande hos Windows är ... stort.
Hur många Windows-användare rapporterar strul? De flesta rycker troligen på axlarna och nöjer sig med de varnings-trianglar dem har i enhets-hanteraren (Och hur många använder enhets-hanteraren?). De flesta köper nog en ny dator, när USB-porten slutar fungera. Det bidrar mer till Windows försäljnings-statistik när den egentligen borde ha bidragit till "Driver issue" statistiken.
Jämför det med den genomsnittlige Linux-användaren. Där rapporterar användarna fel och buggar oftare genom att be om hjälp på forum, eller rentav använda sig av den inbyggda bugg-rapporteringen många distributioner idag kommer med.

Båda systemen har ett mörkertal, men den är högst troligt mycket större under Windows, än vad den är under en Linux-miljö, då de flesta "icke-kunniga / lata" användarna i regel sitter under Windows.

Skrivet av Bejje:

Helt klart är det så! Linuxanvändare skriv nog mer i forum och söker hjälp på problem medans den vnaliga svenssnon windowsanvändaren antingen rycker på axlarna som du säger, ringer en vän, ringer datorsupporten osv. De som ens testar Linux är oftast mer än en vanlig svensson, det är folk som är intresserade av lite utmaningar eller som vill testa på nya saker med datorer och givetvis kommer man stöta på problem, men istället för att rycka på axlarna så skriver man flitigt i forrum vilket skapar många träffar på Google.

Det var de invändningar som jag tänkte mig. Sen tror jag att en del av Windowsbruset försvinner till supporttelefoner och liknande också, om man betalar för support så är det lättare att ringa och störa någon stackars IT-kille än att rota i forum.

Visa signatur

.<

Permalänk
Medlem
Skrivet av Crazy Ferret:

Om du är ute efter en privat "diskussion", skriv då inte på ett offentligt forum där alla kan läsa och bidra med lite vett.

Jo, diskussionen handlade från första början precis om vad jag som aktiv användare tycker om Linux (vilket sannolikt går hand i hand med 'varför' jag använder Linux). Inte vad du som icke-linuxanvändare tycker om vare sig Linux eller Windows, inte heller om vad jag tycker om Windows.

Men likt Beh så ångrar jag att jag matade trollen och nu är det slut med gratisluncherna på min bekostnad för er i den här tråden.

Kungligt svar, absolut det vettigaste jag läst på länge

Visa signatur

System: Aerocool DS Cube|| i5 4690K @ Stock || Phanteks PH-TC12DX || MSI Z97M-G43 || G.Skill Ripjaws 8-9-9-24 1866 MHz 8 GB || Gigabyte GTX460 1GB OC || PNY Optima SSD 480GB || Crucial C300 128 GB || Samsung Spinpoint F3 1TB || Fractal Design Edison M 750W 80+ Gold

Permalänk
Medlem
Skrivet av Harblax:

Så du menar att det lönar sig att anpassa operativsystemet istället för att lägga den tiden på att arbeta i program såsom Photoshop eller Logic pro? Förklara

Om datorn är gammal med windows xp på så måste man ju ändå göra något för XP får snart inga mer rättningar inte ens säkerhetspatchar. Då går det mycket snabbare att installera linux än att installera en ny windows.

Väljer man linux mint mate så känner man igen sig mer (om man är van med xp eller 7) än om man köper nya win8. När man installerat linux är datorn klar att användas, mailklient, libre office etc ingår. Om något inte är med default så finns nästan allt man behöver via pakethanteraren. När man installerat windows har man kvar att leta upp, köpa och installera de program man behöver.

Utbudet av spel är litet men det kommer. Valve jobbar på saken tex. Men spela spel gör man väl ändå inte på en gammal dator.

Linux går att konfigurera väldigt mycket men Mint Mate är så nära det man är van vid att men inte behöver konfa mycket alls. Jag brukar byta bakgrundsblid och byta menyn till den gamla varianten utan ikoner. Det går på en minut. Kör man win8 måste man köpa och installera en vettig startmeny.

Kort sagt jag sparar tid med Linux inte förlorar.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av phz:

Jag förstår vad du menar, men själv så tycker jag fundamentalt tvärtom!
Ett CLI är arketypen för konsekvens och logik i mina ögon. Det är därtill ofta ruskigt effektivt och kanske framför allt trivialt automatiserbart vilket skickar användbarheten upp i stratosfären. En dator har potentialen att vara så mycket mer än en "sociala medier"-terminal, men detta verkar döljas under fler och fler komplexa kosmetiska lager ju längre tiden går.

Jag får nervösa ryckningar när jag ser personer använda grafiska verktyg på horribelt ineffektiva sätt, inkluderat att spendera sin tid med att försöka få millimeterprecision på pekare för att ändra textstorlek, klicka runt och leta i menyer, växla mellan mus och tangentbord, etc. Ett textgränssnitt är ju ständigt konsekvent och deterministiskt: vad kan vara bättre än det?

Kommandoprompten i Windowsmiljö är inte öht utvecklad för att vara ett interaktivt arbetsverktyg på det sättet, utan snarare enbart som en miljö för skriptande av administratörsuppgifter, så det är ingen rättvis jämförelse. Ett modernt skal som Bash är i mina ögon en fröjd som arbetsredskap.

Därmed inte sagt att alla uppgifter måste utföras i textläge, men i många fall är det överlägset (och visst, i andra fall oanvändbart). *nix-system för skrivbordet ger valmöjligheten att använda det verktyg som passar bäst i varje situation.

Lite väl uppenbart flame-bait (både ovanför och under denna rad antar jag).

Powershell är väl ändå det man använder när man är i Windows. Det ger en auto-complete på kommandoväxlar, objektorienterad IPC och så vidare. Men det är långsammare än Bash i vissa situationer.

Textfiler som bas för allt är smidigt på ett sätt (det blir som du säger trivialt att göra vissa sorters skript), men kanske inte det bästa man kan föreställa sig.

I min erfarenhet så kan man vara lika horribelt ineffektiv i ett CLI som i ett GUI och båda kräver att man designar dem på ett vettigt sätt. Vet man vad man gör så kan man skripta ett GUI, men om man behöver göra det så är mjukvaran man försöker jobba med inte gjord på rätt sätt. Ett felbyggt CLI är oftare hemskt att jobba med manuellt och det syns såklart inte lika mycket när man skriptar, speciellt inte eftersom man inte får den kognitiva chocken av att gå mellan två olika sorters UI.

Drömmen vore väl att ha ett skript-interface, ett GUI och ett CLI till varje mjukvara. Där det är vettigt att ha det (och jag kommer på få mjukvaror där det inte vore det).

Visa signatur

.<

Permalänk
Hedersmedlem
Skrivet av oelrich:

Powershell är väl ändå det man använder när man är i Windows. Det ger en auto-complete på kommandoväxlar, objektorienterad IPC och så vidare. Men det är långsammare än Bash i vissa situationer.

Powershell är inte jämförbart med skalen i *nix, för Windows är inte byggt kring ett enda gränssnitt, och definitivt inte textfiler. Det handlar inte om huruvida det finns tab completion eller inte, utan det handlar om vad systemet tillhandahåller för möjligheter. Jag skrev längre om detta en annan gång på forumet.

Skrivet av oelrich:

Textfiler som bas för allt är smidigt på ett sätt (det blir som du säger trivialt att göra vissa sorters skript), men kanske inte det bästa man kan föreställa sig.

"Kanske" inte, men sedan Unix start på 60-talet så ser jag inga "mördande" alternativ för administrativa uppgifter som uppstått. Det må gå att föreställa sig tekniskt mer avancerade system, men generaliteten har ett värde i sig, och där är textfiler svåröverträffade.

Skrivet av oelrich:

I min erfarenhet så kan man vara lika horribelt ineffektiv i ett CLI som i ett GUI och båda kräver att man designar dem på ett vettigt sätt. Vet man vad man gör så kan man skripta ett GUI, men om man behöver göra det så är mjukvaran man försöker jobba med inte gjord på rätt sätt. Ett felbyggt CLI är oftare hemskt att jobba med manuellt och det syns såklart inte lika mycket när man skriptar, speciellt inte eftersom man inte får den kognitiva chocken av att gå mellan två olika sorters UI.

Problemet är att antalet uppgifter människor kan tänka sig vilja göra med ett visst program växer exponentiellt med funktionaliteten likt antalet möjliga schackställningar växer med varje drag, så det är en omöjlighet för en programmerare att inkludera precis alla användbara funktioner i ett program. Dessutom kan en programmerare inte veta med vilka program slutanvändaren kommer vilja kombinera resultat, vilket ger ytterligare en komplexitetsgrad. Ger man enkla möjligheter för användare att själva kombinera dessa delar så tar man bort en stor begränsning.

Syftningen var inte på att alla CLI som någonsin konstruerats skulle vara bättre än GUI (jag noterade uttryckligen att det inte gällde allt), men ett system utan ett potent CLI tappar en stor möjlighet för användbarheten.

Min poäng var väl snarast att färre valmöjligheter inte måste vara ett självändamål, utan att kombinationen ofta bara är positiv. Det är vanligen inte smidigt att redigera bilder i terminalen (visserligen använder jag och många med mig ImageMagick till saker som varken Photoshop/Gimp passar till), men samtidigt så kan ett generellt CLI möjliggöra saker bortom vad GUI kan ge (vilket nu är åtminstone andra gången jag skriver i denna post, utöver i min första post, samt även vad du till sist konstaterar, så det finns nog inte mycket mer att säga).

Det jag ursprungligen reagerade på var att generellt kalla CLI för "ologiskt" och "inkonsekvent", vilket jag fortfarande anser är en beskrivning diametralt motsatt verkligheten för många uppgifter. Peka-klicka-paradigmen har sina fördelar, men textgränssnitt är av naturen exaktare. Epitet som "bökigt" och "tungrott" har jag lättare att förstå, beroende på uppgift, men att kalla CLI "inkonsekvent", i jämförelse med alla olika UI-paradigmer som finns, njae.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av phz:

Powershell är inte jämförbart med skalen i *nix, för Windows är inte byggt kring ett enda gränssnitt, och definitivt inte textfiler. Det handlar inte om huruvida det finns tab completion eller inte, utan det handlar om vad systemet tillhandahåller för möjligheter. Jag skrev längre om detta en annan gång på forumet.

"Kanske" inte, men sedan Unix start på 60-talet så ser jag inga "mördande" alternativ för administrativa uppgifter som uppstått. Det må gå att föreställa sig tekniskt mer avancerade system, men generaliteten har ett värde i sig, och där är textfiler svåröverträffade.

Problemet är att antalet uppgifter människor kan tänka sig vilja göra med ett visst program växer exponentiellt med funktionaliteten likt antalet möjliga schackställningar växer med varje drag, så det är en omöjlighet för en programmerare att inkludera precis alla användbara funktioner i ett program. Dessutom kan en programmerare inte veta med vilka program slutanvändaren kommer vilja kombinera resultat, vilket ger ytterligare en komplexitetsgrad. Ger man enkla möjligheter för användare att själva kombinera dessa delar så tar man bort en stor begränsning.

Syftningen var inte på att alla CLI som någonsin konstruerats skulle vara bättre än GUI (jag noterade uttryckligen att det inte gällde allt), men ett system utan ett potent CLI tappar en stor möjlighet för användbarheten.

Min poäng var väl snarast att färre valmöjligheter inte måste vara ett självändamål, utan att kombinationen ofta bara är positiv. Det är vanligen inte smidigt att redigera bilder i terminalen (visserligen använder jag och många med mig ImageMagick till saker som varken Photoshop/Gimp passar till), men samtidigt så kan ett generellt CLI möjliggöra saker bortom vad GUI kan ge (vilket nu är åtminstone andra gången jag skriver i denna post, utöver i min första post, samt även vad du till sist konstaterar, så det finns nog inte mycket mer att säga).

Det jag ursprungligen reagerade på var att generellt kalla CLI för "ologiskt" och "inkonsekvent", vilket jag fortfarande anser är en beskrivning diametralt motsatt verkligheten för många uppgifter. Peka-klicka-paradigmen har sina fördelar, men textgränssnitt är av naturen exaktare. Epitet som "bökigt" och "tungrott" har jag lättare att förstå, beroende på uppgift, men att kalla CLI "inkonsekvent", i jämförelse med alla olika UI-paradigmer som finns, njae.

Du har helt rätt i att man får hålla sig till en delmängd av Windows om man vill jobba med Powershell på ett bra sätt. Men jag håller inte med om att det inte är jämförbart. Det är textbaserat, ger en tillgång till skriptande och så vidare. På samma sätt som kommandoprompten som du pratade om nyss. Eller är cmd.exe mer jämförbar Bash?

Sen är Powershell såklart begränsat på grund av hur Windows sett ut tidigare. Men det verkar bli fler program som stödjer det och ibland kan man skriva sitt eget lilla hjälpprogram för att prata med saker. Bättre sent än aldrig antar jag.

Jo, Unix-filosofin ja. Personligen tycker jag att den är för naiv för att leda till intressanta resultat om man följer den för slaviskt. Samtidigt så hamnar vi i ett fångens dilemma där; om vi inte standardiserar på en enkel och allmänt tillgänglig modell för data och datatransport (text i filer) så får vi istället en massa bråk om exakt vad vi skall använda eller mycket extrajobb när vi försöker ansluta till något nytt. Men det är just att de är fundamentalt byggda runt text som gör att jag tycker att de är tråkiga och omoderna. Varför inte bygga om systemen med funktionella databaser som grund istället? Eller åtminstone tillåta vissa datatyper utan att gå via text. 18446744073709551615 skall inte behöva ta 20 byte.

Man behöver inte lägga in alla funktioner i ett enda program bara för att man inte tycker att räkna tecken och att räkna ord i en fil bör vara två olika program. Imagemagick som du tar upp är ett bra exempel. Man samlar en hel del saker med relaterad funktionalitet under ett konceptuellt skal (men kanske inte nödvändigtvis i samma binär). Samma för program som R, Git och så vidare.

Sen behöver vi inte göra detta till en Linux vs. Windows-diskussion. De är meningslösa. Linux är fantastiskt på otroligt många områden och det vore bara puckat att försöka säga något annat. Det samma gäller för Windows.

Svar på tråden du länkade till: ja, en av styrkorna i Linux är den anammade Unix-filosofin. Det är också en svaghet. Att tvinga igenom ett visst sätt att lösa problem på alla problemområden är inte intelligent. Men det gör man ju inte riktigt heller. Speciellt inte i prestandakritiska segment. Försök se det som skillnaden mellan att använda LISP och C. Kod som data och data som kod-paradigmet är kraftfullt, häftigt, smidigt och i vissa situationer helt värdelöst eftersom det inte ger optimal prestanda; att kunna gå in och flippa bittar lite hur man vill och aligna cache-linor efter behag är också enormt bra att kunna få göra men det kan leda till lite för låg nivå på abstraktionerna man kan (eller orkar) göra.

Personligen vill jag inte se Powershell som navet i Windows. Låt det vara ett textbaserat UI som låter en knyta an till mjukvaror som finns på systemet. Men COM (och derivat) är inte en helt puckad modell som bas. Varför inte låta programmen ha ett interface som låter dem frågas ut om vad de tillhandahåller för tjänster och vad för data de kan konsumera. Det kanske blir svårare att skripta, men du får tillgång till ett annat sätt att använda systemet.

TLDR: off topic och meningslöst, nu skall jag ut och leta väderkvarnar.

Visa signatur

.<

Permalänk
Hedersmedlem
Skrivet av oelrich:

Du har helt rätt i att man får hålla sig till en delmängd av Windows om man vill jobba med Powershell på ett bra sätt. Men jag håller inte med om att det inte är jämförbart. Det är textbaserat, ger en tillgång till skriptande och så vidare. På samma sätt som kommandoprompten som du pratade om nyss. Eller är cmd.exe mer jämförbar Bash?

Powershell i ett vakuum och Bash i ett vakuum vore direkt jämförbara som verktyg, men syftet med uttalandet att de inte är (rättvist) jämförbara i ett vidare perspektiv är att de ju inte är tänkta att agera på "egen hand" (eller ja, man kan skriva en primtalsfaktoriserare eller sorteringsalgoritmer i shell script, men det är inte rätt ), utan deras funktion beror fundamentalt på vad de har att interagera med. På den grunden så är ett system som byggts kring denna paradigm i över 40 år inte jämförbart med ett system som lagt till Powershell för att lappa en administrativ önskan.

Skrivet av oelrich:

Jo, Unix-filosofin ja. Personligen tycker jag att den är för naiv för att leda till intressanta resultat om man följer den för slaviskt. Samtidigt så hamnar vi i ett fångens dilemma där; om vi inte standardiserar på en enkel och allmänt tillgänglig modell för data och datatransport (text i filer) så får vi istället en massa bråk om exakt vad vi skall använda eller mycket extrajobb när vi försöker ansluta till något nytt. Men det är just att de är fundamentalt byggda runt text som gör att jag tycker att de är tråkiga och omoderna. Varför inte bygga om systemen med funktionella databaser som grund istället? Eller åtminstone tillåta vissa datatyper utan att gå via text. 18446744073709551615 skall inte behöva ta 20 byte.

Det viktiga för att kunna koppla samman olika delar är ju just som du säger att alla använder samma gränssnitt. Postulaten är 1. att det gränssnitt som bäst lämpar sig för detta är det enklaste som fortfarande är funktionellt, och 2. att text är detta gränssnitt. Att det känns "tråkigt" och "omodernt" förtar inte att det fungerar för sitt syfte.

Vad gäller ineffektiviteten i textöverföring kontra dedikerada datatyper så är det något som närpå öht inte spelar in i skalets funktion: det är inte tänkt att vara en högprestandaberäknare (prestanda är givetvis inte negativt, men det är långt ifrån primärt); behöver man prestanda så använder man Perl/Python/C/C#/Java/vad som nu passar. Tunga beräkningarna sker ju i praktiken just i binärer/skript, men vad textgränssnitt möjliggör är kommunikation mellan dessa separata delar. Att basera yttre gränssnitt på text motsäger inte att ha effektiva datastrukturer där de behövs.

Skrivet av oelrich:

Man behöver inte lägga in alla funktioner i ett enda program bara för att man inte tycker att räkna tecken och att räkna ord i en fil bör vara två olika program. Imagemagick som du tar upp är ett bra exempel. Man samlar en hel del saker med relaterad funktionalitet under ett konceptuellt skal (men kanske inte nödvändigtvis i samma binär). Samma för program som R, Git och så vidare.

Nä, men det är ett falskt dilemma som inget argumenterat för heller. Det är inte "svart eller vitt", men just detta gör ju att kombinationen (för n:te gången ) måste vara det bästa: har man ett funktionellt GUI OCH ett funktionellt CLI så löser det fler problem än bara det ena.

Skrivet av oelrich:

Sen behöver vi inte göra detta till en Linux vs. Windows-diskussion. De är meningslösa. Linux är fantastiskt på otroligt många områden och det vore bara puckat att försöka säga något annat. Det samma gäller för Windows.

De är meningslösa om man gör det till en "AIK vs Djurgården"-diskussion, men nog finns det insikter att hitta om vad som gör det ena systemet till mer passande än det andra i olika situationer.

Skrivet av oelrich:

Svar på tråden du länkade till: ja, en av styrkorna i Linux är den anammade Unix-filosofin. Det är också en svaghet. Att tvinga igenom ett visst sätt att lösa problem på alla problemområden är inte intelligent. Men det gör man ju inte riktigt heller. Speciellt inte i prestandakritiska segment. Försök se det som skillnaden mellan att använda LISP och C. Kod som data och data som kod-paradigmet är kraftfullt, häftigt, smidigt och i vissa situationer helt värdelöst eftersom det inte ger optimal prestanda; att kunna gå in och flippa bittar lite hur man vill och aligna cache-linor efter behag är också enormt bra att kunna få göra men det kan leda till lite för låg nivå på abstraktionerna man kan (eller orkar) göra.

Återigen så är ju detta inte något som någon argumenterat emot. Ingen förespråkar att högprestandakod för dataanalys i avancerade fysikaliska experiment måste behandla sin kod i Bashscript och sina datafiler i ASCII. Att attackera den positionen är att sparka in en öppen dörr — diskussionen startade med att kombinationen av två potenta gränssnitt är bättre än ett, och att det finns domäner där CLI mer uppenbart kan lösa ett problem gentemot GUI och vice versa.

Skrivet av oelrich:

Personligen vill jag inte se Powershell som navet i Windows. Låt det vara ett textbaserat UI som låter en knyta an till mjukvaror som finns på systemet. Men COM (och derivat) är inte en helt puckad modell som bas. Varför inte låta programmen ha ett interface som låter dem frågas ut om vad de tillhandahåller för tjänster och vad för data de kan konsumera. Det kanske blir svårare att skripta, men du får tillgång till ett annat sätt att använda systemet.

TLDR: off topic och meningslöst, nu skall jag ut och leta väderkvarnar.

Ja, men detta cirkulerar tillbaka till det som startade denna post: att t ex Bash och Powershell löser olika uppgifter, samt att det ena inte måste utesluta det andra.

Jag flyttar utflykten till tråden som länkades innan, då den känns mer passande där.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Hedersmedlem

*Sammanfogar diskussion från annan tråd*

En diskussion i kommentarstråden till Gabe Newell: "Linux är framtiden för spel – ny hårdvara på ingång" länkades mer och mer in i vad som redan behandlats i denna tråd och mindre och mindre vad som den tråden handlade om, så jag flyttade den biten hit. Gäller ovanstående fyra inlägg.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av phz:

Powershell i ett vakuum och Bash i ett vakuum vore direkt jämförbara som verktyg, men syftet med uttalandet att de inte är (rättvist) jämförbara i ett vidare perspektiv är att de ju inte är tänkta att agera på "egen hand" (eller ja, man kan skriva en primtalsfaktoriserare eller sorteringsalgoritmer i shell script, men det är inte rätt ), utan deras funktion beror fundamentalt på vad de har att interagera med. På den grunden så är ett system som byggts kring denna paradigm i över 40 år inte jämförbart med ett system som lagt till Powershell för att lappa en administrativ önskan.

Det viktiga för att kunna koppla samman olika delar är ju just som du säger att alla använder samma gränssnitt. Postulaten är 1. att det gränssnitt som bäst lämpar sig för detta är det enklaste som fortfarande är funktionellt, och 2. att text är detta gränssnitt. Att det känns "tråkigt" och "omodernt" förtar inte att det fungerar för sitt syfte.

Vad gäller ineffektiviteten i textöverföring kontra dedikerada datatyper så är det något som närpå öht inte spelar in i skalets funktion: det är inte tänkt att vara en högprestandaberäknare (prestanda är givetvis inte negativt, men det är långt ifrån primärt); behöver man prestanda så använder man Perl/Python/C/C#/Java/vad som nu passar. Tunga beräkningarna sker ju i praktiken just i binärer/skript, men vad textgränssnitt möjliggör är kommunikation mellan dessa separata delar. Att basera yttre gränssnitt på text motsäger inte att ha effektiva datastrukturer där de behövs.

Nä, men det är ett falskt dilemma som inget argumenterat för heller. Det är inte "svart eller vitt", men just detta gör ju att kombinationen (för n:te gången ) måste vara det bästa: har man ett funktionellt GUI OCH ett funktionellt CLI så löser det fler problem än bara det ena.

De är meningslösa om man gör det till en "AIK vs Djurgården"-diskussion, men nog finns det insikter att hitta om vad som gör det ena systemet till mer passande än det andra i olika situationer.

Återigen så är ju detta inte något som någon argumenterat emot. Ingen förespråkar att högprestandakod för dataanalys i avancerade fysikaliska experiment måste behandla sin kod i Bashscript och sina datafiler i ASCII. Att attackera den positionen är att sparka in en öppen dörr — diskussionen startade med att kombinationen av två potenta gränssnitt är bättre än ett, och att det finns domäner där CLI mer uppenbart kan lösa ett problem gentemot GUI och vice versa.

Ja, men detta cirkulerar tillbaka till det som startade denna post: att t ex Bash och Powershell löser olika uppgifter, samt att det ena inte måste utesluta det andra.

Jag flyttar utflykten till tråden som länkades innan, då den känns mer passande där.

Smidigt att kunna flytta inlägg, mindre röra i forumen. Men du missade ett par.

Det blir en lite hoppig diskussion då det rör sig om både CLIs vara eller icke vara (här verkar vi vara överens, de behövs), Unixfilosofin som modell för ett bra operativsystem (retoriskt nonsens då den är en självemotsägelse enligt mig) och Bash vs. kommandoprompten (som enligt mig bör vara Bash vs. Powershell för att få lite balans i det hela, ingen vettig människa skulle väl välja kommandoprompten över Bash).

Säg till om jag missat något.

Nu vidare till vårt ordinarie program:

Vad är det som gör att Powershell och Bash inte är rättvist jämförbara? Det finns mycket i Powershell som går utanför "lappa administrativ önskan". Till exempel är det trivialt att ladda .NET-assemblies, mecka med Excel-dokument och så vidare. Så om de är jämförbara i vakuum så är de det i sina respektive system. Sedan att Bash har fler "kompatibla" mjukvaror och har en mycket mer långtgående i sitt system är ju bara något som läggs till dess fördel, inte något som gör dem ojämförbara.

Powershell har ett par trevliga funktioner som att data är objekt och att man kommer åt funktioner från vissa .NET-bibliotek utan att göra något särskilt. Tab kör en auto-complete på växlar till de program som har integrerats och låter en hoppa mellan metoder i klasserna. Så till exempel kan vi på en textrad vi fått från "dir" skriva "." och tabba oss fram till Replace() eller vad man nu är ute efter. Smidigt för en sådan som mig som inte orkar komma ihåg alla Bash-kommandon eller hur sed och awk fungerade nu igen.

Sen säger jag inte att man inte behöver ett textlager, men att grunden för systemet inte bör vara text. Vi verkar prata om olika saker. Jag håller med dig om att en kombination av användargränssnitt är det enda rätta, men jag skulle vilja ha en mer data/program-centrisk syn på en grundläggande nivå. Låt programmen kommunicera sinsemellan i något för dem effektivt lager och låt oss människor interagera med dem via CLI eller GUI beroende på vad som blir enklast. Text är dock inte en vettig modell när gäller programkommunikationslager.

Jag menade såklart inte att Unix-program alltid kör med text. Men problemet kvarstår.

Säg att vi har en simulator vars resultat vi vill visualisera. Om vi inte vill utöka simulatorn med kod för visualisering så är vi tillbaka i problemet att pumpa ner data till text och sedan upp igen. Det är den flaskhalsen som uppstår när man bygger allt runt text och Unixfilosofin leder då till en självmotsägelse där text blir anledningen till att man måste röra sig bort från diskreta program som man lätt kopplar till varandra.

Hur som helst. Min ståndpunkt är att 1) text är inte optimalt som bas för systemet och Unixfilosofin är humbug (men Unixar är trevliga att jobba med, speciellt de öppna varianterna), 2) Bash vs cmd.exe bör kanske vara Bash vs. Powershell om man vill vara rättvis, 3) Powershell fungerar utmärkt som interaktivt verktyg om programmen man vill jobba med har stöd för det (vilket ofta är fallet när det gäller nyare program), 4) Bash vinner med hästlängder om man tittar på antal program man kan prata med och hastighet i vissa situationer men 5) Powershell rockar om man har taskigt minne och gillar att systemet hjälper en komma åt funktioner som man inte använder dagligen men kan gissa sig till namnet på.

Visa signatur

.<

Permalänk
Datavetare
Skrivet av oelrich:

1) text är inte optimalt som bas för systemet och Unixfilosofin är humbug (men Unixar är trevliga att jobba med, speciellt de öppna varianterna), 2) Bash vs cmd.exe bör kanske vara Bash vs. Powershell om man vill vara rättvis, 3) Powershell fungerar utmärkt som interaktivt verktyg om programmen man vill jobba med har stöd för det (vilket ofta är fallet när det gäller nyare program), 4) Bash vinner med hästlängder om man tittar på antal program man kan prata med och hastighet i vissa situationer men 5) Powershell rockar om man har taskigt minne och gillar att systemet hjälper en komma åt funktioner som man inte använder dagligen men kan gissa sig till namnet på.

Skulle säga att de två absolut största styrkorna i UNIX (och därmed Linux) är att text är grunden för allt samt att hela "shell" miljön bygger på att program tar argument som påverkar hur de behandlar data och data får man från stdin eller fil och data producerar man till stdout eller fil.

Att text är bättre än binära format blir uppenbart första gången man ska jobba med program där det finns lite eller ingen dokumentation, ingen som jobbat med programmet finns att tillgå och man har fått i uppgift rätta en bug, utöka funktionallitet eller skriva ett nytt program som hanterar samma typ av indata och producerar samma typ av utdata. Detta är inte alls ovanligt och om all data var i binärformat så har man ett problem som är långt mycket mer komplicerat framför sig.

Som det beskrivs så väl i "The Pragmatic Programmer"
Keep Knowledge in Plain Text
Plain text won't become obsolete. It helps leverage your work and simplifies debugging and testing.

Men tycker att den andra egenskapen är minst lika viktigt. Ta bara en sådan sak som att du vill packa ihop en bibliotek på en dator, komprimera det, skicka det till en annan dator, återställa data och packa upp biblioteksträdet. En helt rimlig uppgift (har använt mig väldigt ofta av detta), det kanske finns ett problem som gör allt detta men det är inte precis ett program som har en specifik uppgift.

Det är däremot inga problem att skriva en BASH rad som gör precis detta och anledningen är just att det finns små program som är skrivna som "filter", de läser data från fil/stdin, gör en transform och skriver till fil/stdout.

$ ssh <source> "tar cf - <bibliotek> | bzip2" | bunzip2 | tar xf -

Vet att man kan skriva detta kortare, men det är inte poängen. Poängen är att styrkan hos UNIX är att om alla enas om hur man hämtar och producerar data och detta är via den mest grundläggande metoden för I/O i ett OS, läsa skriva text (text i ganska vid bemärkelse här).

Vad som händer här är att man, via nätverket, går in på den andra maskinen, kör ett kommando som kommer packa ihop filerna, komprimera resultatet och skicka ut data på stdout. SSH klienten vidarebefordrar stdout data, skriver det på den lokala stdin som BASH kopplat till bunzip2. Data blir därför återställt och resultatet stoppas in i tar som därmed kan återskapa biblioteket.

Styrkan i BASH är alltså att man väldigt enkelt kan anpassa arbetsmoment till helt nya kommunikationssätt, man kan göra saker ingen tänkt på. Har själv en hel del stdin/stdout "adaptrar" som gör det möjligt att via en Linux-dator skripta uppgifter på inbyggda-system. Enda man behöver här är ett sätt att komma in på systemet (nätverk, serie-port, JTAG eller liknande) + något som kan köra funktioner på systemet. Att skripta blir sedan ett helt "vanligt" BASH-skript för en uppgift ingen tidigare ens funderat att skapa ett program för.

Läser man hur PowerShell blev till så kommer det från Microsoft-anställda som önskade "BASH" på Windows. Problemet med Windows är att det inte finns ett standardiserat sätt hur data ska konsumeras/produceras likt det som finns under UNIX. Man tittade bl.a. på CygWin men konstaterade att även om det fungerar bra för vad det gör så blir det ganska begränsat på Windows. Vad man insåg var att man måste ha något som kan interagera med COM och .Net vilket är precis vad PowerShell gör.

Så input/output metoden PowerShell använder var inte förstahandvalet utan det val man var tvungen till för att det skulle vara användbart för administrering av Windows-system. Men även om MS egna program i stort sätt uteslutande har COM/.Net gränssnitt så är det definitivt inte något som gäller generellt. PowerShell kan därför aldrig bli lika flexibelt och kraftfullt som BASH.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Inaktiv
Skrivet av Harblax:

Ja, men varför skulle jag vilja slösa tid på att anpassa operativsystemet när jag istället kan skapa musik, spela spel eller redigera film?

Du har svarat på frågan själv. Du är inte intresserad av Linux, du vill spela spel. Redigera film och "skapa" musik går alldeles utmärkt i Linux. Spel beror på utvecklarna, inte Linux i sig. På jobbet spelar vi inte spel, vi har stabila arbetsstationer och servrar istället.

Det är oftast okunskapen som sätter punkt.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av Yoshman:

Skulle säga att de två absolut största styrkorna i UNIX (och därmed Linux) är att text är grunden för allt samt att hela "shell" miljön bygger på att program tar argument som påverkar hur de behandlar data och data får man från stdin eller fil och data producerar man till stdout eller fil.

Att text är bättre än binära format blir uppenbart första gången man ska jobba med program där det finns lite eller ingen dokumentation, ingen som jobbat med programmet finns att tillgå och man har fått i uppgift rätta en bug, utöka funktionallitet eller skriva ett nytt program som hanterar samma typ av indata och producerar samma typ av utdata. Detta är inte alls ovanligt och om all data var i binärformat så har man ett problem som är långt mycket mer komplicerat framför sig.

Som det beskrivs så väl i "The Pragmatic Programmer"
Keep Knowledge in Plain Text
Plain text won't become obsolete. It helps leverage your work and simplifies debugging and testing.

Men tycker att den andra egenskapen är minst lika viktigt. Ta bara en sådan sak som att du vill packa ihop en bibliotek på en dator, komprimera det, skicka det till en annan dator, återställa data och packa upp biblioteksträdet. En helt rimlig uppgift (har använt mig väldigt ofta av detta), det kanske finns ett problem som gör allt detta men det är inte precis ett program som har en specifik uppgift.

Det är däremot inga problem att skriva en BASH rad som gör precis detta och anledningen är just att det finns små program som är skrivna som "filter", de läser data från fil/stdin, gör en transform och skriver till fil/stdout.

$ ssh <source> "tar cf - <bibliotek> | bzip2" | bunzip2 | tar xf -

Vet att man kan skriva detta kortare, men det är inte poängen. Poängen är att styrkan hos UNIX är att om alla enas om hur man hämtar och producerar data och detta är via den mest grundläggande metoden för I/O i ett OS, läsa skriva text (text i ganska vid bemärkelse här).

Vad som händer här är att man, via nätverket, går in på den andra maskinen, kör ett kommando som kommer packa ihop filerna, komprimera resultatet och skicka ut data på stdout. SSH klienten vidarebefordrar stdout data, skriver det på den lokala stdin som BASH kopplat till bunzip2. Data blir därför återställt och resultatet stoppas in i tar som därmed kan återskapa biblioteket.

Styrkan i BASH är alltså att man väldigt enkelt kan anpassa arbetsmoment till helt nya kommunikationssätt, man kan göra saker ingen tänkt på. Har själv en hel del stdin/stdout "adaptrar" som gör det möjligt att via en Linux-dator skripta uppgifter på inbyggda-system. Enda man behöver här är ett sätt att komma in på systemet (nätverk, serie-port, JTAG eller liknande) + något som kan köra funktioner på systemet. Att skripta blir sedan ett helt "vanligt" BASH-skript för en uppgift ingen tidigare ens funderat att skapa ett program för.

Läser man hur PowerShell blev till så kommer det från Microsoft-anställda som önskade "BASH" på Windows. Problemet med Windows är att det inte finns ett standardiserat sätt hur data ska konsumeras/produceras likt det som finns under UNIX. Man tittade bl.a. på CygWin men konstaterade att även om det fungerar bra för vad det gör så blir det ganska begränsat på Windows. Vad man insåg var att man måste ha något som kan interagera med COM och .Net vilket är precis vad PowerShell gör.

Så input/output metoden PowerShell använder var inte förstahandvalet utan det val man var tvungen till för att det skulle vara användbart för administrering av Windows-system. Men även om MS egna program i stort sätt uteslutande har COM/.Net gränssnitt så är det definitivt inte något som gäller generellt. PowerShell kan därför aldrig bli lika flexibelt och kraftfullt som BASH.

Om jag tolkar dig rätt så säger du att det är lättare att läsa datafiler man inte har någon dokumentation om ifall de är i klartext? Jag skulle svara "duh"/"trams".
"duh" -> Ja, det är trivialt sant att om det går att öppna filen i vilken texteditor som helst så är det lättare att börja titta på hur data är strukturerade.
"trams" -> Om man inte har dokumentationen så blir det bara gissningar. Är raden med siffror en skalär, eller del av en vektor? Vad betyder 'H' i kolumn 12?

Man kan såklart knäcka vad programmet gör och hur data i filerna är organiserade om man har tur, är intelligent och lägger manken till, men det är inte ett bra skäl för textbaserade system.

Om det inte är ovanligt med helt odokumenterade binär-filer som måste köras för dig så undrar jag vad det är du jobbar med. För min del så är det någon eller några gånger jag snubblat över en fil där man inte kunde hitta något alls om den och verkligen behövde få någonting ur den.

Bash har såklart sina sidor, men i exemplet du tar upp undrar jag varför du inte använder Git, SVN eller liknande.

Jag tror dock jag förstår vad du säger och jag håller med. Bash är lättare att tvinga in i nya roller och mot ny hård- och mjukvara. I Powershell så är man mer utlämnad åt vad som finns färdigt. Så jag håller med om att det inte är (och antagligen inte kan bli utan en massa kompromisser) lika flexibelt som Bash. Huruvida det där med kraftfullt stämmer tycker jag är beroende på vad man vill göra.

Visa signatur

.<

Permalänk
Hedersmedlem
Skrivet av oelrich:

Det blir en lite hoppig diskussion då det rör sig om både CLIs vara eller icke vara (här verkar vi vara överens, de behövs), Unixfilosofin som modell för ett bra operativsystem (retoriskt nonsens då den är en självemotsägelse enligt mig) och Bash vs. kommandoprompten (som enligt mig bör vara Bash vs. Powershell för att få lite balans i det hela, ingen vettig människa skulle väl välja kommandoprompten över Bash).

Säg till om jag missat något.

Mitt ursprungliga uttalande var ett svar på att CLI skulle vara "ologiskt" och "inkonsekvent". För att någon ska komma till den slutsatsen så kan jag bara anta att personen likställer CLI med "kommandoprompten", dvs ett bökigt gränssnitt med få möjligheter, vilket var anledningen till den liknelsen. Vidare diskussionspunkter anser jag du har dragit in i diskussionen, vilket mycket möjligen kan vara med hjälp av oklara formuleringar från min sida.

Skrivet av oelrich:

Nu vidare till vårt ordinarie program:

Vad är det som gör att Powershell och Bash inte är rättvist jämförbara? Det finns mycket i Powershell som går utanför "lappa administrativ önskan". Till exempel är det trivialt att ladda .NET-assemblies, mecka med Excel-dokument och så vidare. Så om de är jämförbara i vakuum så är de det i sina respektive system. Sedan att Bash har fler "kompatibla" mjukvaror och har en mycket mer långtgående i sitt system är ju bara något som läggs till dess fördel, inte något som gör dem ojämförbara.

De är jämförbara i ett vakuum, vilket jag skrev, men poängen var att det inte hjälper något till att göra den jämförelsen i kontexten de används. "Direkt jämförbara" hade kanske varit än tydligare för att poängtera vad jag menade ursprungligen, men jag utvecklade detta i ett senare svar.

Bash var i mitt ursprungliga inlägg i den tråd från vilken detta spår flyttades arketypen för ett effektivt CLI, som drar mycket av sin kraft av att hela systemet är uppbyggt kring ett gränssnitt som behandlas väl med skalet. Powershell argumenterade jag i ett gammalt inlägg i denna tråd för var en efterkonstruktion för att täcka delar av samma uppgifter (vilket inte bör vara kontroversiellt i något läger, men kanske ord som inte skulle användas i PR-material), men inte är en övergripande modell för systemskötsel; det är inte en fundamental bas utifrån vilken systemet definieras (vilket du själv skriver att du hoppas ej heller i framtiden ska hända).

Poängen var initialt i Newelltråden att visa upp en större mångfald av begreppet "CLI", med Bash som belysande exempel.

Skrivet av oelrich:

Powershell har ett par trevliga funktioner som att data är objekt och att man kommer åt funktioner från vissa .NET-bibliotek utan att göra något särskilt. Tab kör en auto-complete på växlar till de program som har integrerats och låter en hoppa mellan metoder i klasserna. Så till exempel kan vi på en textrad vi fått från "dir" skriva "." och tabba oss fram till Replace() eller vad man nu är ute efter. Smidigt för en sådan som mig som inte orkar komma ihåg alla Bash-kommandon eller hur sed och awk fungerade nu igen.

Det är en trevlig funktion, men den finns i Bash också, så det är mer ett konstaterande än ett argument. Där under namnet "Bash completion", vilket enligt googling funnits sedan Bash 2.04 som släpptes 2000. Som en analog så kan jag alltså skriva `ls -` och sedan tabba fram alla växlar till `ls`.

Skrivet av oelrich:

Sen säger jag inte att man inte behöver ett textlager, men att grunden för systemet inte bör vara text. Vi verkar prata om olika saker. Jag håller med dig om att en kombination av användargränssnitt är det enda rätta, men jag skulle vilja ha en mer data/program-centrisk syn på en grundläggande nivå. Låt programmen kommunicera sinsemellan i något för dem effektivt lager och låt oss människor interagera med dem via CLI eller GUI beroende på vad som blir enklast. Text är dock inte en vettig modell när gäller programkommunikationslager.

Just grunden anser jag passar bättre som text, då konfigurationsfiler och annat i mina ögon lämpar sig bättre i den formen. Man har direkt styrkan hos avancerade textredigerare (`regedit` i all ära ). Man kan trivialt lägga in konfiguration i versionshanteringssystem för att diffa, se historik, etc.

Vad gäller programkommunikation så är idén med "text" (vilket är i vid betydelse enligt virtual voids exempel med pipes och omdirigering) att den som främsta egenskap ska gå att kombinera. Den vinner måhända inte över kompilerade program för enstaka uppgifter, men att gå in på prestanda är ytterligare ett snedspår i diskussionen som snarast kopplar till "premature optimization" för de uppgifter som systemadministration behandlar.

Men visst, en standardiserad databaslösning vore en annan möjlighet. Då är man dock tillbaka till postulatet om att de enklaste gränssnitten är de som är mest generella, och att generella gränssnitt är de som är "bäst" ur just en generell synpunkt. Det är en grund i "filosofin".

Skrivet av oelrich:

Säg att vi har en simulator vars resultat vi vill visualisera. Om vi inte vill utöka simulatorn med kod för visualisering så är vi tillbaka i problemet att pumpa ner data till text och sedan upp igen. Det är den flaskhalsen som uppstår när man bygger allt runt text och Unixfilosofin leder då till en självmotsägelse där text blir anledningen till att man måste röra sig bort från diskreta program som man lätt kopplar till varandra.

Det är återigen en utsaga som behandlar uppgifter bortom själva systemets uppbyggnad, och som tidigare sagts så är prestandakritiska applikationer en annan bollplan. "Unixfilosofin" förespråkar inte att man ska förkasta binära format. Data är data, men beskrivning av data, i form av t ex konfiguration eller dokumentation, vinner på att vara i dess mest tillgängliga form ("men inte lättillgängligare än så!", om man får parafrasera). Det är vad "filosofin" pekar på. Att den kallas just "Unixfilosofin" är historiskt i datorkontext, men slutsatsen är inte speciellt kontroversiell i övrigt: information som är dold är svårare att ta till sig än information som är lättillgänglig.

Skrivet av oelrich:

Hur som helst. Min ståndpunkt är att 1) text är inte optimalt som bas för systemet och Unixfilosofin är humbug (men Unixar är trevliga att jobba med, speciellt de öppna varianterna), 2) Bash vs cmd.exe bör kanske vara Bash vs. Powershell om man vill vara rättvis, 3) Powershell fungerar utmärkt som interaktivt verktyg om programmen man vill jobba med har stöd för det (vilket ofta är fallet när det gäller nyare program), 4) Bash vinner med hästlängder om man tittar på antal program man kan prata med och hastighet i vissa situationer men 5) Powershell rockar om man har taskigt minne och gillar att systemet hjälper en komma åt funktioner som man inte använder dagligen men kan gissa sig till namnet på.

  1. Den åsikten får man givetvis ha, men det känns som att du övertolkar "Unixfilosofin" in absurdum och anser att den absurda slutsatsen är just absurd, vilket den är, men den reflekterar inte filosofin.

  2. Den specifika diskussionen anser jag att det är du som startat, om man ser på kontexten i vilken spåret började. Sakfrågan var snarare "CLI vs GUI", där Bash användes som ett exempel på ett kraftfullt CLI i en kraftfull kontext (och kontexten var just Linuxbaserade system).

  3. Ja, Powershell är en tillgång. Dess applikation som interaktivt verktyg beror ju dock mycket på vad man har att jobba med, och där har *nix-system en fördel, då terminalen alltid varit en självklar del; dvs man slipper brasklappen "nyare program" och kan i stället luta sig på "program som utvecklats sedan datorsystemens begynnelse". Detta har väl ej heller argumenterats emot i större utsträckning.

  4. Ja, det upprepar min #3 ovan.

  5. Bash har samma funktionalitet (och ZSH/etc. för den delen). I praktiken så används tab completion nog främst (iaf av mig) till att slippa skriva saker, mer än som dokumentation över funktionalitet och växlar, där en manualsida av naturen har större möjligheter.

Detta är inte tänkt att vara någon religiös "AIK vs Djurgården"-diskussion som använde som liknelse tidigare, men det känns som att det fortfarande finns missförstånd gällande vad "text" innebär i sammanhanget, vad "filosofin" implicerar, var den applicerar, vad Bash har för funktionalitet, etc.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av SwedenVirre:

Renosie, FL studio och Gimp, Auda city.

Mestadels Renosie och Gimp

Har FL Studio kommit i en Linux version eller kör du den via Wine?
Har för mig att de sa att kärnan var rätt hårt knuten till windows API funktioner så därför det inte kommer någon OSX version (som det ser ut nu). Men de kanske har ändrat sig och skrivit om kärnan?

Visa signatur

Huvudriggen är en Gigabyte Aorus Xtreme | 128gb DDR5 6000 | Ryzen 7950X | 3080Ti
Utöver det är det för många datorer, boxar och servar för att lista :P

Permalänk
Medlem
Skrivet av SysGhost:

Sedan skall vi inte glömma att "mörkertalet" över antalet klagande hos Windows är ... stort.
Hur många Windows-användare rapporterar strul? De flesta rycker troligen på axlarna och nöjer sig med de varnings-trianglar dem har i enhets-hanteraren (Och hur många använder enhets-hanteraren?). De flesta köper nog en ny dator, när USB-porten slutar fungera. Det bidrar mer till Windows försäljnings-statistik när den egentligen borde ha bidragit till "Driver issue" statistiken.
Jämför det med den genomsnittlige Linux-användaren. Där rapporterar användarna fel och buggar oftare genom att be om hjälp på forum, eller rentav använda sig av den inbyggda bugg-rapporteringen många distributioner idag kommer med.

Båda systemen har ett mörkertal, men den är högst troligt mycket större under Windows, än vad den är under en Linux-miljö, då de flesta "icke-kunniga / lata" användarna i regel sitter under Windows.

Windows är generellt väldigt bugg fritt och fungerar utan ansträngning från start, dock kommer Windows inte med basprogram som Ubuntu gör. Blåskärm och liknande problem uppkommer oftast av felaktig eller defekt hårdvara när man byggt ihop datorer själva, det är oftast ingen prestige att använda Windows i massan, är mer åt arbetshäst som man sliter och slänger med utan att uppskatta vad den gör särskiljt mycket, normalmassan.

När ett problem uppstår, är det ett problem som helheten av Operativsystemet och då kommer direkt få negativ bedömning utan att läsa och eftersökning vidare varför och fixa det, möjligen att man skapar en problem tråd som är det enklaste vägen för nybörjare. När ett problem för en kunnig uppstår, så försöker man ta reda på vad som gör detta utan bedöma operativsystemet som ett problem OS, vilket inte en okunnig gör.

Det är massan som är de känsliga kunderna när problem uppstår och det är där företag förlorar och vinner kunder.
Allt måste fungera, däremot "måste" inte allt fungera 100% för kunniga för det blir mer som en utmaning att fixa systemet utan att gnälla.

Så jag ser inte riktigt hur din teori stämmer. Dock är det ju så att Linux används större delen av kunniga, men därför ser jag inte varför det skulle skapas fler problem trådar om man kan ta reda på och läsa sig fram själv.

Permalänk
Datavetare
Skrivet av oelrich:

Om jag tolkar dig rätt så säger du att det är lättare att läsa datafiler man inte har någon dokumentation om ifall de är i klartext? Jag skulle svara "duh"/"trams".
"duh" -> Ja, det är trivialt sant att om det går att öppna filen i vilken texteditor som helst så är det lättare att börja titta på hur data är strukturerade.
"trams" -> Om man inte har dokumentationen så blir det bara gissningar. Är raden med siffror en skalär, eller del av en vektor? Vad betyder 'H' i kolumn 12?

För att ta ett exempel på vad jag menar: på vilket sätt är inte en fil likt /etc/network/interfaces helt överlägset att ha motsvarande information i en databas som spara saker binärt i ett format du typiskt inte känner till och bara kan läsa genom ett program får OS-leverantören (registret + Windows nätverkskonfig)?

Även helt utan dokumentation kan de flesta som vet något om nätverk lura ut vad detta gör

auto lo eth0 iface lo inet loopback iface eth0 inet dhcp

så varför ska man inte använda "plain-text", finns absolut inga fördelar med ett binärformat här. Samma sak gäller för majoriteten av all konfiguration till program och OS.

Skrivet av oelrich:

Man kan såklart knäcka vad programmet gör och hur data i filerna är organiserade om man har tur, är intelligent och lägger manken till, men det är inte ett bra skäl för textbaserade system.

Om det inte är ovanligt med helt odokumenterade binär-filer som måste köras för dig så undrar jag vad det är du jobbar med. För min del så är det någon eller några gånger jag snubblat över en fil där man inte kunde hitta något alls om den och verkligen behövde få någonting ur den.

Finns många ställen där man använder HW/programvara under många årtionden. Hur många program och dokumentation till program har du kvar till saker som som är över 15år gamla? Det är inte normalfallet att jobba med odokumenterade saker, men varför ska man inte välja ett format som hjälper den som behöver gräva fram något om 15-30 år när ytterst sällan finns någon fördel med binära format?

Internt i programmet transformerar man naturligtvis data till ett format som är effektivt att jobba med, men på disk bör data sparas på ett sätt som i nödfall kan tolkas av en människa som bara använder standardverktyg.

Skrivet av oelrich:

Bash har såklart sina sidor, men i exemplet du tar upp undrar jag varför du inte använder Git, SVN eller liknande.

Jag tror dock jag förstår vad du säger och jag håller med. Bash är lättare att tvinga in i nya roller och mot ny hård- och mjukvara. I Powershell så är man mer utlämnad åt vad som finns färdigt. Så jag håller med om att det inte är (och antagligen inte kan bli utan en massa kompromisser) lika flexibelt som Bash. Huruvida det där med kraftfullt stämmer tycker jag är beroende på vad man vill göra.

Nu vara det bara ett exempel på vad man kan gör och varför skulle jag gå via check-in till git -> checkout från git om jag bara vill kopiera ett filträd, framförallt om det handlar om många GB data? Poängen var med att visa att tack vare den hur skalet är utformat under UNIX så kan man enkelt lägga till funktioner som ingen alls tänkt på innan, i mitt fall nätverksstöd till tar.

I dagens uppkopplade värld och allt mer "moln"-tjänster så måste det vara en stor nackdel för PowerShell att man inte enkelt kan uppnå nätverkstransparens. Sättet skalet i UNIX är utformat gör att det alltid kommer kunna anpassas till ny teknik och nya användarmönster.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer