Dari apa yang saya mengerti,
- HTML adalah bahasa mark-up, demikian juga konten XAML, XIB dan apa pun yang digunakan Android dan kerangka kerja pengembangan UI asli lainnya.
- JavaScript adalah bahasa pemrograman yang digunakan bersamanya untuk menangani skrip sisi klien yang akan mencakup hal-hal seperti penanganan acara, validasi sisi klien, dan apa pun yang dilakukan C #, Java, Objective-C atau C ++ dalam berbagai kerangka kerja seperti itu.
- Ada pola MVC / MVVM yang tersedia dalam kerangka kerja seperti Sencha, Angular dll.
- Kami memiliki penyimpanan lokal dalam bentuk sqlite dan key-value store sebagaimana kerangka kerja lain miliki dan Anda memiliki spesifikasi API untuk hampir semua yang hilang.
- Setiap kali kerangka kerja UI asli harus membuat UI, itu harus menguraikan markup yang sama dan membuat UI.
Rincian pertanyaan
- Apa yang berhenti melakukan hal yang sama dalam HTML dan JS itu sendiri?
- Alih-alih memiliki kontrol web atau browser sebagai lapisan di antara mengapa tidak bisa HTML (bersama dengan CSS) dan JS dibuat untuk melakukan cara yang sama?
- Bahkan jika ada layer, demikian juga .net runtime dan JVM dalam kasus lain di mana C ++, C tidak digunakan.
- Jadi mari kita ambil contoh Android, seperti Dalvik, mengapa Can't Chromium menjadi pilihan lain (bersama dengan dalvik dan NDK) di mana HTML melakukan apa yang dilakukan markup android dan JavaScript digunakan untuk melakukan apa yang Java lakukan?
Jadi pertanyaannya adalah,
Sekalipun implementasi saat ini tidak sebagus ini, tetapi secara teoritis apakah mungkin untuk membuat aplikasi berbasis HTML5 berfungsi sebagai aplikasi asli lainnya khususnya di ponsel?
javascript
mobile
html5
chrome
Amogh Talpallikar
sumber
sumber
Jawaban:
Poster boy untuk aplikasi HTML5, LinkedIn menjadi asli awal 2013. Dalam wawancara di VentureBeat mereka menjelaskan alasannya.
Saya pikir ini adalah bagian yang paling relevan dengan pertanyaan Anda:
...
sumber
Kurangnya pustaka standar Javascript adalah penghambat yang mengerikan. Ada beberapa kerangka kerja hebat seperti jQuery, Dojo, YUI, untuk beberapa nama, tetapi semuanya hanya fokus pada layer presentasi dan XHR.
Apakah Anda ingin logging yang dapat dikonfigurasi, alat kriptografi, algoritma grafik, generator UUID, Peta, Set, Pohon, template, manajemen dependensi, manipulasi tanggal, lokalisasi / internasionalisasi, operasi matriks, injeksi dependensi, unit test, pengurangan peta, pemrosesan XML? Sepele untuk bahasa JVM atau .NET - dalam Javascript Anda sering harus menggulung implementasi Anda sendiri.
sumber
Salah satu alasan mengapa Javascript lambat adalah kurangnya jenis keamanannya. Variabel apa pun bisa dari jenis apa saja kapan saja. Juga, sebagian besar operasi berlaku dengan banyak jenis berbeda, tetapi memiliki semantik yang berbeda . Istilah sederhana
bukankah itu sepele bagi penerjemah, karena
a
danb
bisa berupa angka atau string. Ketika keduanya angka, itu adalah tambahan aritmatika. Ketika keduanya adalah string, ini adalah rangkaian string. Ketika satu string dan satu angka, angka tersebut harus diformat sebelum melakukan penggabungan string. Ini adalah operasi yang sama sekali berbeda yang perlu menginterpretasikan argumen secara berbeda.Tergantung pada jenis
a
danb
, jenisa
sekarang bisa bilangan bulat, ganda atau String, terlepas dari jenis apa itu sebelumnya.Karena variabel dalam JS dapat mengubah tipenya kapan saja, juru bahasa hampir tidak bisa mengevaluasi jenis-jenisnya setiap kali instruksi ini dipanggil untuk menghindari melakukan operasi yang salah. Ini membutuhkan siklus CPU tambahan.
Fitur lain yang membuat pengoptimalan jauh lebih sulit adalah array jarang atau pengumpulan sampah dan penangan peristiwa yang dapat menembak kapan saja.
Lihatlah asm.js - Ini adalah bagian dari Javascript yang memungkinkan pengoptimalan yang lebih baik dengan menyingkirkan beberapa fitur JS, terutama pengetikan dinamis.
sumber
a
bisa integer, string atau double dll maka Anda benar. Dan browser lama yang masih menggunakan penerjemah tentu saja tidak memiliki optimasi ini juga.