Apakah masih layak belajar pengembangan desktop gui? [Tutup]

18

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?

aubreyrhodes
sumber
5
Memiliki pengembangan aplikasi desktop sangat bagus, tetapi untuk cinta Knuth, jangan repot-repot dengan MFC. Semua yang Anda perlukan untuk 95% pekerjaan aplikasi desktop Windows adalah WinForms atau WPF / XAML. 5% lainnya dari pekerjaan yang tidak Anda inginkan.
Adam Crossland
1
@Adam: +1 untuk "5% pekerjaan lainnya yang tidak Anda inginkan." - Benar sekali. :)
Bobby Tables

Jawaban:

38

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.

Mason Wheeler
sumber
5
+1 untuk menunjukkan bahwa tren ini berjalan dalam siklus. Namun, saya telah melihat kasus di mana aplikasi terminal ditulis ulang sebagai aplikasi desktop, dan pengguna dapat bekerja lebih efisien dengan aplikasi terminal.
Larry Coleman
2
Perbedaannya dengan browser adalah bahwa mereka sebenarnya dapat menjalankan kode pada sistem lokal, dan kemampuan ini tumbuh dengan setiap generasi browser. Konsekuensi dari itu adalah bahwa perbedaan kegunaan antara aplikasi desktop dan web tidak begitu besar. Bagi banyak orang (termasuk saya), gmail lebih berguna daripada pandangan. Pendulum berayun kurang jauh setiap kali, dan akan berhenti di tengah jalan, dengan aplikasi menjadi campuran bagian lokal dan cloud, terlepas dari teknologi yang mendasarinya.
Joeri Sebrechts
13
+1, saya benci ketika orang mulai mengklaim bahwa desktop sudah mati, itu konyol.
dr Hannibal Lecter
1
@ Joeri: Sebagian besar terminal selalu dapat melakukan setidaknya beberapa bit secara lokal. Jumlah JavaScript yang menyedihkan yang saya lihat melakukan hal-hal yang dapat dilakukan oleh IBM 3270 (misalnya) secara lokal.
Jerry Coffin
1
@ Joeri Sebrichts - ketika Gmail memungkinkan saya untuk menarik dan melepas email ke tugas atau item kalender saya mungkin setuju dengan Anda, tetapi sampai saat itu, fitur yang terlalu sedikit.
JeffO
11

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.

Tagihan
sumber
+1: Dengan asumsi bahwa 'desktop sudah mati' dan aplikasi pigenholing adalah kebalikan dari pengembang desktop murni yang mengatakan "itu tidak akan pernah sebagus aplikasi web". Pilih apa yang ingin Anda kerjakan, tetapi kenali yang lain cukup untuk mengetahui manfaat / perangkap sebenarnya.
Steven Evers
8

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.

Apa namanya
sumber
2
Terutama di hari-hari ini Pengalaman Pengguna bertanggung jawab atas desain perangkat lunak. Arsitektur tidak lagi bertanggung jawab.
rwong
5

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.

Walter
sumber
4

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.

Wizard79
sumber
2
Wow, Anda tidak menggunakan Mesin Pencari Internet?
JBRWilkinson
1
@ JBRWilkinson: tidak, saya mengandalkan Gopher. Serius, tentu saja saya menggunakan Google sepanjang hari, tetapi itu bukan pengganti alat desktop atau aplikasi apa pun.
Wizard79
2

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.

Watson
sumber
+1 untuk pengembangan web menjadi lebih sulit. Saya mulai sebagai pengembang desktop dan harus pindah ke pengembangan web di tempat kerja. Ini jelas lebih kompleks (jelas ini mengasumsikan tugas yang sebanding, yang tidak mudah).
Bobby Tables
@ Guzica - ya saya telah menemukan sikap yang sama dari para pengembang yang bekerja dengan saya yang terkunci pada pengembangan aplikasi desktop. Sekali mereka mencoba untuk membuat peralihannya tidak semudah yang mereka pikirkan. Saya tidak tahu apakah ini merupakan kompleksitas yang melekat dalam pemrograman aplikasi web, itu hanya cara yang berbeda untuk memprogram, dan banyak asumsi mendasar Anda tentang apa yang dapat dilakukan sistem harus diubah (selain mempelajari kerangka kerja baru).
Watson
Itu selalu lebih sulit untuk melakukan hal-hal dengan alat yang lebih terbatas, yang tidak membuatnya "lebih kompleks". Itu membuatnya lebih merepotkan.
Sam
0

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

Joeri Sebrechts
sumber
3
Itu adalah total BS. Saya sedang mengerjakan aplikasi pengukuran latensi yang harus ditempatkan secara lokal untuk mengukur dan menampilkan "waktu nyata" latensi pengiriman data pasar. Hal semacam ini TIDAK AKAN PERNAH dipindahkan ke cloud.
Tim
Ini total BS karena Anda telah menemukan kebutuhan yang sangat tidak jelas untuk sebuah aplikasi menjadi lokal?
Mike M.
@Tim: Anda benar bahwa beberapa aplikasi akan selalu bersifat lokal. Benar juga bahwa aplikasi lain tidak akan pernah lokal (mis. Google translate). Tetapi, menjalankan secara lokal tidak menyiratkan bahwa itu tidak berasal dari cloud. Chrome berjalan secara lokal tetapi merupakan aplikasi berbasis cloud (Anda memiliki sedikit kendali atas apa "versi" itu). Ada upaya untuk mengikat eksekusi kode asli ke platform browser (Google NaCl), dan upaya untuk mengikat bahasa web ke dalam aplikasi asli (Adobe Air).
Joeri Sebrechts
1
@ Mike M - itu tidak begitu jelas. Di pekerjaan saya sebelumnya saya bekerja pada perangkat lunak kapal Angkatan Laut. Mereka juga cenderung tidak berada di awan. Domain tempat saya bekerja kemungkinan tidak akan bermigrasi - domain harus lokal karena alasan latensi dan antarmuka perangkat keras. Web itu bagus, tetapi beberapa dari kita masih bekerja di area aplikasi asli karena suatu alasan.
Tim
@Tim Maksud saya adalah bahwa Anda telah menemukan skenario yang tidak bertahan. Penulis menyadari ini ketika ia mengatakan PALING. Anda telah menemukan titik tandingan, dan itu bagus. Anda tidak pernah membuktikan bahwa semuanya tidak memiliki dasar. Tentu saja akan ada saat di mana itu harus lokal karena banyak alasan. Tetapi untuk sebagian besar, melemparkan beberapa kabel serat optik dan 1200 mil Anda dapat dilintasi dalam apa, 10 milidetik? Sebagai pengguna, saya akan baik-baik saja dengan setiap aplikasi desktop saya membutuhkan waktu 10 milidetik lebih lama untuk memuat formulir.
Mike M.