LINUX.ORG.RU

Golang взлетает?

 


0

8

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

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

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

★★★★★

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

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

Golang взлетает?

в падении с рожденья :-) Как и Vala и 100500 появленных миру языков.

Vala так никуда кроме GNOME и не лезла, да и туда не влезла в итоге.

Golang _уже_ плотно забил нишу вокруг Docker-инфраструктуры, активно влез в сетевые технологии (ipfs, revel, gogs, grafana) и лезет в хайлоад.

в падении с рожденья :-)

https://twitter.com/balancer73/status/589359958820577280

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

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

Он может себя «как скриптовый» вести. Посмотри для примера на https://revel.github.io/ — там чисто PHP-шный стиль. Исправил файл, он перекомпилировался на лету, при следующем запросе отдаётся уже новый результат. Т.е. «F2, Alt-Tab, F5» и в браузере уже изменение.

Его можно будет развернуть на хостинге за 150 р. в месяц вроде jino.ru?

Не знаю на счёт jino, но на любом DO/Vultr за $5/мес — безусловно.

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

В идеале, этот go бинарник нужно прятать за nginx.

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

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

А почему эти подсистемы - не на Scala или Erlang?

[ИМХО] Scala очень (очень) тяжеловесна (и компиляция, и стартап). А Erlang для меня (чей мозг поражён «thinking forth») слишком инопланетный язык. И инфраструктура у него такая же инопланетная (богатый печальный опыт работы с EJabberd и ещё с чем-то, уже не помню).

Плюс у Golang очень приятные фишки, типа встроенной пакетной системы и т.п.

Единственный для меня серьёзный минус Golang (да, знаю, холивор, для многих — плюс) — это отсутствие исключений (panic/defer — совсем не то). Ещё умеренный минус — отсутствие боксинга.

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

синтаксис с := вызывает улыбку у людей старше 25

Оп-па. А что, люди старше 35 уже вымерли? А я? А как же я?

...

Когда-то «=» vs «:=» было таким жарким холивором...

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

ipfs

Аутизм.

revel

Говорят, говно.

gogs

Китайское говно с нестабильной моделью разработки.

grafana

Интересно, почему этот клей не на дне.жс написали.

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

Зачем нужны хостинги, когда есть VPS за 200₽?

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

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

«Взлёт» или «падение» (о чём я писал) определяется не высотой полёта, а направлением изменения высоты. Поэтому смотреть надо не на позицию, а на тренд её изменения.

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

Да норм всё. Не волновайся про возраст. IT - не бокс. 40 - это только рассвет:)

Ну окроме, как заманить студентов, не вижу причин использовать это.

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

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

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

Мне под 40, я всё ещё студент (вечный) и со следующего месяца у меня будет некислая зарплата, как go backend dev. Я всё делаю верно? ;)

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

Очень много на делфи имеют некислую зарплатую. Не думаю, что они что-то делают не верно. Не инструмент определяет зарплату, а умение им пользоваться.

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

Я всё делаю верно? ;)

Если if err != nil больше в 1.5 раза, чем полезного кода, то да.

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

Тренд очень простой. Молодой (но уже образовавшийся) рынок с большим потенциалом роста. Т.ч. пока вы будете судачить взлетит/не взлетит, мы будем уже летать.

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

«тренд изменения» - недостаточный аргумент, для того, чтобы начать осваивать

Конечно. Но речь шла о «падении с рождения». Вот это утверждение тренд и опровергает.

За последние несколько лет таких трендов было штук 5 точно

Но они не охватывали столько ниш и направлений, как Golang. Его закрепление на рынке уже один только Docker обеспечил бы.

А будет ли это жизнеспособно вне двух контор - большой вопрос.

Docker уже промышленный стандарт де факто. И он почти исключительно Golang'ом оброс. А уже захватив этот плацдарм он может спокойно и неторопливо прорастать в других местах (что и делает).

Если назовёшь за последние 5 лет «штук 5 таких трендов», то поделись примерами, мне они неизвестны, будет интересно расширить кругозор :)

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

Летайте. Главное, чтобы это был полет, а не пикирование

Пока это в любом случае не полёт. И не падение. Это неуклонный взлёт в течении, где-то, шести лет.

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

В области веба

для меня
ваш гоу не готов. Будет готов - изучим и будем пользовать. Теперь вопросов нет ?

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

И каждый яп из этого списка так хвалили - так хвалили

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

erlang

«в последние несколько лет» не подходит. Он медленно умирает уже лет 10, если не больше. И из ниши телекоммуникаций так всерьёз и не выбрался. Всегда были фанатеющие от него, но не помню, чтобы кто-то всерьёз рассматривал его как потенциального игрока на широком рынке.

ruby

Он реально взлетел. Да, высота полёта не топовая, обычно вне десятки, но полёт устойчивый. И давний. Не годится.

haskell

Не взлетал. Родился мёртвым.

lua

Не взлетал. Немного приподнялся и устойчиво держится явно больше 5 лет. Чуть-чуть зацепил нишу embed. Тоже не годится для аналогии.

js

А этот язык из топа тут каким образом? :D Если Go возьмёт хотя бы четверть популярности JS, это уже будет огромной победой :D

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

И каждый яп из этого списка так хвалили - так хвалили. Хвалили.

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

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

не видят смысла расхваливать привычные для них инструменты на всех углах.
раби

Ты в нулевые на зоне сидел, что ли?

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

Чего сказать-то хотели? Что про ruby в свое время было много шума? Так я и был одним из тех, кто шум этот создавал. До сих пор с удовольствием ruby использую, но смысла кричать о том, насколько удобно ruby использовать в определенных задача смысла не вижу.

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

я и был одним из тех, кто шум этот создавал

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

Не знаю, что тут можно сказать.

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

Хотя бы на вопрос ответьте: что вы в своем первом комментарии хотели спросить?

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

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

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

А уже захватив этот плацдарм он может спокойно и неторопливо прорастать в других местах (что и делает).

все же справедливости ради, го нигде ничем почти не оброс кроме докера и частично бекенда/написания апи

в графике - ниочем

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

в звуке - ну тут понятно, что опенал мы на нем «родной» не получим

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

нуитд

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

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

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

в графике
на мобайле
в звуке
в десктопе/гуях

Это всё пользовательский уровень. Десктоп/мобила.

А Golang, всё же, ориентирован больше на серверную часть. И вот там уже и кроме Docker'а у него вполне неплохо дело развивается. Скажем, по числу активных репозиториев на GutHub он уже где-то около границы десятки.

В любом случае, я не сказал, что он стал прямо таки популярен за пределами Docker-инфраструктуры. Я сказал, что он активно просачивается :) А вполне заметные и уже набравшие популярность примеры есть, я же приводил — ipfs/revel/gogs/grafana).

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

Я не говорил о том что в конечном коде будут макароны, я говорил о сложности в общем. Например понадобилась в проекте функция debounce, что делать? на джаве тащим в проект rxjava и сразу тем самым повышаем сложность, добавляем еще одну зависимость, и сама реализация этой фунции внутри библиотеки довольно сложная для понимания всех нюансов, таких как например что будет если subscriber зависнет на дольше чем debounce period.
А на go просто берем и пишем эту функцию в 10 строк (полный пример по ссылке):

func debounce(c <-chan string, t time.Duration, f func(string)) {
	var old string
	var tick <-chan time.Time
	for {
		select {
		case v, ok := <-c:
			if !ok {
				break
			}
			old = v
			tick = time.After(t)
		case <-tick:
			f(old)
		}
	}
}
И сразу видны все нюансы реализации, все возможные и не возможные сайд-эффекты, потому что тут используются только примитивы языка которые строго следуют ограниченному набору правил. И в результате получаем решение которое содержит чуть больше строк кода, но по сути является более простым.

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

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

Дык вроде именно для этого он в Google и пилился. Мол плохо, когда бакэнд на тормознутом Python-е пишут люди с не очень высокой квалификацией написали. Результирующий код тормозит (ибо Python), а поднять производительность за счет перехода на C или C++ нельзя (ибо квалификация низкая). Поэтому и сделали Go для замены Python-а в Google-овском бэкэнде. И сделали его именно таким, чтобы большинство тамошних Python-разработчиков особых проблем с языком не испытывало.

Об этом вроде как Пайк сам рассказывал.

Собственно, цель достигнута на 100%

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

Ну так ты почитай, зачем. А потом чухень всякую неси.

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

Т.е. как только в Java для подобных вещей появится что-то более удобное, чем RxJava (например, удобная реализация CSP-шных каналов), так преимущества встроенности каналов с select-ом в язык просто-напросто исчезнут?

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

Чтобы не делать лишних вызовов по срабатыванию таймера, так же как себя ведет debounce из rxjava. А если сделать более простую реализацию такую как в первом результате из гугла, то это будет sample а не debounce.

pftBest ★★★★
()

Всегда, когда появляется что-то новое, - то всегда начинаются холиворы по поводу скорости. Критична скорость бекенда ? с++ в руки и погнал. Не хочется ? Значит не критично. В среде бизнеса нет слово «не хочется». Есть узкое место ? Поооехали!

Везде, где я сталкивался с бекендами - узкое место были бд, а не скорость яп. Поэтому и появляются всякие nosql, тарантулы и прочая хня. Все эти кукареки по поводу того, что гоу быстрее, чем что-то там...ну быстрее. И как это касается меня ? Корпораций мб и касается. Применят гоу - не надо строить новый ДЦ. Им это надо ? Скорее да, чем нет. А мне ? Вывод напрашивается сам собой. Вот когда выйду на уровень работы в корпорации - тогда и освою go. А сейчас лучше углубиться в тот яп, который актуален. Да, на досуге можно поковырять, но не более.

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

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

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

ой, давай не манипулировать только. Слова «спокойно снимают дивиденды» относятся к фразам-манипуляторам. Вкладывать время в ява или с++ гараздо перспективней, чем в гуглоgoвно. И к гадалке не ходи.

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

Еще раз: применение := - это чистой воды для ассоциативного ряда для студентов. И другие там фенечки синтаксические есть, на которые без слез смотреть нельзя. Если рекламят - значит не взлетает. Уже с руби проходили

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

А что, разве кто-нибудь заставляет вас использовать Go?

anonymous
()

Интересно, меня одного от этого тошнит ?

var urls = []string{
	"http://pulsoconf.co/",
	"http://golang.org/",
	"http://matt.aimonetti.net/",
}
func asyncHttpGets(urls []string) []*HttpResponse {
	ch := make(chan *HttpResponse, len(urls)) // buffered
	responses := []*HttpResponse{}
for {
		select {
		case r := <-ch:

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

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

Ты понимаешь, что ты поехавший? a := 3 это всего лишь сахар для var a = 3.

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

Не взлетал

не взлетел где?

«не взлетал» != «не взлетел»

как встраиваемый скриптовый язык он взлетел в миллионе мест

Никак не в миллионе :) На порядки меньше... И практически только во встраиваемых приложениях, о чём я выше и писал.

...

И, да, именно во встраиваемых я сам на нём и пишу — NodeMCU под ESP8266.

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

Если мне предложат мильён в месяц, - я на этом goвне писать не буду. Пусть другие пишут

Так и быть, разрешаю.

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

var urls = []string{

Ошибка проектирования. Это должно быть в красивом конфиге на YAML :)

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.