Selama beberapa tahun terakhir, semua proyek serius yang saya kerjakan adalah berbasis web, atau memiliki antarmuka pengguna non-grafis (layanan, skrip baris perintah dll ...). Saya dapat menggabungkan aplikasi WinForms atau melakukan WPF sederhana bila diperlukan, tetapi saya tidak pernah benar-benar menyelidiki beberapa API tingkat rendah seperti MFC atau QT.
Saya memahami bahwa ini tergantung pada situasinya tetapi secara umum apakah masih ada gunanya meluangkan waktu untuk mempelajari pengembangan desktop dengan baik atau apakah aplikasi bergerak ke web dan perangkat seluler dengan kecepatan yang membuat pengetahuan ini kurang relevan? Juga, apakah Anda mengharapkan pengembang yang bekerja dengan Anda memiliki keahlian gui desktop?
Jawaban:
Saya akan mengatakan ya, benar. Ada semacam efek pendulum dalam pengembangan program. Pertama-tama semuanya berjalan langsung di komputer. Kemudian ketika komputer menjadi cukup kuat untuk menjalankan banyak program, mereka mendapatkan mainframe dengan terminal bodoh. Tetapi terminal bodoh benar-benar menyedot dalam hal kegunaan, sehingga segera setelah komputer menjadi cukup kuat untuk memasukkan jumlah perangkat keras yang masuk akal ke dalam sistem berukuran terminal, kami mendapatkan komputer pribadi, dan semuanya berjalan langsung di komputer.
Kemudian mereka menemukan World Wide Web, dan kami kembali ke mainframe (server) dan terminal bisu (browser.) Tetapi terminal bisu masih sangat menyedot dalam hal kegunaan, dan orang-orang mulai mempelajari kembali pelajaran 30 tahun yang lalu , dan kami berarah jauh dari itu lagi. Banyak perkembangan yang sangat panas akhir-akhir ini adalah untuk aplikasi desktop (atau seluler) yang berjalan secara lokal, tetapi dapat terhubung ke Internet untuk tujuan tertentu untuk meningkatkan fungsionalitasnya.
sumber
Bahkan jika Anda tidak pernah berniat untuk melakukan dev desktop, saya sarankan Anda mendapatkan pengalaman yang cukup bahwa Anda akan memiliki pendapat yang terinformasi ketika lebih baik menggunakan solusi desktop daripada klien web.
sumber
Ya, tetapi tidak dengan cara Anda berpikir.
Pemrograman GUI tidak lebih sulit juga tidak memerlukan keterampilan khusus selain dari keakraban dengan antarmuka pemrograman gui. Menghubungkan tombol dan jendela dan kontrol tidak terlalu sulit dan cukup mudah dengan lingkungan pemrograman modern dibandingkan dengan hari-hari awal dengan hal-hal seperti MFC. Pemrograman GUI adalah hal-hal yang cukup mudah dipelajari ketika diminta.
Namun, sementara mengaitkan tombol dan kotak teks cukup mudah, mengetahui kapan dan di mana menempatkan tombol, dan merancang gui untuk digunakan oleh manusia sangat sulit. Itu adalah keterampilan yang sangat berharga dan penting untuk dimiliki. Namun, prinsip-prinsip desain yang berlaku untuk antarmuka asli vs web sangat mirip.
Jadi pelajari cara mendesain antarmuka pengguna yang baik yang efektif dan tidak membingungkan pengguna, dan Anda akan terbiasa dengan pemrograman untuk mereka secara gratis.
sumber
Ini benar-benar akan tergantung pada situasi Anda. Saya baru-baru ini bekerja untuk perusahaan Fortune 500 yang memiliki beberapa proyek untuk mengubah aplikasi web kembali menjadi aplikasi desktop (SmartClient / Click-Once). Dalam keadaan khusus mereka itu sangat masuk akal dan menghilangkan beberapa masalah kegunaan aplikasi mereka saat ini menderita.
Jika Anda seorang karyawan penuh waktu dan perusahaan Anda umumnya tidak merancang aplikasi desktop maka mungkin tidak masuk akal untuk sepenuhnya mempercepat pada Winforms atau WPF. Namun, jika Anda seorang konsultan dan Anda ingin dapat menawarkan layanan lain kepada klien Anda, maka itu tidak mungkin menyakitkan.
sumber
Hmm, selain GMail, Stack-Exchange dan home banking bank saya, saya menggunakan perangkat lunak non-web sepanjang hari. Sekarang dengan munculnya smartphone dan tablet, aplikasi web bahkan kurang menarik bagi saya (saya menggunakan klien Facebook smartphone saya). Itu sisi pengguna.
Sisi pengembang: dalam 10 tahun terakhir saya, saya bekerja hampir hanya pada perangkat lunak non-web (dan karier saya menjangkau banyak domain yang sangat berbeda karena saya bekerja sebagai konsultan perangkat lunak) dan saya tidak melihat tren web di masa depan dalam pekerjaan saya.
Jadi ya, masih harus belajar lingkungan GUI desktop.
sumber
Tentu saja "itu tergantung" - tetapi saya pikir pengalaman Anda tipikal. Saya jarang harus membuat klien yang tebal untuk semua aplikasi yang saya tulis. Kecuali ada alasan khusus bahwa klien harus berjalan di desktop (masalah konektivitas atau game 3D, dll) - Saya percaya bahwa lebih mudah bagi pengembang dan admin untuk mempertahankan satu "contoh" dari aplikasi. Jika mereka memiliki keterampilan untuk merancang aplikasi web, mereka harusnya pindah ke ranah aplikasi desktop secara umum.
Sebenarnya saya pikir itu lebih penting bahwa pengembang klien tebal belajar pemrograman aplikasi web - kewarganegaraan bawaan dari HTTP menjadikannya paradigma pengembangan aplikasi yang lebih sulit untuk membungkus kepala Anda (atau setidaknya Anda harus melakukan sedikit pemikiran lebih dari sekadar menampar kontrol pada panel).
Jangan lupa - Anda memiliki teknologi seperti Silverlight dan Adobe Flex / AIR yang dapat melintasi batas antara aplikasi desktop / web.
sumber
Menurut tim IE9:
Seharusnya tidak ada celah antara aplikasi asli dan web. Akselerasi HW, JS cepat dan penyematan situs memulai
Saya pikir ini adalah taruhan yang aman bahwa teknologi ini akan tumbuh lebih dekat bersama. Jika Anda seorang pengembang java, ada sedikit perbedaan antara mengembangkan aplikasi desktop dan aplikasi web (menggunakan GWT). Bukan tidak masuk akal untuk mengharapkan semakin banyak platform pengembangan "desktop" untuk dapat menargetkan mesin browser. Juga tidak masuk akal untuk mengharapkan semakin banyak aplikasi desktop memiliki model distribusi seperti web (pembaruan otomatis di latar belakang, eksekusi kotak pasir, seperti chrome).
sumber