Czy JavaScript wykroczył poza to, do czego został pierwotnie zaprojektowany?

10

Rozmawiałem z przyjacielem o celu Javascript, kiedy i jak należy go używać itp. Cytuje:

JavaScript został zaprojektowany w celu dodania interaktywności do stron HTML

[...]

JavaScript daje projektantom HTML narzędzie programistyczne

  • Autorzy HTML zwykle nie są programistami, ale JavaScript jest językiem skryptowym o bardzo prostej składni! Niemal każdy może umieścić małe „fragmenty” kodu na swoich stronach HTML. JavaScript może reagować na zdarzenia
  • JavaScript można ustawić tak, aby uruchamiał się, gdy coś się stanie, na przykład gdy strona się załaduje lub gdy użytkownik kliknie element HTML. JavaScript może odczytywać i zapisywać elementy HTML
  • JavaScript może odczytywać i zmieniać zawartość elementu HTML. JavaScript może być wykorzystywany do sprawdzania poprawności danych
  • Do weryfikacji danych formularza przed przesłaniem go na serwer można użyć JavaScript. Oszczędza to serwer przed dodatkowym przetwarzaniem
  • JavaScript może być wykorzystywany do wykrywania przeglądarki użytkownika - JavaScript może być używany do wykrywania przeglądarki użytkownika i - w zależności od przeglądarki - załadować inną stronę zaprojektowaną specjalnie dla tej przeglądarki.
  • Do tworzenia plików cookie można używać JavaScript - JavaScript służy do przechowywania i pobierania informacji na komputerze użytkownika.

Wygląda jednak na to, że JavaScript przyzwyczaja się do robienia znacznie więcej niż obecnie. Mój przyjaciel również odradza korzystanie z funkcji OOP Javascript, twierdząc, że „nie powinieneś przetwarzać danych, a jedynie sprawdzać poprawność”. Czy JavaScript naprawdę ogranicza się do sprawdzania poprawności danych i tworzenia efektownych grafik na stronie internetowej?

Dalej twierdzi, że „nie powinieneś próbować uzyskiwać dostępu do baz danych za pomocą javascript”, a także mówi „ogólnie, że nie chcesz wykonywać ciężkich operacji w javascript”. Nie mogę powiedzieć, że zgadzam się z jego opinią, ale chciałbym uzyskać więcej informacji na ten temat.

Więc moje pytanie: czy JavaScript ewoluował z powyższej definicji do czegoś mocniejszego, czy zmienił się sposób, w jaki go używamy, czy po prostu się mylę? Chociaż zdaję sobie sprawę, że jest to pytanie subiektywne, nie mogę znaleźć więcej informacji na ten temat, więc kilka linków byłoby dobrze, jeśli nic więcej. Nie szukam debaty, tylko odpowiedź.

Elliot Bonneville
źródło
Zastanawiałem się także, „kto” popycha to do tego i dlaczego?
NoChance
1
Umieściłbym materiał źródłowy na temat tego, co twój przyjaciel zrozumiał na temat JavaScript, około 1998 roku.
Erik Reppen

Odpowiedzi:

21

Ludzie, którzy uważają, że JavaScript nie jest językiem programowania, to osoby, które nie powinny szanować opinii o JavaScript.

JavaScript to język, który rozwinął się organicznie dzięki semantyce schematu i składni Java. Jego pierwotny cel nie był ogólny, ale teraz stał się taki.

JavaScript jako język nadaje się do wykonywania praktycznie każdego zadania, jeśli jest do tego odpowiednie. Spójrz na przykłady, takie jak node.js, w którym JavaScript ma dostęp do środowiska hosta składającego się z funkcji IO, która pozwala go używać do ogólnego programowania po stronie serwera

Mój przyjaciel również odradza korzystanie z funkcji OOP Javascript, twierdząc, że „nie powinieneś przetwarzać danych, a jedynie sprawdzać poprawność”. Czy JavaScript naprawdę ogranicza się do sprawdzania poprawności danych i tworzenia efektownych grafik na stronie internetowej?

Nie, JavaScript jest językiem programowania, jeśli chcesz reprezentować struktury danych, algorytmy i logikę, skorzystaj z narzędzi, które oferuje język. Funkcje i prototypy 1. klasy są potężnymi narzędziami.

Dalej twierdzi, że „nie powinieneś próbować uzyskiwać dostępu do baz danych za pomocą javascript”, a także mówi „ogólnie, że nie chcesz wykonywać ciężkich operacji w javascript”. Nie mogę powiedzieć, że zgadzam się z jego opinią, ale chciałbym uzyskać więcej informacji na ten temat.

Źle, w przeglądarce mamy bazę danych o nazwie indexedDB, do której uzyskujemy dostęp za pomocą JavaScript. Jest to baza danych zapisana bezpośrednio w przeglądarce, a jeśli chcesz jej użyć (i powinieneś), użyj JavaScript.

Zauważ również, że zarówno mongodb, jak i couchdb pozwalają na używanie javascript do bezpośredniego uruchamiania zapytań adhoc w bazie danych.

Jeśli chodzi o podnoszenie ciężarów, jest częściowo poprawny. Jeśli wykonujesz ciężkie podnoszenie, powinieneś to robić w C lub erlang. Chociaż zauważ, że termin „podnoszenie ciężarów” jest niejasny, na przykład nie kodowałbym ani nie dekodował filmów w JavaScript, nie przetwarzałbym obrazów w JavaScript (użyj C). W JavaScripcie nie miałbym żadnych problemów z liczbami (użyj fortran).

JavaScript ewoluował z powyższej definicji do czegoś mocniejszego, zmienił się sposób, w jaki go używamy, lub po prostu się mylę

JavaScript został napisany w ciągu 2 tygodni tylko po to, by zamienić drobne funkcje skryptowe na HTML. Od tego czasu gwałtownie wzrosła. Od ES3 (1999) jest to potężny język programowania ogólnego przeznaczenia.

Raynos
źródło
Tak też myślałem. Teraz muszę tylko wymyślić, jak przekazać to mojemu przyjacielowi.
Elliot Bonneville
@ElliotBonneville Czy mogę zasugerować dużą piankową wskazówkę ?
Hahaha, tak, możesz. :) To przezabawne.
Elliot Bonneville
„potężny język programowania ogólnego przeznaczenia”, które jest pełne pułapek, że pozostanie tam na zawsze z powodu kompatybilności wstecznej: codeproject.com/Articles/182416/...
Den
@Den tak, ma trochę gotchas, ale także C, C ++, PHP i Java.
Raynos,
9

Wizja twojego przyjaciela jest faktycznie bardzo przestarzała i brakuje jej wszystkiego, co wydarzyło się od czasu wydania przez Google Gmaila.

Czy to oznacza, że ​​JavaScript rozwinął się poza to, do czego został pierwotnie zaprojektowany? Raczej. Ale nie zapominaj, że projekt zmienił się w międzyczasie i zmieni się w przyszłości zgodnie z nowymi potrzebami twórców. Dotyczy to również innych popularnych języków. Na przykład, kiedy została wydana pierwsza wersja C #, nikt nie spodziewałby się dopuszczenia kodu dynamicznego w projekcie. Teraz DLR jest dostępny od kilku lat.

Arseni Mourzenko
źródło
2

Język zawsze przewyższa to, co myśleliśmy na początku. Porozmawiaj z kimkolwiek na początku C (lub C ++), czy ktoś myślał, że język można teraz znaleźć prawie wszędzie. Nie wydaje mi się

Każdy język wygrywa, aby dowiedzieć się więcej / posunąć się dalej.

Zgadzam się, że Javascript był / wciąż jest niedocenianym językiem, twój przyjaciel nie jest jedynym. Problem nie polega na tym, że język X lub Y jest zły / bezużyteczny, problemem jest zachowanie tego pomysłu na zawsze. W dziedzinie informatyki / IT wszystko zmienia się szybko i nadal wiele się zmieni w przyszłości.

Dlatego ważne jest, aby uczyć się / myśleć nieszablonowo ...

Nettogrof
źródło
Nie sądzę, aby wiele osób mogło rozsądnie powiedzieć, że JavaScript jest wciąż niedocenianym językiem. Myślę, że to najpopularniejszy język na świecie.
Jim G.