W Polskim internecie nie ma za wiele o tej filozofii i raczej trzeba szukać jej po angielskich stronach, a w sumie jest to ciekawe zagadnienie dla informatyki - Filozofia Uniksa.
Unix to stary system (chociaż w sumie dalej żywy - głównie za sprawą systemów inspirowanych nim jak Linux czy OS X [Tutaj są spory czy nie jest Uniksem, bo wywodzi się od niego]) i chociaż systemy różnie sobie radzą z tą filozofią (gdyż zwykle idzie się w stronę "krowiastych aplikacji" o tyle można znaleźć oprogramowanie pisane pod te reguły.
Po pierwsze - oprogramowanie powinno robić tylko tyle ile jest to niezbędne. Odtwarzacz muzyki powinien odtwarzać muzykę, a nie robić za przeglądarkę newsów (...). Powoduje to dodatkowe błędy i problemy.
Po drugie - powinieneś tak starać się tworzyć oprogramowanie by mogło współpracować z innym programem.
I to dwa główne punkty (jeszcze jest parę, ale głównie techniczne). A więc popatrzmy
Reguła KISS
Pierwszy punkt brzmi jak reguła KISS. Powinno się tworzyć tak rzeczy (nie tylko oprogramowanie), by spełniało najbardziej podstawowe role bardzo dobrze.
Dam wam przykład programu Surf. Surf to przeglądarka internetowa. W porównaniu do klasycznych przeglądarek jak Mozilla Firefox czy Google Chrome nie ma przycisków ani systemu zakładek. Co?
A no. Projekt jest bardzo prosty, ma tylko otworzyć stronę internetową i tyle robi. Dzięki czemu ilość błędów można było zminimalizować, gdyż jedna aplikacja robi to co do niej należy.
Kooperacja
Jednak jak możecie się domyślić - nie wszystko jest tak proste, gdyż aplikacje współpracują ze sobą. Dam inny przykład projektu Suckless Tools jakim jest Tabbed. Umożliwia ono uruchamianie aplikacji w zakładkach. Tak więc jeśli chcemy by Surf miał karty - Tabbed umożliwia to nam. Mamy dwie aplikacje, które koegzystują, a zarazem nie są tak rozbudowane (bo nie muszą).
Przykładem może być silnik do odtwarzania muzyki i filmów MPV i nakładka Celluloid.
Ale ...
Lepsze jest wrogiem dobrego. O ile są grupy (jak programiści Suckless), którzy tworzą wiele ciekawych projektów zgodnie z ideą Uniksa (Ja osobiście lubię "sent" - aplikację do tworzenia prostych prezentacji) o tyle ludzie lubią fajerwerki i wybuchy. Warto sobie przypomnieć nasze szkolne prezentacje w Powerpoint - ładne tło, efekty graficzne, czcionka starannie wybierana ... a tutaj przykładowy slajd.
Bardzo proste i przejrzyste prezentacje, które nie wymagają dużo pracy i działają szybko! I to jest kwintesencja filozofii Uniksa.
A jak wygląda oprogramowanie w Linuksie?
Odpowiem tak - różnie. Oczywiście nie da się jednoznacznie każdej aplikacji zrobić zgodnie z filozofią Uniksa. Systemd jest odstępstwem, a Wayland nas przybliża (w porównaniu do Xorg). Jako tako jakby ktoś chciał to by dał radę żyć zgodnie z nią. A to ma swoje plusy jak i minusy. Ale tak ogólnie chciałem Was zaciekawić tematem ;)
Warto wspomnieć jak rozwija się ten akronim, ja znam dwie wersje:
KISS
= Keep It Short and Simple (mniej więcej - uczyń to krótkim i prostym),KISS
= Keep It Simple Stupid (mniej więdej - uczyń to prostym głupku).Dawno wyszło to już poza filozofię Unixa, choć być może rzeczywiście w jakiejś mierze z niej pochodzi. Wydaje się, że trzymanie się tej reguły jest banalnie proste - a wcale takie nie jest. Wręcz przeciwnie - to niezwykle trudne. Tylko naprawdę dobrzy programiści potrafią w ten sposób pisać oprogramowanie. Tak samo jak zastosowanie tego w innych dziedzinach - np. tylko naprawdę błyskotliwi ludzie, potrafią wytłumaczyć laikowi w prostu i zrozumiały sposób dowolnie skomplikowane zagadnienia.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Brakuje mi systemu, który wróciłby do korzeni UNIX-a. Skończyło się na tym, że używam Debiana (chociaż teraz akurat Ubuntu, bo nie chciało mi się męczyć za bardzo przy instalacji systemu na nowym kompie), ale coraz mniej rzeczy mi się w Debianie podoba. Pewnie warto byłoby w końcu przyjrzeć się BSD? Czy ktoś tego używa na laptopie może? Zwłaszcza programy do grafiki i sterowniki kart graficznych mnie interesują.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Powodzenia. W sensie Linux po tylu latach tak mnie rozpieścił, że nie umiem w BSD. Bo to takie "Linuksy" z lat 90.
Strzelam, że zależy do od sterowników, bo goście sami portują otwarte sterowniki
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
@helcim https://www.c0ffee.net/blog/openbsd-on-a-laptop/
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
P.S.
Problemem jest narzucenie ludziom odruchów pochodzących z Windowsów. To że używanie komputera nawet z Unixopodobnym system polega na używaniu Gnome czy czegoś w tym stylu to kompletna porażka. Ja bardzo długo używałem jako menedżera okien larswm i byłem w stanie robić wszystko dużo szybciej za pomocą skrótów klawiaturowych niż przy pomocy myszki. Niestety larswm już wypadł z większości aktualnych dystrybucji.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
masz i3wm
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit