W starożytnej historii Brendan Eich miał projekt języka, a we współczesnym świecie JavaScript jest popularnym językiem implementowanym i używanym w wielu różnych miejscach.
Co spowodowało, że język stał się popularny? Czy składnia podobna do C była znana wcześniejszym programistom? Czy Netscape miał wystarczającą kontrolę nad rynkiem, aby zmusić go do użycia? Czy jest jakiś głębszy powód, dla którego JavaScript jest popularny, a inne języki nie?
W szczególności, jeśli musiałbyś stworzyć język tak popularny jak JavaScript, jakie warunki początkowe byłyby potrzebne, aby odtworzyć jego wzrost popularności?
programming-languages
javascript
history
Mathnerd314
źródło
źródło
Odpowiedzi:
Komentowałem wcześniejszą odpowiedź , ale stawała się coraz większa, więc pomyślałem, że to rozwinę.
Każdy nowy język może odnieść sukces tylko wtedy, gdy będzie wykorzystywał wschodzącą granicę w informatyce.
Poprzednie przykłady:
Aby odpowiedzieć na twoje pytanie, JavaScript był językiem Netscape Navigator, gdy była to dominująca przeglądarka. W szczególności był to język do dynamicznego rozwoju front-endu.
Obok duży język będzie musiał rozwiązać kolejną granicę. Wydaje się, że w przestrzeni do tworzenia witryn zaplecza nadal występuje grabież. Co więcej, przetwarzanie mobilne nie zostało całkowicie rozwiązane, pomimo obecnej dominacji Apple. Pojawiło się także przetwarzanie wielordzeniowe i w chmurze, które wiele języków próbuje wykorzystać (jak języki współbieżne, takie jak Erlang i Go, lub języki funkcjonalne, takie jak Haskell i OCaml).
Przedsiębiorcy wyrażają się następująco: „znajdź kogoś w ogniu i sprzedaj mu wąż strażacki”. Więc jeśli chcesz wprowadzić nowy język, którego ogień gasisz? Każda nowa granica w informatyce wiąże się z wieloma problemami; więc dostarcz trochę aspiryny, a będziesz złoty.
źródło
To całkiem proste: Netscape użył silnika JavaScript w swojej przeglądarce. Jeśli chcesz robić skrypty w Internecie, JavaScript to był . Internet Explorer miał (i nadal ma) zarówno JavaScript, jak i VBScript, ale oczywiście jeśli chcesz pracować w więcej niż tylko IE, nie masz wyboru, jak korzystać z JavaScript.
JavaScript jest świetnym językiem sam w sobie, ale nie byłby dziś tak popularny, gdyby nie fakt, że jest to jedyny język, którego można używać do pisania skryptów HTML.
źródło
Dodam do tego aktualizację, ponieważ myślę, że pojawienie się JS w sieci po stronie klienta zostało źle zrozumiane w kilku kluczowych punktach na przestrzeni lat.
To nie był Ajax
Nie twierdzę, że Ajax nie był ważny dla ewolucji rozumienia JS jako języka, ale walka o dominację przeglądarki po stronie klienta zakończyła się na długo przed stworzeniem terminu Ajax.
Nie dlatego, że była to jedyna gra w mieście
Były aplety Java, Flash i VBScript. Słyszałem, że w latach 90. były jeszcze inne opcje skryptów (ale wymagały wtyczek IIRC). Java jest bardzo popularna, ale aplety były fatalną awarią. Były brzydkie i często ser szwajcarski, ale co ważniejsze, nie sądzę, aby Java była odpowiednia z powodów, które omówię później. Flash był bardzo popularny i miał silną pozycję przez wiele lat, ale nawet gdy Flash w końcu miał opcje SEO, nie były one zwykle używane, co bardzo utrudnia wykrycie wyłącznie stron Flash. Nawet teraz większość z nas regularnie aktualizuje Flash, abyśmy mogli oglądać filmy, ale to prawdziwa pięta achillesowa. Zastrzeżona technologia w przeglądarkach. I oczywiście VB, który kiedykolwiek działałby tylko z IE, więc nie.
Właściwe miejsce we właściwym czasie jest istotne, ale nie cała odpowiedź
Tak, bez fali internetowej nigdy nie zobaczylibyśmy JavaScript ani popularnego języka takiego jak on. A może mielibyśmy ...
Skończyło się to idealnym narzędziem dla domeny problemowej
Powiedziałbym, że około 2000 roku mieliśmy następujące problemy:
Potrzebowaliśmy więc języka, który byłby zarówno głęboki, oferując możliwość faktycznej strukturyzacji i tworzenia bardziej zaawansowanej aplikacji z przenośnymi / wielokrotnego użytku komponentami po stronie klienta, ale także dostępną dla osób, które niewiele wiedziały i tylko potrzebowały rzeczy pojawiać się / pojawiać ponownie po kliknięciu przycisku.
Co więcej, stwardnienie rozsiane, będące bestią nieudolną / niekompetentną i / lub dominującą poprzez antykonkurencyjną praktykę, którą czasami są, nie udało się naprawdę dotknąć ich niezgodnej implementacji DOM API przez dobrą dekadę, chociaż udało im się dodaj sporadyczne rzeczy, takie jak oryginalny obiekt XHR i querySelectors w IE8.
Ważną rzeczą do zapamiętania jest to, że do około 2005 roku udało nam się tak całkowicie zakopać złożoność związaną z obsługą problemów w różnych przeglądarkach, że nie był to tak naprawdę poważny problem z przodu JavaScript. Brak właściwego wsparcia CSS2 tak długo, jak długo powodował znacznie większy ból. Aby zapoznać się z samą ilością i głębią problemów, polecam sprawdzenie quirksmode.org . Nie sądzę, że jest to wyczyn, który mógłby zostać osiągnięty tak płynnie iw tylu bibliotekach w Javie, z pewnością nie w VB i zdecydowanie nie przy żadnej strategii wtyczek, której celem jest ominięcie całego problemu, stając się całkowicie nowym rodzaj uciążliwości.
Inne funkcje językowe, które mają duży sens dla interfejsu użytkownika:
Funkcje pierwszej klasy: Z mojego doświadczenia wynika, że nic nie nadaje się lepiej do asynchronizacji przetwarzania i paradygmatów sterowanych zdarzeniami niż język, który czyni swoje funkcje pierwszorzędnymi. Oba problemy są regularnie rozwiązywane w pracy nad interfejsem użytkownika.
Typy dynamiczne: Rzutowanie i sprawdzanie typów to bardzo rzadka potrzeba w JavaScript, która pomogła zachować zwięzłość i oszczędność kodu. Obawy związane z interfejsem użytkownika mogą bardzo szybko się skomplikować i zrobić bałagan. Utrzymywanie kodu w ścisłej tajemnicy i absolutna jasność co do przepływu danych ma kluczowe znaczenie dla zrozumienia i modyfikacji / utrzymania go.
To nie jest protekcjonistyczny: od wielu lat ktoś głosi, że musisz chronić się przed własnymi błędami i głupimi rzeczami, które inny facet mógłby zrobić z twoim kodem, czyniąc konstrukcje kodu bardzo sztywnymi i nieelastycznymi i niemożliwymi do wtrącenia się w pierwotny cel. autorstwa i wiele osób słuchało. Nie powiem, że zawsze się mylą (może tak sądzić), ale powiem, że to niewłaściwe podejście do interfejsu internetowego i uważam, że jest to zjawisko, które rozwiązywaliśmy, utrzymywaliśmy i modyfikowaliśmy boczne GUI w znacznie szybszym tempie iz większą łatwością niż zwykle taka praca była zwykle wykonywana w bardziej restrykcyjnych językach w przeszłości. Możliwość szybkiej i łatwej zmiany rzeczy w locie znacznie ułatwia tworzenie schematów architektury dynamicznej / płynnej, które nie wymagają monumentalnych ilości pośrednich i abstrakcyjnych kosztów ogólnych, co ostatecznie ułatwia zobaczenie, co się dzieje w Twoim kodzie i wyprzedzaj wyjątki lub zajmuj się nimi znacznie czystiej. Łatwiej jest utrzymać go po prostu dzięki czystej cnocie umożliwiającej bycie bardziej bezpośrednim we wszystkim, co robisz i przy znacznie mniejszym kodzie, niż byłoby to możliwe przy innej filozofii.
W jaki sposób JS stał się popularny? Okazało się, że jest doskonałym narzędziem do pracy raz za razem. To nie jest język, w którym „utknęliśmy”. To język, który mógł zainspirować wiele zmian w popularnych językach. I za to możesz podziękować Brendanowi Eichowi i wszystkim współczesnym, którzy pomogli mu włożyć ten pomysł do głowy, za to, że podoba mu się Scheme jako inspiracja projektowa bardziej odpowiednia dla danego problemu niż Jawa.
źródło
Jedną taktyką stosowaną początkowo była nazwa - „JavaScript” miał na celu zwiększenie popularności Javy, która następnie zyskiwała na popularności.
źródło
Czy nie jest to jedyny język skryptowy dla różnych przeglądarek? Wydaje się, że jego popularność wzrosła stopniowo, podobnie jak Internet, co ma sens.
źródło
Właściwy czas, właściwe miejsce. I to nie do końca było do bani.
Z tego samego powodu wygrywa Facebook.
źródło
Moim zdaniem JavaScript jest popularny, ponieważ jest dobrze obsługiwany.
Po pierwsze, jest to jedyny język dla Netscape i IE w swoim czasie. Po tym, jak „społeczność javascript” zostanie ustanowiona i ustabilizuje się, nikt nigdy nie pomyśli o „innym dobru”, które wymaga budowania od podstaw. Po prostu przyczyniają się do tego, aby było coraz lepiej.
Jeśli chcesz zbudować nowy popularny język, pierwszą rzeczą, o której myślę, jest to, że musisz określić, kto używa tego języka . Pierwszych klientów zawsze trudno jest zdobyć i musisz uczynić swój język lepszym od javascript w taki czy inny sposób. Być może nawet w ograniczonej dziedzinie / ograniczonej społeczności programistów, na przykład, „lepszy / szybszy silnik javascript dla iPhone mobile” może być dobrym wyborem.
Co więcej, twój język powinien być łatwy w użyciu i dostosowywany przez społeczność, ponieważ to społeczność określa, który język może przetrwać.
źródło
Nie uwierzysz mi, ale flash i (w nieco wcześniejszych apletach Java) wniósł ogromny wkład we wzrost popularności javascript i ewolucję samego języka.
Gdy na scenie pojawił się flash, był to pierwszy dowód na to, że warto zastanowić się nad aplikacjami internetowymi.
W pewnym sensie rywalizacja z wtyczkami, ciągłe próby pokazania - zobacz, co możemy zrobić bez wtyczek sprawiły, że javascript jest językiem o szerszym spektrum aplikacji, a zatem stał się popularny.
źródło
Myślę, że ludzie myśleli, że JavaScript musi coś zrobić z Javą.
(Jak obecnie wszystko zaczyna się od „i”)
Istotną rolę odgrywa strategia marketingowa / promocyjna.
źródło
Naprawdę myślę, że ma do czynienia z jego C-like składni . Według Wikipedii Javascript pojawił się w '95. W tym czasie poziom C był najwyższy, a Java była kolejnym językiem. Myślę, że składnia była bardzo atrakcyjna (jak na tamten czas), a jej nazwa powiązana z następnym dużym językiem, Javą , dała jej przewagę.
W tym czasie programiści języka C mogli łatwo dostosować się do dynamicznego języka.
Indeks Tiobe
Gdybym miał odtworzyć sukces Javascript , spojrzałbym na problemy dręczące współczesnych programistów i dałbym im rozwiązanie o znanej składni.
Programowanie równoległe IMO to kolejny duży problem, przed którym stoją programiści. Myślę, że języki funkcjonalne naprawdę świetnie sobie radzą w pokonywaniu tej przeszkody. Gdybym miał stworzyć następny Javascript , stworzyłbym język funkcjonalny ze wspólną platformą . Ponadto uważam, że musiałby być wystarczająco elastyczny, aby był językiem scirpting, ale wystarczająco silny, aby był językiem o statycznym typie tekstu i świetnych ramach.
Chociaż nie wszyscy mogą się zgodzić, w tych warunkach myślę, że F # może mieć wiele zalet w przyszłości.
źródło
JavaScript stał się popularny dzięki AJAX i dobrym narzędziom inspekcyjnym, takim jak Firebug. Oczywiście pomógł fakt, że działał na wszystkich głównych przeglądarkach i był jedynym sposobem na użycie DHTML.
Zasadniczo, aby nawet najbrzydszy język odniósł sukces, musi być w stanie robić naprawdę przydatne rzeczy, których żaden inny język nie może. Musisz także zapewnić narzędzia, które pozwolą programistom naprawdę czuć, że kontrolują to, co robi język, co nie miało miejsca w przypadku javascript przed firebugiem.
źródło
JavaScript jest popularnym narzędziem służącym do przezwyciężenia niedociągnięć znaczników HTML, które sprawiają, że strony wyglądają tak, jak chcą projektanci. Bez Javascript wszystkie strony wyglądałyby tak - HTTP 1.1 . Zaledwie krok w górę od protokołu Gopher .
źródło