LINUX.ORG.RU

Golang взлетает?

 


0

8

Не помню когда, но не больше года назад я смотрел вакансии по голангу на rabota.yandex.ru в Москве. Было, кажется, две. Сейчас пять. Также посмотрел список тех, кто пользуется голангом. «Я список кораблей прочёл до середины».

Хотя если взять вакансии с упоминанием слова «Clojure», то в Москве их 9. Со словом Scala - 23.

В общем, что вы думаете о здоровье golang-а?

★★★★★

Последнее исправление: den73 (всего исправлений: 1)

Ответ на: комментарий от expelled

Это тело утверждало, что все типы в goвне ссылочные.

Deleted
()
Ответ на: комментарий от ertgblasd

Он вообще подходит для написания бекенда для мобильных приложений с restful или для этого лучше взять что-то скриптовое?

Гораздо лучше скриптового. Но к сожалению, когда им начинают баловаться похапэшники теряется его основной конек - concurrency

ioway
()

Взлетает, да. С ним у меня даже трактор завелся.

php-coder ★★★★★
()
Ответ на: комментарий от Softwayer

Язык примерно такое же говно, как какой-нибудь PHP,

Откуда столько специалистов на лоре в последнее время?

Ты обосновать-то сможешь, чучело? Может в го есть грязные хаки со сборщиком мусора в духе:

https://ia601503.us.archive.org/32/items/vmss16/hosking.pdf

Или там такая же веселая стандартная библиотека? Ты хоть один язык тыкал, кукаретик? Забаньте этого за тупость кто-нибудь, а?

anonymous
()
Ответ на: комментарий от Softwayer

Maybe T, а не (T, Err)

И каким образом option монада заменяет сообщение об ошибке? Может ты и открытие файлов в option заворачиваешь, кукаретик?

anonymous
()
Ответ на: комментарий от anonymous

И каким образом option монада заменяет сообщение об ошибке?

Мальчик — баклажан, и перепутал Either (ну или ExceptT) и Maybe. 'Either SomeError a' вместо (T,SomeError) - это вполне ок.

Может ты и открытие файлов в option заворачиваешь, кукаретик?

Иногда это действительно имеет смысл, дорогой анонимус. https://hackage.haskell.org/package/unexceptionalio-0.3.0/docs/UnexceptionalI...

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от anonymous

Откуда столько специалистов на лоре в последнее время?

Теоретизируют пока каникулы, наверное :)

php-coder ★★★★★
()
Ответ на: комментарий от xpahos

Яндекс? Да ты чо, правда? o.0

Нет, я тебе вру.

Ты троллишь или действительно гуглить не умеешь?

https://habrahabr.ru/company/yandex/blog/237985/

http://www.slideshare.net/yandex/go-38510988

php-coder ★★★★★
()
Последнее исправление: php-coder (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Я тоже серьезно ответил, что твой вопрос смешон.

unt1tled ★★★★
()
Ответ на: комментарий от php-coder

https://habrahabr.ru/company/yandex/blog/237985/
http://www.slideshare.net/yandex/go-38510988

В общем я знаю какой объем С++ кода в Яндексе. Никто никуда не переходит с С++. Это только 0,00001% всех сервисов, если не меньше и это не поиск и не реклама.

xpahos ★★★★★
()
Ответ на: комментарий от xpahos

В общем я знаю какой объем С++ кода в Яндексе. Никто никуда не переходит с С++

Никто и не говорит о полном переходе:

Его используют в хайлоаде там, где раньше был C++ (но не везде).

php-coder ★★★★★
()
Ответ на: комментарий от xpahos

Понятно, что в go нет дженериков для клиентского кода, но это не помешало им иметь дженериковую мапу — вполне могли бы завезти и Either.

Softwayer ★★
()
Ответ на: комментарий от anonymous

Ты обосновать-то сможешь, чучело?

Неплохой переход на личности, браво.

Может в го есть грязные хаки со сборщиком мусора в духе

Не знаю, что там со сборщиком мусора, зато есть грязные хаки с дженериками, которых нет, но если хочется мапу или массив, то можно. Ну и вообще, система типов уровня «как в Си, но с костылями для избранных коллекций» в современном языке — это стыд. В то время, как у нормальных людей есть или адекватная система типов (Haskell или Scala, например), или хотя бы средства для обобщённого программирования (те же кресты), эти ребята предлагают в кастомные коллекции пихать void*interface{}.

Ты хоть один язык тыкал, кукаретик?

Некоторое количество языков тыкал (признаюсь, PHP в их число не входит, так что мб он и правда хуже), и хуже Go пока ни на что не натыкался.

Softwayer ★★
()
Ответ на: комментарий от den73

Полагаю, что точно так же, как у большинства компилируемых в нативный код языков.

Вообще, как справедливо заметили выше, я плохо знаком с голангом, потому что поверхностного знакомства хватило, чтобы потерять всякое желание изучать его дальше.

Softwayer ★★
()
Ответ на: комментарий от Softwayer

адекватная система типов (Haskell

Покажи мне hashmap на чистом хаскиле.

Scala

Ты скалу видел вообще с ее системой типов, борщехлеб?

Как она реализована представляешь хоть?

эти ребята предлагают в кастомные коллекции пихать void*interface{}

И это все еще лучше того, что есть в джаве и скале на порядок.

anonymous
()
Ответ на: комментарий от Softwayer

Ну тут у меня жир уже монитор залил, попробуйте потоньше.

Ну так не жри за компом, школотун. Откуда столько дегенератов на лоре в последнее время? Одни кресты закапывают, другие о системе типов рассуждают, путая элементарные монады и оборачивая ошибки в option.

Ты мне про дженерики в скале расскажешь? Или про hashmap в мощнотипизированном хаскиле? На, просвещайся, может хоть до жаба- или пыхомакаки дорастешь к выпускному:

https://www.youtube.com/watch?v=hzf3hTUKk8U

Типы у него алгебраические в скали, офигеть теперь.

anonymous
()
Ответ на: комментарий от anonymous

К слову скала как язык на сто порядков хуже, чем го. Как и пхп. Ибо не пхп, ни скала не работают так, как задумано, тормозя в самых непредсказуемых местах. В отличие от.

anonymous
()
Ответ на: комментарий от anonymous

путая элементарные монады и оборачивая ошибки в option

Алло, в option предлагалось оборачивать не ошибки, а возвращаемое значение. Бывают случаи, когда конкретную ошибку возвращать ни к чему, а если надо — есть Either Err T.

Ты мне про дженерики в скале расскажешь? Или про hashmap в мощнотипизированном хаскиле?

Зачем рассказывать то, что гуглится за считанные секунды?

На, просвещайся, может хоть до жаба- или пыхомакаки дорастешь к выпускному

Видимо, у нас разные представления о просвещении.

Типы у него алгебраические в скали, офигеть теперь.

Да, в скале у меня алгебраические типы. У меня какая-то особая скала?

Softwayer ★★
()
Ответ на: комментарий от anonymous

Во всяком случае, на скале можно писать без отвращения, в отличие от этого вашего гуланга. Может быть, про непредсказуемые тормоза будут какие-нибудь пруфы?

Softwayer ★★
()
Ответ на: комментарий от anonymous

К слову, судя твоим гневным постам, в скале/джаве ты разбираешься как раз на уровне просмотра видяшек на ютубе. Если тебе доставляет есть гавно, программируя на го, то делай это потише, где-нибудь в углу своей комнаты и так чтобы мамка не видела.

anonymous
()
Ответ на: комментарий от Softwayer

на скале можно писать без отвращения

Если писать на скале без отвращения, то получишь сверхтормозящее нечто, выжирающую всю память сервака за доли секунды.

https://www.youtube.com/watch?v=__PLkxx6Yko

Может расскажешь, какие проекты ты на скале написал?

что гуглится за считанные секунды?

Ну так нагугли уже про дженерики в jvm и императивные структуры данных в хаскиле и не позорься.

anonymous
()
Ответ на: комментарий от anonymous

Если писать на скале без отвращения, то получишь сверхтормозящее нечто, выжирающую всю память сервака за доли секунды.

Ну оно и понятно, что, например, в Twitter или LinkedIn работают ничего не смыслящие в ЯП дураки и пишут на скале, когда можно было всё написать на гуланге гораздо приятнее, выразительнее, да ещё и на памяти сэкономить!

Ну так нагугли уже про дженерики в jvm и императивные структуры данных в хаскиле и не позорься.

Type Erasure в JVM-дженериках действительно спорная особенность и мне тоже не нравится, но уж лучше такие, чем никаких. А какое отношение императивные структуры данных в декларативном хаскеле имеют к Go — это уже за гранью моего понимания.

Softwayer ★★
()
Ответ на: комментарий от anonymous

Таки посмотрел доклад — не увидел ничего удивительного/любопытного: один ответ Шипилёва по поводу «почему скала с tailrec-оптимизацией работает медленнее джавы без оной» сильно увлекательнее. Докладчик делает справедливый вывод: можно писать медленный код, можно более эффективный, и в большинстве случаев рантайм хорошо справляется с оптимизацией, но иногда в боттлнеках имеет смысл заморочиться и оптимизировать руками — в общем, всё точно так же, как в любом другом ЯП высокого уровня.

Softwayer ★★
()
Ответ на: комментарий от php-coder

Читай внимательно что там написано.

Недостатком C++ для нас был явный оверкилл для наших целей, на разработку уходила уйма времени, также большой проблемой для нас было то, что плюсовый фреймворк для Кокаина не представлял никакой возможности работать асинхронно, кроме как с помощью коллбэков. У нас было много обращений к различным сервисам, поэтому в результате скоро весь код стал одной большой лапшой из коллбэков. Масштабировать и отлаживать ее было очень сложно.

Пояснить что тут имелось в виду и почему перехода на Go в этом случае оправдана и она не имеет отношения к «хайлоаду»?

xpahos ★★★★★
()
Ответ на: комментарий от Softwayer

Понятно, что в go нет дженериков для клиентского кода, но это не помешало им иметь дженериковую мапу — вполне могли бы завезти и Either.

Могли, но не надо. Мне лично вообще не понятно зачем этот язык существует. Лучше бы Rust уж пилили, он хотя бы не такое унылое говно.

xpahos ★★★★★
()
Ответ на: комментарий от den73

с макаками проблема в том что как только проект вырастает из детских штанишек - оопс, с макаками он не вырастает.. и это становится фактором, когда хочешь-нехочешь, а приходится нанимать что то отличное от макаки.

AndreyKl ★★★★★
()
Ответ на: комментарий от den73

та ладно, 5 минут - кофе налил, готово. не вопрос для большого проекта.

AndreyKl ★★★★★
()
Ответ на: комментарий от xpahos

Ну преимущество гуланга над растом очевидно — гораздо более низкий порог вхождения. Это языки для решения разных задач разными людьми, и соответственно другие люди активно пилят Rust.

Softwayer ★★
()
Ответ на: комментарий от xpahos

В отличие от всех остальных языков, в го есть встроенная поддержка асинхронного программирования. Покажи мне в каком еще языке (кроме эрланга) есть встроенный multi way concurrent switch. Пока вы будете возиться с мьютексами, семафорами и отлаживать дедлоки на C++ и джаве, мне писать асинхронные алгоритмы на go просто сказка.

pftBest ★★★★
()
Ответ на: комментарий от Softwayer

что, например, в Twitter или LinkedIn

Ну какой же ты тупой-то, ужас. Я понимаю, что школьник, но попробуй хоть вчитываться, на что отвечаешь. Покажи мне код этих твиттеров. Вопрос был про ``писать без отвращения", продакшн код на скале — обычная императивная дрисня, причем уродливая, иначе медленно.

Ну и опять же по твоей логике:

например, в Гугол или Нетфликс работают ничего не смыслящие в ЯП дураки и пишут на голанге

Это как бы вообще не аргумент.

А какое отношение императивные структуры данных в декларативном хаскеле

К тому, что хаскиль с его ``выразительными типами" вообще не позволяет тебе писать императивный код, таким образом сливая тому же го по производительности позорно. Впрочем, на хаскиле вообще никто не пишет, так что нет смысла его рассматривать. Лучше бы окамл в пример привел, там хоть по-настоящему готовый для продакшна язык.

anonymous
()
Ответ на: комментарий от pftBest

Покажи мне в каком еще языке (кроме эрланга) есть встроенный multi way concurrent switch.

Это вы таким мудренным термином Go-шный select обозвали?

мне писать асинхронные алгоритмы на go просто сказка.

Какие именно алгоритмы? Не сарказм, действительно интересно.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

мудренным термином обозвали

Это не я обозвал, это оно так на самом деле называется. multiway concurrent control switch (select).

Какие именно

Да любые где есть больше одного источника событий. Всякие таймауты с отменой, балансиры, планировщики, и т.д. и т.п.

pftBest ★★★★
()
Ответ на: комментарий от pftBest

Это не я обозвал, это оно так на самом деле называется. multiway concurrent control switch (select).

Странно, Google выдает всего три ссылки, где используется именно такое название, но ни одна из них не ведет на официальную документацию. Ну да ладно, главное, что речь идет именно о select-е.

Собственно, странно требовать наличие встроенного в язык select-а. Это возможно лишь в тех языках, где из коробки в язык встроены и CSP-шные каналы (или что-то похожее, вроде mailbox-ов из модели акторов, как в Erlang-е). В других языках аналогичный функционал строится за счет библиотек. Хорошо или плохо — вот это уже интересный вопрос.

Да любые где есть больше одного источника событий. Всякие таймауты с отменой, балансиры, планировщики, и т.д. и т.п.

Когда речь заходит о «любых», то, скорее всего, речь вообще не зайдет ни о чем.

Вот, например, какие именно преимущества Go-шные каналы и гороутины дают для «всяких таймеров с отменой»?

eao197 ★★★★★
()
Последнее исправление: eao197 (всего исправлений: 1)
Ответ на: комментарий от eao197

Если работал с RxJava, то все ее мудреные операторы отлично выражаются через каналы и горутины как нативные алгоритмы, а не как приставка сбоку.

pftBest ★★★★
()
Ответ на: комментарий от pftBest

Если работал с RxJava, то все ее мудреные операторы отлично выражаются через каналы и горутины как нативные алгоритмы, а не как приставка сбоку.

Прекрасно. А можно пример? Вот, мол, какая простыня из макарон на RxJava, а вот всего три простые строчки на Go...

eao197 ★★★★★
()
Ответ на: комментарий от beastie

На самом деле встроенная конкуренция и каналы — это одна из самых главных плюшек языка.

Каналы — да, это давно известно.

Что такое «встроенная конкуренция» не сильно понятно. Речь по наличие гороутин и встроенного диспетчера, который распределяет гороутины по рабочим потокам в зависимости от состояний каналов, на которых гороутины «спят»?

За ссылку спасибо.

eao197 ★★★★★
()
Ответ на: комментарий от beastie

Вот тебе ещё (по-новее): https://blog.golang.org/pipelines

Ну эту статью как раз хорошо проштудировал где-то полгода назад, когда аналог select для плюсов делал.

eao197 ★★★★★
()

Конечно взлетает. Посмотри - https://habrahabr.ru/post/306768/. Человек 18 лет отпахал в аутсорс шарагах на Java и решил переписать тормозящий сервер на Go. Выяснилось, что он даже приложение написанное на Java не профилировал, лол.

anonymous
()

Не стоит вестись на хайп языков программирования, раби, ноджс, их еще будет немало.

anonymous
()

поживем - увидим. Но синтаксис с := вызывает улыбку у людей старше 25. Зачэм := ? Да шобы ассоциативный ряд у студентов был(видимо)

bryak ★★★★
()
Последнее исправление: bryak (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.