Unix filosofi
Unix-filosofin är en uppsättning kulturella normer och filosofiska tillvägagångssätt för mjukvaruutveckling baserat på erfarenheterna från de ledande utvecklarna av Unix- operativsystemet .
McIlroy: A quarter of a century of Unix
Doug McIlroy , uppfinnaren av Unix-rör och en av grundarna av Unix-traditionen, sammanfattade filosofin på följande sätt:
"Unix-filosofin säger:
Skriv
program som gör en sak och gör det bra.
Skriv program som fungerar tillsammans.
Skriv program som stöder
textströmmar eftersom det är ett generiskt gränssnitt."
Vanligtvis kommer dessa uttalanden ner till en sak, "Gör en sak, men gör det bra."
Av dessa tre principer är bara den tredje specifik för Unix, även om Unix-utvecklare är mer benägna än andra att betona alla tre principerna.
Mike Guntzarz: The Unix Philosophy
1994 kombinerade Mike Gancarz sin erfarenhet av Unix (han är medlem i X Window Systems utvecklingsteam ) med kommentarer från diskussioner han haft med andra programmerare och personer från andra områden, beroende på Unix på ett eller annat sätt, för att skapa Unix Philosophy , som kokar ner till 9 grundläggande principer:
- Vackert liten.
- Låt varje program göra en sak, men väl.
- Bygg ett prototypprogram så tidigt som möjligt.
- Föredrar portabilitet framför effektivitet.
- Lagra data i vanliga textfiler.
- Dra nytta av befintliga mjukvarulösningar.
- Använd skriptspråk för att minska arbetskostnaderna och förbättra portabiliteten.
- Undvik användargränssnitt som begränsar användarens förmåga att interagera med systemet.
- Gör varje program till ett "filter".
Mindre viktiga 10 principer har inte blivit allmänt accepterade som en del av Unix-filosofin, och i vissa fall har de varit föremål för het debatt ( monolitisk kärna vs mikrokärna ):
- Låt användaren anpassa miljön.
- Håll operativsystemets kärnor små och lätta.
- Använd små bokstäver och håll titlar korta.
- Förvara inte programtexter i form av utskrifter (”Spara träden!”).
- Berätta inte för användaren det uppenbara ("Tystnaden är gyllene").
- Bryt ner komplexa uppgifter i enkla, parallella uppgifter ("Think Parallel").
- De sammanslagna delarna av helheten är mer än bara deras summa.
- Letar efter en 90-procentig lösning .
- Om det är möjligt att inte lägga till ny funktionalitet, lägg inte till den (" Ju värre, desto bättre ").
- Tänk hierarkiskt.
Raymond: Konsten att programmera Unix
Eric Raymond ( eng. Eric S. Raymond ), i The Art of Unix Programming, sammanfattade Unix-filosofin som den allmänt använda ingenjörsfilosofin "Keep it simple, fool" ( KISS-principen ). Han beskrev sedan hur denna generaliserade filosofi gäller som Unix-kulturella normer. Detta trots att det är lätt att hitta flera kränkningar i följande aktuella Unix-filosofi:
- Regel för modularitet: Skriv enkla delar sammankopplade med begripliga gränssnitt.
- Tydlighetsregel: Tydlighet är bättre än smarthet.
- Regel för sammansättning: Designa program så att de kan kopplas till andra program.
- Separationsregel: Separera reglerna ( policy ) från mekanismen ( mekanismen ); separera gränssnittet från motorn .
- Enkelhet Regel: Sikta efter enkelhet; lägga till komplexitet endast där det behövs.
- Regel för sparsamhet: Skriv ett stort program endast när andra medel inte lyckas utföra den önskade uppgiften.
- Regel för insyn: Utveckla transparenta program för att underlätta senare revision och felsökning.
- Tillförlitlighetsregel: Tillförlitlighet är barnet av transparens och enkelhet.
- Representationsregel: Lagra kunskap i data så att programlogiken är dum och pålitlig.
- Minsta överraskningsregel : När du designar ett gränssnitt, låt alltid välbekanta gränssnittselement utföra välbekanta funktioner.
- Tystnadsregel: Om programmet inte har något att säga är det bättre att vara tyst.
- Återställningsregel: Om ett program måste krascha, gör det bullrigt och så snabbt som möjligt.
- Ekonomiregel: En programmerares tid är dyrbar; förkorta den med maskintid.
- Genereringsregel: Undvik manuell kodning; när det är möjligt, skriv program som skriver program.
- Optimeringsregel: Först - en prototyp, sedan - "kamma". Uppnå stabil drift, först då optimera.
- Regel för mångfald: Avvisa alla "det enda rätta sättet" påståenden.
- Utökningsbarhetsregel: Design för framtiden. Det kommer snabbare än du tror.
De flesta av dessa konventioner accepteras utanför Unix-gemenskapen – även om de inte var det när de först tillämpades på Unix, har de sedan dess blivit det. Dessutom är många regler inte unika eller originella för Unix-gemenskapen. Men anhängare av Unix-programmering tenderar att acceptera en kombination av dessa idéer som grunden för Unix-stilen.
Citat
- Unix är enkelt. Men du måste vara ett geni för att förstå dess enkelhet " - Dennis Ritchie .
- " Unix är inte designat för att skydda sina användare från dumma saker, eftersom det också skulle skydda dem från smarta saker " - Doug Gwin .
- " Unix säger aldrig snälla" - Rob Pike .
Kritik
UNIX-HATERS Handbook
UNIX-filosofin kritiserades i The UNIX-HATERS Handbook , publicerad i början av 1990-talet.
- Enligt bokens redaktörer leder Unix-ansatsen till beslut som fattas hastigt, utan ordentligt genomtänkt arkitektur, varefter dessa beslut kanoniseras (förankras), det vill säga de förklaras för eviga klassiker. Till exempel, enligt deras åsikt, är en sådan lösning låsfiler - temporära filer utan innehåll, skapade som ett tecken på att något program håller på att köras.
- X Window System har kritiserats för att separera motorn från policyn, vilket har lett till avsaknaden av en UNIX-standard för styrpolicyer för användargränssnitt och till stora svårigheter att utveckla applikationer som använder GUI .
- NFS har kritiserats för sin inneboende felaktiga inställning till arkitektur – ett försök att skapa en tillståndslös filserver, trots att detta är i grunden omöjligt. När omöjligheten att stödja vissa viktiga saker blev uppenbar, skruvades en "krycka" som kallas lockd-processen till NFS.
Men samtidigt är de tillvägagångssätt som kritiseras i den här boken, som började i *NIX, smidigt motiverade i Microsoft Windows och Apple Mac OS .
Anteckningar
Länkar