Myślicie zastąpi w przyszłości javę? co sądzicie o przyszłości androida będzie on wykorzystywał jave czy go? Sorry jeśli zadaje głupie pytania jestem nowy w temacie javy. Czy dla web warto się jeszcze uczyć javy?dla androida?
Jeśli chodzi o trendy z branży to nadzieje co do języków funkcyjnych czy też scali powoli opadają i GO wyrasta na język z którym będą wiązane największe oczekiwania, co z tego wyjdzie jak zwykle zweryfikuje czas.
Można sobie o tym poczytać chociażby tutaj:
http://no-kill-switch.ghost.io/failed-revolution-renaissance-of-fp-3-yrs-later/
Raczej język dla ludzi którzy nienawidzą zasady DRY.
<ironia> a Java jest dla nieuków, C# tylko dla fanuf bila gejtsa, C dla startych wykładowców a Python dla ludzi z doktoratem ... no i Swift, jest oczywiście dla hipsterów. </ironia>adwy napisał(a):
Raczej język dla ludzi którzy nienawidzą zasady DRY.
GO widać (a przynajmniej ja widuje) w takich dość "operacyjnych" zastosowaniach, czy to jako routery HTTP które se tam gdzieś siedzą i coś robią (https:*github.com/cloudfoundry/gorouter) albo opędzają inne funkcjonalności związane z automatyzacją np: https:*bosh.io/ (chociaz sam bosh jest napisany w ruby :) ). Także Devops pracujący c CF to GO raczej znać powinien, bo se może coś skrobnąć w internalach clound foundry.
Widziałem też jakieś małe mikroserwisy napisane w GO - bo są bardzo tanie i koszt kilku takich małych jobów postawionych na AWS jest nieporównywalnie mniejszy niż kilku JVMowych krówek (chociaż wszyscy lofciamy JVMa i Jave). Jedna z wad tej technologi w tym zastosowaniu to że tam wszystko trzeba klepać od nowa, jakieś circuit breakery, monitoring - jakieś liby są, ale nie tyle co np: dla javy
Ale jako zamiennik dla javy to nieeeee.
niezdecydowanyJestGrzeczny napisał(a):
adwy napisał(a):
Raczej język dla ludzi którzy nienawidzą zasady DRY.
a Java jest dla nieuków, C# tylko dla fanuf bila gejtsa, C dla startych wykładowców a Python dla ludzi z doktoratem ... no i Swift, jest oczywiście dla hipsterów.
To są opinie. A faktem jest to, że przez brak typów generycznych pisze się masę powtarzającego się kodu.
neves napisał(a):
Można sobie o tym poczytać chociażby tutaj:
http://no-kill-switch.ghost.io/failed-revolution-renaissance-of-fp-3-yrs-later/
Argumenty autora:
- programiści funkcyjni sami nie rozumieją podstawowych pojęć, nie rozróżniają monoidu od monady [opinia autora, bez żadnego poparcia]
- sam język to nie wszystko [zgadzam się], liczą się narzędzia, ekosystem, biblioteki [w jaki sposób ma to związek z FP?]
- w implementacji ScalaZ [zaawansowanej biblioteki do programowania funkcyjnego] można znaleźć trudny do zrozumienia kod [kompletnie skrajny przykład, zresztą temu służy tak skomplikowany kod w ScalaZ, żeby korzystając z tej biblioteki programista sam nie musiał go pisać]
Jeżeli są to najlepsze argumenty (bo zakładam, że osoba udowadniająca swój punkt widzenia, przedstawia najlepsze argumenty na jakie może wpaść) przeciwko językom funkcyjnym, to nie jestem przekonany, że nadzieje przeciwko nim słabną.
Go i Java to dwa różne języki do zupełnie innych zastosowań. Jeśli chcesz pisać na Androida, to wydaje się, że jeszcze długo królem będzie Java.
Go jest spoko, ale tylko w pewnych kwestiach jest w stanie konkurować z Javą. Nie nadaje się też do wszystkiego.
Ale do tych rzeczy co został zaprojektowany jest fajny.
Krwawy Młot napisał(a):
Go jest spoko, ale tylko w pewnych kwestiach jest w stanie konkurować z Javą. Nie nadaje się też do wszystkiego.
Ale do tych rzeczy co został zaprojektowany jest fajny.
Jakie są to rzeczy i dlaczego w tych przypadkach jest lepszy od innych rozwiązań?
Nie mówie, że od razu lepsze.
- Go jest spoko na przykład gdy potrzebujesz coś np. niedużego i wydajnego. I naprawdę jest szybki i do tego wygodny.
- Najwięcej softu co w nim jest napisane jest from developers for developers. Sporo devops stuff.
- Sporo command line ' owych rzeczy
- Ma w porządku model współbieżnośći , w wielu przypadkach dużo łatwiejszy niż w innych technologiach
- programowanie systemowe
- jego prostota jest pewnego rodzaju ficzerem
Nie mówie, że od razu lepsze.
Po co stosować coś co nie jest lepsze?
- Go jest spoko na przykład gdy potrzebujesz coś np. niedużego i wydajnego. I naprawdę jest szybki i do tego wygodny.
Masz jakieś benchmarki na poparcie tego? Według tego co znalazłem jest prawie 3x wolniejszy od Javy, i jakieś 20% wolniejszy od Scali.
Co do wygody/prostoty to porównaj implementację w Go i Scali:
W którym kodzie szybciej byś się połapał o co chodzi?
- Najwięcej softu co w nim jest napisane jest from developers for developers. Sporo devops stuff.
- Sporo command line ' owych rzeczy
To że jest w czymś pisane nie znaczy że się do tego najlepiej nadaje.
- Ma w porządku model współbieżnośći , w wielu przypadkach dużo łatwiejszy niż w innych technologiach
Model na którym opiera się Go (Communicating sequential processes), ma ciekawe właściwości, między innymi można statycznie wykrywać deadlocki. Szkoda tylko, że Go tego nie obsługuje.
- programowanie systemowe
W czym jest lepszy od C/C++/Rust?
- jego prostota jest pewnego rodzaju ficzerem
Brak ficzera = ficzer? Według tego argumentu asembler jest najlepszym językiem programowania.
Prostota kodu jest oczywiście zaletą, bo pozwala się skupić bezpośrednio na problemie, który rozwiązujemy. A żeby to osiągnąć potrzebujemy ekspresywnego języka, który dostarcza odpowiednich abstrakcji.
- Go nie konkuruje z C++ ani Rust, jest nieco wyżej.
- pierwszy z brzegu benchmark https://medium.com/@qutheory/server-side-swift-vs-the-other-guys-2-speed-ca65b2f79505#.w04lwhaha , poszukaj tez C10k itp. i wszytkie testy request per second itp. itd. http://eric.themoritzfamily.com/websocket-demo-results-v2.html
- I tylko gorszy od Erlanga pod względem failurów
- "In Go when my code is done, it’s done" za autorem express.js https://medium.com/@tjholowaychuk/farewell-node-js-4ba9e7f3e52b#.bhvss4h3e
- Scala... i prostota? Na moje jak musisz robic dziwne kombinacje w Go... to używasz złego języka do zadania. Do jakis obliczen raczej będzie sredni.
- Go jest prosty. Z tym, że wiekszosc myli prostotę z wygodą. Go jest restrykcyjny i narzuca sporo rzeczy dlatego programisci mogą łątwo się połapać w projektach, bo wszędzie wygląda to podobnie.
- Dockery, Consule, Kubernetesy tego jest już pełno itp. itd.
Po prostu według mnie w wielu przypadkach będzie good enough + nie pozwala na tworzenie miliona poziomow abstrakcji jak Java czy Scala.
Byłem sceptyczny do Go, ale im więcej zaczynam się nim bawic tym wiecej mi sie podoba. Tam gdzie znajdzie zastosowanie wydaje sie bardzo ok.
I Scala jako tako mi się podoba... Ale jednak bardziej przychylam się do tych wniosków:
http://no-kill-switch.ghost.io/failed-revolution-renaissance-of-fp-3-yrs-later/
http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang
Z moich poszukiwań wynika, że wydajność Go, Rust, Swift jest zbliżona, ale każdy język ma trochę inne zastosowanie.
I Go w ostatnim czasie też znacznie swoją wydajność polepszył. A w 1.8. ma mieć stop-the-world GC na poziomie 100 mikrosekund.
Póki co mi się podoba, i tyle.
https://blog.golang.org/7years
'And we’ve developed new garbage-collection techniques that reduce typical “stop the world” pauses to under 100 microseconds. (Contrast that with Go 1.5’s big news of 10 milliseconds or less.)'
I to niby jest worst case.
Wedlug mnie Golang jest duzo bardziej popularny niz wskazuja na to oferty pracy. Chyba wszystkie duze korpo juz z tego korzystaly, google, netflix, intel, amazon...
Warto tez poczytac o Uberze, dropbox, malwarebytes itp. Ciekawe przypadki uzycia.
Jako javowca mnie urzeklo, ze prosta rest aplikacje moge napisac szybko w golym Go, uruchamia sie to w sekunde, edytorow pod dostatkiem, testy sie rowniez uruchamiaja w moment. ;)
https://github.com/golang/go/wiki/FromXToGo
Polecam tez poczytac te historyjki
- Go nie konkuruje z C++ ani Rust, jest nieco wyżej.
Przed chwilą stwierdziłeś, że niszą Go jest programowanie systemowe, a ja podałem przykłady języków które są w tej domenie wykorzystywane. Zatem albo Go konkuruje z tymi językami na tej płaszczyźnie, albo wcale się nie nadaje do programowania systemowego.
- pierwszy z brzegu benchmark https://medium.com/@qutheory/s[...]-speed-ca65b2f79505#.w04lwhaha , poszukaj tez C10k itp. i wszytkie testy request per second itp. itd. http://eric.themoritzfamily.com/websocket-demo-results-v2.html
- I tylko gorszy od Erlanga pod względem failurów
Nie ma to jak dobrać technologie, tak aby Go wypadł najlepiej w porównaniu (zwłaszcza że porównuje wysokopoziomowe frameworki jak Spring czy RoR z czystym Go). Według drugiego linka to z tego co widzę w wielu przypadkach Go przegrywa zarówno z Erlangiem jak i Javą i Scalą (i to w frameworku Play, szkoda że nie porównał np. z Akka).
Tutaj można znaleźć bardziej obiektywne benchmarki (dotyczące może z 99% frameworków jakie istnieją):
https://www.techempower.com/benchmarks/#section=data-r13&hw=ph&test=json
Jak widać w wielu przypadkach jest trochę lepszy, czasem trochę gorszy, jednak nie jest to rząd wielkości różnicy. Jeśli chodzi o przetwarzanie współbieżne czy dostęp do zasobów to większość frameworków zdaje się wykorzystywać prawie w pełni możliwości sprzętu, nie sądzę żeby języki takie jak Go pozwoliły osiągnąć tutaj jakiś znaczący postęp.
Wniosek z tego jest taki, że Go nie jest w tym przypadku lepszy (ani też może gorszy), więc nie należy wybierać języka na podstawie tego kryterium.
- "In Go when my code is done, it’s done" za autorem express.js https://medium.com/@tjholowayc[...]ode-js-4ba9e7f3e52b#.bhvss4h3e
W jaki sposób z faktu, że Go jest lepszy od jednego języka, wynika że jest lepszy od wszystkich innych?
- Scala... i prostota? Na moje jak musisz robic dziwne kombinacje w Go... to używasz złego języka do zadania. Do jakis obliczen raczej będzie sredni.
Do prostych zadań kod w Scali jest proporcjonalnie prostszy. W jaki sposób Go jest lepszy w prostych zadaniach?
- Go jest prosty. Z tym, że wiekszosc myli prostotę z wygodą. Go jest restrykcyjny i narzuca sporo rzeczy dlatego programisci mogą łątwo się połapać w projektach, bo wszędzie wygląda to podobnie.
W asemblerze też piszesz w kółko te same mov'y i jmp'y, w czym Go jest lepszy od asemblera?
- Dockery, Consule, Kubernetesy tego jest już pełno itp. itd.
Wiem że te programy są napisane w Go. Co z tego wynika?
http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang
Kiepski programista pisze kiepski kod. Nie wynika z tego, że język jest zły. Problemy wymienione w tym artykule (np. nadużywanie operatorów) są od dawna uznawane za złą praktykę w Scali.
Nie będę się za bardzo rozpisywał, tutaj masz odpowiedź społeczności Scali na ten artykuł:
https://www.reddit.com/r/scala/comments/3xkbeg/moving_a_team_from_scala_to_golang/
I Go w ostatnim czasie też znacznie swoją wydajność polepszył. A w 1.8. ma mieć stop-the-world GC na poziomie 100 mikrosekund.
Zobaczymy jak to wyjdzie, nie można opierać się na obietnicach. Co jeżeli w zamian np. zostanie zwiększona częstotliwość GC? Albo jeżeli nie ma to aż tak istotnego znaczenia dla końcowego użytkownika?
Hejtujesz nieco. A sukces jezyka wcale nie zalezy jaki swietny nie bedzie. Python jest przeciez rowniez ok w wielu przypadkach ale co go niby takiego wyroznia?
Ja nie probuje nic udowodnic, bo mi sie nie chce. Chcesz to sobie udowadniaj.
Scala moze byc fajna, ale raczej watpie by sie spopularyzowala. Rust wyglada ciekawie. Ale servo chyba za bardzo sie nie udal. Rozumiem, ze docker lepiej jakby byl napisany w scali?
A co do programowania systemowego, to nie zawsze musisz od razu pisac system operacyjny... Do czego Rust raczej sprawdzi sie lepiej.
Co do benchmarkow, sam tez dobierasz Go w wersji 1.4 badane na jakis matematycznych obliczeniach gdzie oczywistym jest, ze Scala bedzie lepsza.
Go jest tez spoko by wziac udzial w jakis open source.
A co do porownywania Go z frameworkami. To wlasnie kwestia jest tego typu, ze w Go nie potrzebujesz frameworkow i dalej jest dosc wygodny. Wiec porownanie to ma sens.
Nigdzie nie uzylem sformulowania, ze Go jest gdzies lepszy od czegos. Dopoki nie uzyje Go produkcyjnie to sie w tej kwestii nie wypowiem. Powiedzialem, ze mozna uzyc do programowania systemowego, a nie ze jest super do tego.
Scala jest ok, i rozumiem, ze sa dobre i zle praktyki. Ale niestety nie wierze w dyscypline wsrod ludzi i jak to wszyscy beda tworzyc dobry kod.
Go nam sporo narzuca i na pewno nie konkuruje z Java czy Scala.
Hejtujesz nieco.
Czym się różni krytyka od "hejtu"?
A sukces jezyka wcale nie zalezy jaki swietny nie bedzie.
Nie uważasz, że powinny wygrywać rozwiązania dobre?
Python jest przeciez rowniez ok w wielu przypadkach ale co go niby takiego wyroznia?
Nadaje się bardzo dobrze do pisania skryptów, także do obliczeń naukowych. Czyli rzeczy, które raz się implementuje ale później do nich nie wraca.
Ja nie probuje nic udowodnic, bo mi sie nie chce. Chcesz to sobie udowadniaj.
To dlaczego wchodzisz na forum, które służy dyskusji?
Scala moze byc fajna, ale raczej watpie by sie spopularyzowala.
Wracamy do punktu wyjścia. Dlaczego uważasz że Scala się nie spopularyzuje?
Rozumiem, ze docker lepiej jakby byl napisany w scali?
C++ czy Rust byłby dobrym wyborem. Jeśli nie ma tak dużego znaczenia wydajność to może OCaml.
A co do programowania systemowego, to nie zawsze musisz od razu pisac system operacyjny... Do czego Rust raczej sprawdzi sie lepiej.
Programowanie systemowe to nie tylko tworzenie systemów operacyjnych.
Programowanie systemowe polega na tworzeniu aplikacji służących innym aplikacjom lub takich w których liczy się wysoka wydajność, np: bazy danych, silniki gier.
Co do benchmarkow, sam tez dobierasz Go w wersji 1.4 badane na jakis matematycznych obliczeniach gdzie oczywistym jest, ze Scala bedzie lepsza.
To jest benchmark języka, w którym sprawdzamy jak kompilator/platforma radzi sobie z typowym zadaniem przetwarzanie danych. Programowanie polega na przetwarzaniu danych zatem jest to całkiem precyzyjny test.
I dlaczego Scala miałaby być lepsza? Nie ma w niej nic co by sprawiało że jest lepsza w matematycznych obliczeniach.
Go jest tez spoko by wziac udzial w jakis open source.
A inne języki nie mają projektów open source?
A co do porownywania Go z frameworkami. To wlasnie kwestia jest tego typu, ze w Go nie potrzebujesz frameworkow i dalej jest dosc wygodny. Wiec porownanie to ma sens.
W innych językach też nie potrzebujesz frameworków. Ten benchmark był nieuczciwy ponieważ porównał niskopoziomowy mechanizm w Go z rozbudowanymi rozwiązaniami z innych języków. Uczciwsze byłoby porównanie np. z Netty+Jackson+JDBC.
Nigdzie nie uzylem sformulowania, ze Go jest gdzies lepszy od czegos. Dopoki nie uzyje Go produkcyjnie to sie w tej kwestii nie wypowiem. Powiedzialem, ze mozna uzyc do programowania systemowego, a nie ze jest super do tego.
Jeżeli nie jest w niczym lepszy w żadnym zastosowaniu, to po co go w ogóle używać?
Ale niestety nie wierze w dyscypline wsrod ludzi i jak to wszyscy beda tworzyc dobry kod.
Dlatego lepiej wybrać język w którym wszyscy są zrównani do najniższego poziomu?
Ja tylko sprzeciwiam się wmawianiu mi, że uważam, że Go jest od czegoś lepsze. Nie umiem na to pytanie odpowiedzieć, bo mało jeszcze używałem. Mogę powiedzieć tylko do czego wydaje mi się 'ok'.
Skąd taka pewność u Ciebie jakie to beznadziejne?
Nie wiem też czemu uparcie porównujesz do Scali. Według mnie akurat Scala sprawdzi się dużo lepiej w wielu zadaniach niż Go bo jest po prostu językiem wyższego poziomu. I o to w sumie mi chodziło z matematycznymi obliczeniami, kod Scali do matematycznych obliczeń będzie raczej dużo lepszy. Niefortunnie trochę zestawiłem to z wydajnością.
Wiara, że będą wygrywać rozwiązania najlepsze to utopia. Bardziej wygrywa marketing, duże community i ecosystem.
Go jest właśnie dobre jeśli nie potrzebujesz frameworków. I w gołym Go szybciej wystartuje niż np. w Spring Boot czy Play/Akka-http, gdy będę potrzebował usługę, która będzie tylko nawalać żądaniami http jak głupie. I jako goły Go według mnie sprawdza się tu dobrze i znajduje swoje zastosowanie.
Co do C++ https://talks.golang.org/2013/oscon-dl.slide#1 to daleko temu też do najlepszego narzędzia. Do programowania systemowego według mnie sprawdza się tam gdzie trzeba wykonać mniejsze taski.
Inne języki mają open source. W Go jednak znajduje sporo takich co mnie zainteresowała.
Im większa skala tym gorzej wyglądający kod i warstwa abstrakcji, które ludzie zaczynają w którymś momencie wymyślać.
W Go według mnie lepiej nad tym zapanujesz.
Go według mnie ma być dość wydajny, łatwy w nauce i niezbyt uciążliwy w codziennej pracy i zdecydowanie nie jest językiem do wszystkiego.
Taka mała uwaga - ani Go ani Scala nie są językami do obliczeń matematycznych, chyba że chodzi o coś prostego typu FV.
Kilka języków/środowisk typowo matematycznych:
https://www.nextplatform.com/2016/01/26/dirt-simple-hpc-making-the-case-for-julia/
(zestawienie na dole)
vpiotr napisał(a):
Taka mała uwaga - ani Go ani Scala nie są językami do obliczeń matematycznych, chyba że chodzi o coś prostego typu FV.
Kilka języków/środowisk typowo matematycznych:
https://www.nextplatform.com/2016/01/26/dirt-simple-hpc-making-the-case-for-julia/
Spoko. Jednak w Scali będzie to dużo wygodniejsze niż w Go ;)
Skąd taka pewność u Ciebie jakie to beznadziejne?
Nie jestem niczego pewien, chciałbym wiedzieć do czego ten Go jest lepszy.
Nie wiem też czemu uparcie porównujesz do Scali. Według mnie akurat Scala sprawdzi się dużo lepiej w wielu zadaniach niż Go bo jest po prostu językiem wyższego poziomu. I o to w sumie mi chodziło z matematycznymi obliczeniami, kod Scali do matematycznych obliczeń będzie raczej dużo lepszy. Niefortunnie trochę zestawiłem to z wydajnością.
Podałem przykład wysokopoziomowego języka, który jest szybszy od Go.
Ten konkretny przykład porównuje w jaki sposób wygląda kod przetwarzający dane w obu tych językach. Czy uważasz, że operacje takie jak mapowanie czy grupowanie elementów w kolekcji nie przydają się w codziennym programowaniu?
Wiara, że będą wygrywać rozwiązania najlepsze to utopia. Bardziej wygrywa marketing, duże community i ecosystem.
Będzie tak dopóki ludzie będą bezkrytycznie wybierać języki czy technologie.
Go jest właśnie dobre jeśli nie potrzebujesz frameworków. I w gołym Go szybciej wystartuje niż np. w Spring Boot czy Play/Akka-http, gdy będę potrzebował usługę, która będzie tylko nawalać żądaniami http jak głupie. I jako goły Go według mnie sprawdza się tu dobrze i znajduje swoje zastosowanie.
A w innych językach potrzebujesz frameworków? Podałem przykład bibliotek, które nie są frameworkiem i byłyby porównywalne do tego co oferuje Go.
Jak chcę coś szybko napisać to używam Pythona, w czym Go jest tutaj lepszy od Pythona?
Co do C++ https://talks.golang.org/2013/oscon-dl.slide#1 to daleko temu też do najlepszego narzędzia. Do programowania systemowego według mnie sprawdza się tam gdzie trzeba wykonać mniejsze taski.
Porównuję kod ze slajdu 58 i 59 i nie widzę żadnego usprawnienia wynikającego ze zmiany języka. Poprzedni system był źle napisany, np. wykorzystywał całą masę odwołań do pól klasy. W przykładzie z Go obsługa błędów została wyraźnie zignorowana. Poza tym porównywany jest niskopoziomowy przykład (obsługa błędu) z wysokopoziomowym kodem, który gdzieś pod sobą kryje ten sam kod co w C++.
Inne języki mają open source. W Go jednak znajduje sporo takich co mnie zainteresowała.
W każdym języku można znaleźć dużo ciekawych projektów open source. Jednak nie jestem pewien co to dodaje do tej dyskusji.
Im większa skala tym gorzej wyglądający kod i warstwa abstrakcji, które ludzie zaczynają w którymś momencie wymyślać.
W Go według mnie lepiej nad tym zapanujesz.
Abstrakcje upraszczają kod, żeby wyglądał lepiej. Go nie obsługuje żadnych poważnych abstrakcji, więc nie nadaje się do aplikacji o większej skali.
Go według mnie ma być dość wydajny, łatwy w nauce i niezbyt uciążliwy w codziennej pracy i zdecydowanie nie jest językiem do wszystkiego.
Tutaj masz artykuł wyjaśniający nieco motywacje za powstaniem Go:
http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/
Zgodnie ze słowami twórcy języka:
The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.
Wynika z tego, że ten powstał dla młodych osób, dla których konstrukcje takie jak typy generyczne są zbyt skomplikowane. Czy nie można zatem powiedzieć że jest to język, który został zaprojektowany na bazie ignorancji?
Uważam, że stwierdzenie, że Scala jest szybsza od Go to błąd. Nie jest to oczywiste ani trochę.
Restowa Applikacja w pure Java albo Scala to byłaby akurat masakra i nie chciałbym tknąć tego kijem. W pure Go jest to dość proste. Ile osób pisze w Netty+jackson+jdbc ? Jakieś 99% projektow to Spring/Java EE.
Od Pythona akurat jest dużo szybszy i ma statyczne typowanie, które może się przydać ale to już jest dyskusyjne. To zależy co potrzebujemy.
Abstrakcje również powodują to, że próg wejścia w projekt jest większy. W javie można spotkać się z tym całkiem często i wcale nie jest to takie cudowne...
Go do abstrakcji się nie nadaje. Ale posiadanie corowych usług w Java/Scala i wokół appki Golang wydaje się ciekawym pomysłem.
Co do obługi błędów w Go nie umiem się zdecydować czy mi się podoba to czy nie. ma to swoje plusy i minusy. Jednak stosując się do pewnych praktyk mam pewność, że zawsze obsługuję błędy i zawsze wiem co się w kodzie dzieje.
I co w tym założeniu, że większość osób jest przeciętna jest niepoprawne? To założenie ma sens. I można w Go pisać poprawny kod nie będąc orłem i skończyć projekt w dość szybkim czasie.
Nie znaczy to jednak, że nie mamy korzystać z innych narzędzi jak choćby Scala. Na pewno nie chciałbym pisać wszystkiego w Go, zresztą nie da się.
A co do popularnosci Scala vs Golang. To jak wejde na jakies czaty, slacki, gittery to ilosc osob tam gdzie jest Go jest dużo większa. Lecz zupełnie inny rodzaj softu powstaje w Scala niż w Go.
Z tym, że według mnie Scala bardziej konkuruje z Javą. Osobiście chyba wole pozostać przy Java. Scali użyłbym tylko w kilku przypadkach.
Według mnie wyrobić sobie opinie o technologii można tylko przez praktykę. Warto poczytać itp. Ale nic nam nie da tyle co praktyka.
Używam Go od 2 lat.
Oglądam duzo kodu fajnych systemów napisanych w tym języku.
Produkcyjne pisze kod odpalony na win 32, 64 linux w tym lin na Armach
Z łatwością portuje kod napisany z myślą tylko o linux na windę
Nie czekam 30 min na kompilacje
Milo i sprawnie pisze testy
Dodam że mam 15 letnie doświadczenie w C C++, mniejsze w C#, znam Pythona
Robiłem wiele własnych testów i nie znam takiego obiektywnego benchmarku który podważyć może performance Go i uznać że jest wolniejszy istotnie od innych języków.
Mało framework ów- w sensie ze np czego brakuje?
Scala, .net, java - to się nie sprawdzi w przyszlosci mikroserwiaowej, gdzie serwisy rozleja się też po iot
Setki MB runtime , nieograniczona zachowaniach na ram.
C++ że swoimi nowymi wersjami to poprzednia epoka - sorry
Za to docker, elementy coreos, telegraf , influxdb, consul, I masa innych nie małych rozwiązań powstaje w Go.
Zobaczymy za kilka lat .... bardzo jestem ciekaw