Apakah ada filosofi Windows tentang pemrograman? [Tutup]

30

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).

Maglob
sumber
15
Haruskah disadari? "Segalanya akan menyedot, menyedot yang buruk."
Orbling
3
Hanya satu filosofi itu, tidak ada filsafat. ;)
Mudassir
6
Sebenarnya Powershell telah membawa beberapa filosofi Unix ke Windows, terutama menulis program kecil (sebenarnya cmdlet di Powershell) yang hanya melakukan satu hal, dan menggabungkannya dengan cmdlet lain yang melakukan hal lain. Tentu saja, sebagian besar pengguna biasa masih tidak tahu cara menggunakan Powershell, tetapi hal itu tergantung pada jenis perangkat lunak yang Anda tulis.
JohnL
4
Kami akan melakukannya dengan benar untuk ketiga kalinya.
aufather
7
Filosofi Windows adalah membawa pendapatan ke Microsoft.
dan04

Jawaban:

28

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:

  • Antarmuka pengguna yang sederhana dan intuitif
  • Alur kerja alami
  • Harus bekerja di luar kotak
  • Tidak ada pengetahuan teknis yang diperlukan di sana di mana tidak diperlukan

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
7
Saya tidak berpikir poin-poin mana pun berlaku terutama untuk Windows.
Tom Hawtin - tackline
4
@ Tom: Ini filosofi; itu tidak perlu berlaku untuk apa pun. Namun demikian, saya percaya ini berlaku sangat baik untuk sebagian besar hal di dunia Windows.
Allon Guralnek
@ Tom Saya setuju dengan @Allon lebih banyak karena bagi saya sepertinya pertanyaan OP lebih pada pemrograman Konsol vs GUI.
gideon
6
Apa?!? Lihatlah sumber-sumber BSD dan AT&T tua yang bagus. Bersih, sederhana, elegan. Dan saya belum pernah melihat sesuatu yang lebih dikaburkan daripada kode MFC yang membengkak.
SK-logic
Bahkan sulit tidak ada jawaban yang benar, saya suka yang terbaik ini. Posting blog Joel sangat bagus.
Maglob
8

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.

TZHX
sumber
7
Dokumentasi pengguna? Pengguna program yang sukses tidak perlu menyentuh dokumentasi apa pun.
@Developer Art - ini benar untuk suatu hal, tetapi ketika Anda sedang menulis perangkat lunak untuk mengatakan, fisika partikel yang harus dipahami oleh orang-orang dari berbagai negara, kemampuan untuk mengatakan "klik di sini untuk deskripsi apa yang kami lakukan dengan data Anda di sini "jika lebih mudah daripada menulis komputer telepati yang akan dapat mengekstrak harapan pengguna dari pikiran mereka.
TZHX
3
"Jangan mencemari pengguna dengan omong kosong." - cukup ironis.
ocodo
1
bagaimana bisa begitu, Slomojo?
TZHX
4

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.

Tagihan
sumber
3

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.

Steven A. Lowe
sumber
2

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.

Dainius
sumber
1

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.

John Bickers
sumber