Vés al contingut

Filosofia d'Unix

De la Viquipèdia, l'enciclopèdia lliure
Ken Thompson i Dennis Ritchie, principals defensors de la filosofia Unix

La filosofia d'Unix és un conjunt de principis i enfocaments culturals i filosòfics per al desenvolupament de programari minimalista i modular. Va sorgir a partir de les experiències dels desenvolupadors principals del sistema operatiu Unix. Els primers desenvolupadors d'Unix van ser fonamentals per introduir els conceptes de modularitat i reutilització en la pràctica de l'enginyeria de programari, donant lloc a un moviment de «ferramentes de programari». Amb el temps, els desenvolupadors líders d'Unix (i dels programes que s'executaven en ell) van establir un conjunt de normes culturals per al desenvolupament de programari; aquestes normes van arribar a ser tan importants i influents com la mateixa tecnologia d'Unix que se'ls ha anomenat la «filosofia d'Unix».

Origen

[modifica]
Rob Pike, coautor de L'entorn de programació UNIX
Brian Kernighan ha escrit extensament sobre la filosofia d'Unix
Doug McIlroy amb Dennis Ritchie

La filosofia d'Unix es documenta per Doug McIlroy al Bell System Technical Journal de 1978:[1]

  • Fes que cada programa faça una cosa bé. Per fer una nova tasca, construeix-la des de zero en lloc de complicar els programes antics afegint noves «funcions».
  • Espera que la sortida de cada programa es convertisca en l'entrada d'un altre, encara desconegut. No omplis la sortida amb informació extra. Evita formats d'entrada binaris o estrictament columnars. No insistisques en l'entrada interactiva.
  • Dissenya i construeix programari, fins i tot sistemes operatius, per a provar-lo aviat, idealment en setmanes. No dubtes a llençar les parts maldestres i reconstruir-les.
  • Utilitza eines en lloc d'ajuda no especialitzada per alleugerir una tasca de programació, fins i tot si has de desviar-te per construir les eines i esperes llençar-ne algunes després d'haver-les usades.

Posteriorment, Peter H. Salus va resumir-ho a A Quarter-Century of Unix (1994):[2]

  • Escriu programes que facen una cosa i la facen bé.
  • Escriu programes per treballar junts.
  • Escriu programes per manejar fluxos de text, perquè aquesta és una interfície universal.

En el seu treball d'Unix de 1974, Ritchie i Thompson van citar les següents consideracions de disseny:[3]

  • Facilita l'escriptura, la prova i l'execució de programes.
  • Ús interactiu en lloc de processament per lots.
  • Economia i elegància de disseny a causa de les limitacions de mida ("salvació a través del sofriment").
  • Sistema autosuficient: tot el programari d'Unix es manté sota Unix.

Crítiques

[modifica]

En un article de 1981 titulat «The truth about Unix: The user interface is horrid» publicat a Datamation, Don Norman va criticar la filosofia de disseny d'Unix per la seva manca de preocupació per la interfície d'usuari.[4] Escrivint des del seu context en la ciència cognitiva i des de la perspectiva de la filosofia de l'enginyeria cognitiva de l'època, es va centrar en com els usuaris finals comprenen i formen un model cognitiu personal dels sistemes—o, en el cas d'Unix, no ho aconsegueixen, amb el resultat que els errors desastrosos (com perdre una hora de treball) són massa fàcils.

En el pòdcast On the Metal, el desenvolupador de videojocs Jonathan Blow va criticar la filosofia d'Unix per estar desactualitzada. Va argumentar que lligar ferramentes modulars dona com a resultat programes molt ineficients. Diu que la filosofia d'Unix pateix problemes similars als microserveis: sense supervisió general, les grans arquitectures acaben sent ineficaces i ineficients.[5]

Referències

[modifica]
  1. McIlroy, Doug; Pinson, E. N.; Tague, B. A. «Unix Time-Sharing System: Foreword». Bell System Technical Journal, 57, 6, 08-07-1978, pàg. 1902–1903.
  2. Salus, Peter H. A Quarter-Century of Unix. Addison-Wesley, 31 maig 1994. ISBN 0-201-54777-5. 
  3. Ritchie, Dennis M.; Thompson, Ken «The UNIX time-sharing system». Communications of the ACM, 17, 7, 7-1974, pàg. 365–375. DOI: 10.1145/361011.361061.
  4. Norman, Don «The truth about Unix: The user interface is horrid». Datamation, 27, 12, 1981.
  5. «On the Metal Podcast : Jonathan Blow». Oxide Computer, 20-01-2020. [Consulta: 12 maig 2025].

Bibliografia

[modifica]
  • Kernighan, Brian W.; Pike, Rob. The Unix Programming Environment. Prentice-Hall, 1984. ISBN 0-13-937681-X. 
  • Salus, Peter H. A Quarter-Century of Unix. Addison-Wesley, 1994. ISBN 0-201-54777-5. 
  • Raymond, Eric S. The Art of Unix Programming. Addison-Wesley, 2003. ISBN 0-13-142901-9. 

Vegeu també

[modifica]