Filosofia Unix
Filosofia Unix este un set de norme culturale și abordări filozofice ale dezvoltării software bazate pe experiența dezvoltatorilor de top ai sistemului de operare Unix .
McIlroy: Un sfert de secol de Unix
Doug McIlroy , inventatorul țevilor Unix și unul dintre fondatorii tradiției Unix, a rezumat filozofia după cum urmează:
„Filosofia Unix spune:
Scrieți
programe care fac un lucru și îl fac bine.
Scrieți programe care funcționează împreună.
Scrieți programe care acceptă
fluxuri de text, deoarece este o interfață generică.”
De obicei, aceste afirmații se reduc la un singur lucru: „Fă un lucru, dar fă-l bine”.
Dintre aceste trei principii, doar al treilea este specific pentru Unix, deși dezvoltatorii Unix sunt mai predispuși decât alții să sublinieze toate cele trei principii.
Mike Guntzarz: Filosofia Unix
În 1994, Mike Gancarz și -a combinat experiența cu Unix (este membru al echipei de dezvoltare X Window System ) cu comentariile din discuțiile pe care le-a avut cu colegi programatori și oameni din alte domenii, depind de Unix într-un fel sau altul, pentru a crea Filosofia Unix , care se rezumă la 9 principii de bază:
- Frumos mic.
- Lăsați fiecare program să facă un lucru, dar bine.
- Construiți un program prototip cât mai devreme posibil.
- Preferați portabilitatea în detrimentul eficacității.
- Stocați datele în fișiere text simplu.
- Beneficiați de soluțiile software existente.
- Utilizați limbaje de scripting pentru a reduce costurile cu forța de muncă și pentru a îmbunătăți portabilitatea.
- Evitați interfețele de utilizator care limitează capacitatea utilizatorului de a interacționa cu sistemul.
- Faceți din fiecare program un „filtru”.
Cele 10 principii mai puțin importante nu au fost universal acceptate ca parte a filozofiei Unix și, în unele cazuri, au făcut obiectul unor dezbateri aprinse ( nucleu monolitic vs. microkernel ):
- Permiteți utilizatorului să personalizeze mediul.
- Păstrați nucleele sistemului de operare mici și ușoare.
- Folosiți litere mici și păstrați titlurile scurte.
- Nu stocați textele programului sub formă de imprimări („Salvați copacii!”).
- Nu spuneți utilizatorului ceea ce este evident („Tăcerea este de aur”).
- Împărțiți sarcinile complexe în sarcini simple, paralele („Think Parallel”).
- Părțile combinate ale întregului sunt mai mult decât suma lor.
- Caut o soluție de 90 la sută .
- Dacă este posibil să nu adăugați o nouă funcționalitate, nu o adăugați (" Cu cât este mai rău, cu atât mai bine ").
- Gândește ierarhic.
Raymond: Arta programarii Unix
Eric Raymond ( ing. Eric S. Raymond ), în The Art of Unix Programming, a rezumat filosofia Unix ca fiind filozofia inginerească folosită în mod obișnuit „Păstrează-l simplu, prostule” ( principiul KISS ). Apoi a descris modul în care această filozofie generalizată se aplică ca norme culturale Unix. Acest lucru se întâmplă în ciuda faptului că este ușor să găsiți mai multe încălcări în următoarea filozofie Unix actuală:
- Regula modularității: scrieți părți simple conectate prin interfețe ușor de înțeles.
- Regula clarității: claritatea este mai bună decât inteligența.
- Regula de compunere: Proiectați programe astfel încât să poată fi conectate la alte programe.
- Regula de separare: Separați regulile ( politica ) de mecanism ( mecanismul ); separați interfața de motor .
- Regula simplității: Țintește-te spre simplitate; adăugați complexitate numai acolo unde este necesar.
- Regula parcimoniei: Scrieți un program mare numai atunci când alte mijloace nu reușesc să îndeplinească sarcina dorită.
- Regula transparenței: Dezvoltați programe transparente pentru a facilita revizuirea și depanarea ulterioară.
- Regula de încredere: fiabilitatea este copilul transparenței și simplității.
- Regula de reprezentare: stocați cunoștințele în date, astfel încât logica programului să fie stupidă și robustă.
- Regula celei mai mici surprize : atunci când proiectați o interfață, faceți întotdeauna ca elementele interfeței familiare să îndeplinească funcții familiare.
- Regula de tăcere: Dacă programul nu are nimic de spus, este mai bine să taci.
- Regula de recuperare: Dacă un program trebuie să se blocheze, faceți-o zgomotos și cât mai repede posibil.
- Regula economiei: timpul unui programator este prețios; scurtați-l folosind timpul mașinii.
- Regula de generare: Evitați codarea manuală; ori de câte ori este posibil, scrieți programe care scriu programe.
- Regula de optimizare: Mai întâi - un prototip, apoi - „pieptănarea”. Obțineți o funcționare stabilă, abia apoi optimizați.
- Regula diversității: respinge toate afirmațiile „singura cale corectă”.
- Regula de extensibilitate: Proiectare pentru viitor. Va veni mai repede decât crezi.
Cele mai multe dintre aceste convenții sunt acceptate în afara comunității Unix – chiar dacă nu au fost atunci când au fost aplicate pentru prima dată pe Unix, de atunci au devenit așa. În plus, multe reguli nu sunt unice sau originale pentru comunitatea Unix. Cu toate acestea, adepții programării Unix tind să accepte o combinație a acestor idei ca bază pentru stilul Unix.
Citate
- Unix este simplu. Dar trebuie să fii un geniu pentru a-i înțelege simplitatea ” – Dennis Ritchie .
- „ Unix nu este conceput pentru a-și proteja utilizatorii de lucruri stupide, pentru că asta i-ar proteja și de lucruri inteligente ” - Doug Gwin .
- „ Unix nu spune niciodată te rog” - Rob Pike .
Critica
Manualul UNIX-HATERS
Filosofia UNIX a fost criticată în Manualul UNIX-HATERS , publicat la începutul anilor 1990.
- Potrivit editorilor cărții, abordarea Unix duce la decizii luate în grabă, fără o gândire adecvată prin arhitectură, după care aceste decizii sunt canonizate (consfințite), adică sunt declarate clasice eterne. De exemplu, în opinia lor, o astfel de soluție este fișierele de blocare - fișiere temporare fără conținut, create ca un semn al faptului că un program este în curs de execuție.
- Sistemul X Window a fost criticat pentru separarea motorului de politică, ceea ce a dus la lipsa unui standard UNIX pentru politicile de control al interfeței cu utilizatorul și la mari dificultăți în dezvoltarea aplicațiilor care utilizează GUI .
- NFS a fost criticat pentru abordarea sa inerent defectuoasă a arhitecturii - o încercare de a crea un server de fișiere fără stat, în ciuda faptului că acest lucru este fundamental imposibil. Când imposibilitatea de a susține unele lucruri importante a devenit evidentă, o „cârjă” numită procesul de blocare a fost înșurubat în NFS.
Dar, în același timp, abordările criticate în această carte, care a început în *NIX, sunt bine justificate în Microsoft Windows și Apple Mac OS .
Note
Link -uri