Bagaimana JavaScript menjadi populer?

27

Dalam sejarah kuno, Brendan Eich memiliki desain bahasa, dan di dunia sekarang ini, JavaScript adalah bahasa populer yang diimplementasikan dan digunakan di banyak tempat berbeda.

Apa yang menyebabkan bahasa menjadi populer? Apakah itu sintaks mirip C yang akrab dengan programmer sebelumnya? Apakah Netscape memiliki cukup kendali atas pasar untuk memaksanya digunakan? Atau adakah alasan yang lebih dalam bahwa JavaScript populer dan bahasa lain tidak?

Khususnya, jika Anda harus membuat bahasa sepopuler JavaScript, kondisi awal apa yang Anda perlukan untuk menciptakan kembali popularitasnya?

Mathnerd314
sumber
2
JavaScript hampir mati (+ - 2005) hingga Google membangkitkannya dengan Google maps.
Todd Moses
1
@ToddMoses Saya pergi untuk berdebat, tetapi beberapa penelitian menunjukkan Anda benar: AJAX membuat Javascript mainstream lagi, terinspirasi oleh Gmail (2004) dan google maps (2005). Namun (dan ini juga berkaitan dengan pertanyaan di atas) javascript tidak pernah benar-benar hilang: Actionscript (digunakan dalam Flash) muncul dari sekitar 2000 dan pada dasarnya bahasa yang sama. Selama Tahun-tahun Perang Peramban, Flash / Actionscript digunakan untuk hal-hal yang sama dengan Javascript / AJAX sebagai teknologi canggih untuk saat ini. Saya mengambil keterampilan Javascript saya ke Actionscript pada tahun 2000, dan membawanya kembali ke Javascript pada tahun 2008 :-)
Darren Cook
2
Ajax penting tetapi terlalu dipuji, IMO. Semi-kepatuhan browser yang luas dengan DOM API dan CSS2 adalah apa yang membantu menjadikan JS alat yang tangguh di sisi klien. Itu mulai lebih sekitar IIRC 2002an. Setelah kami memiliki alat yang tepat untuk mucking dengan HTML, implementasi cepat fitur UI yang kompleks adalah ballgame yang sama sekali baru. Mungkin belum sampai sekitar 2005 bahwa semua orang mulai benar-benar memperhatikan. Saya juga mengatakan bahwa tidak sampai sekitar tahun 2005an bahwa massa kritis mulai memahami bahwa JS sebenarnya adalah bahasa umum yang cukup buruk dalam dirinya sendiri.
Erik Reppen

Jawaban:

31

Saya mengomentari jawaban sebelumnya , tetapi itu semakin besar, jadi saya pikir saya akan menyelesaikannya.

Bahasa baru apa pun hanya dapat berhasil jika memanfaatkan batas yang muncul dalam komputasi.

Contoh sebelumnya:

  • C untuk Unix
  • Objective-C untuk iOS
  • Perl dan PHP untuk back-end Web 1.0
  • Python dan Ruby untuk Web 2.0 back-end
  • Java untuk perusahaan yang mendukung Internet back-end

Untuk menjawab pertanyaan Anda, JavaScript adalah bahasa untuk Netscape Navigator kembali ketika itu adalah browser yang dominan. Secara khusus, itu adalah bahasa untuk pengembangan front-end yang dinamis.

The bahasa besar berikutnya akan harus memecahkan perbatasan lain. Tampaknya masih ada perampasan tanah di ruang pengembangan web back-end. Ditambah lagi, komputasi mobile tidak sepenuhnya terpecahkan, terlepas dari dominasi Apple sekarang. Juga, ada kemunculan multi-core dan komputasi awan, yang merupakan sesuatu yang banyak bahasa mencoba untuk memanfaatkan (seperti bahasa bersamaan seperti Erlang dan Go, atau bahasa fungsional seperti Haskell dan OCaml).

Pengusaha memiliki ekspresi di sepanjang baris, "menemukan seseorang terbakar dan menjualnya selang kebakaran". Jadi, jika Anda ingin memperkenalkan bahasa baru, api siapakah yang Anda keluarkan? Setiap perbatasan baru dalam komputasi membawa banyak sakit kepala; jadi sediakan aspirin dan Anda akan menjadi emas.

chrisaycock
sumber
4
Saya hampir setuju tetapi saya tidak tahu bagaimana platform .NET menjadi begitu populer?
Tomasz Nurkiewicz
5
@Tomasz Microsoft mendorong .NET sebagai platform baru untuk Windows (yang masih memiliki sebagian besar pemasangan desktop) dan melangkah lebih jauh dengan menghentikan VB 6.
chrisaycock
1
Baik Perl maupun Python benar-benar berutang popularitas awal mereka ke web; mereka dimaksudkan sebagai bahasa untuk membangun alat dengan cepat untuk sys-admin atau layanan sistem operasi (masing-masing) dan mereka sangat sukses dalam domain-domain tersebut sebelum mereka mendapatkan daya tarik lebih besar dengan pengembangan web.
SingleNegationElimination
1
@TokenMacGuy: Domain tersebut (termasuk CAD / CAE) relatif kecil hingga Web 1.0 lepas landas. Saat itulah rak-rak di toko buku mulai dipenuhi dengan buku-buku tentang bahasa-bahasa ini.
hotpaw2
2
@ hotpaw2: Perl sangat populer untuk scripting di UNIX beberapa tahun sebelum akses internet di rumah sama sekali umum.
kevin cline
38

Ini cukup sederhana: Netscape menggunakan mesin JavaScript di browser mereka. Jika Anda ingin melakukan scripting di web, JavaScript adalah itu . Internet Explorer telah (dan masih) memiliki JavaScript dan VBScript, tetapi jelas jika Anda ingin bekerja di lebih dari sekedar IE, Anda tidak punya pilihan selain menggunakan JavaScript.

JavaScript adalah bahasa yang hebat dengan caranya sendiri, tetapi tidak akan sama populernya hari ini jika bukan karena fakta bahwa itu adalah satu-satunya bahasa yang dapat Anda gunakan untuk skrip HTML.

Dean Harding
sumber
3
Jadi, dengan membonceng perangkat lunak (populer) yang ada yang membutuhkan bahasa tingkat lebih tinggi?
Mathnerd314
7
@ Mathnerd314: Tidak seperti itu. JavaScript (terima kasih, Tn. CRT: p) tidak pernah terpisah dari peramban: itu dikembangkan oleh Netscape khusus untuk digunakan di peramban mereka, jadi tidak seperti ada keputusan yang disengaja untuk "membonceng" popularitas Netscape untuk membuat bahasa populer.
Dean Harding
2
@ Mathnerd314 Ini tidak terlalu membonceng karena itu adalah satu-satunya bahasa nyata untuk batas baru komputasi , seperti halnya C untuk Unix. Siapa pun yang menginginkan front-end dinamis diharuskan menggunakan JavaScript.
chrisaycock
4
Untuk menciptakan kembali kesuksesan, saya perlu menemukan batas komputasi yang sama sekali baru , dan menjadikan bahasa baru itu wajib.
Begitu ya
2
@ Mathnerd314 Perbatasan yang muncul saat ini termasuk komputasi multicore dan cloud. Memang, ini adalah sesuatu yang bisa dimanfaatkan oleh bahasa seperti Erlang. (Contoh lain adalah bangkitnya Objective-C karena kemunculan smartphone, karena Apple adalah pemain besar di ruang itu.)
chrisaycock
7

Saya akan menambahkan pembaruan untuk ini karena saya pikir kemunculan JS di web sisi klien telah disalahpahami pada beberapa poin kunci selama bertahun-tahun.

Itu bukan Ajax

Saya tidak mengatakan bahwa Ajax tidak penting untuk evolusi pemahaman JS sebagai bahasa, tetapi perjuangan untuk dominasi browser sisi klien telah berakhir jauh sebelum istilah Ajax diciptakan.

Itu bukan karena itu satu-satunya permainan di kota

Ada Java Applet, Flash, dan VBScript. Saya pernah mendengar ada opsi skrip lain di tahun 90-an (tetapi diperlukan plug-in IIRC). Java sangat populer namun applet adalah kegagalan yang menyedihkan. Mereka jelek dan sering keju keamanan-swiss, tetapi yang lebih penting saya tidak berpikir Jawa cocok untuk alasan saya akan masuk nanti. Flash sangat populer dan memiliki pijakan yang kuat selama beberapa tahun tetapi bahkan ketika Flash akhirnya memiliki opsi SEO, mereka biasanya tidak digunakan, membuat situs Flash eksklusif sangat sulit ditemukan. Bahkan sekarang, kebanyakan dari kita secara teratur memperbarui Flash sehingga kita dapat melihat film, tetapi itulah kelemahan Achilles yang sebenarnya. Teknologi eksklusif di browser sangat mengganggu. Dan tentu saja VB, yang hanya akan bekerja dengan IE, jadi tidak.

Tempat yang Tepat di Waktu yang Tepat adalah Relevan Tapi Bukan Jawaban Utuh

Ya, tanpa web wave untuk naik, kami mungkin tidak pernah melihat JavaScript atau bahasa yang digunakan seperti itu segera setelah kami melakukannya. Atau mungkin kita akan ...

Itu Akhirnya Menjadi Alat Sempurna untuk Domain Masalah

Saya akan mengatakan sekitar tahun 2000an kami memiliki masalah berikut:

  • IE dan Netscape baru saja setuju untuk mulai bermain bagus dengan menghadiri DOM API dan standar CSS yang sama dan kami harus berurusan dengan masalah besar lintas-browser JS sejak dulu yang baru saja mulai dikelola tanpa bantuan alat normalisasi JS DOM seperti jQuery post IE8
  • Ada generasi baru pengembang / perancang web yang tidak semuanya harus kelas berat sebagai programmer yang ingin meningkatkan permainan mereka pasca-.com-gelembung-meledak ketika mereka berhenti memberi Anda gaji yang layak untuk muncul di pintu dengan tidak lebih dari HTML-literasi dasar dan beberapa keterampilan photoshop.
  • Ada anak CSS baru di kota ini yang menawarkan kemungkinan menarik untuk apa yang akhirnya akan disebut DHTML, (lebih tepat) Scripting DOM, (sekarang tidak tepat) HTML5 (zomghtml5!).

Jadi kami membutuhkan bahasa yang mendalam, menawarkan kemampuan untuk benar-benar menyusun dan merancang aplikasi yang lebih canggih dengan komponen portabel / dapat digunakan kembali di sisi klien tetapi juga dapat diakses oleh orang-orang yang tidak tahu banyak dan hanya membutuhkan hal-hal untuk muncul / muncul kembali ketika Anda mengklik tombol.

Lebih jauh lagi, MS menjadi binatang yang tidak kompeten / tidak kompeten dan / atau dominasi-melalui-anti-persaingan-praktik seperti yang kadang-kadang terjadi, gagal untuk benar-benar menyentuh implementasi DOM API yang tidak patuh untuk dekade yang baik, meskipun mereka berhasil tambahkan sesekali hal seperti objek XHR asli dan querySelectors di IE8.

Hal penting yang perlu diperhatikan adalah bahwa sekitar tahun 2005 kami telah berhasil mengubur kompleksitas yang terlibat dalam menangani masalah lintas-peramban secara menyeluruh sehingga sebenarnya bukan masalah serius lagi di bagian JavaScript. Kegagalan untuk mendukung CSS2 dengan benar selama mereka menyebabkan rasa sakit yang jauh lebih besar. Untuk gagasan tentang volume dan kedalaman masalah, saya sarankan memeriksa quirksmode.org . Saya tidak berpikir bahwa ini adalah prestasi yang bisa dicapai dengan lancar dan di banyak perpustakaan di Jawa, tentu saja tidak di VB dan jelas tidak dengan strategi plug-in yang tujuannya adalah untuk menghindari seluruh masalah dengan menjadi sama sekali baru jenis gangguan.

Fitur Bahasa Lainnya yang Masuk Akal untuk UI:

  • Fungsi Kelas Pertama: Dalam pengalaman saya, tidak ada yang lebih cocok untuk pemrosesan async dan paradigma yang digerakkan oleh peristiwa daripada bahasa yang menjadikan fungsinya kelas satu. Kedua masalah tersebut secara teratur dibahas dalam pekerjaan UI.

  • Jenis Dinamis: Pengecoran dan pengecekan tipe adalah kebutuhan yang sangat langka dalam JavaScript yang membantu menjaga kode tetap ringkas dan ramping. Masalah UI bisa menjadi kompleks dan berantakan dengan sangat cepat. Mempertahankan kode ketat dan menjadi sangat jelas tentang aliran data sangat penting untuk memahami dan memodifikasi / mempertahankannya.

  • Ini Bukan Proteksionis: Selama bertahun-tahun seseorang berkhotbah bahwa Anda perlu melindungi diri dari kesalahan Anda sendiri dan hal-hal bodoh yang mungkin dilakukan orang lain dengan kode Anda dengan membuat konstruksi kode yang sangat kaku dan tidak fleksibel serta tidak mungkin ikut campur dengan maksud aslinya. ditulis dengan dan banyak orang telah mendengarkan. Saya tidak akan mengatakan mereka selalu salah (mungkin berpikir itu) tetapi saya akan mengatakan itu adalah pendekatan yang salah untuk web UI dan saya percaya bahwa itu adalah sesuatu dari fenomena yang telah kami rancang, pertahankan, dan modifikasi klien- GUI sisi pada kecepatan yang lebih cepat dan dengan lebih mudah daripada pekerjaan seperti itu biasanya dicapai dalam bahasa yang lebih ketat di masa lalu. Mampu mengubah hal-hal dengan cepat dan mudah membuatnya lebih mudah untuk memiliki skema arsitektur dinamis / cair yang tidak memerlukan sejumlah besar tipuan dan abstraksi overhead yang pada akhirnya membuatnya lebih mudah untuk melihat apa yang sedang terjadi dalam kode Anda dan mencegah atau menangani pengecualian jauh lebih bersih. Lebih mudah untuk mempertahankan hanya melalui kebajikan semata sehingga memungkinkan untuk lebih langsung dalam segala hal yang Anda lakukan dan dengan kode yang jauh lebih sedikit daripada yang diperlukan mengingat filosofi lain.

Bagaimana JS menjadi populer? Itu telah membuktikan dirinya sebagai alat yang sangat baik untuk waktu kerja dan waktu lagi. Ini bukan bahasa yang kita "terjebak dengan" Ini adalah bahasa yang mungkin telah mengilhami banyak evolusi dalam bahasa populer secara umum. Dan untuk itu, Anda dapat berterima kasih kepada Brendan Eich dan orang-orang sezamannya yang telah membantu memasukkan gagasan itu ke dalam kepalanya, karena menyukai Skema sebagai inspirasi desain yang cocok untuk masalah yang ada lebih daripada dia menyukai Jawa.

Erik Reppen
sumber
2

Salah satu taktik yang digunakan pada awalnya adalah nama - "JavaScript" dimaksudkan untuk menaiki popularitas Jawa, yang kemudian meningkat beberapa saat.

Grant Palin
sumber
1

Bukankah ini satu-satunya bahasa skrip lintas-sisi klien browser? Popularitasnya tampaknya tumbuh sejalan dengan popularitas web, yang masuk akal.

Ben Hughes
sumber
1

Waktu yang tepat, tempat yang tepat. Dan itu tidak sepenuhnya payah.

Itulah alasan yang sama mengapa facebook menang.

Yevgeniy Brikman
sumber
0

Menurut pendapat saya, Javascript populer karena didukung dengan baik.

Pertama, ini adalah satu-satunya bahasa untuk Netscape dan IE pada masanya. Setelah "komunitas javascript" terbentuk dan menjadi stabil, tidak ada yang bisa memikirkan "barang lain" yang perlu dibuat dari awal. Mereka hanya berkontribusi untuk membuatnya lebih baik dan lebih baik.

Jika Anda ingin membangun bahasa populer baru, hal pertama yang saya pikirkan adalah Anda harus menentukan siapa yang menggunakan bahasa itu . Pelanggan pertama selalu sulit didapat, dan Anda harus membuat bahasa Anda lebih unggul daripada javascript. Mungkin bahkan dalam bidang terbatas / komunitas programmer yang terbatas, misalnya, "mesin javascript yang lebih baik / lebih cepat untuk ponsel iPhone" mungkin merupakan pilihan yang baik.

Selain itu, bahasa Anda harus mudah digunakan dan dikustomisasi oleh komunitas, karena komunitaslah yang menentukan bahasa mana yang bisa bertahan.

Hoàng Long
sumber
Yang penting adalah bagaimana membuatnya populer "cukup". Maka itu akan bekerja dengan sendirinya.
Hoàng Long
0

Anda tidak akan mempercayai saya, tetapi flash dan (dalam sedikit applet java sebelumnya) membuat kontribusi besar dalam pertumbuhan popularitas javascript dan evolusi bahasa itu sendiri.

Ketika flash muncul, itu adalah bukti pertama bahwa aplikasi web adalah sesuatu yang layak untuk dipikirkan.

Dalam beberapa hal persaingan dengan plugin, upaya terus-menerus untuk menunjukkan - lihat apa yang bisa kita lakukan tanpa plugin menjadikan javascript bahasa dengan spektrum aplikasi yang lebih luas, dan karenanya membuatnya populer.

shabunc
sumber
-1

Saya pikir orang berpikir Javascript harus melakukan sesuatu dengan Java.

(Seperti saat ini semuanya dimulai dengan "i")

Strategi pemasaran / publisitas memang memainkan peran penting.

Simon
sumber
-1

Saya benar-benar berpikir itu ada hubungannya dengan sintaks seperti C-nya . Menurut Wikipedia Javascript muncul di '95. Pada saat itu C berada pada posisi tertinggi dan Jawa adalah bahasa berikutnya dan yang akan datang. Saya pikir sintaksinya sangat menarik (untuk saat itu) dan namanya dikaitkan dengan bahasa besar berikutnya, Java , memberikan keunggulan.

Itu memungkinkan lintas yang mudah pada saat itu untuk programmer C untuk beradaptasi dengan bahasa yang dinamis.

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

Indeks Tiobe

Jika saya ingin menciptakan kembali keberhasilan Javascript saya akan melihat masalah yang mengganggu programmer modern dan memberi mereka solusi dengan sintaks yang sudah dikenal.

Pemrograman paralel IMO adalah masalah besar berikutnya yang dihadapi programmer. Saya pikir bahasa fungsional benar-benar bekerja dengan baik dalam mengatasi hambatan itu. Jika saya ingin membuat Javascript berikutnya saya akan membuat bahasa fungsional dengan platform umum . Selain itu saya pikir itu harus cukup fleksibel untuk menjadi bahasa skirpting tetapi cukup kuat untuk menjadi bahasa yang diketik secara statis, dengan kerangka kerja yang bagus.

Meskipun tidak semua orang setuju, dalam kondisi itu, saya pikir F # mungkin memiliki banyak manfaat di masa depan.

snmcdonald
sumber
2
@Bapak. CRT: Anders Hejlsberg, pencipta Turbo Pascal, memiliki pengaruh besar pada C # dan kerangka NET. Jadi saya tidak akan mengabaikan Pascal jika Netscape mengadopsi Pascal. Masih ada banyak pengembang Delphi di sekitar yang bersumpah dengan itu.
snmcdonald
3
Maaf, hapus komentar saya sebelum Anda merespons - itu dimaksudkan sebagai sarkasme, dan karena itu tidak terlalu membantu. Saya harus mengatakan itu, walaupun tentu saja membantu dalam membuat programmer yang ada untuk "mencelupkan jari kaki mereka ke dalam air", sintaksis seperti C hampir tidak menjamin kesuksesan. Pertimbangkan Objective-C: lebih dari satu dekade dalam ketidakjelasan relatif, maka Apple membeli NeXT dan menjadikannya fondasi mereka untuk semua jenis gadget kecil yang menyenangkan ...
Shog9
1
@Bapak. CRT. Komentar yang sangat menarik Sintaks jelas bukan yang terbaik, meskipun, saya pikir ini penting untuk programmer yang ada. Objective-C tidak terasa seperti C bagi saya. Mungkin itu sebabnya ia tidak lepas landas pada awalnya. Namun, itu mungkin hubungan dengan teknologi yang akan datang dan akan datang yang membuatnya relevan, seperti Jawa di tahun 90-an. Adapun sintaksis, saya pikir generasi programmer berikutnya menjadi lebih nyaman dengan bahasa fungsional dan dinamis.
snmcdonald
@Bapak. CRT: Atau Python dengan Google, dll ... Saya akan mengatakan bahwa "popularitas" (seperti dalam, luas) umumnya tidak ada hubungannya dengan bahasa itu sendiri (lagi pula, ada banyak bahasa fantastis yang tidak terlalu populer [misalnya Haskell , Erlang] dan lainnya yang sangat buruk dan sangat populer [mis. PHP])
Dean Harding
@Dean Harding: Komentar yang menarik karena saya sangat menikmati PHP. Saya menghargai bahwa nama fungsi perpustakaan memiliki kesamaan dengan C-Library dan belum mengadopsi sintaks seperti-Perl, tanpa mengaburkannya dengan sigil pluralitas. Pada saat yang sama saya memahami kritik karena saya melihat implementasi OO di kedua Perl dan PHP sebagai pemikiran menit terakhir. PHP memiliki sintaksis yang mirip dengan C dan Perl (mungkin lebih banyak bahasa) yang akrab bagi banyak pemrogram namun dirancang untuk domain yang sangat populer. Saya benar-benar berpikir itu adalah kombinasi dari sintaksis dan teknologi populer.
snmcdonald
-1

JavaScript menjadi populer karena AJAX dan alat inspeksi yang bagus seperti Firebug. Tentu saja fakta bahwa itu bekerja pada semua browser utama dan hanya cara untuk membantu DHTML.

Pada dasarnya untuk membuat bahasa yang paling jelek berhasil, itu harus mampu melakukan hal yang sangat berguna yang tidak bisa dilakukan oleh bahasa lain. Anda juga perlu menyediakan alat yang memungkinkan pemrogram untuk benar-benar merasa bahwa mereka mengkontol bahasa apa yang tidak berlaku untuk javascript sebelum firebug.

Kamil Szot
sumber
2
JavaScript memperoleh sewa baru untuk hidup dengan AJAX (dan bisa dibilang Firebug, meskipun saya pikir itu nomor dua), tetapi ia telah memenangkan perang sebelum dimulai (dan hampir lima belas tahun yang lalu) karena tidak ada persaingan dalam ruangnya.
Wyatt
-4

Javascript populer sebagai peretasan untuk mengatasi kekurangan markup HTML untuk membuat halaman web tampak seperti desainer menginginkannya muncul. Tanpa Javascript, semua halaman web akan terlihat seperti ini - HTTP 1.1 . Hampir tidak ada langkah dari protokol gopher .

Ja72
sumber
2
Protokol! = Desain! = Skrip. Anda dapat membuat halaman yang cukup indah tanpa Javascript menggunakan HTTP 1.0.
menipu