Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Чому ми не бачимо збільшення кількості golang розробників якщо їм платять більше ніж іншим?

Суб’єктивно go досі залишається у нас екзотичною мовою.

Судячи з зарплатних анкет в середньому go-розробники отримують більше ніж Java розробники. Також, за моєю, нічим непідтвердженою думкою, проекти з go цікавіші і під них є багато вакансій. За хороших розробників готові платити більше ніж за хороших java розробників.

Питання—що утримує розробників від вивчення go (а шо там вчити якщо ти вже вмієш на чомусь писати) та переходу на більш перспективні та високооплачувані проекти?
Ваші думки? Лінь? Відсутність часу? Вузький світогляд?

Можливо я не правий і всі навколо вже давно пишуть на Go та заробляють $300kk/sec а я тут просто розповів свої проекціЇ?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn

Найкращі коментарі пропустити

Использовал Go на нескольких проектах. Это очень интересная и хорошая технология, мне нравится. Но её использования всё же несколько ограничено. Условно и грубо можно сказать, что Go имеет смысл использовать тогда, когда нужен C, но на нём писать сильно больно и не хочется. Сюда относятся распределённые и нагруженные веб-сервисы. Основная фишка Go — наличие паралеллизма, быстроты и эффективного GC из коробки, нативное приложение на выходе. Если эти преимущества вы никак не будете использовать, то Go принесёт больше проблем, чем выгоды. Например, парсинг json на Go — это боль, если формат хоть немного меняется. Всё, что требует более-менее навороченного ORM и частого хождения в базу данных с большим количеством джойнов — это тоже боль. Некоторые аспекты, обусловленные консерватизмом при разработке этого языка, тоже боль, вплоть до того, что есть форки языка с целью это изменить. Т.е. в целом для всего остального остальные технологии дают более удобные и привычные варианты, а главное, уже наличествующих разработчиков и много проверенных в бою инструментов. И только на проектах с более специфическими требованиями требуется Go. Если кому-то из Go-разработчиков и платят больше, то не столько за знание самого языка, т.к. он очень простой в сравнение со многими другими языками. А за опыт во всём домене с прилагающимся стеком, к которому относится и Go: нагруженные системы, базы данных (с репликацией и триггерами), AWS, no-sql инструментарий и кеши, консистентность при передаче данных, сетевые протоколы, и т.д. и т.п. Либо что-либо с уклоном в бигдату, с соответствующим стеком. Не каждый первый программист знает всё, что надо, чтобы задизайнить и написать такую систему, для использования которой реально нужен Go. Но и систем таких на общем фоне не так уж много. Поэтому спрос на специалистов ограничен, и относитнльно редко такие проекты заходят в Украину, потому что либо нет доверия, либо нет умения продавать специфические услуги.
Висновки роби сам. :)

За хороших розробників готові платити більше ніж за хороших java розробників.

Проблема № 1: Что значит «хороших»?
Хорошие разработчики получают хорошие деньги не зависимо от технологии.

Також, за моєю, нічим непідтвердженою думкою, проекти з go цікавіші і під них є багато вакансій.

Проблема № 2: интереснее или нет зависит от субъекта.
Проблема № 3: проекты часто просто другие. Го — это часто системные тулы, много блокчейна.
Проблема № 4: «багато» — это сколько? По ДОУ: Golang — 26, Java — 336. Сюда же можете поиграться с зарплатным виджетом ДОУ и понять почему вам показалось что Го-программистам платят больше.

що утримує розробників від вивчення go

В моем случае — это Валялькин и тот факт что он такой не один в сообществе го. :)

Сейчас знание какого-то определенного языка мало что решает. Важнее разбираться в том зоопарке технологий из которых лепят веб приложения.
Ведь бизнес платит за работающее решение и ему плевать на каком языке оно написано, будь то Go или Haskel.
Так что вместо нового хайпового языка лучше подучить Redis или Elasticsearch пользы больше будет.

Ну и хорошо что мало. У нас в Киеве коммюнити ламповое, все друг друга знают, митапы бесплатные собираем по 100-120 человек (моя компания спонсирует), ходим на афтепати. Большинство гоферов — люди очень увлеченные, не типичные гребцы-работяги с потухшим взлядом. Почти все перешли с других языков, поэтому в команде из гоферов очень разнообразный опыт.

Давно приглядаюсь до цієї технології і можливості свчнутись на неї з плюсів, але мене стримує відносно маленький ринок вакансій зараз в Україні(і конкретно у Львові) по цьому напряму.
Стримує розуміння того, що я вкладу 50-60-100 своїх людиногодин вільного позаробочого часу у вивчення чогось нового, з великою ймовірністю, не знайду підходящу вакансію, не буду застосовувати здобуті знання і, як наслідок, через 3-6 місяців забуду, в той час як я це можу вкласти у покращення англійської/спорт/родину/поточну роботу, що дасть мені гарантований профіт.

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Go — друга мова на проекті.
Для першої — вона занадто покоцана, і зливає всім: Java/C#, TypeScript/JS, Python/PHP/Ruby, C++/Rust бо семантично бідна.

Виключення — тру мікросервісна система.
І то, коли з нуля.
А зазвичай був MVP варіант на іншій мові. на якій і далі можна писати прод версію.

Go — вдала мова. Але — друга. Думаю назавжди. Бо так спроектована.

А другу мову добре вивчати — ніколи :)
От і немає бажаючих

А другу мову добре вивчати — ніколи :)

це як, одна мова назавжди?
англійську вчити — ніколи :)

ніколи

рус — некогда

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

нагавнякать это будет приемлимо для проекта или нет?

залежить від проекту,
але якщо ти маєш років 10 досвіду, то межу гавнякання, думаю, відчуватимеш

то межу гавнякання, думаю, відчуватимеш

так.
тому код на основних мовах на яких я писав — я готовий показати та відстоювати
а код на других мовах — приховаю :)

навіть якщо то HTML+CSS. я бачив класний, не тільки в інеті. так — не вмію. тому свій не покажу :)
хоча, а що там такого, думаю більшість знає основи, та щось може написати

а гошники кажуть — перше що треба:
забути «джавне ООП». і не намагатися навіть!

Чому не бачимо, в мене десь вже півроку досвіду, але хочуть сенйорів з мінімум 2..3 роки.
Відповідно на джині 100 вакансій і 30 претендентів, а з наймами х.з.
Ще й буває хочуть тестові завдання щоб виконували.

Тільки замітив, що це некротопік. Соррі.

Нишевость Go. Я на своем С могу что угодно написать, а на Go — имеет смысл писать только микросервисы.

имеет смысл писать только микросервисы

Terraform
k8s

микросервисы

Ясно.

Звідки візьметься багато нових GO-програмістів, якщо в Україні взагалі закінчуються люди.
Скоро взагалі не буде із кого набирати нових програмістів.
Будь-яких. Навіть мейнстрімових.

рептилоиды заменят всех андроидами

omg

— How much watch?
— Six watch!
— Such much?
— For whom how.
— MGIMO finished?
— Ask!

Можно поподробнее для тех, кто совсем не в теме, пожалуйста.

ксеноморфы решили, что с разработкой на жабоскрипте отлично справятся андроиды

А что по этому поводу решили серые?

Бо не народились і почали активно виїзджати.

Бачу в багатьох почнеться когнітивний дисонанс із появою Golang 2.0.. )))

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

Цікаво, чому тоді всі теми про Го відкривають не гошники?!? )) Гошниками не народжуються, їми стають... і в кожного свої причини...
пс Я ж казав після виходу 2.0, а тут бачу все складніше..))))

иексепшены супер нужны

Ну дык эксцепшены в Go и так есть уже изначально в механизме panic-recover

поки що вроді 1.14 чи скільки?

убунта троха відстає від хіпстерів,
але все ще не 2.0,
так що видихаєм

Почав кодити як гуру

— кто тут кодит!?!
— да никто не кодит, это я куякнулся!
©

зі звьоздочкою.

?

в мозг? хотя, почему нет. главное, чтобы в глаз не попало

Я даж загугленный не понял

Потому что качеству кода на go некуда расти — оно и так самое высокое среди языков программирования

Кстати, как дела у Голанг в ембедах различной степени толстости? Как замена С должен же прокатить?

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

я думал там все должен заменить Rust

ага, а потім буде стаття:
Про ниасиливших Rust(или фигак фигак и сервисы на Go лучше)

Только там не Го будет, а, чтото другое уже.

Go2, тепер з дженеріками та ексепшенами, тепер і не відрізниш від справжньої мови програмування!

как там дела у голанг со сборщиком мусора?

Застрял в 80х годах прошлого века

отличный вариант для ембеддед

По задержкам — очень даже современный подход. В других местах тоже есть реализации схожего типа (Azul JVM, или то, что в Lua). (Только не надо говорить, что они совсем другие. Другие, да, но последствия похожи.)

Сборщик мусора в Go — самый прогрессивный по сравнению с другими языками программирования. Не тормозит и кушает мало памяти.

Не тормозит и кушает мало памяти.

за счет чего?

blog.plan99.net/...​e-collection-911ef4f8bd8e

The reality is that Go’s GC does not really implement any new ideas or research. As their announcement admits, it is a straightforward concurrent mark/sweep collector based on ideas from the 1970s. It is notable only because it has been designed to optimise for pause times at the cost of absolutely every other desirable characteristic in a GC. Go’s tech talks and marketing materials don’t seem to mention any of these tradeoffs, leaving developers unfamiliar with garbage collection technologies to assume that no such tradeoffs exist, and by implication, that Go’s competitors are just badly engineered piles of junk.

Обычный маркетинговый булшит под соусом „раньше было лучше”. Я ж говорю — застрял в 80х.

куйово, кажуть що тре юзать «ржавчину»

Зачем свичиться на го, если ты уже 10 лет успешно косишь ангуляром.

Ось свіжа стаття вийшла.
vc.ru/...​Ef4KzOviYOAb2JCnZXagniMD0

оригінал

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. — Rob Pike

підозрюю, що під brilliant малось щось на увазі із ФП — Haskell, Scala, і т.д.
також learned != mastered

оригінал ще раз

probably... maybe

в общем вяленькі студікі
і знову ж таки learned != mastered
можна ж такий код написати, one-liners, що люди без досвіду достатнього будуть півдня читати і розбирати

ну дак реклама жеж

в итоге достаточно неплохой язык эти бестолочи облажают.

ну с с++ жеж получилось, чем голанг лучше?

С С++ ничего не получилось приличного.

это всего лишь твой импринтинг

А твое хорошее отношение к нему

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

А в Go, говорят, грамотно многопоточность сделана. То что в STL как многопоточность — это уродство (обертки поверх pthread и виндовс потоков, причем не особо приличные).

т.е. в го многопоточность системнонезависима?
и что там с мусорщиком в го?

Да, грят, что она там не влоб обертка над системными потоками, а предоставляет что-то подобное «легким» потокам.

ну жаба жабой

руст-код без слез смотреть невозможно. я столько не пью

а прийдеться

С С++ ничего не получилось приличного. А твое хорошее отношение к нему — всего-лишь импритинг.

вніс в цитатник

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

Холівар між червоним та солодким)))
Хейтери називають Го недосконалим і неуніверсальним.. а поціновувачі пояснюють (ніби виправдовуючись:)), що Го може бути кращим за інші мови в конкретних кейсах...
На мою думку, і ті, і інші по-своєму праві.. Нє? ;))
Щодо роботи, то можу сказати, що її не є багато, як на PHP чи Python, хоча кількість пропозицій постійно збільшується...(інша справа, що їх якість не завжди є прийнятною).. і що подобається особисто мені, більшість варіантів, що надходять з Лінкдіна, є ремоут позиції...

ось (з світу джави) приклад. котірую Kotlin. як переконати писати на ньому людей я «в душе нє єто самоє».

Переходьте на ведроїд, там котлін в фаворі.

тому що вакансій мало + джава то вже мейнстрім

Расскажу свой опыт в США — я лично был бы не против переключиться на Go. Пишу на Go в свободное от работы время и в целом чувствую себя в нем комфортно. В основном приходят предложения поработать на контракте 3-6 месяцев с разных частей США и чаще даже не из Долины, а Флорида, Ценценати, Сэнт-Луис, Феникс — т.е. это большие центры довольно, но это не IT центры и порядок таких запросов скажем 15% от общего числа. И часто это смежные требования — типа у нас PHP, нужен Go программиста со знанием Angular, Docker/K8S, Java, Reaсt итд итп вообще кто на что гаразд. ЗП я бы не сказал, что конкуретные. Один раз пришел предложении на 300K и я даже переспросил, на что мне ответили, что все возможно. Google тоже предлагали пойти на собеседовании и Uber — но я пока как-то неуверенно себя чувствую для них :(( Нужно очень хорошо готовиться по алгоритмике и логическим задачам, им по сути все равно на каком языке вы писали до этого.

А так в большинстве предложении даже ниже, чем по рынку. Еще было «интересное предложениe» пройти в порно-стартап писать систему платежей на блокчейне, не знаю зачем она там :))

Вот пример сегодняшнего дня: Java, C/C++ and Go. Уточнил, что подразумевается под long term. — от 6 мес до года.

Position: GoLang Developer
Location: St Louis, Missouri
Duration: Long term Contract
Interview Mode: Phone and Skype
Key Skills: Java, C, Go Language/GOLANG/GO
Job Description
* 6 to 8 Years of IT Experience Java.
* 2+ years of hands-on experience as a Go Lang/C/C++ programmer with object-oriented analysis, design, and implementation expertise.
* 2-4 years of hands on Experience with Linux operating systems; Cloud experience is a plus.

Client ::Cognizant/Centene.
Rate : : According to Last project of candidate
Project Duration : Minimum 6 Months (May be Extended)

Теперь смотрите, мед страховки нет, вы ее покупаете сами, job security тоже нет и по сути контракт может закончится и раньше, если чего-то пойдет не так, дальше вам нужно потратиться на переезд, вы теряете депозит по аренде, а у нас еще и платим 2 мес fee стоимости аренды, регистрацию машины, права, найти новое жилье, перевезти детей, жену итд, итп, налоги по контракту больше и часто более высокий рейт съедается такими расходами.
Ну и надо понимать, что такое контактор — все понимаю, что человек пришел и ушел. Какую работу ему в этом случае доверят ? И клиент Cognizant... дальше можно не продолжать.

Довелось работать с «гошниками» из штатов. Сложилось впечатление, что это просто свитчеры с других языков, которые пошли на го только ради зп, а писать на нем так и не научились. Как результат — куча говнокода на го, что напрочь отбивало желание даже смотреть в его сторону.

Судячи з зарплатних анкет в середньому go-розробники отримують більше ніж Java розробники.

Эти анкеты довольно далеки от реальности.

Також, за моєю, нічим непідтвердженою думкою, проекти з go цікавіші

Нет.

За хороших розробників готові платити більше ніж за хороших java розробників.

Нет. Не знаю как там с Java, но если сравнивать с тем же .NET Core (который несмотря на то, что появился не так давно, куда менее «экзотический», чем Go), то есть много вакансий, зарплата на которых очень сильно и очень в большую сторону отличается от того, что предлагают на Go. (хотя это опять же, если опираться на данные DOU, которые не точны)

Питання—що утримує розробників від вивчення go (а шо там вчити якщо ти вже вмієш на чомусь писати) та переходу на більш перспективні та високооплачувані проекти?

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

Можливо я не правий і всі навколо вже давно пишуть на Go та заробляють $300kk/sec а я тут просто розповів свої проекціЇ?

Не правы. Пишут. Но не на Go. Но зарабатывают.

Как-то так.

Не правы.

okay.jpeg

когда уже закончиться выбор языка по критерию «платят больше»

Коли будуть платити «fuck you» money.

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

А куда там развиваться то? Там все настолько скучно и примитивно, что прям аж печаль-тоска. После знакомства с Go, и 2 попыток вернуться на PHP, меня не покидало чувство, что я вернулся назад век так в 19... Код на PHP мне больше не казался чем-то интересным, скорее старым и не логичным... PHP, это такой себе франкенштейн, в который тянут все понемногу с других языков, только вот зачем, мне лично не понятно. Я с ним знаком не один год, если что, и имею некоторое представление о чем говорю.

Чтобы это осознать, не обязательно было переходить на Go. Любой нормальный язык бы подошел.

Например? И чем вам Go не нормальный язык? Извините конечно, но мне нытье сеньеров и прочих немного поднадоело. Go плохой язык, JavaScript вообще жесть судя по коментам некоторых. Так в чем проблема? Не нравиться язык, не пишите на нем. Кто вас заставляет? Напишите свой, а мы заценим. Это я не лично вам, а в общем, если что.

Имелось в виду, что PHP ненормальный, а не Go.

Кеп

нытье сеньеров

Вот если бы не эти слова, был бы нормальный комментарий. А так — выдаёте себя с потрохами.

Каков круг решаемых задач на go, аналогичен ли он php-шным? Если нет (скорее всего), то не сравниваются ли яблоки с оранжевым.

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

Мне просто видится что языки в разных нишах. На Go не думаю что будут писать Magento 2, хотя и можно или на php балансировщик нагрузки, а вот здесь уже будут ограничения.

Согласен что на go потенциально можно решать больший класс задач чем на php, но делать всё же этого не будут и они так и останутся для разных областей.

это всё сахар, язык это инструмент, и вообще как можно это сравнивать если насколько я понимаю Го это язык ФП

насколько я понимаю Го это язык ФП

Ні, го це процедурна мова з конкуренсі.

Го это язык ФП

Да не суть. Просто есть вещи с которыми приятно работать, а есть те с которыми нет. И у каждого они свои. Вот и все.

как можно это сравнивать

Ну Go вот с C++ сравнивают и ничего.

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

Судячи з зарплатних анкет в середньому go-розробники отримують більше ніж Java розробники.

А можно статистику кто где и на сколько больше зарабатывает ?

Дам відповідь у стилі гошників.

Є думка що наявність інформації про зарплатню та попит го-програмістів знижує кваліфікацію розробників та якість програм — тому що замість того щоб копіпастити на го пишуть на тому на що є попит на ринку і потім отримують за це конкурентру оплату.

jobs.dou.ua/salaries

Далі самі розбирайтеся.

ответ настоящего гошника.

https://ibb.co/gX3fd0

И де там зарплаты ?

Go архитекты работают за еду.

jobs.dou.ua/salaries

Далі самі розбирайтеся.

Так и вы поразбирайтесь. Особенно посмотрите на количество «Анкет» и посравнивайте с другими технологиями, нарисуйте графики, понакладывайте графики друг на друга.

Использовал Go на нескольких проектах. Это очень интересная и хорошая технология, мне нравится. Но её использования всё же несколько ограничено. Условно и грубо можно сказать, что Go имеет смысл использовать тогда, когда нужен C, но на нём писать сильно больно и не хочется. Сюда относятся распределённые и нагруженные веб-сервисы. Основная фишка Go — наличие паралеллизма, быстроты и эффективного GC из коробки, нативное приложение на выходе. Если эти преимущества вы никак не будете использовать, то Go принесёт больше проблем, чем выгоды. Например, парсинг json на Go — это боль, если формат хоть немного меняется. Всё, что требует более-менее навороченного ORM и частого хождения в базу данных с большим количеством джойнов — это тоже боль. Некоторые аспекты, обусловленные консерватизмом при разработке этого языка, тоже боль, вплоть до того, что есть форки языка с целью это изменить. Т.е. в целом для всего остального остальные технологии дают более удобные и привычные варианты, а главное, уже наличествующих разработчиков и много проверенных в бою инструментов. И только на проектах с более специфическими требованиями требуется Go. Если кому-то из Go-разработчиков и платят больше, то не столько за знание самого языка, т.к. он очень простой в сравнение со многими другими языками. А за опыт во всём домене с прилагающимся стеком, к которому относится и Go: нагруженные системы, базы данных (с репликацией и триггерами), AWS, no-sql инструментарий и кеши, консистентность при передаче данных, сетевые протоколы, и т.д. и т.п. Либо что-либо с уклоном в бигдату, с соответствующим стеком. Не каждый первый программист знает всё, что надо, чтобы задизайнить и написать такую систему, для использования которой реально нужен Go. Но и систем таких на общем фоне не так уж много. Поэтому спрос на специалистов ограничен, и относитнльно редко такие проекты заходят в Украину, потому что либо нет доверия, либо нет умения продавать специфические услуги.
Висновки роби сам. :)

Например, парсинг json на Go — это боль

Бо було мало пояснень як це правильно робити.

Стаття як парсити різнотипний JSON в Go.

Уф, пройшло 2.5 роки. Останнім часом багато писав на Go і зараз можу цілком погодитися. У 98% випадків все працює «з коробки», а інші 2% вирішуються відомими способами.

Имхо, так и есть. Го идет просто как придаточная технология к домену

хех, мы вам перезвоним ©

Я так понял что дженериков и трай кэчь до сих пор нет.
Спасибо, вычеркиваю.

З.Ы А как насчет дебагера? Уже появился? :-)

А как насчет дебагера? Уже появился?

Є думка, що наявність дебаггера знижує кваліфікацію розробників та якість програм—тому що замість того щоб думати як написати добре, пишуть абияк а потім сидять і дебажать.

www.yegor256.com/...​-you-still-debugging.html

Є думка, ... yegor256

Перестаньте читать всяких м...ков

Почему я прочитал «маньяков»?

Почему я прочитал «маньяков»?

Потому что вы щасливый человек и поэтому это самое страшное что ваш мозг смог придумать (а бывают вещи и по-страшнее) :)

Автоматизация рутины помогает разгрузить мозг и загрузить его обработкой полезной информацией, для этого и создаются всякие тулы.
А вообще звучит как тупая отмазка.

А наявність монітору не знижує часом кваліфікацію? А то сидять і витріщаються в нього замість зосередитися на клавіатурі і одразу набирати текст програми без помилок.

труъ програмер пише в нотпаді, а не в ІДЕ , яка заміняє йому частину міска

Я не тру і звільнену частину мозку краще на фейсбучєк витрачу ніж на викривлення пальців у комбінації потрібні ноутпадам та вімам.

ctrl+c & ctrl+v, цього достатньо щоб скопіпастити із стековерфло в нотпад; а vim — це для маньяків.

труъ програмер пише в нотпаді

... который бумажный

Это очень глупая мысль. Не цитируйте ее больше.

Егор Бугаенко верен себе — ничего не понял, всё переврал и на этом основании написал шумную статью. Есть seagull management, а тут seagull blogging.

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

Далее скомпоную два своих старых сообщения по этому вопросу:

[1]
Ситуация «сам не понимает, как будет работать код» нормальна для нескольких случаев:
1. Обучение программированию — когда надо прочувствовать происходящее именно в виде последовательности состояний и разницы между ними. Это же — не в случае обучения программированию вообще, но принципиально новым средствам (языки и фреймворки).
2. Странности работы платформы/фреймворка/etc., не документированные, плохо описанные, нарушающие документацию, etc.
3. Очевидно, кордампы всех видов и происхождений.

И правильным подходом должно быть не «запретить отладчик», а «отладчик — не замена тестам» и «затраты времени на отладчик должны быть обоснованы только чем-то из списка выше, но не неумением тестировать».

[2]
Я бы уточнил так: использование отладчика без тестов — или каменный век, или любая разновидность подхода, не ориентированного на целевое долговременное использование кода, или редкие особые случаи, когда автоматизация тестирования невозможна.

Во вторую ветку входят, совершенно без всякой отрицательной коннотации, учебные цели. Школьники/студенты пишут задачу, чинят отладчиком, сдают на сайтах типа e-olymp.com и забывают. Это нормально. Точно так же во вторую входит «одноразовый код» по Спольски, и это тоже нормально.
Ненормально, когда код должен жить хотя бы полгода, и ему не фиксируют тесты, но находят время гонять отладчик. Во времена, когда каждому доступны VCS, облака для сохранения не только кода, но и тестов, и тестовые фреймворки для всех языков, это действительно каменный век по уровню использования средств.

Но если хочется получить ценность результата, то программист в первую очередь ценит свои усилия. Запуск отладчика и вызов в нём чего-то вручную — это неповторяемые действия, требующие умственных затрат на их повторение. Автоматизация их повторения — это уже тестовый фреймворк. Но такие фреймворки качественного уровня, которые запускают готовую программу, правильно и вовремя вводя/выводя данные и иначе взаимодействуя с ней, сложны, дороги и в общем случае принципиально невозможны (все эти Selenium решают важные частные случаи, но не общую задачу). Зато оформление функций и модулей в понятно управляемые песочницы — реализуемы в подавляющем большинстве случаев.

Неиспользование отладчика должно быть не намеренным действием, а следствием усилий, приложенных к автоматизации тестирования. «Каменный век» активного использования отладчика — это интегральная статистическая характеристика всего процесса разработки, а не одного действия.

В третьей ветке (неавтоматизируемое) заметное место занимают, например, скелет глубокосистемных вещей типа управлений режимами процессора, работа с аппаратными прерываниями и т.п.; после того, как они хоть как-то ожили, уже можно применять менее ручные средства.

Ваша прекрасная аргументация отлично поясняет почему в Go нет отладчика — язык в котором запрещена адресная арифметика и есть управление памятью вряд ли будет досаждать частыми крэшами. А заточенность на микросервисность исключает большие куски запутанного кода. Подозреваю, что главной проблемой отладки в Go является синхронизация, но тут надо головой работать.

Ваша прекрасная аргументация отлично поясняет почему в Go нет отладчика — язык в котором запрещена адресная арифметика и есть управление памятью вряд ли будет досаждать частыми крэшами.

Там, где крэши возможны (в Go это любой случай паники в горутине, не перехваченной выше) — нужна и возможность разобрать последствия, а прочие проблемы почти не зависят от конкретного языка (разве что Prolog-like не войдут туда), и точно так же актуальны для Go.

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

Это стандартный ответ на любую проблему, и точно так же неконструктивный.

любой случай паники в горутине, не перехваченной выше

Ну и из какого места должны рости руки у программиста?

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

Ок, послушаю, как с помощью дебаггера словить race-condition.

Ну и из какого места должны рости руки у программиста?

Оттуда же, откуда у всех.

Ок, послушаю, как с помощью дебаггера словить race-condition.

А я тут при чём? И при чём тут Go? Вам же горутины с каналами выдали.

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

расскажи это жабопрограмистам

В этих ребят верю. Только вот Go диктует немножко другой подход к программированию. Это кстати к вопросу о дженериках и исключениях.

чем это спасает от крэшей?

1. Отучение от привычки передавать ошибку через несколько уровней абстракции.
2. Явное поведение функции для каждого конкретного типа, включая возможные для этого типа ошибки.

1. Отучение от привычки передавать ошибку через несколько уровней абстракции.

Всмысле? Вы предлагаете хендлить ошибки в том же месте где они и возникают?

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

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

Во-вторых даже передавая ошибку «явно», ее можно просто не обработать, что хуже. Тут приходится надеятся на то, что кто-то по ходу стека ее обработает... oh wait...

1. Мосье знаком с Go?
2. Мосье когда-нибудь работал с большими проектами на кошерном plain old C?

большими проектами на кошерном plain old C?

linux kernel, any1?

Ну и как там работают эксепшены?

А есть что по теме сказать вместо обсуждения моей биографии?

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

ок. теперь я знаю, как избавиться от крэшей

intellij целую ИДЕ корябает

Сорян, но не совсем понял :-)

Угу, для языка который «никому не нужен»

Дебаггер вроде есть, дженерики на подходе...

golang — така собі мова яка вирішує такі собі проблеми (в основному швидкість компіляціі, яка є проблемою тільки гугла). майже preemptive scheduler допомагає писати код, який є безсумнівним покращенням поряд з джава гамнокодерами, які навіть в 2018 році часто досі луплять blocking io або «асинхронно» запускають блокуюче іо на пулі. деякі дизайн рішення достойні спеціальних нагород (напр. опціональні ; що нагадує деякі потужні ідеї дизайну js).

менедження залежностей — просто усратись можна, після 8ми років нарешті дойшло, що треба напевно щось з цим робити.

по-моєму, люди на ньому пишуть, бо воно статично лінкується по дефолту, для деяких людей (пхп, js) це step up, тут все ясно. третя категорія людей просто не хоче працювати з джава програмістами, їх теж можна зрозуміти. ще бачив «програмістів» які розказували що golang — це як с, «машинний код вказівники», «нема jvm», правда не могли пояснити хто гарбедж колектить пам’ять їх гоу-гамнокоду, тут теж все ясно.

як можна побачити у всіх свої причини, але спільно одне — люди пишуть на гоу бо він вирішує дуже специфічні проблеми, які в них стоять (час компіляціі, лінкування, краще-ніж-блокуюче-іо для неосиляторів, і тд.) або вони упороті на всю голову і думають що це найкраща в світі мова (для бонус очків знайди такого в темі нижче).

доу просто заповнив нішу, вирішуючи декілька проблем, які погано вирішувались або складно іншими мовами + пуш від гугла, не більше не менше, нічого особливого.

якщо б джава розвивалася швидше і краще, гоу взагалі б не вистрелив і помер би як і інші чудо-винаходи гугла (привіт, дарт).

rust в сто разів краща мова з точки зору дизайну і фіч, швидкості і крутих дійсно zero cost abstractions. та навіть с++ 17/20 напевно покраще буде. але в мозілли нема грошей гугла а в с++ стільки легасі і репутації (і книжок страуструпа), що відмитись тяжко, тут вже упередження виробились.

(привіт, дарт).

О, дарт еще заставит всех страдать, если гугл спрыгнет с андроида на фуксию

дарт вообще про другое: декларативный язык для юай

Мы говорим про одно и тоже?

Dart is an object-oriented, class defined language[9] using a C-style syntax that transcompiles optionally into JavaScript

Dart is well-suited to reactive programming, with support for managing short-lived objects—such as UI widgets—through Dart’s fast object allocation and generational garbage collector.

Flutter же говорит, что у них все приложение будет на dart, не только ui

ну пока у них особо выбора нет

доу просто заповнив нішу, вирішуючи декілька проблем, які погано вирішувались

Курилка для айтишников и зарплатный опрос, я думаю.

rust в сто разів краща мова з точки зору дизайну і фіч, швидкості і крутих дійсно zero cost abstractions. та навіть с++ 17/20 напевно покраще буде.

тут детальніше, напр.,де брати растаманів із хоча б 3ма роками раста-стажу
а ще є Nim ....

Використовуй float64 як базу, і немає проблем.

лол, ну впринципе для тех кто в го перешол с пхп норм решение

З точки зору авторів мови це занадто складна концепція якою ті для кого мова призначена все одно не зможуть нормально скористатися. Там типо напиши один раз правильно, а далі задіюй магію копі-пейста.

В Go дженериков нет что ли?

в Go есть Вальялкин, что вам ещё надо?

Я очень сильно далек от Go, но уже несколько раз встречаю фамилию этого человека. Стало даже интересно. Первичный гуглинг результатов не принес. Можно ссылку на какое-то его выступление, или публикацию?

Я очень сильно далек от Go, но уже несколько раз встречаю фамилию этого человека. Стало даже интересно. Первичный гуглинг результатов не принес. Можно ссылку на какое-то его выступление, или публикацию?

зачот, поржав :-)

у меня есть 2 языка на которых я не хочу писать — 1 из них Go — как по мне откровенно убогий язык. в придачу хваленная производительность не такая и высокая в сравнении с той же Java (www.techempower.com/...​ta-r16&hw=ph&test=fortune). + наличие всяких Вальлякиных и ему подобдных в Go-комьюнити.

по поводу ЗП — если вы разбираетесь в программировании, то бабки будут даже в PHP, нет никакой разницы. а если вы не шарите то бабки вам нигде не светят

наличие всяких Вальлякиных и ему подобдных в Go-комьюнити

Вы не шарите, це перемога, а не зрада

go-розробники отримують більше ніж Java розробники.

на коэффициент незаменимости?

під них є багато вакансій

угу, особенно для джунов...

Ну и хорошо что мало. У нас в Киеве коммюнити ламповое, все друг друга знают, митапы бесплатные собираем по 100-120 человек (моя компания спонсирует), ходим на афтепати. Большинство гоферов — люди очень увлеченные, не типичные гребцы-работяги с потухшим взлядом. Почти все перешли с других языков, поэтому в команде из гоферов очень разнообразный опыт.

Не переходи) Я же и пишу что хорошо что гоферов мало.

Вы бы хоть написали куда именно не приходить и где можно посмотреть расписание :)

Поправка: и где не смотреть расписание :)

а ссылочку на расписание можно?)

Go це більше девопс, інфраструктура, ні бізнес-логіку ні ентерпрайз на ньому особливо не накатаєш. Маленькі, надшвидкі мікросервісики, які роблять щось нескладне — так. Бекенд, повністю написаний на Go — такого ще не зустрічав.

Ну, і незважаючи на «вісім років на ринку», тулзи досі сирі — 25 зірочок на ґітхабі вважається вже серйозним інструментом, а в більшості все доводиться писати самому. Плюс незрозуміло, який менеджер залежностей юзати. Плюс важко дебажити. Плюс ООП для збоченців.

Ну і if (err != nil) return err, nil це звісно жесть жесть жесть.

Тому і платять більше — як шахтарям, доплата за шкідливість.

Коментар порушує правила спільноти і видалений модераторами.

Каждому свое. Это самый лаконичный язык, из всех с которыми я знаком.

ООП для збоченців

Насколько я знаю, его там нет в принципе. И это даже очень хорошо. А то эта секта оопешников немного поднадоела...

А то эта секта оопешников немного поднадоела...

Яка секта? ООП ніхто не використовує. Єгор Бугаєнко один з купкою однодумців за всіх відстрілюється.

ООП ніхто не використовує.

в голанг или вообще?

Взагалі. Ніхто.

Насколько я знаю, его там нет в принципе

Есть. Просто без наследования.

ООП без наследования и ФП без функций ?

Всё немного хитрее.

A field declared with a type but no explicit field name is called an embedded field. An embedded field must be specified as a type name T or as a pointer to a non-interface type name *T, and T itself may not be a pointer type. The unqualified type name acts as the field name.

А чуть дальше

A field or method f of an embedded field in a struct x is called promoted if x.f is a legal selector that denotes that field or method f.

Promoted fields act like ordinary fields of a struct except that they cannot be used as field names in composite literals of the struct.

Given a struct type S and a defined type T, promoted methods are included in the method set of the struct as follows:

If S contains an embedded field T, the method sets of S and *S both include promoted methods with receiver T. The method set of *S also includes promoted methods with receiver *T.
If S contains an embedded field *T, the method sets of S and *S both include promoted methods with receiver T or *T.

То есть наследование есть, и даже множественное (этих embedded полей может быть более одного). Но
1) нет виртуальных методов, соответственно, толку с него ноль;
2) о том, что оно есть, ни один гопник не признается даже в ответ на прямую цитату и живой пример.

гопник

Так толсто, что аж тонко.

Я даже не уверен, что это моё изобретение, но других слов для характеристики этого сообщества как-то не находится. Само всё время приползает.

1) нет виртуальных методов, соответственно, толку с него ноль;

Опять-таки, всё немного хитрее. Любой метод — как бы виртуальный. По указателю на интерфейс вызывается дочерний метод структуры, а не родительский.
Кроме того, по факту утиной типизации, наследование имеет более широкие возможности, чем в обычном классовом наследовании.

Та нє... Це так в Objective-C пишуть. Прокатує

nil был ещё в LISP, 1958 г.

Это null — это какой-то голландский сыр nil :)

Бекенд, повністю написаний на Go — такого ще не зустрічав.

у нас полностью на го написан бекенд, отлично со всем справляется.

Ну і if (err != nil) return err, nil це звісно жесть жесть жесть.

try — catch конечно выглядит сильно лучше

Try catch не используется для передачи ошибок из метода — а для обработки исключений. Улавливаете?

А в го все йде через повернення ерору і неможливо зрозуміти це норм виконання чи «пропало все»

если «усьо пропало» — возвращаем ошибку каллеру, если нет — логируем варнингом и скипаем в месте получения. Надо немного шевелить мозгами, вместо простой передачи эксепшна вверх по стеку — это факт. Может для кого-то это и минус

А ще не можна окремо обробити різні помилки.

почему?

Надо немного шевелить мозгами, вместо простой передачи эксепшна вверх по стеку —

так це ж Сі-вей, для ООП головного моску не понятно.

що можу сказати, то С-вей, це повертати ерркод в ретурні, і параметри через вказівник,
а Го дозволяе ретурном повертати щось подібне на тупл Пайтона, чи не так? чи як?

golangtutorials.blogspot.com/...​es-from-go-functions.html

retValue, err := my_function()
if err == nil { //go ahead with normal code
} else { //error handling code
}

ось про що я і писав, Сі-вей, але без вказівників (і екзепшенів) але із мултіпле ретьорн (чого нема ні Сях, ні плюсах, ні Джабі).

це вже за межою мого поніманія

В C# есть множественные возвращаемые значения из функций через деконструкцию и tuples.
Так что там можно писать 1 в 1 как на го, только понятное дело так никто не делает.

В C# есть множественные возвращаемые значения из функций через деконструкцию и tuples.

По моему это только в С# 7 добавили ?

Tuple были еще с незапамятных времен. Но в C# 7 их сделали чуть красивее.

Я не про сам тьюпл, я про —

множественные возвращаемые значения
        public static (int, int) DoSomething ()
        {
            return (1, 2);
        } 


        public static void Caller ()
        {
            var(a, b) = DoSomething();
            Console.WriteLine(a);
        } 

Ага и теперь выставьте фреймворк ниже 4.6.2 и посмотрите как оно скомпилится.

И? Если вы на 4.* фреймворке вы без проблем обновитесь даже с семеркой или 2008 серваком на 4.6.2. В чем смысл ставить ниже ?
К тому же в 7 версии языка деконструкция работает и для value tuples поставленых через нугет, а он и для 4.5 заведётся.

Я вчера проверял, на 4.6.1 не работает.

Что говорит? www.nuget.org/...​ckages/System.ValueTuple не хватает? Или версия языка не задана нужная? Или это попытка доказать, что на 4.6.1 не работает?

Попытка разобраться, так как намсдн написано, что этот ф-ционал работат с 4.6.2

Я ж говорю, что у нас проект до недавнего времени был на 4.6.1 и там все это работало.

Очень странно, вчера дома на 4.6.1 у меня не работало, правда я сразу на 4.7.2 обновил, что бы завелось.

Но на МСДН написано следующее -

Starting with C# 7.0, you can retrieve multiple elements from a tuple or retrieve multiple field, property, and computed values from an object in a single deconstruct operation.

И насколько я понял 7й шарп соответсвует как раз 4.6.2

Завелось на 4.7.2, потому что там ValueTuple включили в стандартную либу.

И насколько я понял 7й шарп соответсвует как раз 4.6.2

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

То есть либо =< 4.6.1 + дополнительные либы.

Либо 4.6.2 и выше без всяких дополнительных либ.

4.7+ без либ, на сколько я помню, но лучше уточнить.

Вообще, зачем эти архаизмы, есть же .NET Core :trol:

Только что ради интереса на 4.5 запустил такую прогу:

public static void Main(string[] args)
{
    var (a, b) = (1, 2);
}

Можно еще совсем красиво вот так :)
public static (int, int) DoSomething() => (1,2);

Все языки движуться кудато в скалу. Не удевлюсь если к 10 дотнету имплиситы добавят, шоб были.

В дотнете похожие задачи решаются через extension methods. Впринципе в с# из очевидного, раз речь зашла о скале, нет продвинутого паттерн Матчинга, дискриминейтед юнионов, утиной типизации и хвостовая рекурсия работает очень условно. Вот тут что в F#, что Scala будут куда удобней для декларативного кода.

И мне эта функция постоянно режет глаз со своим аутом, и не всегда нужным возвращаемым результатом, я постоянно должен создавать переменную перед вызовом и лепить корявый IF, лично я предпочитают сделать обертку метод в котором лежит человеческий try catch и\или налепить своих проверок, где я могу ловить кривые стринги приходящие в метод, вырезать лишнее и добавлять нужное и решать самому — выплюнуть юзеру ошибку или молча сожрать все кривые\путые строки и вернуть null.
Все равно result будет пустым если TryParse не сможет распарсить строку на входе. Короче так себе функция.

мултіпле ретьорн

std::tuple

(чого нема ні Сях, ні плюсах, ні Джабі).

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

чого нема ...ні плюсах

ейн
std::tuple create_a_tuple() {
return {20, std::string("baz“), 1.2f};
}
цвей
struct RetValInitialized {
int inumber = 17;
std::string str = “foobar”;
float fnumber = 2.24f;
};

RetValInitialized create_an_initialized_struct() {
return {};
}

дрей
struct RetVal {
int inumber;
std::string str;
float fnumber;
};

RetVal create_a_struct() {
return {20, std::string("baz"), 1.2f};
}

итд итп

і чого б це секта приплюснутих оживилася?
наступив на мозоль?

секта приплюснутих

это все, что на что вы способны? неудивительно

в плюсах уже є мультіпле ретьорн?
тільки не тре клеїти структурии, якими можна наставити костилів і в звиичайних

в плюсах уже є мультіпле ретьорн?

проблемы со зрением?

тільки не тре клеїти структурии

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

проблемы со зрением?

хамішь парніша

только не надо рассказывать, что мне надо

а памагі матерільно....

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

створи тему «С++ луччечем ГО і другіє язікі»

хамішь парніша

у тебя пример беру

а памагі матерільно....

Бог подаст

створи тему «С++ луччечем ГО і другіє язікі»

зачем? мне не надо никому ничего доказывать. я указал на явное несоответствие с действительностью здесь: dou.ua/...​rums/topic/25288/#1438671
и на этом достаточно

«все куйня, только ты да я...да и ты куйня, только я» ©

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

А вот по сравнению с прямой реализацией (которая может несколько значений вернуть в регистрах, а не складывать куда-то на стек) — однозначно хуже.
А в языках типа C++ на это могут навернуться проблемы, если возвращаемое значение принадлежит классу с нетривиальным копированием и это явно не оптимизировали (или с запрещённым копированием). Move спасает не всегда.

Но, забегая вперёд, такой нету. Ни одна конвенция вызова сейчас такое не допускает. А если вспоминать Go, то там вообще всё передаётся через стек, включая единственное возвращаемое значение. Так что они это не исправили.

С с классами.

ассемблер с классами

да пофиг. шо там с приплюснутостью? что это вообще?

Она уродлива

чем же?

безумно многословна.

не пешыте многа букв

namespace std;

transform(ля-ля-ля.cbegin() ля-лял-ля.cend(), оля-ля-ля.cbegin(), уля-ля-ля.being(), [=ло, &ли, та] (const auto& лю, const auto& лe)){мой_ахренительный код;});
За это нужно сильно и по рукам быть, если этот namespace не в очень маленькой области видимости.

Бред

За это нужно сильно и по рукам быть, если этот namespace не в очень маленькой области видимости.

это был всего лишь пример. на плюсах тоже можно писать компактно

А это уродство в c++ из-за совместимости с си, где не додумались сразу ввести типы вектор, матрица, тензор (н-мерная матрица) и строка и поддержать их на уровне компилятора.

да щас — все это говно тянуть в компилятор

Ага, только фортран с этим всем рвал С и С++ как тузик грелку еще 10 лет

можно ссылку на рвание? хочется порадоваться за фортран

Еще совсем недавно без фортрана ты не мог собрать ни BLAS, ни LAPACK.

я? а зачем оно мне приперлось?

А вообще прикольно читать вас, молодежь.

так ссылки что, не будет?

можно ссылку на рвание? хочется порадоваться за фортран

Ну як же? Всі оці операційні системи, драйвера, ігри, офісний софт і все інше написане на фортрані... WAIT, OH SHI~

Многий научно-расчётный софт (включая библиотеки) — таки на нём. У Виктора просто весьма специфическая специализация в IT, где это всё реально нужно.

А операционки и офисный софт на фортране не писали даже в былые времена.

Тут другое — из C/C++ — языков, предназначенных, по сути, для системного программирования и выжимки максимальной производительности из «железа», возможной для языка высокого уровня, стали лепить универсальный язык для решения широкого круга прикладных задач.

А операционки и офисный софт на фортране не писали даже в былые времена.

Ну не в ядре, но системный софт в userland писали. Я видел сам. Хотя тут приходилось, конечно, преодолевать кучу откровенных неудобств языка того времени. Чего стоит объявление символьных строк в духе

REAL*4 MESSAGE(3) /'HELL', 'O WO', 'RLD!'/

Офисного софта в нынешнем понимании было крайне мало, но тоже был. С теми же проблемами.
По сравнению с этим C, Pascal и т.д. были безусловно удобнее.

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

Ну а что делать, если стоит задача выжать производительность?

Тут другое — из C/C++ — языков, предназначенных, по сути, для системного программирования и выжимки максимальной производительности

божий дар и яичница
си — системный язык, это да
с++ задумывался как раз как прикладной язык, обратно совместимый с си

Надо немного шевелить мозгами, вместо простой передачи эксепшна вверх по стеку — это факт.

Вы хотели сказать «пальцами»? Потому что копипастить if (err) return err; мозгов не надо вообще.

А вообще существует теория, почему подобные языки популярны — там где плюсовику упадет сразу готовый лайаут класса с наследованием и виртуальными функциями, гопнику нужно будет сидеть и мучить клавиатуру переизобретая велосипед. Чтобы мучить клавиатуру мозги включать не надо, а там и рабочий день закончился. И голова не болит

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

По факту — 4 года проекту и полет нормальный. Как только начнем страдать от недостатков женериков или обилия if (err) return err; — я сразу напишу на доу статью

Как только начнем страдать от недостатков женериков или обилия if (err) return err; — я сразу напишу на доу статью

Зачем страдать? Вам же за строки кода платят, тут наслаждаться нужно.

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

именно!

Адмінам платять за відсутність роботи.

yes ser

ерору

прочитав спочатку, як «єпопи»

у нас полностью на го написан бекенд, отлично со всем справляется.

Это вестимо 100500 микросервисов по сервису на каждую таблицу и чих, итд.

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

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

зачем его в макро, если можно создать новый сервис =)

Я не спорю, но это говорит о том что Го годиться только для узкого круга компонентов бакэндов.

узкого круга компонентов бакэндов

все пытаюсь понять — для какого? что нельзя сделать на го?

все пытаюсь понять — для какого?

Для любого, который не простой микросервис.

То что не каждый проект можно разложить на пачку микросервисов — оставим срачь для другой темы.

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

На го напиписаний кубер, терраформ (а також інші хашикорпівські штуки) і ще купа всіляких серверів і тд.

Ви бачили кодобазу куберу? Там більше логіки ніж за 5 років на галерах люди пишуть. Відповідно, воно все якось експлуатується, допилюється, люди туди контриб’ютять і воно весело їде у продакшн.
Ваш аргумент невалідний.

Ви бачили кодобазу куберу?

Полез посмотреть. Куда не сунься одни шелл-скрипты. Где смотреть крутую логику?

по сервису на каждую таблицу

лучше 2

І проксі з лоад-балансером до кожного з них

try — catch конечно выглядит сильно лучше

Result или Either вам в хату.

Сейчас знание какого-то определенного языка мало что решает. Важнее разбираться в том зоопарке технологий из которых лепят веб приложения.
Ведь бизнес платит за работающее решение и ему плевать на каком языке оно написано, будь то Go или Haskel.
Так что вместо нового хайпового языка лучше подучить Redis или Elasticsearch пользы больше будет.

из которых лепят веб приложения.

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

Есть веб приложения для десктопа, это типа написать как уеб-приложение но запускать не в браузере, а «напрямую» в десктопе )))))

ыликтрон шоле? такоеже угребище, как его отечественный аналог, выпускавшийся во Львове?

Он самый )))
А вот за аналог не слышал. Возможно это к лучшему )))

ну как же:
i.ytimg.com/...​1O9nM2M/maxresdefault.jpg
такой же жырный и неповоротливый

Ах-ха-ха! В голос!
Сука какой же он тяжеленный был! Блин, я помню отец сам не рисковал его туда сюда подымать когда чинил! )))

Вспомнил как в общагу телек такой проблили. Втроем несли пару остановок метро, задолбались усмерть.

О, у меня такой был! Как-то даже там что-то взорвалось внутри.

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

очередной хайповый язык, который сегодня есть — а завтра нет.

Але ж Go існує на ринку вже 8 років...

Коментар порушує правила спільноти і видалений модераторами.

хмм лично я и мои знакомые о нем ничего не знали

ну так хто ж вам дохтор що ви не читаєте хакерньюз, я про го знав ще в ті роки.

Добрый день, как можно с Вами связаться? Вот моя почта [email protected]

хмм лично я и мои знакомые о нем ничего не знали ни 8 ни 5 лет назад.

О нём уже было хорошо известно году в 12-13, но я тогда на него переходить ещё не решился, поскольку в это время он действительно был ещё сырой, и с туманными перспективами. На сегодняшний день это стабильно развивающаяся технология, поддерживаемая гигантом индустрии, и с большим комьюнити.

А чи вигідно бізнесу брати за основу технологію, в якої за основу взятий golang? Натякаю на докер, кубік, прометеус і т.д.

А вы знаете историю первого в мире браузера?

Зарплата же обратно пропорциональна количеству специалистов ) Побегут все в го — и опустятся зарплаты.

Меня от изучения го останавливает то что мне нет нужды его изучать. Работы на языках которые я уже знаю (JS, PHP) довольно много, в «серебряную пулю» (типа проект на го автоматом быстрее и надежнее) я не верю, а учить что-то без нужды — не моё. Учить ради больше платят — ну такое, пока выучишь могут и меньше платить, там же платят тому кто с опытом. И на фрилансе/удаленке маловероятно что найдешь на го, а офис — не моё.

Тему срача о перформансе ноды vs го — быть ?

Сравнение хэлловордов? Не, это не моё.

Побегут все в го — и опустятся зарплаты.

Если все перейдут на Go, то зарплаты не опустятся, а наоборот ещё вырастут. Поскольку демпинг со стороны малоэффективных, но пока что ещё популярных языков, таких как java, будет сводиться к минимуму. Кроме того, будет наработана большая база всевозможных решений и технологий на базе Go, что в свою очередь ещё больше увеличит востребованность, и как следствие зарплаты.

аналог OSGI , так щоб на ембедеді вертілось, є?

$300kk/sec

Это отсылка к скорости света ?

Питання—що утримує розробників від вивчення go (а шо там вчити якщо ти вже вмієш на чомусь писати) та переходу на більш перспективні та високооплачувані проекти?
Ваші думки? Лінь? Відсутність часу? Вузький світогляд?

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

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

Як не ясна—ти вже знаєш одну мову, робиш якісь пет проекти, йдеш в контору, якщо не повний дуб і вже добре знаєш java/c#/js/python що там ще то думаю що тебе візьмуть без проблем. Якщо тебе скоротять (от чесно про таке не чув після 2008 коли людей звільняли з галер масово), то повертаєшся далі кодити на тому на чому кодив.
Ну і +1 мова це просто саме по собі корисно.

Что-то я не вижу проблем с поиском работы для ruby и node.js developers, её только больше и больше.

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

У них и в Украине сыр вкусный.

Ну еще есть Elixir developers так вот они переезжают на другую планету :=)

П.с. удалёнки на руби очень много. Живу там где хочу.

Вы так говорите, как будто это что-то плохое...

На другую планету :)
Сейчас готовится GO на Марс :)

GO на Марс

І назад вже не повернеться?

Давно приглядаюсь до цієї технології і можливості свчнутись на неї з плюсів, але мене стримує відносно маленький ринок вакансій зараз в Україні(і конкретно у Львові) по цьому напряму.
Стримує розуміння того, що я вкладу 50-60-100 своїх людиногодин вільного позаробочого часу у вивчення чогось нового, з великою ймовірністю, не знайду підходящу вакансію, не буду застосовувати здобуті знання і, як наслідок, через 3-6 місяців забуду, в той час як я це можу вкласти у покращення англійської/спорт/родину/поточну роботу, що дасть мені гарантований профіт.

Ну нет, мне нравится такой прикол как WordPress, ставка у хаскел хз, но зато есть другая фича, делали портал под какой то интернет магазин, причем очень медленно, точно так же как и Америкозы, и тут меня осенило, а давайте украдем гит, ну бесплатную технологию, и заплатим за Европейский сервер, там очень удобная админка под репаки, такой не видел. Тут это вообще копи паст не канает. Не карает даже эта приставка от заср.. гугла, итак. Потом наши оппоненты долго шпионили на каком языке пишется вп, на одном wp admin admin ajax, идите Нидерланды переворачивайтесь, итак, внимание, вопрос, Вас устроит ставка 500-1200 стабильно? Ну если Вы знаете WordPress or Html5 markup...

Топ комент.

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

На Go винагорода поки трохи більша, пару років тому бачив пропозицію Middle Go 4000$, зараз на рівні 2500-3000$, ще за пару років буде на рівні PHP, Python 1500-2500$.
Розробників на Go вистачає, достатньо прийти на зустріч www.meetup.com/uagolang та подивитись.

Про цікаві проекти перебільшено, дуже багато проектів починають переписувати на Go із-за популярності ніж дійсно потреби, такі пропозиції дуже часто зустрічав коли шукав на Djinni 4 місяці тому.

Та й популярність відносна, подивись скільки зараз 🔥 Golang кандидатів на djinni.co/developers/?title=Golang

Кому цікаво то ось на мою думку проекти які дійсно цікаві (погляд Go розробника):
jobs.dou.ua/companies/dmarket (DMarket 5 хвилин від метро Печерська)
jobs.dou.ua/companies/egt-ukraine (2 хвилини від метро Печерська)
www.linkedin.com/company/finsafe-company (FinSafe 5 хвилин від метро Печерська)
Nearmap (vacancy by Daxx)

... 5 или 2 мин от метро Печерська — крутые компании. И ни одной в самом метро :) Похоже такой крутизны компании ещё не зашли в Украину

Біля метро Олімпійська є Бізнес-центр «Олімпійський» в нього можна увійти відразу з метро, коли зима то дуже зручно і там є 2-3 компанії з вакансіями на Golang

коли зима то дуже зручно

Це для вас головний критерій вибору роботи?

Тут уже не поспоришь.
Ярослав, спасибо!

Проекты или компании?
Gaming, gaming, finances... хоть одна с картографией, хоть на что-то вменяемое похоже. И то — смотреть надо.

У вас неправильная статистика. В моем окружении все давно перешли на go и зарабатывают намного больше программистов на java. Если ваш вопрос в том, почему не закрываются вакансии на go, если программистов хватает, то просто нужно поднять зарплату в этих вакансиях на +2к для начала, чтобы заинтересовать уже работающих go-программистов.

P.s. Скоро программисты на java будут зарабатывать меньше работников макдональдса

Скоро программисты на java будут зарабатывать меньше работников макдональдса

а за что им платить? там даже указателей нет

без цифр это просто треп — намного больше, это сколько — 4к и 8к?)

Детская логика показывает, что два — это еще мало, а три — это уже много. Так что, минимум на три.

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

Этот план прост и легко осуществим. Недавно шли даже разговоры о том, чтобы распространить его на всю удящую братию. Правление Ассоциации удильщиков на Темзе года два тому назад действительно рекомендовало его принять. Но несколько старейших членов запротестовали. Они сказали, что готовы рассмотреть этот план, если исходная цифра будет удвоена и каждая рыба пойдет за двадцать.

А смысл переходить когда и так платят норм?
Развитие и «интересные» проекты можно найти и на своем стэкэ.
За каждым суперновым языком гоняться — здоровья и времени не хватит.
На зарплатном виджете данные всего с 12 анкет, так себе статистика.

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

Для HR-ов бывших PHP-ников и Python-истов не бывает, продолжают спамить

За хороших розробників готові платити більше ніж за хороших java розробників.

Проблема № 1: Что значит «хороших»?
Хорошие разработчики получают хорошие деньги не зависимо от технологии.

Також, за моєю, нічим непідтвердженою думкою, проекти з go цікавіші і під них є багато вакансій.

Проблема № 2: интереснее или нет зависит от субъекта.
Проблема № 3: проекты часто просто другие. Го — это часто системные тулы, много блокчейна.
Проблема № 4: «багато» — это сколько? По ДОУ: Golang — 26, Java — 336. Сюда же можете поиграться с зарплатным виджетом ДОУ и понять почему вам показалось что Го-программистам платят больше.

що утримує розробників від вивчення go

В моем случае — это Валялькин и тот факт что он такой не один в сообществе го. :)

Хорошие разработчики получают хорошие деньги не зависимо от технологии.

This ^

Коли розробник робить наголос на тому що він програміст лише якоюсь певною мовою то він лише на початку свого професійного шляху. Програмісти в загальному випадку потрібні не для того щоб писати код на Джаві/Го/С++/тощо, а для того щоб розв’язувати задачі та вирішувати проблеми бізнеса.

А то виходять якісь «будівельники червоними цеглинами» проти «будівельників білими цеглинами».

А то виходять якісь «будівельники червоними цеглинами» проти «будівельників білими цеглинами».

Так и есть (для работодателя). Готовы платить за очень высокую скорость, а она достигается там что ты не тратишь время на чтение доков/стековерфлоу. Надо знать конкретный фреймворк, конкретной версии, про язык я вообще молчу. А если нет — то работай за еду, если технология интересна.

Дуже нагадує як контракторів використовують в США — найняти людину з конкретним набором вмінь на вже розписану і задизайнену проблему і хай педалить прямо з першого дня. А потім коли дійдуть руки у нормальним/своїх програмістів через кілька місяців чи років просто викинути все те що зроблено контракторами замість розбиратися в ньому і зробити по нормальному.

зроблено контракторами замість розбиратися в ньому і зробити по нормальному.

Интересно есть ли хоть один проект который переходил от одних разработчиков другим и чтоб последние не поминали папиредников не злым тихим словом.

Готовы платить за очень высокую скорость, а она достигается там что ты не тратишь время на чтение доков/стековерфлоу

Иногда готовы платить за решение задач и это совсем другие суммы

обычно готовы те, кто уже нанимал фреймворк программиста

Програмісти в загальному випадку потрібні не для того щоб писати код на Джаві/Го/С++

так для чого потрібні: співати, танцювати?
перефразую: «музиканти в загальному випадку потрібні не для того, щоб музику грати»

Тут як різниця між сесійними музиками найнятими щоб грати в турі зі сцени вже написану музику і музикантами які збираються разом і пишуть пісні.

пишуть пісні поети, а музику композитори...а ле їм чомусь не тицяють «ти ж музикант»

збираються разом і пишуть пісні

це скоріше про стартапи з гаражів

Пишуть пісні ті кому хочеться писати пісні, і при цьому вони не стають в позу «я тільки на гітарі музикант, а тут барабани потрібні, а то б я точно хіт би написав». А якщо ти лише на гітарі музикант то це і є «Джава-програміст» — вмію лише певні рухи руками робити, міліметр вліво/вправо це не моя спеціалізація.

І це не обов’язково погано, ясно що деяким людям цікавіше заглиблюватися в якусь тему ніж вирішувати більш широку задачу. Але гроші роблять і технології вперед рухають саме ті хто вирішують задачі, а не ті хто «я вмію if(){} лише на Джаві писати, відчепіться від мене з усім іншим».

ти знову зводиш все до стартапу,
в корпораціях часто дуже бажано бути сертифікованим спеціалістом «ключа на 12 під ліву газову різьбу», інакше до асенізації не допустять

Можливо мені просто так поталанило з проектами в яких я приймав участь, але як на мене вміння і бажання робити все що завгодно для розв’язання проблеми не зважаючи на мови та фреймворки це те що серед іншого відрізняє senior developer’а від нижчих рівнів.

Приклад з життя. Треба щось пофіксати в старезному C++ коді і для цього в тому числі додати крок в білд процес на Дженкінс. Такого крока з коробки нема, але є схоже рішення-плагін яке можна допиляти. Плагін той на джаві, береш і допилюєш під себе не знаючи при цьому ні джаву ні дженкінс, і коли закінчуєш продовжуєш собі колупати старезний С++ далі. Ну або на пітоні щось поправити коли фіксаєш клієнт/серевер.

І ти наче при цьому С++ програміст, а в реальності просто розв’язуєш проблеми по мірі їх виникнення.

і хто порев"ювить та заапрувить твій костиль?

Як тільки такий костиль має мати більше фіч та взагалі вимоги до його імплементації зростають він має бути переданий на переробку та/чи доробку спеціалістами.

Той кому я продемонструю що все працює так як зараз треба щоб працювало.

Оно то так, вот только сам го выцчиваеться за 3 дня, и основные либы\фреимворки еще за две недели. Если на горизонте толковый джавист\с++, котрый знает в амазон, кубернетис инфрастуктуру, микросервисы, ресты, кафки, архитектуру, алгоритмы и структуры данных, то оч глупо вот так сходу такого программиста отсекать.

Норм дев на будь-яку мову в своїй області швидко перейде.

ноуп, хаскель например для джавистов\с++, там месяцы активного времени чтобы только хеллоу ворлд написать.

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

На моей практике с++ники в джаву гдето месяц и могут чет нормальное писать (минус бесконечное число фреимворков). Вопрос именно не синтаксиса языка, а подходов и привычек. Но люди разные.

А в моей практике свитчеры с других языков на дотнет навсегда остаются джунами, пхпешники всю логику тянут в js, сишники делают громадные библиотеки функций и куски фронтенд задач на бекенде, джависты вообще игнорируют что это другой язык и пишут свой нелогичный джавовский бред, потом их спрашиваешь почему так, ведь решение в лоб было бы проще и лаконичнее, а в ответ получаешь, что в джаве правильно именно как они сделали, а другое будет плохо работать

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

сишники делают громадные библиотеки функций и куски фронтенд задач на бекенде

Я вообще сомневаюсь, что тру сишнику знакомы такие понятия как — бэкенд/фронтенд.

тру сішники єто тє шо с паяльніком фіксать багі мікроконтролєров?

Паяльнік — останній довід тру сішніка...

терморектальный криптоанализ

А в моей практике свитчеры с других языков на дотнет навсегда остаются джунами,

Видимо они не особо были заинтересованны в освоении дотнета, а чето кодерили на отъ***сь.

Мені в свій час винесло мозок що там пишеш шось типу

std::Vector<int> massiv;

І він в тебе вже є ініціалізований :) Не треба писати шось типу ... = new ArrayList :) Просто працює і всьо.

не все так просто, оператор new виділяє на кучі, а вище запис створює векотор інтів на стеку

неявный вызов конструктора

В С и С++ есть стек и хип.

В шарпе аналогично.

А в джаві теж, шах і мат, Чыждзенка!

Ну прост :) В нас (жаба девелопрів) так не можна написати.
В java в стек кладуться тільки прості типи, об’єкти всі лежать в купі лайна

jvm хранит в стеке намного больше чем "

прості типи

"

І він в тебе вже є ініціалізований :)

docs.oracle.com/...​tml/jls-4.html#jls-4.12.5
ну как бэ в джаве тоже есть дефолт инициализация

Мой коммент в принципе ниачем, мне просто за державу обидно.

Это с каких пор масив в джаве можна затулить на стек ?

Я с этим полностью согласен, не согласны те кто нанимают.

Теж хороший приклад. Що мій що ваший є гіперболізованими і зрозуміло що в реальності і такі і інші люди потрібні. Але якщо умовний плиточник це скажімо UI спеціаліст то «Джава-програміст» як на мене це саме «будівельник виключно червоними цеглинами», чи «робітник молотком». Бо спеціалізованим програмістом якщо є таке бажання ІМО треба бути в якомусь домені, а не прив’язаним до мови чи фреймворку.

В моем случае — это Валялькин и тот факт что он такой не один в сообществе го. :)

Вы просто пока что стесняетесь быть в тренде современных и перспективных технологий

Підписатись на коментарі