Wpis z mikrobloga

  • 0
@dixtel: Golang wprawdzie nie ma funkcji generycznych, ale za to pożera cały RAM zupełnie jak Java, wydajność kodu ma jak Java, i wywala się na byle nulliu też jak Java. Teraz lepiej?

Mamy w firmie takie sobie proxy do przesyłania ruchu sieciowego z jednego miejsca w drugie miejsce, napisane w Go. Niby nic specjalnego pod względem logiki a dla raptem 10 tys. połączeń pożera 3 GB RAMu a do tego CPU
  • 0
@mirasKo-Kalwario:

to w czym bys to napisał żeby działało lepiej?


W Rust. Najlepszy język do pisania rzeczy, które mają być sieciowe, współbieżne i wydajne. Ewentualnie Zig słyszałem też jest niezły, ale nie jest tak bezpieczny jak Rust (a szybkość ma taką samą). Natomiast 10 lat temu odpowiedziałbym że C + valgrind + jakiś linter.

To ile zajmują połaczenia to nie koniecznie kwestia języka a raczej systemu który musi trzymać deskryptory dla
@Krolik: ok, tak czy siak go jest duzo prostsze niż rust albo C i dlatego jest wybierane, jak braknie zasobów to się dorzuci kolejną instancję aplikacji i tyle, żyjemy w czasach gdzie optymalizacja nie jest aż tak potrzebna ob można się skalować horyzontalnie o ile masz hajs
  • 0
@mirasKo-Kalwario: Po pierwsze Go nie jest prostszym językiem niż C, skąd to niby wziąłeś? C jest mniejszym językiem jeśli już. Inna kwestia że C jest właśnie trudniejsze w pisaniu właśnie przez to, że jest prostszym językiem, że jest mniej abstrakcyjne i ma mniejsze wsparcie kompilatora w kwestiach poprawności kodu - czyli np. łatwiej się wyłożyć na segfaultach. Mniej robi kompilator, więcej musi robić programista.

Podobnie Go jest wprawdzie nieco mniejszym /
Po pierwsze Go nie jest prostszym językiem niż C, skąd to niby wziąłeś?


@Krolik:

C jest właśnie trudniejsze w pisaniu


@Krolik: Zdecyduj się albo jedno albo drugie, w go sie pisze łatwiej i nie ważne jakie C by nie było nikt nie będzie w tym w dzisiejszych czasach pisał jesli jedynym profitem bedzie użycie mniej niż 3GB ramu
  • 0
@mirasKo-Kalwario: Ale przecież to są dwie różne rzeczy! Prostota języka vs prostota pisania kodu.

w go sie pisze łatwiej i nie ważne jakie C by nie było


Bo Go jest bardziej skomplikowanym językiem.
Tak samo jak automatem łatwiej się jeździ w korku niż samochodem z ręczną skrzynią biegów - ale automat jest bardziej skomplikowany niż skrzynia ręczna. Czy nadal niejasno tłumaczę?

Ta sama sytacja jest między Rust i Go.
Rust jest
Bo Go jest bardziej skomplikowanym językiem.


@Krolik: nie interesuje mnie to czy jest skomplikowane czy nie, piszę się w tym łatwiej i szybciej i już, jakoś wiekszosc internetu jest napisana w JS albo PHP a nie w C bo js i PHP są prostsze i szybsze w pisaniu, #!$%@? z tym czy są bardziej złożone czy nie.

@r00ti dzieki za radę, tak trzeba będzie zrobić
  • 0
@mirasKo-Kalwario:

piszę się w tym łatwiej i szybciej


Po pierwsze to łatwiej i szybciej tylko niż w C, ale niekoniecznie niż nawet w Java, a co dopiero w Rust czy nawet D.

Po drugie to jest jedynie Twoja subiektywna opinia. A obiektywnie to nie, ponieważ są takie projekty których w Go się nie da w ogóle zrobić, czyli jak możesz twierdzić, że coś czego nie da się zrobić jest "łatwiej i
@Krolik: ok, to napisz w rust i powiedz w firmie zeby tego uzywali, na pewno ktos bedzie chcial to utrzymywać jak nie zna GO, przez co utrzymanie będzie droższe i trudniejsze ale tego juz nie liczysz w swoim wywodzie zeby udowodnić jakąś swoją głupią tezę, zamiast płakać na wykopie to idź i pogadaj z zespołem żeby zrobili w to w rust jak cie to tak boli
  • 0
@mirasKo-Kalwario: jeżeli ktoś się nie chce uczyć to należy go zwolnić. Widzę że ty z tych ludzi co jak nauczyli się stukać młotkiem to będą wbijać nim wkręty, bo nauczenie się obsługi wkrętaka lub wkrętarki to za trudne. :D

A co do utrzymywania tego systemu to już widzę że będzie mega drogo bo za miesiąc będą gasić pożar za pożarem i będzie opóźnienie za opóźnieniem. Bo gopherowcy nawet dobrze nie rozumieją
@Krolik: ok ale dlaczego placzesz tutaj a nie rozmawiasz z osobami które podjęły decyzję żeby zrobić to w go ? pogadaj z nimi, przekonaj ich, pewnie sie okaże że nie znasz połowy założeń a już płaczesz, chciałbym zobaczyć twoje CV albo githuba skoro taki z ciebie poliglota
  • 0
@mirasKo-Kalwario: I po co te wycieczki osobiste? Założyłem temat bo liczyłem, że może trafi się jakiś gopher, który będzie mieć sensowne argumenty i wywiąże się jakaś konstruktywna dyskusja. Ale widzę że tylko albo wycieczki osobiste albo marketingowy bełkot o tym jakie to Go jest rzekomo łatwe i proste. Łap artykuł gdzie masz opisane dlaczego prostota Golanga jest zwykłą ściemą: https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride

Z zespołem gadałem, ale jak można przekonać osoby, które już podjęły
  • 0
@mirasKo-Kalwario: ale jakie znowu farmazony? Jak ktoś wg ciebie pieprzy farmazony, to się używa argumentacji, a nie sprawdza jego biografię. Ale jak tak bardzo prosisz, to masz: https://github.com/apache/cassandra.

A wracając do meritum, to Golang ssie nawet bardziej niż Java bo:
- brakuje w nim podstawowych udogodnień np. asercji, stałych, funkcji generycznych, enumów
- jest zaprojektowany niekonsekwentnie np. nieużywane importy są błędem ale nieużywane funkcje nie są błędem, ale nieużywane zmienne są