Crystal vs Go

0

Który język z tych dwóch jest lepiej zaprojektowany? Crystal radzi sobie z nullem, a Go raczej nie bardzo?
https://crystal-lang.org/2013/07/13/null-pointer-exception.html
https://stackshare.io/stackups/crystal-vs-go

1

Lepiej zaprojektowany do czego?
To dwa zupełnie różne języki o innym przeznaczeniu.
Go ewidentnie jest dość prosty i nawet ubogi. Za to już jest dojrzały do pracy na produkcji.
Crystal oficjalnie nie, za to jako język, oferuje wyższy poziom.

1

Go jest prosty? Dobry żart, on tylko wygląda zwięźle, Java łatwiejsza.

0

W sumie Crystal podobnie jak Go świetnie radzi sobie z backendem bez użycia frameworka.
pfertyk.me/2016/11/crystal-in-real-life/

0
jarekr000000 napisał(a):

Lepiej zaprojektowany do czego?
To dwa zupełnie różne języki o innym przeznaczeniu.
Go ewidentnie jest dość prosty i nawet ubogi. Za to już jest dojrzały do pracy na produkcji.
Crystal oficjalnie nie, za to jako język, oferuje wyższy poziom.

Prosty, ubogi, dojrzały, wyższy poziom - mógłbyś te pojęcia rozszerzyć? Ciekawi mnie geneza.

3
TurkucPodjadek napisał(a):

Prosty, ubogi, dojrzały, wyższy poziom - mógłbyś te pojęcia rozszerzyć? Ciekawi mnie geneza.

Na szybko - problemy go:

  • brak generyków,
  • słaby exception handling, (gdyby były dobre generyki to by nie bolało)
  • reszta mniej dla mnie istotna:
    (taki sobie OOP, nadal ma nil (nulla).
    Dla mnie GO wygląda jak jezyk, gdzie ktoś sparzył się na javie, wrócił do C i postanowił je poprawić - więc zrobił dużo lepsze C. (Prawdziwa historia podobno jest taka, że sparzył się na C++ i wrócił do C).

Przyznam ucziwie, że mnie ten język bardzo rozczarował - dużo było hype, a jak zobaczyłem z bliska jak wygląda, to myślałem, że ktoś mnie prankuje...
Co ciekawe inni tez tak myślą - stuck in 70: https://github.com/ksimka/go-is-not-good
(Dla mnie to przesada, nie 70ties - ale raczej wczesne 90ties, tym niemniej).

To nie jest też tak, że odrzucam i krytykuje GO zawsze. Jak ktoś potrzebuje coś zrobić w C i nie jest to moduł kernela to GO jest dobrą alternatywą. Działa, produkcyjnie, dobrze. Prostota jest też zaletą. (btw. jakis czas temu mieli też robić części bez GC, (jakieś unsafe) żeby własnie critical parts pisać, ale nie wiem jak sie ten projekt potoczył).

Dla odmiany:
Crystal jest składniowo wzorowany na Ruby. Bizanzjum.
Ma Genericsy.
Ma dość bezpiecznego nulla (znak rozpoznawczy XXI wieku).
Ma bogaty Exception handling (niekoniecznie trzeba tego nadużywać, imo Monady są do tego lepsze, sensowne monady w Crystal podobno sa).

Wiele nie wiem, bo Crystala, nie spórbowałem ani trochę, a na pierwszej stronie pisze help it become production ready. Czyli Crystal jest raczej w fazie kampanii wyborczej - tylko obiecuje.

0

Genericsy nadchodzo! Jest draft więc można zerknąć:
https://emilymaier.net/words/getting-specific-about-generics/

A moim zdaniem to miło, że nie jest to kolejny Javopodobny twór. Ma przyjemna, zwięzłą składnię, która programującym w czymś innym (zwłaszcza Java) podejdzie ale po dłuższym czasie mimo wszystko. Poza tym z tym zastępowaniem C przez Go to jasna sprawa, że da się.
Ale da się dużo więcej i sporo mechanizmów webowych często stoi na Go (chociaż był tutaj kiedyś ktoś, kto usilnie twierdził, że Go do web się kompletnie nie nadaje i jest kiepskim językiem :-) ).
Biblioteka standardowa pozwala już na trzaśnięcie wielu rzeczy, a jest bardzo dużo dodatkowych projektów open-source dających więcej. Moim zdaniem bardzo dobre narzędzie do pisania wszelkiej maści rzeczy mocno wydajnościowych gdzieś z tyłu na zapleczu. Wystarczy zerknąć na Chiny i stopień użycia przez nie tego języka. W końcu coś musi okiełznać 1.5 mld+ ludzi korzystających z internetów.

0
jarekr000000 napisał(a):
TurkucPodjadek napisał(a):

Prosty, ubogi, dojrzały, wyższy poziom - mógłbyś te pojęcia rozszerzyć? Ciekawi mnie geneza.

Na szybko - problemy go:

  • brak generyków,
  • słaby exception handling, (gdyby były dobre generyki to by nie bolało)
  • reszta mniej dla mnie istotna:
    (taki sobie OOP, nadal ma nil (nulla).
    Dla mnie GO wygląda jak jezyk, gdzie ktoś sparzył się na javie, wrócił do C i postanowił je poprawić - więc zrobił dużo lepsze C. (Prawdziwa historia podobno jest taka, że sparzył się na C++ i wrócił do C).

Przyznam ucziwie, że mnie ten język bardzo rozczarował - dużo było hype, a jak zobaczyłem z bliska jak wygląda, to myślałem, że ktoś mnie prankuje...
Co ciekawe inni tez tak myślą - stuck in 70: https://github.com/ksimka/go-is-not-good
(Dla mnie to przesada, nie 70ties - ale raczej wczesne 90ties, tym niemniej).

To nie jest też tak, że odrzucam i krytykuje GO zawsze. Jak ktoś potrzebuje coś zrobić w C i nie jest to moduł kernela to GO jest dobrą alternatywą. Działa, produkcyjnie, dobrze. Prostota jest też zaletą. (btw. jakis czas temu mieli też robić części bez GC, (jakieś unsafe) żeby własnie critical parts pisać, ale nie wiem jak sie ten projekt potoczył).

Dobra, to spytam inaczej: skoro z bliska, to jakie problemy na produkcji z nim miałeś? Czyli: przy jakich scenariuszach, co się okazało, przy jakim wolumenie ruchu ewentualnie. Jakieś problemy ze skalowalnością, utrzymaniem, wydajnością wystąpiły?

0
Wielki Samiec napisał(a):

Go jest prosty? Dobry żart, on tylko wygląda zwięźle, Java łatwiejsza.

Tak. Go jest prosty. Przy ANSI C.

1
TurkucPodjadek napisał(a):

Dobra, to spytam inaczej: skoro z bliska, to jakie problemy na produkcji z nim miałeś? Czyli: przy jakich scenariuszach, co się okazało, przy jakim wolumenie ruchu ewentualnie. Jakieś problemy ze skalowalnością, utrzymaniem, wydajnością wystąpiły?

Żadnych problemów nie miałem. Nawet się bardzo dobrze sprawuje (chyba nadal) na produkcji. (nie ma ta produkcja wielkiego obciążenia, ale pewnie by uciągła - sprawdzaliśmy). Budowanie i wszystko było ok. Rozsądne działanie na produkcji to jest warunek konieczny do poważniejszego zastosowania, ale nie jest to warunek wystarczający.
Większośc jezykow w jakich pisze/pisałem bardzo dobrze sprawuje się pod obciążeniem i działają.

Ale nie we wszystkich z nich chce mi się pisać, bo pisanie w nich boli. Dlaczego go boli - napisałem powyżej. Boli mnie też pisanie w Javie, a nawet czasem w Kotlinie - więc przy tym GO to już zupełnie odpada.
Żeby nie było - nie boli mnie w Scali i w Haskellu, ale to tylko dlatego, że niczego przyjemniejszego jeszcze nie poznałem.

1
jarekr000000 napisał(a):
TurkucPodjadek napisał(a):

Dobra, to spytam inaczej: skoro z bliska, to jakie problemy na produkcji z nim miałeś? Czyli: przy jakich scenariuszach, co się okazało, przy jakim wolumenie ruchu ewentualnie. Jakieś problemy ze skalowalnością, utrzymaniem, wydajnością wystąpiły?

Żadnych problemów nie miałem. Nawet się bardzo dobrze sprawuje (chyba nadal) na produkcji. (nie ma ta produkcja wielkiego obciążenia, ale pewnie by uciągła - sprawdzaliśmy). Budowanie i wszystko było ok. Rozsądne działanie na produkcji to jest warunek konieczny do poważniejszego zastosowania, ale nie jest to warunek wystarczający.
Większośc jezykow w jakich pisze/pisałem bardzo dobrze sprawuje się pod obciążeniem i działają.

To wychodzi na to, że brak problemów. Czyli brak generyków, nie był problemem. Takowoż nil (nie NULL!) też nie był. Error handling pewnie też, bo mamy rozsądne działanie na produkcji. Tak by logika nakazywała. Czyli Go ma problemy, choć w zasadzie... to nie było żadnych... czyli esencja 95% "problemów" z Go.

"Panie! Pisałem bo musiałem, otoczyli mnie z zaskoczenia i kazali pisać... pod groźbą podwyżki pensji!"

Ale nie we wszystkich z nich chce mi się pisać, bo pisanie w nich boli. Dlaczego go boli - napisałem powyżej. Boli mnie też pisanie w Javie, a nawet czasem w Kotlinie - więc przy tym GO to już zupełnie odpada.

Jak mnie boli pisanie w czymś, to zwyczajnie nie piszę (dziwny jestem?). To ma swoje konsekwencje: nie wszędzie będę pracował.
Choć zakładam, że istnieją scenariusze skrajne, typu pistolet przy skroni - no wtedy rozumiem, że ktoś przymuszony napisze coś w języku, którego "nie lubi". Masochistów tutaj z wiadomego powodu pominę.

1
TurkucPodjadek napisał(a):

Jak mnie boli pisanie w czymś, to zwyczajnie nie piszę (dziwny jestem?). To ma swoje konsekwencje: nie wszędzie będę pracował.

Ależ ja dokładnie tak zrobiłem - zespół z mojej firmy pisał sobie dalej w GO, a ja się z tej części projektu wypisałem.
Dlatego nie miałem problemu, oni też raczej nie.
Kiedyś też nie miałem problemu w pisaniu bez generyków i innych cudów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1