JavaScript nasıl popüler hale geldi?


27

Antik tarihte, Brendan Eich bir dil tasarımına sahipti ve bugünün dünyasında, JavaScript birçok farklı yerde uygulanan ve kullanılan popüler bir dildir.

Dilin popüler olmasına ne sebep oldu? Önceki programcıların bildiği C benzeri bir sözdizimi miydi? Netscape kullanmaya zorlamak için pazarda yeterli kontrol sahibi oldu mu? Yoksa JavaScript’in popüler olmasının ve diğer dillerin olmamasının daha derin bir nedeni var mı?

Özellikle, bir dili JavaScript kadar popüler yapmak zorunda olsaydınız, popülaritesindeki büyümesini yeniden oluşturmak için hangi başlangıç ​​koşullarına ihtiyaç duyarsınız?


2
Google, Google haritalarıyla yeniden dirilinceye kadar JavaScript, ölü (+ - 2005) hakkındaydı.
Todd Moses

1
@ToddMoses Tartışmaya gittim, ancak bazı araştırmalar haklı olduğunu gösterdi: AJAX, Javascript’i tekrar Gmail’den (2004) ve google maps’den (2005) esinlendi. Bununla birlikte (ve bu aynı zamanda yukarıdaki soru ile de ilgilidir) javascript hiç bitmedi: Actionscript (Flash'ta kullanılan) yaklaşık 2000'den ortaya çıktı ve temelde aynı dil. Tarayıcı Savaş Yılları boyunca, Flash / Actionscript, Javascript / AJAX’in şu an için teknolojinin olduğu şeyler için kullanılıyordu. Javascript becerilerimi 2000 yılında Actionscript'e götürdüm ve bunları 2008'de Javascript'e geri getirdim :-)
Darren Cook

2
Ajax önemlidir, ancak aşırı itibarlıdır, IMO. Yaygın tarayıcı DOM API ve CSS2 ile yarı uygunluk, JS'yi müşteri tarafında güçlü bir araç haline getirmeye yardımcı olmuştur. Bu 2002'lerde IIRC'de daha fazla başladı. Bir zamanlar HTML'ye uygun araçlara sahip olduktan sonra, karmaşık UI özelliklerinin hızlı bir şekilde uygulanması tamamen yeni bir oyun adıydı. Ancak, 2005 yılına kadar herkes gerçekten farkına varmaya başlamış olmayabilir. Ayrıca, 2005 yılına kadar kritik bir kitlenin, JS'nin aslında kendi başına oldukça hoş bir genel dil olduğunu anlamaya başladığını söylemedim.
Erik,

Yanıtlar:


31

Daha önceki bir cevap hakkında yorum yapıyordum , ama büyük bir hal alıyordu, bu yüzden bunu açacağımı düşündüm.

Herhangi bir yeni dil ancak bilişimde yeni ortaya çıkan bir sınırdan yararlanıyorsa başarılı olabilir.

Önceki örnekler:

  • Unix için C
  • İOS için Amaç-C
  • Arka uç Web 1.0 için Perl ve PHP
  • Python ve Ruby, arka uç Web 2.0 için
  • Internet erişimi sağlayan kurumsal kuruluş için Java

Sorunuzu cevaplamak için JavaScript, baskın tarayıcı olduğunda Netscape Navigator'ın diliydi. Özellikle, dinamik ön uç geliştirme diliydi.

Bir sonraki büyük dilin başka bir sınırı çözmesi gerekecek. Hala arka uç web geliştirme alanında bir arazi kapma gibi görünüyor. Ayrıca, Apple'ın şu anki hakimiyetine rağmen, mobil bilgi işlem tam olarak çözülmedi. Ayrıca, çok çekirdekli ve bulut bilişimin ortaya çıkışı vardır; bu, birçok dilin yararlanmaya çalıştığı bir şeydir (Erlang ve Go gibi eşzamanlı diller veya Haskell ve OCaml gibi işlevsel diller gibi).

Girişimciler “ateşli birisini bul ve ona bir yangın hortumu satıyor” şeklinde bir ifadeye sahipler. Öyleyse, yeni bir dil tanıtmak istiyorsanız, kimin ateşini söndürüyorsunuz? Hesaplamadaki her yeni sınır bir sürü baş ağrısı getiriyor; bu yüzden biraz aspirin verin ve altın olacaksınız.


4
Neredeyse hemfikirim ama .NET platformunun nasıl bu kadar popüler hale geldiğini bulamıyorum?
Tomasz Nurkiewicz 13:11

5
@Tomasz Microsoft (hala masaüstü yüklemeleri büyük çoğunluğu vardır) Windows için yeni bir platform olarak .NET itti ve bugüne kadar devam ettirmeme VB 6. olarak gitti
chrisaycock

1
Ne Perl ne de Python ilk popülerliklerini internete borçlu değil; Sys yöneticileri veya işletim sistemi hizmetleri için hızlı bir şekilde araçlar oluşturmak için diller olarak tasarlandılar (sırasıyla) ve web geliştirme ile daha fazla çekişe geçmeden önce bu alanlarda çok başarılı oldular.
SingleNegationElimination

1
@TokenMacGuy: Bu alanlar (CAD / CAE dahil), Web 1.0 ayrılıncaya kadar nispeten küçüktü. İşte kitapçılarda raflar bu dillerde kitaplarla dolup taşmaya başladı.
hotpaw2

2
@ hotpaw2: Perl, UNIX'te ev internet erişiminin yaygın bir şekilde kullanılmasından birkaç yıl önce komut dosyası yazmak için oldukça popülerdi.
kevin cline

38

Çok basit: Netscape, tarayıcılarında bir JavaScript motoru kullandı. Web'de komut yapmak istiyorsa, JavaScript oldu o . Internet Explorer hem JavaScript'e hem de VBScript'e sahipti (ve hala da var), fakat açıkçası IE'den daha fazla çalışmak istiyorsanız, JavaScript'i kullanmaktan başka seçeneğiniz yok.

JavaScript kendi başına harika bir dildir, ancak HTML'yi kodlamak için kullanabileceğiniz tek dil olmasaydı bugün popüler olmazdı.


3
Öyleyse, üst düzey bir dile ihtiyaç duyan mevcut (popüler) bir yazılım parçasını destekleyerek mi?
Mathnerd314

7
@ Mathnerd314: Öyle değil. JavaScript (teşekkürler, Bay CRT: p) tarayıcıdan asla ayrı değildi: Netscape tarafından tarayıcılarında kullanılmak üzere özel olarak geliştirilmiştir, bu yüzden Netscape'in popülaritesi hakkında "geridönüş" yapmak için bilinçli bir kararın verildiği gibi değildi. popüler dil.
Dean Harding,

2
Mathnerd314 @ Bu bir tek gerçek dil olarak çok bindirme değil bilgisayar yeni sınırına C Unix içindi gibi. Dinamik bir ön uç isteyen herkesin JavaScript kullanması gerekiyordu.
chrisaycock,

4
Amacıyla yeniden başarıyı, ben tamamen yeni bulmalıyız hesaplama sınırını ve yeni bir dil zorunlu olun. Anlıyorum ...
Mathnerd314

2
@ Mathnerd314 Mevcut ortaya çıkan sınırlar çok çekirdekli ve bulut bilişimi içerir. Aslında, bu Erlang gibi bir dilin faydalanabileceği bir şeydir. (Bir başka örnek de, akıllı telefonların ortaya çıkması nedeniyle Objective-C'nin yükselmesidir, çünkü Apple bu alanda çok büyük bir oyuncudur.)
chrisaycock

7

Buna bir güncelleme ekleyeceğim, çünkü JS’nin müşteri tarafında web’de ortaya çıkmasının yıllar içinde birkaç önemli noktada yanlış anlaşıldığını düşünüyorum.

Ajax değildi

Ajax’ın JS’yi bir dil olarak anlamanın evrimi için önemli olmadığını söylemiyorum, ancak müşteri tarafı tarayıcı egemenliği için verilen mücadele, Ajax terimi kurulmadan çok önce sona erdi.

Şehirdeki tek oyundu çünkü değildi.

Java uygulamaları, Flash ve VBScript vardı. 90'larda bile başka betik seçenekleri olduğunu duydum (ancak gerekli IIRC eklentileri). Java oldukça popüler ancak uygulamalar kötü bir başarısızlık yaşadı. Çirkindiler ve sık sık güvenlik İsviçre peyniri oldular ama daha önemlisi Java'nın daha sonra gireceğim sebepler için uygun olduğunu sanmıyorum. Flash çok popülerdi ve birkaç yıl boyunca güçlü bir dayanak noktası vardı, ancak Flash sonunda SEO seçeneklerine sahip olsalar bile, genellikle Flash siteleri keşfetmek çok zor hale gelmiş, genellikle kullanılmamışlardı. Şimdi bile, çoğumuz düzenli olarak Flash'ı güncelleriz, böylece filmleri izleyebiliriz, ancak gerçek Aşil topuğu. Tarayıcılarda tescilli teknoloji can sıkıcıdır. Ve tabii ki sadece IE ile çalışacak olan VB, yani hayır.

Doğru Zamanda Doğru Yer Uygun, Tüm Cevap Değildir

Evet, sürecek web dalgası olmadan, yaptığımız gibi en kısa sürede JavaScript veya popüler bir dilde bir dil görmemiş olabiliriz. Ya da belki biz ...

Sorunlu Alan İçin Mükemmel Bir Araç Oldu

2000'li yılların sonunda şu problemleri yaşadığımızı söyleyebilirim:

  • IE ve Netscape sadece aynı DOM API ve CSS standartlarına katılarak güzel oynamaya başlamayı kabul etmişti ve bir süredir eski JS çapraz tarayıcı sorunlarıyla uğraşmak zorunda kaldık. JS DOM normalleştirme araçlarının yardımı olmadan jQuery post IE8 gibi
  • Tamamen ağır olmayan, yeni bir web geliştiricisi / tasarımcısı kuşağı vardı; programcıların oyun sonrası-patlama-patlamalarını geliştirmek için programcıları, kapıda daha fazla bir şey göstermeden size iyi bir maaş vermeyi kestiklerinde durdukları zaman temel HTML okuryazarlığı ve bazı photoshop becerileri.
  • Kasabada, sonunda DHTML (daha uygun şekilde) DOM Scripting, (şimdi uygun olmayan şekilde) HTML5 (zomghtml5!) Olarak adlandırılacak şey için ilginç olanaklar sunan bu yeni CSS çocuğu vardı.

Bu yüzden, hem derin, hem de müşteri tarafında taşınabilir / yeniden kullanılabilir bileşenlerle daha gelişmiş bir uygulama oluşturma ve mimarlık yapma yeteneğini sunan ancak aynı zamanda çok fazla şey bilmeyen ve sadece ihtiyaç duyulan insanlara da erişilebilen bir dile ihtiyacımız vardı. Bir düğmeye tıkladığınızda görünmek / tekrar görünmek için.

Dahası, MS, bazen olmayan bir rekabet / beceriksiz ve / veya rekabete aykırı-pratik uygulama şeması gibi canavar olarak, iyi bir on yıl boyunca uyumlu olmayan DOM API uygulamalarına gerçekten iyi bir on yıl boyunca dokunmadılar. IE8'de özgün XHR nesnesi ve querySelectors gibi arada bir şey ekleyin.

Unutulmaması gereken önemli şey, 2005 yılına kadar, tarayıcılar arası sorunları ele alma konusundaki karmaşıklığı tamamen JavaScript'in ciddiyetinde ciddi bir mesele olmadığı için tamamen gömdüğümüzdür. CSS2'yi yeterince desteklemediği sürece çok daha fazla ağrıya neden oldu. Saf hacim ve sorunların derinliği hakkında bir fikir edinmek için quirksmode.org sayfasını incelemenizi öneririz . Bunun, tamamen VB'de değil, kesinlikle tamamen yeni bir hale gelmek suretiyle tüm meslekten kaçınmak olan herhangi bir eklenti stratejisi ile değil, Java'daki kütüphanelerde sorunsuz ve pek çok kütüphanede elde edilebilecek bir başarı olduğunu düşünmüyorum. biraz sıkıntı.

Kullanıcı Arabirimi için Çok Önemli Olan Diğer Dil Özellikleri:

  • Birinci Sınıf İşlevler: Deneyimime göre hiçbir şey, işlevlerini birinci sınıf yapan bir dilden asenkron işlem ve olaya dayalı paradigmalardan daha iyi bir şekilde ödünç vermez. UI çalışmalarında her iki kaygı da düzenli olarak ele alınmaktadır.

  • Dinamik Tipler: Döküm ve tip kontrolü, kodun özlü ve yalın kalmasına yardımcı olan JavaScript'te çok nadir bir ihtiyaçtır. UI endişeleri çok karmaşık ve karmaşık olabilir. Kodu sıkı tutmak ve veri akışı konusunda kesinlikle net olmak, onu anlamak ve değiştirmek / korumak için çok önemlidir.

  • Korumacı Değil: Yıllardır biri, kendi hatalarınızdan ve başka birinin kodunuzla yapabileceği aptalca şeylerden kendinizi korumanız gerektiğine dair vaaz veriyor, kod oluşturmalarını orijinal niyetiyle karıştırmak imkansız hale geliyor ile yazılmış ve birçok insan dinliyor. Her zaman yanlış olduklarını söylemeyeceğim (düşünebilir) ancak web kullanıcı arayüzüne yanlış bir yaklaşım olduğunu söyleyeceğim ve korsan olduğumuz, müşteriyi koruduğumuz ve değiştirdiğimiz bir fenomen olacağına inanıyorum. Yan GUI'lar daha hızlı bir şekilde ve bu tür çalışmalardan daha kolay bir şekilde, geçmişte daha kısıtlayıcı dillerde yapıldı. Hareket halindeyken olayları hızlı ve kolay bir şekilde değiştirebilmek, anıtsal miktarda dolaylı ve soyutlama ek yükü gerektirmeyen dinamik / akışkan mimarisi şemalarına sahip olmayı çok kolaylaştırır, bu da cehennem kodunda neler olup bittiğini görmeyi kolaylaştırır. ve istisnaları çok daha temiz bir şekilde ön-boşaltma veya işleme. Yaptığınız her şeyde daha doğrudan ve diğer felsefede verilenlerden çok daha az kodla daha doğrudan bir kod oluşturmayı mümkün kılmak sayesinde basitçe sürdürmek daha kolaydır.

JS nasıl popüler oldu? Yine iş zamanı ve zamanı için mükemmel bir araç olduğunu kanıtladı. Bu bizim "sıkışmış" olduğumuz dil değil, genel olarak popüler dillerde çok fazla evrime ilham vermiş olabilecek dildir. Bunun için, Brendan Eich'e ve fikrinin başının içine konmasına yardımcı olan çağdaşlara, Scheme'yi Java'dan daha çok sevdiği soruna uygun bir tasarım ilhamı olarak gösterdiği için teşekkür edebilirsiniz.


2

Başlangıçta kullanılan bir taktik adıydı - "JavaScript", bir süredir artmakta olan Java'nın popülaritesini arttırmayı hedefliyordu.


1

Tek tarayıcı arası istemci tarafı komut dosyası dili değil miydi? Popülaritesi, web'inkiyle kilit adımlarla büyüdü, bu mantıklı geliyor.



0

Benim düşünceme göre, Javascript popüler çünkü iyi destekleniyor.

İlk olarak, hem Netscape hem de IE için zaman dilindeki tek dildir. Bir "javascript topluluğu" kurulduktan ve kararlı hale geldikten sonra, hiç kimse sıfırdan inşa etmeyi gerektiren "başka bir mal" hakkında düşünemezdi. Sadece onu daha iyi ve daha iyi hale getirmeye katkıda bulunurlar.

Yeni bir popüler dil oluşturmak istiyorsanız, ilk düşündüğüm şey o dili kimin kullandığını belirlemeniz gerektiğidir . İlk müşterileri elde etmek her zaman zordur ve dilinizi bir şekilde javascript'ten daha üstün hale getirmelisiniz. Belki sınırlı bir alanda / sınırlı bir programcı topluluğunda bile, örneğin, "iPhone mobil için daha iyi / daha hızlı javascript motoru" iyi bir seçim olabilir.

Ayrıca, dilinizin topluluk tarafından kullanımı ve özelleştirilmesi kolay olmalıdır, çünkü hangi dilin hayatta kalabileceğini belirleyen topluluktur.


Önemli olan, onu "yeterince" nasıl popüler hale getireceğidir. O zaman kendisi işe yarayacak.
Hoàng Long

0

Bana inanmayacaksın, ama flash ve (biraz önce java appletlerinde) javascript popülaritesinin artmasına ve dilin gelişimine büyük katkı yaptı.

Flaş ortaya çıktığında, web uygulamalarının düşünmeye değer bir şey olduğunun ilk kanıtıydı.

Bir anlamda, eklentilerle rekabet etme, sürekli gösterme girişimleri - eklentiler olmadan ne yapabileceğimize bak javascript'i daha geniş bir uygulama yelpazesine sahip bir dil haline getirdi ve bu nedenle popüler hale getirdi.


-1

Sanırım insanlar Javascript’in Java ile bir şeyler yapması gerektiğini düşündüler.

(Bugünlerde olduğu gibi her şey bir "i" ile başlar)

Pazarlama / tanıtım stratejisi önemli bir rol oynamaktadır.


-1

Gerçekten C-benzeri sözdizimi ile ilgili olduğunu düşünüyorum . Wikipedia'ya göre Javascript '95'te ortaya çıktı. O sırada C her zaman en yüksek seviyedeydi ve Java bir sonraki ve gelecek dildi. Bence sözdizimi gerçekten çekiciydi (o zaman için) ve bir sonraki büyük dil olan Java ile ismiyle olan ilişkisi ona bir avantaj verdi.

O zaman C programcılarının dinamik bir dile adapte olmalarını kolaylaştırdı.

Programming Language    Dec 2010    Dec 2005    Dec 1995        Dec 1985
Java                    1           1           -               -
C                       2           2           1               1

Tiobe Dizini

Javascript başarısını yeniden yaratmak isteseydim, modern programcıları rahatsız eden sorunlara bakardım ve onlara tanıdık bir sözdizimi ile bir çözüm verirdim.

IMO paralel programlama, programcıların karşılaştığı bir sonraki büyük problemdir. İşlevsel dillerin bu engelin üstesinden gelmede gerçekten harika bir iş çıkardığını düşünüyorum. Bir sonraki Javascript'i yaratacak olsaydım, ortak bir platformla işlevsel bir dil yaratırdım . Ayrıca, scirpting dili olacak kadar esnek, statik olarak yazılmış bir dil olacak kadar güçlü ve harika bir çerçeveye ihtiyaç duyacağını düşünüyorum.

Her ne kadar herkes aynı fikirde olmasa da, bu koşullar altında, F # 'nin gelecekte daha fazla haklı olabileceğini düşünüyorum .


2
@Bay. CRT: Turbo Pascal'ın yaratıcısı Anders Hejlsberg, C # ve .NET çerçevesi üzerinde büyük bir etkiye sahipti. Bu yüzden Netscape Pascal'ı kabul etmiş olsaydı Pascal'a indirim yapmazdım. Bu küfürün etrafında hâlâ tonlarca Delphi geliştiricisi var.
snmcdonald

3
Maalesef yanıt vermeden önce yorumumu sildim - yine de alaycılık anlamına geliyordu ve bu nedenle özellikle yardımcı olmuyordu. Söylemeliyim ki, mevcut programcıların "ayak parmaklarını suya batırmaları" konusunda kesinlikle yardımcı olsalar da, C benzeri bir sözdiziminin bir başarı garantisi olmadığı kesin. Objective-C'yi göz önünde bulundurun: göreceli belirsizlikte on yıldan fazla bir süre sonra, Apple
NeXT'yi

1
@Bay. CRT. Çok ilginç bir yorum. Sözdizimi kesinlikle hepsi değil, bununla birlikte, mevcut programcılar için önemli olduğunu düşünüyorum. Objective-C bana çok fazla C gibi gelmiyor. Belki de bu yüzden başlangıçta başlamadı. Yine de, Java’nın 90’larda olduğu gibi, onu alakalı kılan yeni teknolojinin birliği olabilir. Sözdizimine gelince, yeni nesil programcıların işlevsel ve dinamik dillerle daha rahat hale geldiklerini düşünüyorum.
snmcdonald

@Bay. CRT: Veya Google ile Python, vb ... "Popülerliğin" (yaygın olduğu gibi) genellikle dilin kendisi ile ilgisi olmadığını söyleyebilirim (sonuçta, çok popüler olmayan pek çok harika dil var [örneğin Haskell]. , Erlang] ve popo-çirkin ve son derece popüler olan diğerleri [örn. PHP])
Dean Harding 4

@ Dean Harding: İlginç bir yorum çünkü PHP'yi gerçekten seviyorum. Kütüphane işlev isimlerinin C-Library ile benzerliği olduğunu ve yine de sigil çoğulculuğunu gizlemeden Perl benzeri bir sözdizimi kullandığını takdir ediyorum. Aynı zamanda, OO'nun hem Perl'de hem de PHP'de son dakikada bir düşünce olarak uygulandığını gördüğümde eleştiriyi anlıyorum. PHP hem C hem de Perl'e (belki de daha fazla dil) benzer bir sözdizimine sahiptir, ancak pek çok programcının aşina olduğu ve henüz çok popüler bir alan için tasarlanmıştır. Gerçekten sözdizimi ve popüler teknolojinin bir kombinasyonu olduğunu düşünüyorum.
snmcdonald

-1

JavaScript, AJAX ve Firebug gibi iyi inceleme araçları nedeniyle popüler oldu. Tabii ki tüm ana tarayıcılarda çalıştığı ve DHTML yapmanın tek yoluydu.

Temel olarak, çirkin dili bile başarılı hale getirmek için, başka hiçbir dilin yapamayacağı gerçekten yararlı bir şey yapabilmek zorundadır. Ayrıca programcıların firebug'dan önce javascript için geçerli olmayan hangi dilin yaptığını kontrol ettiklerini hissetmelerini sağlayan araçlar sağlamanız gerekir.


2
JavaScript, AJAX (ve ikincil olduğunu düşündüğüm halde tartışmalı Firebug) ile hayat üzerinde yeni bir kira kazandı, ancak başlangıçta (ve neredeyse onbeş yıl önce) savaştan önce kazanmıştı, çünkü alanında rekabet yoktu.
saat

-4

Javascript, web sayfalarının tasarımcıların görünmesini istedikleri gibi görünmesini sağlamak için HTML işaretlemesindeki eksikliklerin üstesinden gelmek için popüler bir yöntemdir. Javascript olmadan tüm web sayfaları böyle görünür - HTTP 1.1 . Ancak gopher protokolünden bir adım daha yükseldi .


2
Protokol! = Tasarım! = Komut dosyası. Javascript olmadan HTTP 1.0 kullanarak oldukça güzel sayfalar oluşturabilirsiniz.
deceze
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.