(sorry za dlouhy text ale chtel sem to napsat poprve, naposled a poradne).
Bezne na tyhle weby nechodim, ale mam skoro dvacetilete zkusenosi a myslim, ze je potreba napsat realne zkusenosti a rict beznym lidem jak to je.
Jsem programator aplikaci, her, mam zkusenosti s OpenGL i DirectX. Zacal sem jako kazdy na Windows, protoze je to predinstalovane a skoro kazdy to pouziva. Prvotne sem nechapal k cemu Linux je a desilo me psani tolika textu do terminalu. Nazor sem casem zmenil, kdyz sem videl cloveka, co spravuje servery a pracuje s terminalem denne, ze jde pouzivat zkratky pro doplneni TABem, ctrl+a, +e, posun o slova, editor VIM atd. Ted uz cca 7 let pouzivam Linux, spravuju fyzicky server s ruznymi sluzbami vcetne treba DNS, emailu, vlastnich backendu a neplanuju jit nikdy zpet na Win, ani pro desktop.
Zaprve Linux casto pouzivate a ani to nevite. Linux je jen kernel (velka cast systemu, ale neni to cely system; windows ma jako kernel "next technology" ntkrnl). Linux je v temer vsech routerech, kazdy Android bezi na Linux kernelu, mozna i v kavovaru, autonavigaci nebo kiosku v obchode mate Linux. Od hodinek po superpocitace.
Windows se stal popularni jen proto, ze je uzpusobeny na jednoduche pouzivani lidmi, co IT temer nerozumi. Jen spusti Word a pise a klikne nanikonu Tisk nebo nainstaluje Steam, stahne hru a pari - ale nic nevi, akorat to spustit, mozna nainstalovat a vypnout. Od doktora nebo pravnika se neocekava, ze bude rozumnet pocitacum, takze to da rozum. Toho Windows vyuzil, udelal hodne kompromisu v systemu a vsude to cpe uz od skol. Ale jine OS/kernely jako Linux nabizi mnohem vic moznosti a lepsi kontrolu nad HW i SW, ale vyzaduji obvykle vic zkusenosti a tim jak podporuji spoustu HW muze byt narocne ho spravne nastavit na vasem. Uvedu par prikladu:
- Linux podporuje furu CPU architektur (napr. ARM, SPARC, MIPS, ppc, ale mnoho dalsich) a zarizeni. Ja ted mam POWER9 s 32 multithread jadry a Windows bych tu nerozjel, umi jen x86_64 (s vyjimkou arm pokusu co se neujaly - nebezely jim tam totiz EXEcka z x86). Na linuxu/bsd je bezne zkompilovat program ze zdrojoveho kodu pro jinou architekturu. Windows kod je tajny a kupujete uz hotovy produkt.
- Linux je tak silene flexibilni, ze umi delat vselijake abstrakce casti systemu (namatkou cgroups, namespaces, capabilities), diky toho jsou tam veci jako Docker, LVM, spousta typu RAID, sitove a exoticke filesystemy a funkce, o kterych muzete na Win jen snit. Proto vetsina serveru funguje na Linuxu, jelikoz nabizi mnohem vic moznosti a je zdarma. Windows server je hrozne drahy a zakladni domaci edice neumi ani udelat naslouchaci socket pro dostatecny pocet klientu (to aby nekdo nahodou neudelal ilegalne server na Win home edici). Ale tohle vidi az clovek co pouziva pocitac k vic, nez jen otevreni Wordu.
- Windows neumi ani poradne rozdelit disk, temer na vse je treba placeny SW. Kdyz se Win posere, tak se taky casto saha po Linux live ci Gparted pro opravu. Gparted je graficky frontend Parted, jednoho z mnoha na Linuxu a unixu vyrobenych a provozovanych nastroju. Stejne tak Photorec pro obnovu fotek a dat z rozbiteho HDD/filesystemu.
- Tim jak je k dispozici kod, se da z kodu hodne naucit pripadne snaze najit chybu proc se neco chova jinak, nez by melo. U Win se to vesmes neresi, kdyz neco nefunguje vola se podpora a nadava se.
- Diky otevrenemu zdrojovemu kodu systemu je mozne ho upravovat a auditovat (kymkoliv nezavislym) a tim snaze najit a opravit chybu a overit bezpecnost. U windows se spoleha, ze MS ma sve procesy kontroly kodu a kazdy veri, ze tam neni malware. Velmi zle se v hotovem produktu zjistuje co presne dela. Ale cas od casu vyjde najevo, ze tam byla chyba, co zamerne nebyla opravena vcas a predana NSA. MS taky pridava ruzne sledovani aktivit a odesilani informaci na jejich severy.
- Architektura grafiky na Linuxu doznala dost zmen a ovladace jsou uz lepsi, nez kdysi. Intel i AMD ma otevrene ovladace. V DirectX se sa delat +- to same jako v OpenGL (ktery se pouziva na Linux a jinych) - jen jinak. Rychlost je tedy +- stejna, vyjimku tvori spatne udelane "porty" her, co nepouzivaji OpenGL spravne. Tohle je dnes mensi problem, jak herni vyvojari pouzivaj hotove multiplatform enginy. Ale z toho MS tezi, nanuti vyvojare na DirectX, a tim omezi jejich hry na svou platformu. To korporace delaji casto, Apple to udelal s Metalem - existuje otevreny standard Vulkan, ale Apple zamerne ma svuj. Vyvojar co to vi, udela hru s Vulkanem a pojede mu na win, linux i mac. Blbecek pomateny z Keynote si mysli ze Apple udelal revoluci s Metalem. Ale to je na jine povidani... Lenovo v jednom ntb zkratilo M.2 slot, aby tam vesly jen SSD jeho vyroby, pritom je to klasicke SATA SSD jen schvalne urezane o nevyuzite piny.
Vysledek je, ze kdyby MS necpal Win do kazdeho pc a skoly nedostavaly slevy nebo MS licence zadarmo, tak i vic lidi pouziva poradny OS - Linux, pripadne Mac, coz by vic motivovalo vyvojare a bylo by i vic (placeneho) SW pro Linux. Dnes uz jsou Linux distribuce vhodne i pro bezneho ne-IT cloveka (kdysi to bylo narocnejsi).
Pokud je nekdo programator, systemovy vyvojar nebo jim chce byt a mysli to vazne, kaslete na Windows. Neni tam ani ten terminal, coz omezuje i webare s Nodejs. cmd.exe je oproti bash/zsh k smichu. MS to vi, proto tam "naportoval" bash z Linuxu, ale sledujte oc se jedna - snazi se vic priblizit Linuxu, protoze jeho OS se skoro neda profesionalne pouzivat.
- Vsechno co dnes mate na Win by mohlo byt i na Linuxu ci Mac. Kernely v tom nikak nelimituji. Jen by vyvojari aplikace museli pouzit nejaky univerzalnejsi toolkit jako GTK, Qt ci jen kreslit pres OpenGL. Nekteri pouzivaji Qt i tak, ale app zkompilovali jen pro Win, jini skocili na MFC/.NET spek a maji app jen pro Win naporad.
- Trochu jina situace je mozna v korporatnim prostredi, kdy se spravuji stovky PC. Na to sou na win nejake klikatka, spravovat spoustu Linux desktopu neni asi uplne jednoduche, ale osobne nevim, mozna uz na to sou taky sluzby a nastroje, vim ze pro servery je Ansible.
MacOS je neco mezi. Ma zaklady z BSD, ma terminal a je to blizko Linuxu. Narozdil od Linuxu je vic vyladeny (na ukor toho, ze podporuje jen malo HW a prijemnejsi na pouzivani - pekne graficke UI a knihovny). Dost SW z Linuxu tam jde zkompilovat a provozovat. Ale stale dost funkcionalkty chybi, ovladace chybi, Linux je podstatne rozsahlejsi projekt a podporuje mnohem vic HW. Nicmene pro desktop a vyvojare je to docela dobra volba, pokud mu nevadi premrstena cena HW. Macos jde nainstalovat i na jiny x86 (Hackintosh), ale je stim dost prace, trable pri aktualizacich, je to proti licenci Apple a neni to fer podporovat ekosystem platformy, ktera oficialne funguje jen na predrazenem HW jedne firmy.
A nakonec:
- v Linux/BSD komunite vznikla spousta vynikajiciho software a knihoven (napsali jej studenti, jednotlivci i firmy). Vetsina z toho SW je kvalitne napsana a portovatelna a aniz to vite, tak urcita volnejsi cast z nich se velmi casto pouziva jako soucast placenych SW na vsech platformach (namatkou ffmpeg, opemcv, gtk, freetype, webkit, mpv, vlc). Posledni desetileti hodne prispel i Google s furou super knihoven a nastroju.
- Microsoft ma vetsinu SW jen pro svuj OS. Par vyjimek dela i pro Macos (office). Vsechno ale uzavrene a placene veci. Jedina svetla vyjimka je VisualStudioCode ktery funguje vsude (web app) a ma otevreny kod. Ale to je jediny SW od MS, co je otevreny a realne pomaha
- Apple nevydalo moc otevreneho SW, ale neco preci jen, namatkou LLVM (ktery se pouziva dost), CUPS, ale i vicero dalsich. Je na tom podstatne lip jak MS.
Takze MS neprispiva komunite vyvojaru skoro vubec, vytvari omezeny uzavreny monopolisticky ekosystem a spousta SW vyvijeneho na Linuxu se dostane do Win a Mac programu, ale uzivatele to ani nevi (dokud se neproklikaji do about a seznamu licenci software tretich stran). To mi prijde smutne. :(
Navic Windows prichazi se Store a zacina zakazovat distribuovat software jinak, nez pres jeho store (kde pridava furu pravidel co aplikace musi a nesmi). Hrozi, ze casem zakaze i Steam. Windows je nejhorsi OS, ale bohuzel nejrozsirenejsi mezi neznalymi masami, kteri casto nevi, ze je i neco jineho a z historickych DirectX duvodu pry "herni plarforma".
Lidi nadavajici na Linux jsou:
- jednodussi, pouzivaji PC jen k zakladnim operacim a par placenym uzivatelskym programum (na grafiku, fotky, videa)
- prevazne nezkuseni ci neschopni se ucit, neschopni cist dokumentace a manualy, netrpelivi, maji nedostatek soustredeni
- webari ledva znajici HTML a hrajici si na 'software engineers' - dnes oblibene (psani v JS je uz tak hi-level, ze to skoro neni programovani, resp resi se vic navrh a UX - to ale bohuzel pochopi clovek, az jakmile pise kod pro mikrokontrolery, resi kriticke sekce pro multithreading, interrupty, socket kod, pise ovladace k HW, atd). Pozor - webare je taky potreba a kolikrat je co obdivovat na vysledku jejich prace, jen maji tendenci hanit Linux, protoze mu nerozumi a nemaji na nej cas a nazyvaji se inzenyry a odborniky na IT, i kdyz jsou "jen" progrmatori.
Je totiz snadne shodit svou neznalost a neschopnost na "to nefunguje", "je to nahovno". Ve skutecnosti takovy clovek nema ani paru o tom jak se s tim pracuje a co to umi. Je proste jen obycejny uzivatel komercniho software, kdy casto ledva umi pouzivat ten software, natoz aby rozumnel operacnimu systemu ci pocitacum jako takovym a casto je pri prvnim problemu ztraceny a reinstaluje cely Windows. Nepotrebuju to nijak dokazovat, proste to tak je, sorry. Ja chapu, ze ne kazdy tomu muze rozumnet, IT je opravdu slozite, ale je nefer kydat hnuj na neco mnohem lepsiho jen proto, ze tomu nerozumim.
Presto vetsina popularniho a znameho (marketing) SW je bohuzel na Win, tak jsou nekteri lidi tlaceni k jeho pouzivani, tomu rozumim. Ale meli by videt, ze Win rozhodne neni nejlepsi OS, co se schopnosti a moznosti tyce a ze MS je ve velke vyhode tim jak predinstalovava Win na nove PC. Nastesti Macos je hezka mezicesta a tam je SW taky pomerne hodne, takze sem rad, ze je. Osobne jsem ale spokojeny s Linuxem, pisu prevazne kody a vse co potrebuju mi tady funguje a mam svobodu ve vyberu architektury CPU a zarizeni.