Jestem dość doświadczonym programistą próbującym nauczyć się tworzenia stron internetowych. Usiłuję opracować aplikację internetową po stronie klienta, która do grafiki używa svg lub canvas. Zdecydowałem, że chcę napisać kod aplikacji w Coffeescript. Nie znam ani Javascript, ani Coffeescript.
Jak niezbędna jest znajomość Javascript do tworzenia stron internetowych Coffeescript? Czy prawdopodobnie napotkam jakiś poważny problem, który wymaga ode mnie zrozumienia Javascript? Czy mogę z radością współpracować z interfejsami API JavaScript z Coffeescript?
Edycja : Z łatwością mogłem nauczyć się podstaw Javascript w ciągu tygodnia. Bardziej martwię się, że JavaScript ma wiele ukrytych ostrych krawędzi. W najdziwniejszej funkcji języka StackOverflow JavaScript jest jednym z najczęstszych języków. Ma niezwykły model obiektu i klasy. Ma nieoczywiste zasady określania zakresu nazw. Odkrywanie, że naprawdę znam język, zajmuje mi ponad tydzień.
Będę pracować nad małym, prostym projektem, aby nauczyć się tworzenia stron internetowych. Czy lepiej byłoby użyć Javascript lub Coffeescript? Myślę, że na dłuższą metę wolę Coffeescript, ale jestem gotów zacząć od Javascript, jeśli będę potrzebował dokładnego zrozumienia Javascript, aby używać Coffeescript.
class
słowo kluczowe w CS nie robi nic magicznego; po prostu wykorzystuje natywne prototypowe mechanizmy dziedziczenia JavaScript. Z tego powodu zaleciłbym przynajmniej pomocniczą znajomość niektórych niejasnych „funkcji” JavaScript.Odpowiedzi:
Myślę, że nie byłoby to absolutnie konieczne, ale na dłuższą metę wpadłbyś na przeszkody, jeśli nie.
Musisz zrozumieć, co dzieje się pod maską i co kompilator CoffeeScript transkrybuje, ponieważ właśnie to przeglądarki będą musiały interpretować (zakładając, że mówimy o używaniu CoffeeScript w środowisku przeglądarki). Co oznacza, że jest to również to, czego potrzebujesz do debugowania , szczególnie biorąc pod uwagę, że CoffeeScript jest dość nowy i nadal możemy napotkać pewne szorstkie krawędzie i błędy w mechanizmie transkrypcji. Ponadto, jeśli nie używasz żadnych niestandardowych narzędzi do debugowania, musisz przeskoczyć wygenerowany kod JavaScript, aby debugować za pomocą Firebug lub Chrome Dev Tools lub wybranej konsoli JS. W niektórych przypadkach można zobaczyć, w jaki sposób błąd JS odnosi się bezpośrednio do źródłowej instrukcji CoffeeScript. W innych, ponieważ transkrypcja nie jest trywialna,
Weź to w ten sposób: możesz bardzo dobrze opracowywać oprogramowanie w Javie i C # bez tworzenia jakiegokolwiek niskiego poziomu. Jednak miałbyś bardzo zły czas na zrozumienie, co się dzieje i dlaczego napotykasz wąskie gardła wydajności i problemy z pamięcią, jeśli nie masz pojęcia i nie jesteś w stanie odgadnąć, co środowiska wykonawcze tych języków powinny dla Ciebie zrobić w tle, i jaką część zgadywania mogą spieprzyć, ponieważ po prostu nie potrafią zdjąć cudów.
Dodatkowo, jeśli nauczysz się JavaScript, zdasz sobie sprawę, jak niezwykle trudny może być, niż się wydaje, i docenisz CoffeeScript za zwięzłą i czystą składnię jeszcze bardziej :)
źródło
Ty pytasz:
Mogę powiedzieć, jednoznacznie, tak. Ogólnie rzecz biorąc, jeśli robisz coś interesującego, w pewnym momencie będziesz musiał przynajmniej zrozumieć, co dzieje się na niższych poziomach. (Czasami Google + cut + paste może cię uratować, ale nie chcesz być tym facetem.)
Każdy „rozsądnie doświadczony programista” wybierający nowy język nie powinien zająć ci dużo czasu. JavaScript jest dość prostym językiem. Wszystko, co jest trudne, pochodzi ze środowiska, w którym się wykonuje: mianowicie kilku różnych przeglądarek internetowych z różnymi pomysłami, jak to zrobić.
Wiele informacji na temat tego, jak znaleźć się w sieci, zostanie napisanych z myślą o JavaScript, więc zapewne łatwiej ci będzie, jeśli nauczysz się czytać JavaScript i tłumaczyć go na odpowiednik CoffeeScript.
Szczerze mówiąc, chyba że celowo spróbujesz pozostać ignorantem, prawdopodobnie skończysz na uczeniu się JavaScript jako efekt uboczny pracy w CoffeeScript. Więc po prostu zacznij już.
źródło
Ponieważ „ złotą zasadą CoffeeScript jest:„ To tylko JavaScript ” ,„ polecam przynajmniej podstawową znajomość JavaScript. W szczególności zapoznaj się z małą książką Douglasa Crockforda JavaScript: The Good Parts . Możesz także obejrzeć własną wspaniałą prezentację Crockford na ten temat.
CoffeeScript w zasadzie pakuje dobre części JavaScript w inny pakiet: „ CoffeeScript to prosty eksperyment myślowy, aby wyobrazić sobie język, który ujawnia minimalną składnię dla pięknego modelu obiektowego, który leży u podstaw JavaScript. ” Nie musisz znać wszystkich szczegółów, wystarczy, aby zrozumieć, że JavaScript, sama, to nie język zorientowany obiektowo klasa oparte. W ogóle nie ma zajęć. Zamiast tego używa „ prototypów ”, co powoduje pewne różnice w stosunku do innych języków OO. Jeremy Ashkenas wyczyścił niektóre złe części składni JavaScript, dodał kilka ulepszeń i sprawił, że była nieco bardziej podobna do Pythona .
JavaScript ma pewne znane „gotchas”, na które trzeba uważać. W przeciwnym razie jest to świetny język i jest dziś w powszechnym użyciu. Bez niego nie mielibyśmy AJAX-a ani jQuery.
Powodzenia z CoffeeScript!
źródło
Tak. To nie koniec świata, jeśli nie, ale tak.
Dlaczego? Po pierwsze, JavaScript jest naprawdę łatwy do nauczenia. Dosłownie zajęło mi to 4 dni (cóż, większość). Ponadto uważam, że jest to cenniejsze niż CoffeeScript. Naprawdę nie sądzę, że potrzebujesz CoffeScript. Ale wciąż jest dobrym narzędziem.
źródło
To zależy.
Jeśli CoffeeScript wystarczająco abstraktuje JavaScript, abyś nie musiał go znać (np. C # abstracting Intermediate Language), to tak, możesz robić, co chcesz robić w CoffeeScript bez nauki JavaScript.
Ale moje doświadczenie mówi mi, że bez względu na to, jak bardzo próbuję uciec przed JavaScript, jeśli chodzi o klienta, czasami naprawdę muszę ubrudzić sobie ręce i napisać czysty JavaScript.
Tak, masz rację. podczas gdy składnia JavaScript jest łatwa i można się jej nauczyć w słabym języku, ale opanowanie jej zajmuje lata.
IMHO, jak widzę CoffeeScript, nie jest wystarczająco dojrzały, aby całkowicie zawinąć wszystkie zawiłości JavaScript. Dlatego nie ryzykuję, że nie uczę się ani nie pracuję bezpośrednio z JavaScript.
źródło
Dokumentacja coffeescript definiuje coffescript w kategoriach równoważnego javascript. Jeśli nie rozumiesz javascript, nie zrozumiesz również coffeescript.
źródło