Javascript ile ilgili sorun dilin kendisi değildir - mükemmel bir prototip ve dinamik dildir. Bir OO arka planından geliyorsanız, biraz öğrenme eğrisi vardır, ancak bu dilin hatası değildir.
Çoğu insan Javascript'in Java gibi olduğunu varsayar, çünkü benzer bir sözdizimine ve benzer bir ada sahiptir, ancak aslında lisp'e çok benzer. Aslında DOM manipülasyonu için oldukça uygun.
Asıl sorun tarayıcı tarafından derlenmiş olması ve istemciye bağlı olarak çok farklı bir şekilde çalışması anlamına geliyor.
Gerçek DOM yalnızca tarayıcıya bağlı olarak farklı değildir, aynı zamanda performans ve düzende büyük bir fark vardır.
Söz konusu açıklamayı düzenleyin
Birden fazla yorumlanmış dilin desteklendiğini varsayalım - yine de aynı sorunlarınız var. Çeşitli tarayıcılar hala hatalı ve farklı DOM'lere sahip olacaklardı.
Ayrıca, her dil için tarayıcıda yerleşik bir tercümana sahip olmanız veya bir şekilde eklenti olarak (sayfayı hizmet etmeden önce kontrol edebileceğiniz) yüklemeniz gerekir. Javascript'i tutarlı hale getirmek uzun zaman aldı.
Derlenmiş dilleri aynı şekilde kullanamazsınız - sonra yaptığı şey için kolayca incelenemeyen bir yürütülebilir dosya sunarsınız. Birçok kullanıcı çalışmasına izin vermemeyi tercih eder.
Tamam, derlenmiş kod için bir tür korumalı alan ne olacak? Bana Java Applets gibi geliyor. Veya Flash'ta ActionScript. Veya Silverlight'ta C #.
Bir çeşit IL standardına ne dersiniz? Bunun daha fazla potansiyeli var. İstediğiniz dilde geliştirin ve daha sonra tarayıcının JIT'leri kullandığı IL'ye derleyin.
Dışında, Javascript zaten bu IL - sadece GWT bak . Java ile program yazmanıza, ancak HTML ve JS olarak dağıtmanıza izin verir.
Söz konusu diğer açıklamaların ardından düzenleyin
Javascript, tarayıcılar tarafından desteklenen tek dil değildir veya daha çok değildi: Internet Explorer karanlık çağlarında IE'de çalıştırmak için Javascript veya VBScript arasında seçim yapabilirsiniz. Teknik olarak IE, Javascript bile çalıştırmadı - JScript'i çalıştırdı (esas olarak Sun'a java kelimesi için ödeme yapmaktan kaçınmak için , Oracle hala Javascript ismine sahip ).
Sorun, VBScript'in Microsoft'a ait olmasıydı, ama aynı zamanda çok iyi değildi. Javascript işlevsellik eklerken ve diğer tarayıcılarda (FireBug gibi) en üst düzey hata ayıklama araçlarını alırken VBScript yalnızca IE'de kaldı ve hemen hemen hata ayıklanamadı (IE4 / 5 / 6'daki dev araçları yoktu). Bu arada VBScript, işletim sisteminde oldukça güçlü bir komut dosyası oluşturma aracı olarak genişledi, ancak bu özelliklerin hiçbiri tarayıcıda mevcut değildi (ve olduklarında büyük güvenlik açıkları haline geldiler).
Hala VBScript kullanan bazı kurumsal dahili uygulamalar var (ve bazıları bu güvenlik açıklarına güveniyor) ve hala IE7 çalıştırıyorlar (MS sonunda onu öldürdüğü için sadece IE6'yı durdurdular).
Javascript'i şu anki durumuna getirmek bir kabus oldu ve 20 yıl sürdü. Bazı tarayıcılarda dil özellikleri (1999'da belirtilen) hala eksik ve hala çok sayıda şim gerekli olmakla birlikte, hala tutarlı bir desteğe sahip değil.
Tarayıcılarda yorumlamak için alternatif bir dil eklemek iki önemli sorunla karşı karşıyadır:
Tüm tarayıcı satıcılarının yeni dil standardını uygulamalarını sağlamak - 20 yıldır Javascript için yönetemedikleri bir şey.
İkinci bir dil, potansiyel olarak zaten sahip olduğunuz desteği sulandırır (örneğin) IE'nin ikinci sınıf Javascript desteğine sahip olmasına izin verir, ancak harika VBScript (tekrar). Gerçekten farklı tarayıcılar için farklı dillerde kod yazmak istemiyorum.
Javascript'in 'bitmemiş' olduğuna dikkat edilmelidir - yeni tarayıcılarda daha iyi olmak için hala gelişmektedir. En son sürüm , tarayıcıların uygulamalarından yıllar öncesidir ve bir sonraki sürüm üzerinde çalışıyorlar.