Apakah ada batasan aplikasi web HTML5 idealis

11

Mari kita asumsikan dua asumsi berikut ini benar.

  • Seluruh pengguna Anda memiliki akses broadband di mana-mana
  • Ada browser imajiner X yang mengimplementasikan seluruh spesifikasi rancangan grup HTML5 dan WHATWG, secara konsisten dan semua pengguna menggunakan browser X.

Apa batasan intrinsik aplikasi web HTML5 publik komersial yang kami perlukan untuk aplikasi desktop publik komersial?

Saya tertarik pada batasan aplikasi web tanpa plugin yang tidak mengandalkan jembatan Flash / Java / SilverLight / etc untuk fitur tambahan atau bergantung pada plugin browser untuk fitur tambahan.

Kemungkinan Batasan yang tidak berlaku:

  • Basis data? Kami memiliki WebSQL dan indexedDB.
  • Mengajukan IO? Kami memiliki API File HTML5 yang dapat membaca dan menulis.
  • Kecepatan? Dengan perlombaan mesin JavaScript baru-baru ini, browser tidak lagi lambat. Native C ++ hanya 3 kali lebih cepat dari mesin V8 chrome.
  • Alat Pengembangan? Web telah matang dan ada berbagai macam alat yang tersedia yang terlalu banyak untuk disebutkan.
  • Sumber Tertutup? Ya, semua kode adalah open source. Ini adalah pedang bermata dua dan ada banyak pendapat tentang penggunaan kode sumber tertutup atau sumber terbuka. Saya pribadi percaya kelebihan kode sumber terbuka lebih besar daripada kerugiannya.
  • JavaScript / HTML5? Argumen seperti "Saya pribadi berpikir HTML5 dan EcmaScript adalah platform pengembangan yang mengerikan" tidak masuk hitungan.

Keterbatasan yang Diketahui:

  • Kode kritis waktu nyata / keamanan (rahasia) bukan milik web, juga bukan miliknya. Itu perlu ditulis dalam bahasa tingkat rendah, sangat dapat dikontrol seperti C atau C ++.
  • Alat apa pun yang perlu berinteraksi dengan perangkat keras pihak ketiga asing yang terpasang pada komputer Anda akan kesulitan berbicara dengan aplikasi web Anda.

Ada juga serangkaian program yang bukan milik web. Sistem operasi, driver, perangkat lunak server, API tingkat rendah. Saya mengetahui hal itu tetapi saya tidak menggolongkannya sebagai aplikasi "publik komersial", ini adalah jenis perangkat lunak yang dapat diinstal sebelumnya pada komputer.

Selain itu, saya tahu kedua asumsi itu sangat tidak realistis, tetapi kita mungkin mencapainya dalam 5/10/20/30 tahun. Saya tertarik pada jenis aplikasi dan fitur aplikasi yang membuatnya benar - benar tidak kompatibel dengan web.

Motivasi:

Inti nya:

Mengingat serangkaian masalah di mana aplikasi desktop adalah solusi yang valid.

  • Mengapa aplikasi web bukan solusi yang valid?
  • Bagaimana saya mengidentifikasi apakah saya dapat menggunakan aplikasi web atau tidak sebagai solusi.

Saya sudah mencoba untuk menghilangkan kesulitan utama dengan aplikasi web (koneksi internet dan dukungan browser) dengan menyatakan mereka tidak ada.

Selain itu, aplikasi offline HTML5 dan Modernizr berada di jalur untuk menyelesaikan kedua masalah tersebut.

Apa kesulitan lain dengan pengembangan aplikasi web?

Raynos
sumber
2
Batasan utama: ide bagus untuk aplikasi web yang cukup banyak orang ingin gunakan, terhubung dengan model bisnis yang setidaknya akan mengembalikan biaya. Sisanya jauh di urutan kedua.
SF.
"Apa batasan intrinsiknya"? Apa yang Anda maksud dengan "batasan intrinsik"? Apa arti dari kata-kata ini? Informasi apa yang Anda inginkan? Masalah apa yang Anda miliki Apa pertanyaannya?
S.Lott
@ SF menghapus kata "web". Anda membutuhkan masalah dan solusi. Jika solusi itu adalah sebuah aplikasi maka itu perlu menyelesaikan masalah, memiliki basis pengguna dan memiliki model bisnis yang akan berfungsi. Saya hanya membandingkan serangkaian masalah yang memiliki aplikasi desktop sebagai solusinya dan mempertanyakan mengapa aplikasi web tidak akan berfungsi.
Raynos
@ S.Lott Anda benar, pertanyaannya terlalu kabur, saya harap saya sudah mengklarifikasi apa pertanyaan sebenarnya.
Raynos
Apa? "Apa batasan intrinsik aplikasi web publik komersial yang kita perlukan untuk aplikasi desktop publik komersial?" Apakah ini berarti "Kapan kita membutuhkan desktop karena web tidak akan berfungsi?" Jika demikian, semua ini adalah duplikat: programmers.stackexchange.com/search?q=desktop+web
S.Lott

Jawaban:

11

Dari atas kepalaku ...

  • mengakses perangkat keras berpemilik yang mengekspor I / O-nya dengan cara lain selain file. Jadilah itu peralatan ilmiah, mesin industri, atau perekam CD biasa dan tablet digitizer dengan dukungan miring.
  • hanya HTTP dan keluarga kecil dari protokol lain. Anda tidak dapat membuat soket seperti yang Anda inginkan, mentransfer data biner apa pun yang Anda inginkan. Itu sangat membatasi konektivitas dengan sistem dan layanan lain.
  • Tidak ada pengembang waras yang akan membuat gim intensif gambar dalam Javascript. Broadband hampir tidak sebanding dengan throughput DVD / HDD yang sering dibutuhkan. Dukungan untuk 3D di Canvas jauh lebih rendah daripada yang Anda dapatkan dengan mesin gim. Tidak ada cara untuk mendukung joystick, beberapa penekanan tombol secara bersamaan, sifat terbuka membuat curang mudah. Tetapi terutama, penurunan kinerja tidak dapat diterima.
  • Kotak pasir berat. Anda tidak akan mendapatkan hal-hal yang terintegrasi ke dalam OS. Tangkapan layar, antivirus, drive virtual, tugas latar belakang, baki sistem a'la, tugas administratif, dll.
  • tidak bisa kritis misi. Tergantung pada broadband setiap saat untuk menjalankan perangkat lunak dasar mereka bukan cara yang disukai kebanyakan perusahaan untuk menjalankannya.
SF.
sumber
1
2. WebSockets memperlihatkan soket TCP. Anda tidak memiliki akses ke UDP di peramban tetapi TCP memberi Anda lebih banyak opsi.
Raynos
2
3. WebGL membuat beberapa kemajuan menarik. Dukungan OpenCL baru-baru ini telah dimulai. Tentu masih 5 tahun di belakang pengembangan game desktop tetapi mulai menjadi mungkin.
Raynos
2
@ Raynos: WebSockets akan menyediakan fungsionalitas seperti soket tetapi membutuhkan jabat tangan khusus, Anda tidak dapat dengan mudah mengadaptasinya ke sistem yang ada, Anda perlu modifikasi sisi server. Berarti tidak ada aplikasi web klien ssh generik. WebGL mungkin menyelesaikan beberapa masalah gfx, masih tidak ada solusi untuk kebutuhan data massal (gigabytes tekstur dan jerat), pengontrol I / O, juga dukungan audio yang saat ini sangat buruk.
SF.
1
4. W3C Device API (yang saya tidak tahu) sebenarnya benar-benar siap untuk memecahkan masalah sandboxing.
Raynos
1
Banyak hal telah berubah sejak Anda pertama kali menulis jawaban ini. Browser telah menjadi platform perangkat lunak yang sah dengan caranya sendiri; banyak dari apa yang Anda gambarkan dalam jawaban Anda sekarang mungkin. Ya, saya bisa membayangkan hampir semua game atau aplikasi berjalan di browser, dengan upaya yang cukup.
Robert Harvey
3

Pada dasarnya, apa pun yang dapat dimasukkan ke dalam model server / klien dapat membuat aplikasi web yang bagus dan bahkan sebaliknya dapat dikatakan benar juga. Tren untuk pindah ke web telah berlangsung sangat cepat karena melihat bagaimana sebagian besar program dapat dimodelkan menjadi Model / Controller / View, program dapat memisahkan model dan pengontrol dari pandangannya.

Tentu saja untuk alasan efisiensi, beberapa pengontrol ditempatkan juga di sisi klien untuk menghindari kelebihan server dengan permintaan dan data yang salah.

Maksud saya adalah: program apa yang tidak cocok dengan model / pengontrol / tampilan arsitektur perangkat lunak, karena mereka kemungkinan program yang sama yang tidak pernah dikonversi menjadi aplikasi web. Contoh bagus yang muncul dalam pikiran adalah sistem operasi, penjadwal tugas, prompt perintah, perlindungan virus, perlindungan spyware. Masing-masing kemungkinan tidak diimplementasikan pada situs web karena tidak sesuai dengan model. Dan bukan kebetulan bahwa setiap program ini sangat bergantung pada sistem Anda. Sebagian besar membutuhkan akses langsung ke perangkat keras sementara yang lain hanya membutuhkan keamanan yang lebih tinggi untuk dapat dijalankan dan tidak dapat dipercaya untuk dilakukan oleh situs web internet.

Tentu saja, Google sepenuhnya mengadaptasi ulang konsep ini dengan sistem operasi baru mereka. Seharusnya, tidak seperti Windows, itu bukan hanya sebuah sistem yang tumbuh untuk menggunakan internet, melainkan sebuah sistem yang sangat bergantung padanya. Segera Anda mungkin melihat semua program ini tersedia secara online, memungkinkan akses ke perangkat keras dan perangkat lunak Anda, diberikan otentikasi sertifikat yang ketat untuk mencegah sembarang situs dapat melakukan hal itu tetapi lebih pada situs tepercaya. Saya ingin sekali melihat apa yang muncul, karena saya berpikir dalam 20 tahun mendatang, komputer tidak akan lagi dibuat dengan perangkat lunak yang dapat diinstal. Sebaliknya semua layanan akan tersedia secara online.

Neil
sumber
0

• Alat apa pun yang perlu berinteraksi dengan perangkat keras pihak ketiga asing yang terpasang pada komputer Anda akan mengalami kesulitan berbicara dengan aplikasi web Anda.

Perangkat lunak yang saya kerjakan sekarang memiliki aspek desktop dan juga aspek berbasis web karena ia perlu mengumpulkan data dari perangkat pihak ketiga. Kebutuhan pengembangan untuk driver, dan program desktop klien untuk menjembatani kesenjangan antara Perangkat dan Web.

Namun ini tidak mengecualikan aplikasi web karena jenis aplikasi desktop ini bisa tipis dengan logika yang sebagian besar berada di server.

Pada catatan lain orang dapat mengatakan dengan aspek cloud computing dan virtualisasi massa bahwa tidak ada aplikasi yang perlu dibatasi oleh keterbatasan dan celah keamanan teknologi web. Menjalankan aplikasi desktop dari lingkungan tervirtualisasi pada terminal bisu (Mirip seperti Citrix) telah menjadi jauh lebih mudah untuk dicapai dan mungkin pengembangan "mode" selanjutnya.

Intinya adalah bahwa ada lebih banyak pilihan sekarang daripada sebelumnya dan lebih banyak kepala bicara yang menggunakan teknologi masa depan sebagai cara "Terbaik".

maple_shaft
sumber
1
Menariknya, Anda dapat menjalankan aplikasi desktop dari lingkungan tervirtualisasi pada browser web. Fitur kuno pada kebanyakan server VNC adalah applet Java VNC viewer, tersedia secara default di http: // [mesin jarak jauh]: 5800 / Jadi - desktop-app-as-web-app?
SF.
0

Mari kita asumsikan dua asumsi berikut ini benar.

  • Seluruh pengguna Anda memiliki akses broadband di mana-mana
  • Ada browser imajiner X yang mengimplementasikan seluruh spesifikasi rancangan grup HTML5 dan WHATWG, secara konsisten dan semua pengguna menggunakan browser X.

Apa batasan intrinsik aplikasi web HTML5 publik komersial yang kami perlukan untuk aplikasi desktop publik komersial?

Saya tertarik pada batasan aplikasi web tanpa plugin yang tidak mengandalkan jembatan Flash / Java / SilverLight / etc untuk fitur tambahan atau bergantung pada plugin browser untuk fitur tambahan.

Ok, maka inilah intinya: Browser itu pada dasarnya tidak aman. Jadi Anda meminta kami untuk membuat tradeoff di antara keduanya. Namun, melewati itu, dan dengan asumsi bahwa kita memang memiliki javascript (yang Anda singgung di posting Anda) maka jawaban bahwa tidak ada aplikasi yang tidak dapat ditulis hanya menggunakan HTML5 / Javascript. Namun, kami menganggap browser yang tidak menghalangi.

Masalahnya memiliki toko db lokal, dapat membuat panggilan ke platform lain menggunakan permintaan HTTP (yang RESTafarian akan memberitahu Anda sudah cukup) dan dapat menarik (melalui Kanvas) apa saja yang Anda inginkan. Sudah ada game 3D yang ditulis menggunakan standar terbuka (OpenGL ish) dan ada API untuk melakukan apa saja yang Anda inginkan.

Satu-satunya kelemahan nyata adalah kecepatan. Butuh waktu untuk melakukan panggilan API HTTP ke sistem lain (basis data). Butuh waktu untuk memproses permintaan FILE (COM1 :) (untuk membaca lebih dari perangkat serial pada Windows misalnya) jadi itulah masalah yang saya harapkan. Tentu saja, saya juga berasumsi bahwa driver ditulis untuk diakses seperti file, yang saya yakin tidak benar lagi. Tetapi mereka dapat mengekspos mekanisme semacam itu;)

Bagi pengguna, tidak banyak yang akan berbeda sama sekali.

jcolebrand
sumber