Programowałem zarówno w środowisku Unix, jak i Windows. Przeważnie pracowałem w Uniksie, gdzie nauczyłem się filozofii Unix , którą można streścić jako
- Pisz programy, które robią jedną rzecz i robią to dobrze.
- Pisz programy do współpracy.
- Pisz programy do obsługi strumieni tekstowych, ponieważ jest to uniwersalny interfejs.
Wydaje się, że istnieje wyraźna różnica w kulturach programowania między światami Unix i Windows, na przykład:
- GUI vs CLI
- Rejestr a pliki konfiguracyjne
- Wiele narzędzi specjalizujących się w danej potrzebie w porównaniu z grupą ogólnych narzędzi ortogonalnych, które można łączyć
Czy w świecie Windows istnieje odpowiednik „filozofii uniksowej”? Czego programista uniksowy może nauczyć się od systemu Windows lub powinien wiedzieć o przejściu na programowanie w systemie Windows?
Chciałbym, aby odpowiedzi koncentrowały się na najlepszych praktykach programowania w systemie Windows (a nie na walce między Windows i Unixem).
windows
philosophy
unix
Maglob
źródło
źródło
Odpowiedzi:
W rzeczywistości istnieje coś takiego jak „filozofia Windows”. Głównie chodzi o koncepcję kompozycji i część interfejsu użytkownika - projektowanie programów dla użytkowników, a nie dla innych programistów.
To znaczy:
Oto dobra lektura:
Dwukulturowość
Wraz z rozprzestrzenianiem się systemu Windows podejście hakerów do kodowania zaczęło być uprzywilejowane. Najpierw pisał programy C / C ++ w najbardziej złożony i zaciemniony sposób, aby tylko najtrudniejsze mózgi mogły je zrozumieć, jako rodzaj rytuału przejścia. W systemie Windows wszystko zaczęło się zmieniać i ten „styl kodu” jest obecnie wysoce nielubiany. Nie jestem pewien, czy jego bezpośredni wpływ na system Windows, a raczej nowy poziom zrozumienia jakości kodu, ale przynajmniej na czas się pokrywają.
źródło
Myślę, że różnice, które przytaczasz w swoim pytaniu, dotyczą bardziej użytkowników tych systemów niż stylów programowania ich programistów. Przez długi czas * nix zajmował się zarówno programistą, jak i entuzjastą komputerów. Bardzo niewiele było w „zwykłym” użyciu. Gdzie jak Windows ma [domowy] numer użytkownika, rząd wielkości większy.
Zwykli użytkownicy nie chcą pamiętać tuzina różnych flag wiersza poleceń, aby uruchomić program. Chcą kliknąć przycisk.
Przypadkowi użytkownicy nie chcą się martwić plikami konfiguracyjnymi systemu ani tym, jak Fluffy Kitties pamięta swoją ulubioną rasę kotów.
Zwykli użytkownicy zazwyczaj używają czegoś, o ile robi to, czego chcą, nawet jeśli dostępne są „lepsze” produkty.
Myślę, że moim głównym celem jest tutaj ... Windows polega głównie na tworzeniu dla użytkownika , a nie na twórcy . Nie sprzeciwiaj się od dawna paradygmatom, które istnieją w rozwoju Windows. Nie zanieczyszczaj użytkowników My Documents bzdurami, ani nie wkładaj się do ich uruchamiania bez powodu.
Może o podobnym znaczeniu: napisz dokumentację użytkownika.
źródło
Blog Raymonda Chena, The Old New Thing i jego książka o tej samej nazwie to świetny wgląd w filozofię, historię i najlepsze praktyki rodzimego programowania Windows.
źródło
Kompromis i dostosowanie
W niczym nie jest to najlepsze, ale jeśli jesteś gotów poświęcić czas i podjąć niefortunne decyzje w niektórych miejscach, niewiele możesz zrobić. Jeśli nie podoba ci się to, co obecnie robi, prawdopodobnie możesz to zmienić. Jest kilka miejsc, w których istnieje tylko jeden sposób, a nawet taki, który jest zawsze najlepszy.
Wystarczająco dobre dla użytkownika, aby rozpocząć
Bardzo niewiele rzeczy jest fenomenalnych od razu po wyjęciu z pudełka, ale większość rzeczy nadaje się do użytku. Unix zmierza w kierunku, w którym nic nie działa, dopóki go nie skonfigurujesz, a Apple sprawi, że wszystko będzie dość dopracowane, ale kosztem pewnej konfiguracji / elastyczności.
Spodziewaj się ogona wsparcia dziennika
Użytkownicy systemu Windows nie dokonują aktualizacji tylko dlatego, że istnieje nowsza wersja. Nie zawsze aktualizują się z powodu usterki lub poprawki błędu. Użytkownicy systemu Windows często muszą być zmuszeni do aktualizacji, ale jeśli zmusisz ich do szybkiej aktualizacji, będą szukać alternatywnych produktów
Użytkownicy mają szeroki zakres poziomów umiejętności
Unix ma wysoką postrzeganą barierę wejścia z poziomu technicznego z punktu widzenia zwykłego użytkownika domowego. Apple miał bardzo niski postrzegany wymagany poziom umiejętności, ale nie zachęca przypadkowego użytkownika do zrobienia wiele w zakresie dostosowywania swojego systemu operacyjnego. Windows jest pomiędzy. Korzystanie z produktów Apple jest tylko nieco trudniejsze, ale dostępnych jest wiele prostych informacji, czasem w samej instalacji, na temat zmiany dość szczegółowej konfiguracji systemu. Prowadzi to do raczej losowego poziomu umiejętności na środkowym poziomie użytkowników, ponieważ jeśli są wystarczająco pewni siebie, aby spróbować czegoś, istnieje duża szansa, że mogą wymyślić, jak to zrobić. Pozostawia także bardziej nieśmiałych użytkowników bez doświadczenia w niektórych przypadkach, ponieważ obawiają się ostrzeżeń, że moje błędy się nie udają.
źródło
System Windows został zbudowany z wyraźną obsługą standardu IBM Common User Access (CUA) w celu ułatwienia tworzenia aplikacji.
Co oczywiście było próbą stworzenia wrażenia podobnego do Maca dla użytkownika.
źródło
UNIX dawno temu był dla programistów i takich osób, a Windows zawsze był dla użytkowników, którzy nie wiedzą, jak pisać skrypty bash. Dlatego w systemie Windows powinieneś dbać o użytkowników, co oznacza, że stworzysz jedno narzędzie do wszystkich zadań, których użytkownik nie musi się martwić, kto skonfigurować kilka programów do współpracy.
źródło
Nie jestem pewien, czy jest to filozofia, ale IMHO ma coś w rodzaju myślenia związanego z programowaniem w systemie Windows. Czasami zdarza się również zaskoczenie.
Polecam cierpliwość, jeśli angażujesz się w programowanie systemu Windows i bardziej troszczysz się o swoje założenia.
źródło