Crystal vs Go

Odpowiedz Nowy wątek
2018-09-22 15:38
Czarny Kot
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

edytowany 1x, ostatnio: Patryk27, 2018-09-22 17:11

Pozostało 580 znaków

2018-09-25 07:31
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.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 2x, ostatnio: jarekr000000, 2018-09-25 07:34
@vpiotr: nie za bardzo rozumiem po co ten link. - hauleth 2018-09-25 11:03

Pozostało 580 znaków

2018-09-25 22:16
Wielki Samiec
1

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

Pozostało 580 znaków

2018-09-26 06:34
Błękitny Ogrodnik
0

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

Pozostało 580 znaków

2018-09-26 17:37
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.

Też chętnie zrobię review wypowiedzi ;-) - Hispano-Suiza 2018-09-26 19:59

Pozostało 580 znaków

2018-09-27 22:40
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.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 5x, ostatnio: jarekr000000, 2018-09-27 23:12
prawdopodobnie dwa pierwsze zarzuty odejdą do lamusa, bo core team nie sprostał naporom społeczności. - Aryman1983 2018-09-27 22:42
no właśnie :-) -zobaczymy - jarekr000000 2018-09-27 22:43
a z tymi latami się zgadzam, bo gdzieś wyczytałem, że dużo brali z języka Oberon który de facto powstał 32 latka temu. - Aryman1983 2018-09-27 22:44

Pozostało 580 znaków

2018-09-27 23:11
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.


"Trolling is a art"
edytowany 1x, ostatnio: Hispano-Suiza, 2018-09-27 23:18

Pozostało 580 znaków

2018-09-28 05:13
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?

Pozostało 580 znaków

2018-09-28 18:55
Nadziany Kret
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.

Pozostało 580 znaków

2018-09-28 19:09
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.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 3x, ostatnio: jarekr000000, 2018-09-28 19:19

Pozostało 580 znaków

2018-09-28 19:45
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ę.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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