Saya telah memprogram baik di lingkungan Unix dan Windows. Sebagian besar saya pernah bekerja di Unix, di mana saya belajar Unix Philosophy , yang dapat diringkas sebagai
- Tulis program yang melakukan satu hal dan lakukan dengan baik.
- Menulis program untuk bekerja bersama.
- Menulis program untuk menangani aliran teks, karena itu adalah antarmuka universal.
Tampaknya ada perbedaan yang jelas dalam budaya pemrograman antara dunia Unix dan Windows, misalnya:
- GUI vs CLI
- Registri vs file konfigurasi
- Banyak alat yang mengkhususkan diri untuk kebutuhan tertentu vs kelompok alat ortogonal generik yang dapat digabungkan
Apakah ada yang setara dengan "filsafat Unix" di dunia Windows? Apa yang bisa dipelajari Unix-programmer dari Windows atau yang harus diperhatikan saat pindah ke pemrograman di Windows?
Saya ingin jawaban untuk fokus pada praktik terbaik pemrograman Windows (dan bukan pertarungan antara Windows dan Unix).
windows
philosophy
unix
Maglob
sumber
sumber
Jawaban:
Sebenarnya ada sesuatu seperti "filosofi Windows". Sebagian besar tentang konsep komposisi dan bagian antarmuka pengguna - program desain untuk pengguna bukan untuk programmer lain.
Itu berarti:
Ini bacaan yang bagus:
Bikulturalisme
Dengan proliferasi Windows pendekatan hacker untuk pengkodean mulai menjadi tidak disukai. Pertama adalah menulis program C / C ++ dengan cara yang paling kompleks dan dikaburkan, sehingga hanya otak yang paling sulit yang bisa memahaminya, sebagai semacam ritual peralihan. Di bawah Windows segalanya mulai berubah dan "gaya kode" sekarang sangat tidak disukai. Tidak yakin apakah Windows langsung mempengaruhi atau lebih tepatnya tingkat pemahaman baru tentang kualitas kode, tetapi setidaknya tepat waktu mereka bertepatan.
sumber
Saya pikir perbedaan yang Anda alcan dalam pertanyaan Anda lebih tentang pengguna sistem ini daripada gaya pemrograman pengembang mereka. Untuk waktu yang lama, * nix telah menjadi bidang baik programmer atau penggila komputasi. Ada sangat sedikit cara penggunaan "kasual". Sedangkan Windows memiliki [home] jumlah pengguna pesanan lebih besar.
Pengguna biasa tidak ingin mengingat selusin bendera baris perintah yang berbeda untuk menjalankan program. Mereka ingin mengklik tombol.
Pengguna biasa tidak ingin khawatir tentang file konfigurasi sistem mereka, atau bagaimana Fluffy Kitties mengingat jenis favorit kucing mereka.
Pengguna biasa umumnya akan menggunakan sesuatu selama itu melakukan apa yang mereka inginkan, bahkan jika ada produk yang "lebih baik" tersedia.
Saya pikir poin utama saya di sini adalah ... Windows sangat banyak tentang membuat untuk pengguna , bukan penciptanya . Jangan bertentangan dengan paradigma lama yang ada dalam pengembangan Windows. Jangan mencemari pengguna Dokumen Saya dengan omong kosong, atau masukkan diri Anda ke startup mereka tanpa alasan.
Mungkin yang sama pentingnya: tulis dokumentasi pengguna.
sumber
Blog Raymond Chen, The Old New Thing , dan bukunya dengan nama yang sama adalah wawasan besar tentang filosofi, sejarah, dan praktik terbaik pemrograman Windows asli.
sumber
Kompromi & Kustomisasi
Ini bukan yang terbaik dalam hal apa pun, tetapi jika Anda bersedia meluangkan waktu dan membuat beberapa keputusan yang tidak menyenangkan di beberapa tempat ada sedikit hal yang tidak dapat Anda lakukan. Jika Anda tidak menyukai apa yang sedang dilakukan Anda mungkin dapat mengubahnya. Ada beberapa tempat di mana hanya ada satu cara atau bahkan cara yang selalu terbaik.
Cukup baik bagi pengguna untuk memulai
Sangat sedikit hal yang fenomenal di luar kotak, tetapi sebagian besar hal dapat digunakan. Unix cenderung pergi ke arah di mana tidak ada yang berfungsi sampai Anda mengkonfigurasinya dan Apple membuat semuanya sangat halus, tetapi dengan biaya beberapa konfigurasi / fleksibilitas.
Harapkan ekor pendukung log
Pengguna Windows tidak memutakhirkan hanya karena ada versi yang lebih baru. Mereka bahkan tidak selalu memutakhirkan karena kerentanan atau perbaikan bug. Pengguna Windows seringkali harus dipaksa untuk melakukan upgrade, tetapi jika Anda memaksa mereka untuk melakukan upgrade dengan cepat, mereka akan mencari produk-produk alternatif
Pengguna memiliki berbagai tingkat keterampilan
Unix memiliki hambatan yang dirasakan tinggi untuk masuk dari tingkat teknis dari sudut pandang pengguna rumahan. Apple memiliki tingkat keterampilan yang dipersyaratkan sangat rendah, tetapi tidak mendorong pengguna biasa untuk melakukan banyak cara menyesuaikan OS mereka. Windows ada di antara keduanya. Hanya sedikit lebih sulit untuk mulai menggunakan daripada produk Apple, namun ada banyak informasi sederhana yang tersedia, kadang-kadang tepat di instal sendiri, tentang bagaimana cara mengubah beberapa konfigurasi sistem yang cukup mendalam. Ini mengarah ke tingkat keterampilan yang agak acak di tingkat pengguna menengah karena jika mereka cukup percaya diri untuk mencoba sesuatu, ada peluang bagus mereka bisa mencari cara untuk melakukannya. Itu juga membuat pengguna yang lebih pemalu tanpa pengalaman dalam beberapa kasus karena mereka waspada terhadap peringatan bahwa ada yang salah dengan saya.
sumber
Windows dibangun dengan dukungan eksplisit untuk standar Common User Access (CUA) IBM untuk memandu pengembangan aplikasi.
Yang, tentu saja, merupakan upaya untuk menciptakan pengalaman seperti Mac untuk pengguna.
sumber
UNIX dulu untuk programmer dan orang-orang seperti itu dan windows selalu untuk pengguna yang tidak tahu cara menulis skrip bash. Untuk itu di windows Anda harus peduli dengan pengguna, itu berarti membuat satu alat untuk semua tugas yang pengguna tidak perlu khawatir siapa yang mengkonfigurasi beberapa program untuk bekerja sama.
sumber
Saya tidak yakin apakah itu sebuah filosofi, tetapi IMHO ada semacam kepadatan pemikiran yang terjadi dengan pemrograman Windows. Ada juga rasa kaget pada cara kerja kadang-kadang.
Saya akan merekomendasikan kesabaran jika Anda merangkul pengembangan Windows, dan lebih memperhatikan asumsi Anda.
sumber