Temat: CoffeeScript: Dobre praktyki pisania kodu
Patryk O.:
Jak dla mnie konkrety to:
- Bardziej przejrzysty kod (programuję również w Pythonie)
No właśnie inna składnia to pierwsza rzecz która wlatuje przy owej dyskusji. Zgadzam się że jest inna ale nie nazwał bym ją przejrzystą biorąc pod uwagę że z językami jak C, C++, Java, PHP itp mam do czynienia od lat (jak zresztą większość programistów) - JS czytam dość naturalnie.
Zresztą będąc szczerym - JS czyta mi się znacznie lepiej bo to wygląda mi na ludzką mowę:
if (opposite) {
number = -42;
}
A to:
number = -42 if opposite
Odbieram mniej i więcej tak:
A to tylko jeden przykład z wielu. Zastanawiam się co kierowało twórcami CS. Nie lepiej było usiąść i zrobić kolejny język programowania ?
- Krótszy kod (ok. 30%)
I pewnie było by to zaletą gdyby nie to że czas zachowany na pisaniu CS radośnie tracimy na karkołomnych próbach jego debugowania. Popraw mnie ale jak ostatnio zajmowałem się CS to nie było żadnego debuggera który by tłumaczył błędy w wygenerowanym kodzie JS do CS który go utworzył. Nie daj żeby sam CS miał w sobie bug to już kaplica.
Przynajmniej do JS mam debugger. Zarówno z phpStorm jak i przeglądarkowy który stara się przekładać mi błędy 1:1. Pisałem o tym w poprzednim temacie. Nikt nie raczył zaprzeczyć.
Nie ma to jak debugować kod bawiąc się w tym celu we wsteczną inżynierię.
- "Nadpisanie" dziedziczenia prototypowego i dodanie sugar syntaxu w postaci klas spotykanych w innych językach (Java, C#)
Znaczy się przebieramy wojownika w sukienkę i udajemy że to księżniczka ? To jest to o czym mówiłem wcześniej - próba zrobienia z JS czegoś czym nie jest.
- Łatwiejsze pisanie dla mniej doświadczonych programistów JS
Tu się nie zgodzę. Ucząc się pisać w JS masz:
- znajomą składnię bo pewnie już kojarzysz Javę czy C++. Nawet na studiach tego uczą.
- kod który masz to ten który wykonujesz
- błędy przekładają się 1:1
- brak kodu od Yody
- niemal wszystkie konstrukcje w języku są znajome
Jak Ci ktoś wciśnie w gardło CS to:
- masz nową, prawdopodobnie nieznajomą składnię
- twoje narzędzie generuje kod więc to na co patrzysz to nie jest to co się wykonuje
- zgubisz się próbując to debugować a wszelkie próby wyjaśnienia jak to robić przyprawią Cie o ból głowy
- będzie Ci się dziwnie czytało niektóre konstrukcje jeżeli nie jesteś fanem Star Wars
- większość tego co będziesz poznawał będzie INNE
A na koniec skompilujesz to wszystko i wrócisz do JS...
Z mojego osobistego doświadczenia, ostatnio pisałem kod w CS (około 10k linii) i ten język pozwolił mi na łatwe zarządzanie kodem i utrzymaniem go w porządku.
Gwoli debaty, opinie o CS są różne, jedni zachwalają go, inni twierdzą, że jest on niepotrzebny. Ważne jest to, że jest tendencja do pisania w tym języku. Z punktu widzenia biznesu łatwiejszy kod to mniej pracy programisty, mniej błędów i przez to mniej wydanych pieniędzy na development i większy zysk.
Jak do CS będzie IDE z debuggerem a całość wyjdzie poza zwykłą kompilację do JS to nie widzę przyszłości dla CS. Że ktoś pisze - a no pisze. Wystarczy popatrzeć na PHP i multum lekko mówiąc gównianych frameworków które jednak mają swoich fanów. Zawsze się ktoś znajdzie.
Interesowałem się CS ale skończyłem na wnioskach mówiących że JS tworzy tyle samo problemów co stara się rozwiązać - albo i więcej. A skoro już piszę w JS to nie ma sensu by pisać w JS tylko inaczej.