Этого треда уже нет.
Это копия, сохраненная 29 марта 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
15695190090871[1].jpg227 Кб, 900x1400
Тред про лучший в мире язык GO №6 /go/ # OP 1563445 В конец треда | Веб
GO (а также Golang, Пщ или просто Го) — современный язык с зелеными потоками на уровне синтаксиса и крутой стандартной библиотекой. Так как делать пакеджи несложно, гитхаб полон пакеджами для абсолютно всего.

Для вката в Go читай Донован, Керниган "Язык программирования Go", https://www.golang-book.com/, книги из списка https://github.com/dariubs/GoBooks, а также смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw

Пэкеджи можно искать тут https://github.com/avelino/awesome-go

Живем в ожидании Go2, пробрасываем ошибки, смеемся над джавистами, которые не могут жить без ексепшенов, дженериков и размазанной бизнес-логики, ждем, когда нам подвезут аналоги эксепшенов и дженериков

Предыдущий: >>1482493 (OP)
2 1563553
>>563445 (OP)

> Живем в ожидании Go2


Ультрагоднота, если как на пике. И нахуй раст.

> не могут жить без ексепшенов


if err != nil
if err != nil
if err != nil
if err != nil

> дженериков


interface{}

> размазанной бизнес-логики


$ wc -l main.go
100500 main.go
3 1563574
>>563445 (OP)
опять не отбили запятые
4 1563609
>>563553

>Ультрагоднота


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

> if err != nil


Говноед.

> interface{}


Типобезопасность? Не, не слышал.

> $ wc -l main.go


> 100500 main.go


Not sure if trolling or just php-makaken.
5 1563721
>>563445 (OP)
GOндоны, есть ли смысл в голанде? Или можно ограничиться пхпштормом с го плагином?
7 1563727
>>563724
Шизик плиз
8 1563802
9 1563858
>>563724
>>563802
Peedorasy ископаемые. Хотя, может, и есть смысл пейсать на го с помощью говна
10 1563897
>>563721

>отдельная ИДЕ под каждый язык


лол.
вскоде/емакс. вим имеет смысл только в лице плагина.
11 1564090
>>563721
Имеет. Можно
12 1564565
12
13 1566213
>>563445 (OP)
На сколько имеет смысл аплаиться на вакансии, где требуеться 1-2 года комерческого опыта на го, с учетом того что у меня его нет, но есть 2.5 года на бекенде на ноде? Проблема в том, что других вакансий, где готовы взять тело, которое понимает в предметной области, но для реализации прежде использовало другой ЯП, просто нет.
14 1566391
>>566213
я чейтал на linux.org.ru, там был похожий вопрос, шо в принципе нет разницы, на собесе скажешь шо у тебя есь год работы
15 1566434
>>566391
А прямо сказать - мол, не работал с го, но прочитал книгу и сделал пару проектов для себя и мне понравилось - это очень плохой вариант?
16 1566444
>>566434
Сходи уже на собес, а
Покажешь проекты сразу заберут, если за код пояснишь
Собес тебе все покажет, если не возьмут, то ты будешь знать что тебе нужно изучить
17 1566457
>>563553

> размазанной бизнес-логики


>$ wc -l main.go


>100500 main.go


Лол, когда узнал что го "победил" рекурсивные импорты (причем непонятно зачем, если у них нормальная GC), сразу пришла мысль, что либо они будут раздувать файлы, либо писать все в одну область видимости (папку), потому что это писос для статического языка.
18 1566462
>>563445 (OP)

>Живем в ожидании Go2


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

Самое забавное в го то, что он весь такой асинхронный и простой (казалось бы непочатый край для оптимизации), но в реле ели поспевает в тестах на жабе. Где должен просто рвать её в клочья. Я про те тесты, где сравнивают веб фреймворки, а не числа с массивами дрочат
image.png716 Кб, 900x1400
19 1566466
20 1566471
>>566462

> очередной костыль


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

> гугл так и не может в норм инструменты


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

> тесты, где сравнивают веб фреймворки


Потому что через жопу сделаны все эти фреймворки. Вообще, есть мнение, что они вовсе не нужны, потому что удел Go - микросервисные апишки.
21 1566499
>>566471

>Лучше уж костыль, потому что без костылей этим пользоваться очень больно.


Зачем? Сейчас почти каждый язык может в асинк-авейт, который и не всегда прям нужен (на практике бэкенд со всеми плюшками ускоряется где-то только раза в два, выгодно только если отдаешь маленькие json'ы прям из памяти).

>кодогенерации


Жуть.

>Не может, да.


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

>удел Go - микросервисные апишки.


Еще один язык для супер узких задач, ну нехара свой мозг насиловать очередным узким языком, который еще как назло наделал много привычных вещей по своему.
22 1566502
>>566499
В общем, ты предлагаешь C# ?
23 1566526
>>566502
Как по наименьшему сопротивлению, да, .Net Core
24 1566539
>>566462
Удивительные истории рассказываешь, анон
25 1566914
>>566502
Потом в unity пойдёшь шпилить, игрулечки
26 1566920
>>566914
На геймдеве простому смертному не заработать. Это всё равно что учить раст с целью найти работу.
27 1566946
>>566457
Практически ни разу не понадобились рекурсивные импорты. Репозитории имеют ветвистую структуру, всё по DDD.
ЧЯДНТ?
28 1566959
>>566457
Так и есть. Предлагается делать гигантские пакеты с одной областью видимости, либо выносить взаимозависимые определения в один пакет типа "common". А ещё здесь не считается плохим хранить глобальное состояние (функция init). В результате проекты даже среднего масштаба выглядят ну очень коряво.
Вообще, складывается впечатление, будто Go специально проектировали так, чтобы его идеи плохо вписывались в реальный мир, и чтобы он мог решать только очень узкий класс задач.
29 1566970
>>566959

>функция init


Антипаттерн в мире го
30 1566981
>>566959
Если у тебя есть взаимосвязанные определения, то это значит, что они из одной области видимости
Так что все твои проблемы из-за неумения построить нормальную архитектуру приложения
31 1566986
>>566981
А вот нихуя. От того, что иерархия определений не древообразная, в других языках не страдают. И только в го особый путь, из-за которого приходится бороться с языком. Потому что это ограничение надумано.
32 1567002
>>566986
Ну так не используй Го. Иди в свое пхп, джаву, раст или откуда там ты пришел
33 1567025
>>566946
Потому что все скрипты в одной папке. Для человека, любящего сортировать по папочкам, а не говно складировать - быстро словишь рекурсию (очень быстро, потому что статика)
34 1567031
>>566981
То то инициализация сервера, роутинг и контроллеры должны лежать в одной папке, лол
35 1567037
Почему? Кому должны?

В общем, мой совет - почитай про архитектуру приложений, к примеру Clean Architecture, и не говори глупостей
36 1567063
>>567037
Додик, есть архитектуры с рекурсивным импортами. Классическая MVC архитектура, это как раз из таких (контекст инициализируется сервером и передается в контроллер, контроллер зависит от того что инициализирует сервер).
37 1567065
>>567063
Ну и сервер дергает контроллер.
38 1567068
>>567031
Тут предлагают нарезать архитектуру не вдоль (все контроллеры в одном каталоге, все модели в другом, конфигурация в третьем), а поперёк (в одном каталоге контроллеры/модели/etc, связанные с одной сущностью, в другом - с другой и т.д.).
А ещё тут ненавидят MVC.
39 1567071
>>567063
Но ведь в твоем примере очевидно, что зависимость нерекурсивная, потому что контроллер не вызывает методы сервиса.
40 1567072
>>567068
Оба подхода могут быть реализованы на го. Другой дело, что в го стараются разделять по доменам, поэтому второй способ приоритетнее.
41 1567077
>>567068
Никак у тебя классическая MVC не получиться, режь ты там или не режь. Надо промежуточное говно натягивать (то есть через костыли).
В общем, это жопа когда язык тебя ограничивает, особенно когда становится ясно, что надо рефакторить все.

>А ещё тут ненавидят MVC.


Я вот за трендами не успеваю, на что там зумеры дрочат MVVC? Или MVVVVVC?

Суть MVC - чтобы ты в свои html'ки бизнес-логику не сувал
42 1567081
>>567077
Ты своими ответами напоминаешь старика, брюзжащего на лавочке:
"А вот в мое время все хотели стать космонавтами, интернетов ваших не было, всё по MVC делали"

>>567077

>Я вот за трендами не успеваю


Если ты чего-то не понимаешь, это не значит, что что-то неправильное.
43 1567099
>>567081
С MVC 10 лет назад носились как с серебряной пулей, но в реале суть была проста - отделить мух от котлет, что как бы профессиональные программисты делали и так, но маркетинг было уже не остановить.

Не удивительно, спустя какое-то время, на базе предыдущего опыта завезли какой-то новый базворд, чтобы протолкнуть очередную свою йобу. Старость тут не причем, это зрелость прекращай мысли биполярно, после юности идет зрелость
44 1567101
Го модный сейчас, можно уже через год на 200к выйти легко.
45 1567114
>>567101
Есть собственный пример такого выхода?
Даже для дс-1 200к - это в лучшем случае очень сильный мидл, как минимум, да ещё и в довольно большом проекте.
С нуля даже за год плотного кодинга будет тяжело выйти на такой уровень.
Зп в го такие же, как и в той же джаве. Единственное - это куда меньшее кол-во вакансий для джунов по сравнению с джавой, например. Особо никому не нужны они тут. Поэтому именно для вката я бы точно не советовал го, но как второй-третий язык после вката - отлично.
46 1567115
>>567101
Только сейчас понял, что ты троллишь, чел, вот я даун((
47 1567134
>>567025
Приведи пример. Я вот не ловил ни разу или почти ни разу. Рекурсия в связях между компонентами - это обычно признак логической ошибки в архитектуре системы.
48 1567180
>>567134
Там тебе выше высрали про mvc
49 1567262
>>566970
В мире го антипатерн - заморачиваться по поводу антипатернов
50 1567271
>>566970
А как иначе свое говно инитить, не прокидывая его до main (не нарушая абстракции)? Лениво через sync.Once что-ли хуярить?
51 1567278
>>567271

>А как иначе свое говно инитить


Никак, это скрытый и первый намек, что лучше отсюда валить.
52 1567279
>>567271
Прокидывая его до main и используя интерфейсы
53 1567368
>>567114
Суть в том, что вкат в го стремительно быстрый по сравнению с многими языками.
54 1567388
>>567278
А в чем проблема дизайна, когда один пакет содержит интерфейс, и связанную с ним логику, в то время как имплементации интерфейса вынесли в кучу других пакетов, которые ничего не экспортят, но регестрируют свой вариант имплементации через init? sql, image, и, вроде, compress поступают именно так.
55 1567412
>>567180
То-то и оно, что высрали.

>>566970
Поддвачну, ini'ы и глобальные переменные - это ну крайне узкий кейс и с базой данных он не связан.
56 1567510
>>567388
А что делать, если понадобятся сразу две имплементации? По микросервису на каждую?
57 1567556
>>566970
В мире языков, го - антипатерн.
58 1567562
Аноны, привет всем в треде.
Я бумер-вкатывальщих из своей профессии (erp) в программирование.
В прошлых тредах, да и вообще в /pr встречал, что GO вроде хорошо, но не для вката. работы мало и прочее. Однако, судя по обзорам, на нем чуть ли не самые высокие зп (понимаю, что это не из-за рашки). Так вот, стоит ли все же изучать, как первый ЯП?
Проблемес в том, что по текущей работе могу перебраться в гейропку, а после искать работы на ЯП там, либо оставаться в рашке и менять на ЯП тут.
В общем, благодарю.
Про GO вообще говорил бывший коллега, который его вохсвалял, хотя сам до знакомства с ним пару тройку лет пилил на джаве и питоне
59 1567569
>>567562
Вкатываешься во что-то более лайтовое с неплохой зарплатой(js, php). 1-2 года работаешь и потом перекатываешься куда хотел вначале.
60 1567595
>>567569
Приму к сведению, спасибо
61 1567652
>>567510
При создании инстанса, который имплементит интерфейс, нужную реализацию выбирают при помощи параметра-стринга в конструкторе. Как пример - https://golang.org/pkg/database/sql/#Open
62 1567737
>>567569
Двачую, сам так и сделал. Сначала js frontend, потом js backend, потом go.
63 1567784
>>567652
Не нужно так делать!
Просто делайте две разные функции-конструктора.
CreateMysqlDatabase и CreatePostgresDatabase, их потом и юзайте.
Магические стринги, константы и всё такое здесь излишне.
image.png27 Кб, 594x397
64 1567949
объясните пожалуйста почему это в блоки суют? это распростроненные поттерн?
var x type
{
x = a()
x = b(x)
}
65 1567958
>>567949
Не особенно, просто способ сделать чуть более симпатично, если у тебя код вида `foo := A(B(C(D(E(F()))))`
66 1568116
>>567784

>Не нужно так делать!


Почему?
67 1568118
>>567949
В данном случае, наверное, излишне, но я часто вижу блоки кода в фигурных скобках в случае больших функций/методов, где объявляют несколько временных переменных, а затем результат присваивают переменной с облостью видемости на уровне всего метода.
image.png450 Кб, 796x668
68 1568906
69 1569069
>>568118

>видемости


Видимости, слоуфикс
70 1569138
Пожалуйста поясните как ПРАВИЛЬНО и КАНОНИЧНО сделать
динамические структуры.
71 1570148
Го там, го здесь, что на нем щас пишут-то?
72 1570151
>>570148
Микросервисы. Это всё.
73 1570155
>>570151
Можно пример типикал микросервиса, для которого подходит го?
74 1570166
>>570155
Калькулятор
75 1570175
>>570166
Ясно.
76 1570201
>>570155
Логгер, например. Хотя некоторые упоротые предлагают плодить сервисы на ровном месте: авторизация отдельно, таблица1 отдельно, таблица2 отдельно, бизнес-логика отдельно.
77 1570292
>>570175
Твой вопрос звучит как:
"Можно пример типикал продукта, для нарезания которого подходит нож?"
78 1570296
>>570292
О, ты из тек, кто берёт языки под задачи? Это хорошо, но что новичку-то делать, который ещё не знает, для чего какие языки предназначены?
79 1570327
>>570296
Ты не понял посыла. Язык подходит под множество задач и выделить одну "типикал" нельзя.
80 1570364
Учить целый язык, с неадекватным поведением и неадекватными либами, ради только микросервисов (хотя жаба рвет и тут) - это лол
81 1570365
>>570364
...имхо, лучше уж тогда раст
82 1570371
>>570364
Го заявляется как простой для изучения. Но вот на деле нихуя.

>>570365
Раст оч сложный и с сомнительными перспективами. На го хотя бы работа есть.
83 1570423
>>570371

>Го заявляется как простой для изучения


Да не бывает простых языков.
Я вчера на питоне скрипт писал, синтаксис частично помню, но постоянно нырял на stackoverflow. В итоге простая задача на простом языке превратилась в часовую рутину (потому что свои нюансы, свои библиотеки и все это окружение знать надо в любом языке и это не бесплатные знания).
84 1570442
Тхи хи хи
image.png133 Кб, 850x436
85 1570445
>>570442
сука из за gc лагануло
1st pic
86 1570450
>>570445
В хотя бы был Object, когда не было генериков. Здесь же приходится обмазываться interface{} и рефлексией.
87 1570469
>>570445
2004 год, это между прочим 16 лет назад.
Но в реальности го еще в восьмидесятых.
88 1570471
>>570445
Вот видите, в 2004 году на жабе говнокодили обжектами, значит и в 2020 нам эти ваши дженерики не нужны сосите кодогенирацию
89 1570677
>>570450
Но ведь получается и без дженериков нормально

Почему вас так бомбит от го языка? Го-разрабы отбирают вашу работу? Вас убрали с проекта, потому что проект перешел на го, а вы не смогли выучить? Вы завидуете, что го развивается и набирает популярность?
В чем смысл бомбить от того, чем ты не пользуешься?
90 1570698
>>570677
Без генериков терпимо, но не "нормально",

"Мы" не бомбим, а недоумеваем, почему этим кто-то пользуется при очевидных изъянах, и пытаемся понять, почему эти изъяны не спешат исправить.
91 1570706
>>570698
Потому что это не "очевидные" изъяны. Языком вполне удобно пользоваться.

Ты из той категории людей, что в чужие огороды лезут?
92 1570739
>>570706
Нет, только здесь. В "своём" треде скучно, вот и захожу в другие.
93 1570823
>>570698
Вот заебали с этим "без дженериков"

Дженерики в голанге есть: мапы, массивы, слайсы, мессаджи - все дженерик.

В голанге нет возможности определять новые дженерики

И да, это достает, но эта не проблемы типа как в древнеджаве.
94 1570828
>>570823
В свою очередь заебали с этим "голанг сам использует генерики, а нам не даёт". Нет в голанге генериков ни в каком виде. Или по вашему возможность объявить массив любого типа или возможность создать структуру с произвольного типа полями - это тоже генерик? Ну тогда такие "генерики" есть и в сишке, блеать.
95 1570843
Но ведь генериков много где нет, почему все доебались именно до гоши?
96 1570847
>>570843
До всех языков доебались. Гошка же особенна тем, что повторяет ошибку старых языков, которую в 2020 можно было бы и учесть.
97 1570848
>>570843
Например где? Если речь о динамико-параше, то там по умолчанию все дженерик, потому что типы становятся известны только в рантайме.
98 1570878
>>570828

> Нет в голанге генериков ни в каком виде.



Смотри:

m = make(map[string]Vertex)

Видишь тут `make` ?
Он дженерик.
Это не хорошо, не плохо, а просто дженерик.
99 1570885
Genrics is most important part of strongly typed languages. (c)
100 1571005
Суп гаоч.
Я фуллстэк веб макака (питон + жс). Всегда хотел кодить только бэк. Вот у меня встал вопрос. Сразу учить пщ, или сначала всё-таки паттерны+алгоритмы ебануть, а уже после начать язык изучать?
101 1571064
>>571005
Учишь такой паттерны и алгоритмы.
@
Умеешь дерево переворачивать одной рукой
@
Фибоначчи уже пишет код сам за тебя на собесах.
@
И теперь ты готов вкатиться в тяп-ляп го!
simonpeytonjones.jpg145 Кб, 379x571
102 1571070
>>570885

>Genrics is most important part of strongly typed languages. (c)

103 1571091
Странный тред. Одни хейтеры сабжа приносят темы для обсуждения.
image.png1,8 Мб, 800x1093
104 1571102
>>571070
Помню когда-то умные люди говорили, что обобщенное программирование (дженерики ваши) не является частью статически типизированных языков (что кстати правда). но го - говно.
105 1571104
>>571102
Конечно не являются. Иначе из этого следует, что сишка - динамически типизированный язык.
106 1571118
>>571091
Если ты зайдешь в другие треды, то там даже хейтеров нет, одни вкатывальщики, так что тут хоть какое-то разнообразие
107 1571120
>>571118
Не везде вкатывальщики.
108 1571122
>>571104
Ты путаешь антецедент с консеквентом.
109 1571129
>>571122
Я таких умных слов не знаю, так что мне ответить нечего :(
110 1571131
>>571129
Ну бля, из того, что (предположим) обобщенное программирование есть только в статически типизированных языках, никак не следует то, что Си -- не статически типизированный язык.
111 1571151
112 1571412
Как же меня умиляют маня-программисты, для которых наличие ФАТАЛЬНОГО НЕДОСТАТКА мгновенно делает язык непригодным к использованию. Более того, замечу, что если бы го, как языку, действительно были нужны дженерики, их бы уже давно впилили.
И да, посмотрев, насколько много дичи творят говнокодеры, когда им даёшь обобщённое программирование, я начинаю понимать, что его отсутствие в гошечке - не такая уж и плохая идея.
Не совсем в тему, но недавно я читал на хабре статью про rx и наткнулся на следующее:

> А это значит, что, разобравшись с асинхронными вещами, мы можем начать использовать RxJS для обработки абсолютно синхронных данных, например, пометить жирным все внешние ссылки:


> Rx.Observable.from(document.querySelectorAll('a'))


.where(el => el.getAttribute('href').indexOf('http') === 0)
.subscribe(el => el.style.fontWeight = 'bold')
Представляете, они создают потоки данных и обрабатывают их не из необходимости, а просто потому, что хочется применить их сраный rx ещё где-нибудь!!1 При том, что достаточно одной строчки ванильного вызова селекторов! То-то лендосы уже тормозят и жрут, как ААА-игры.

>>568116
Потому, что во-первых, init-ы это зло. Они действуют на уровне подключения пакета, то есть однократно, неизвестно когда, неявно и неповторяемо.
Во-вторых, нет ничего более явного, понятно и тестируемого, чем простой, без магии, вызов функции `mypackage.Foo()`.
В-третьих, передавать строку можно, но это означает, что ты усложняешь процесс создания объекта. Потом у тебя появятся какие-нибудь Options, которые нужно передавать после строки, потом нужно будет сравнивать, какие options с какими строками можно передавать, а какие-нет. Потом ты вдруг начнёшь отлавливать в рантайме баги типа person.Create('male', femaleOptionA, femaleOptionB). Намного проще описать CreateMale(MaleOptionA, MaleOptionB), CreateFemale(FemaleOptionA, FemaleOptionB) и тем самым получить статическую гарантию валидности кода на уровне компиляции.
Я не говорю, что сложные фабрики делать плохо, я говорю о том, что сложные фабрики делать нужно тогда, когда без них не обойтись. Если у тебя <5 типов сходных объектов с +- различными алгоритмами их порождения, то проще вынести их по разным конструкторам, потом по необходимости сведешь в фабрику, когда это будет НЕОБХОДИМО.
112 1571412
Как же меня умиляют маня-программисты, для которых наличие ФАТАЛЬНОГО НЕДОСТАТКА мгновенно делает язык непригодным к использованию. Более того, замечу, что если бы го, как языку, действительно были нужны дженерики, их бы уже давно впилили.
И да, посмотрев, насколько много дичи творят говнокодеры, когда им даёшь обобщённое программирование, я начинаю понимать, что его отсутствие в гошечке - не такая уж и плохая идея.
Не совсем в тему, но недавно я читал на хабре статью про rx и наткнулся на следующее:

> А это значит, что, разобравшись с асинхронными вещами, мы можем начать использовать RxJS для обработки абсолютно синхронных данных, например, пометить жирным все внешние ссылки:


> Rx.Observable.from(document.querySelectorAll('a'))


.where(el => el.getAttribute('href').indexOf('http') === 0)
.subscribe(el => el.style.fontWeight = 'bold')
Представляете, они создают потоки данных и обрабатывают их не из необходимости, а просто потому, что хочется применить их сраный rx ещё где-нибудь!!1 При том, что достаточно одной строчки ванильного вызова селекторов! То-то лендосы уже тормозят и жрут, как ААА-игры.

>>568116
Потому, что во-первых, init-ы это зло. Они действуют на уровне подключения пакета, то есть однократно, неизвестно когда, неявно и неповторяемо.
Во-вторых, нет ничего более явного, понятно и тестируемого, чем простой, без магии, вызов функции `mypackage.Foo()`.
В-третьих, передавать строку можно, но это означает, что ты усложняешь процесс создания объекта. Потом у тебя появятся какие-нибудь Options, которые нужно передавать после строки, потом нужно будет сравнивать, какие options с какими строками можно передавать, а какие-нет. Потом ты вдруг начнёшь отлавливать в рантайме баги типа person.Create('male', femaleOptionA, femaleOptionB). Намного проще описать CreateMale(MaleOptionA, MaleOptionB), CreateFemale(FemaleOptionA, FemaleOptionB) и тем самым получить статическую гарантию валидности кода на уровне компиляции.
Я не говорю, что сложные фабрики делать плохо, я говорю о том, что сложные фабрики делать нужно тогда, когда без них не обойтись. Если у тебя <5 типов сходных объектов с +- различными алгоритмами их порождения, то проще вынести их по разным конструкторам, потом по необходимости сведешь в фабрику, когда это будет НЕОБХОДИМО.
113 1571550
>>571412

> Потому, что во-первых, init-ы это зло. Они действуют на уровне подключения пакета,


init-ы не добро и не зло
они просто действуют на уровне подключения пакета

> $ /usr/local/go/src % grep -r 'func init()*' /usr/local/go/src |wc -l


> 306



Что-то имеешь против - пиши разрабам голанга, что они дибилы
114 1571577
>>571550
Ну если ты сейчас будешь настолько придираться к словам, то я скажу, что да, бывают случаи, когда init'ы подходят для удобного решения какой-то залачу, но их очень часто используют для чего-нибудь навроде конфигурирования консольного приложения и даже хуже, что является скорее плохой практикой. Поэтому init'ы это очень специфическая штука, которая чаще используется вовред системе и лучше стараться её избегать.
А авторы го не всегда являются 100% авторитетами, апеллировать к тому, что оно используется в стандартной библиотеке и поэтому "оно" есть хорошо и правильно - глупо. В стандартной библиотеке и баги бывают, знаешь ли - и что, нам теперь всем их повторять или перестать тестировать свой код?
115 1571888
>>571577

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


А ты какой иной критерий "хорошо" предлагаешь?
Почитать высеры на medium?

Стандартные либы - единственный критерий в голанге определения что хорошо, а что плохо
Без фанатизма канешн
sage 116 1571908
>>571888
Ну всё, буду теперь везде interface {} юзать, раз стандартная либа - показатель.
117 1571925
>>571908
Если тебе нужен sync, reflect, кодеры-декодеры, копаться в асте, да банальный fmt - ты никуда не уйдешь от interface{}
118 1571927
>>571925
Ну да, генериков-то нет.
119 1572130
Господа, 2 года работаю Го девом полет нормальный, но я понял что жаба, например перспективнее го.
Ну вот например:
1/ жаба сложнее
2/ на жабу больше вакансий

Есть у кого кейсы смены стека в таком виде ?
Или придется с самого начала подниматься ?
120 1572136
>>563445 (OP)
как из пыхера перекатиться в го без потери в зп? Синиор коллинг
121 1572142
>>572136
Так дохуя же вакансий в пхп+го конторах, ларавел и го для убыстрения
122 1572143
>>572136
Учишь го до приемлемого уровня, потом на работке говоришь "Пыха говно, давайте новый проект на го писать, он модный, молодежный" Если получится протолкнуть проект - вот ты и гофер
123 1572168
>>572142
>>572143
какую книгу посоветуете для вката, если ты уже опытный бекендер? ту из ОП-поста всё-таки?

Ну и вообще, есть ли жизнь помимо микросервисов? Не скучно?
124 1572192
>>572168
Если ты опытный, то берешь какую-нибудь стандартную бэкенд задачу из пхп и пилишь ее аналог на го, ну и гуглишь бест практис
125 1572361
>>571888
Единственный адекватный критерий "хорошо" - это "подумать". Ошибки, плохие решения, опечатки, баги, уязвимости и тд бывают везде и у всех, поэтому никакой код по умолчанию не считается абсолютно правильным, даже если он успешно отработал и отправил Армстронга в космос, к примеру.

Взять те же init'ы. Скорее всего в стандартной библиотеке они используются для предварительных расчётов, инициализации каких-нибудь глобальных служебных неизменяемых структур типа мапы keywords в token'е. И это вполне нормально, потому что заранее генерируется служебная фигня, чтобы не генерировать её потом, во время работы. хотя можно было бы поспорить на тему "предварительный расчёт vs ленивый расчёт", ну да ладно

А вот если взять базы данных, то там авторы го спроектировали всё так что ты должен сделать sql.Register("mysql", &MySQLDriver{}), а потом во время Connect("mysql", dbConnString) произойдёт магия сравнения по ключу, если ты успел подключить этот пакет. В чём здесь боль? А в том, что они требуют неявно подключать пакеты, в итоге у меня нет никакой гарантии, что Connect не вызовется когда-то раньше, к примеру. Я также не узнаю о том, что я забыл неявно подключить пакет my-sql-driver, пока не получу в ошибку в сраном рантайме. Причём, что забавно, интерфейс driver.Driver у них уже есть. Поэтому я считаю, что с их точки зрения было бы правильнее просить передать в Сonnect сразу драйвер, тогда вызов был бы явным и статически проверяемым: sql.Connect(mysql.CreateDriver())
А если бы операция создания драйвера оказалась тяжелой, я бы и сам догадался уже самостоятельно написать init и вызвать CreateDriver там.

И к сожалению, когда простые разработчики используют init, чаще они лепят что-то вроде второго случая, когда он не нужен и скорее вреден, чем полезен.
126 1572978
На Go лучше всего писать самый скучный и банальный софт, когда ты не хочешь инвестировать ни грамма души, просто хочешь покончить с этой задачей в разумные сроки с удовлетворительными результатами.
127 1573018
>>572978
Сюрприз, это то, что от тебя требуется на работе. Совсем айтишники зажрались уже, душу им вкладывать надо, творчество проявлять.
Делай нормальное качество, в нормальные сроки и так, чтобы это было легко поддерживать после того, как ты умрешь уйдешь. Всё.
мимо
128 1573063
>>572978

>просто хочешь покончить с этой задачей в разумные сроки


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

Что питонщик делал за день, гофер дрочит неделю-месяц.
Да, побыстрее закончить.

https://www.youtube.com/watch?v=wtsLoRnNq-Y
129 1573086
>>573063
Про недо-велосипеды - ложь, пиздёж и провокация.
И да, если ты сравниваешь питон с го, то почему бы не сравнить его с ассемблером? Или понятие "разные инструменты для разных задач" для тебя слишком сложное?
Питон нужен для CIных скриптов, ML или опционального говнокода.
Джава нужна чтобы корпоратить бизнес-логику.
Гошечка нужна чтобы писать какие-то конкретные места, высокопроизводительные сервисы, потому что она была, есть и будет производительнее, но при этом не настолько сложная, чем кресты или раст.
А если ты хочешь писать всё на одном языке, то ты или пишешь что-то простое, или долбоёб.
130 1573087
>>573086
Предупреждая будущие срачи про производительность - джава не поддерживает толком настолько эффективную многозадачность (грин треды ещё не подвезли, планировщик и сборщик там работают на других принципах) и жрёт намного больше памяти.
131 1573089
>>573086

> Гошечка нужна чтобы писать какие-то конкретные места, высокопроизводительные сервисы, потому что она была, есть и будет производительнее, но при этом не настолько сложная, чем кресты или раст.


Гошечка нужна чтобы писать какие-то конкретные узкие места, высоконагруженные сервисы, потому что она была, есть и будет производительнее, но при этом не настолько сложная, чем кресты или раст.
Самофикс
132 1573188
>>573086
>>573089

> гошечка


Анончик, завязывай с приставочками
Это призначек, что с головочкой не в порядочке
133 1573200
>>573188
Анончик, завязывай привязываться к словам.
Мне нравится называть го гошечкой, с++ крестами, джаву джавой, php пыхой, js говном, а ts типизированным говном.
Если тебе не нравится, то можешь пройти нахуй не читать.
134 1573223
>>573200
Я просто беспокоюсь о тебе
135 1573566
соСИ ГОвно пидоРАСТ
136 1573604
>>573188
Это были суффиксы

Если поправляешь человека, хоть сам не лажай
137 1573635
>>573086

>высокопроизводительные сервисы


Медленнее (местами на ровне) с жабой. "В - высокая производительность".

Я уже видел барана который переписал с пхп на го свой пет-проект, но после замеров оказалось что 90% (до го и после) времени занимает база.

Откуда вы такие высокопроизводительные лезете? Ну ок, хочется минимальной абстракции, но не язык же с ГЦ брать? Накати ты там плюсы или раст.
138 1573639
>>573086

>Питон нужен


Использую его везде где он суется. Были пару узких мест в проекте, переписал модуль на си (за это питон и люблю).
Я больше чем уверен что больше половины пишут тут CRUD-проекты - какую там производительность вы ищите? хотя не важно, судя по отсутствие компетентности, ответ будет такой же
139 1573735
>>573635

> Откуда вы такие высокопроизводительные лезете?


Известно откуда. Цикл от 0 до ста тыщ мильёнов выполняется в N раз быстрее, вот и делаются выводы.
140 1573803
Новичку имеет смысл вкатываться в GO, как в первый язык? Или работу никогда не найду? Я так понимаю, что люди в основном с других языков на этот переходят? Просто чет вакансий в моем городе(дс2) вообще нет, в основном ищут сениоров-мидлов.
141 1573904
>>572130
Чем перспективнее?

>>573635
С каких пор жява производительнее го?
142 1573932
>>572130
Перспективнее сейчас только жабаскрипт
143 1573933
>>573904

>С каких пор жява производительнее го?


Например - всегда
https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=query&l=zijo8v-f
я даже не выкинул низкокачественные микрофреймворки такие как fasthttp, но они все равно сосут асинхронно жабе, почти в два раза
144 1573959
>>573803
Лучше не стоит, мало вакансий для джунов и нет фреймворков, облегчающих жизнь. Го обычно берут вторым языком к какому-нибудь мейнстриму типа пхп/джава/etc

>>573639
>>573635
Для формошлёпства действительно подойдёт что угодно. А если ты, к примеру, делаешь чат, то тебе нужно держать непрерывные соединения по 10/100к на инстанс и эффективно их обрабатывать. Удачи сделать это на ваше пыхе или питоне, лол.
На джаве можно, но скорость будет такая же или медленнее (зависит от реализации), а потребление ресурсов будет 100% больше.

>>573933
Ты видимо не понимаешь.
Джава всегда будет жрать больше памяти, потому что jvm.
Джава и го будут всегда +- с одинаковой скоростью обрабатывать что-то в последовательное типа циклов и рекурсии, потому что го компилируемый, а у джавы сработает JIT. Будут тонкости типа оптимизации кода компилятором (оптимизации хвостовых рекурсий, к примеру) и оптимальности компиляции JIT'ом под конкретную машину.
Го будут эффективнее джавы на особо многопоточных алгоритмах, пока в джаве не появится поддежка грин тредов (а после этого надо будет смотреть реализации планировщика).
Эти все выводы можно сделать основываясь на дизайне языков. Да, где-то будут удачнее реализации сервера, драйверов, компилятора, планировщика, сборщика и они будут выигрывать какие-то микросекунды. Но в целом ситуация была и будет такая.

Конкретно этот бенчмарк какой-то пиздец сомнительный.
Почему-то в го они не прогрели гц перед стартом.
Почему-то они не используют то, в чём го силён (многопоточность), выполняя 500 ПОСЛЕДОВАТЕЛЬНЫХ никак не связанных запросов в базу, хотя напиши они `go` перед вызовом fetchRandomWorld ситуация резко стала бы иной.
И так далее.

Всё как обычно, какие-то пидорасы решили, что будут сравнивать языки и решат, наконец, что круче, но при этом знают из всех языков, очевидно, только джаву. Ну ок, чё. Очередной говнобенчмарк, который не даёт выводов кроме КГ/АМ.
145 1574010
>>573959

>Джава всегда будет жрать больше памяти, потому что jvm.


Это ты не понимаешь (послушай дядьку).
Джава разменивает ресурс недорогой памяти, на ресурс дорого процессора.
Это основная фишка, даже классы в памяти выравниваются по кратности слова.

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

Так же надо учесть, сколько бабла было влито в jvm и jit.
У команды го не хватит ни ресурсов ни времени (и может даже ума), чтобы даже из простого го (при создание которого вообще не парились), сделать что-то, что догоняло бы джаву.

Забавное даже было то, что после релиза даже раст в дробилках был чуть быстрее жабы (потом, конечно, они пофиксили, или подогнали, лол).

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

Но ни жаба ни го тут половине разработчиков и не нужен
image.png464 Кб, 535x495
146 1574012

>Почему-то в го они не прогрели гц перед стартом.


Лол, или я что-то пропустил из мира го или ты тот еще фантазер.
Расскажи, зачем греть ГЦ?
147 1574013
>>574010

>Почему-то они не используют то, в чём го силён (многопоточность)


Хотя с тобой все ясно, надо было сначала пост прочитать.
148 1574029
>>574012
Го запускает гц, когда превышается лимит по памяти. К примеру, го занял 100 мб, они запустили чистку, выставили лимит в 200 мб. Дошло до 200 -> запустили гц, выставили лимит до 400. И так далее.
С этим работают двумя способами, первый - настраивается множитель для лимита, второй - после старта приложения инициализируют и очищают что-то большое, чтобы лимит сразу был побольше.

>>574010

> Но ни жаба ни го тут половине разработчиков и не нужен


Это правда

> Еще в жабе используется вид спекулятивной jit-компиляции


Всё так, именно поэтому я написал, что

> Джава и го будут всегда +- с одинаковой скоростью


и специально сказал про jit. jit может помочь, а может и не особо. Гошный компилятор может что-то оптимизировать, а может нет. Но это тонкости, в итоге всё равно и там, и там, выполняется скомпилированный код, поэтому работать они будут +- одниково, без отличий на порядки.

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


Это сомнительное утверждение, будь так, никогда бы не появился C (все писали бы в машинных кодах), smalltalk, java и так далее.
А так как ты опускаешься до того, чтобы утверждать, что команде пиздец каких умных, образованных и так далее чуваков из гугла, с научными степенями в IT и многолетним опытом работы на пиздец каких сложных задачах (включая java) не хватает ума, то разговор с тобой можно прекращать и больше никогда не заводить, тут явно манямирок и самооценка, размером с Москва-сити.
149 1574043
>>574012
https://blog.twitch.tv/en/2019/04/10/go-memory-ballast-how-i-learnt-to-stop-worrying-and-love-the-heap-26c2462549a2/

Сделаешь на жяве чат-сервис с нагрузкой уровня твитча и задержкой GC в <1ms? Удачи. Сколько Раджешей понадобится?
150 1574051
>>574010

>Забавное даже было то, что после релиза даже раст в дробилках был чуть быстрее жабы (потом, конечно, они пофиксили, или подогнали, лол).


Что, простите? Раст и должен в дробилках быть быстрее почти чего угодно.
151 1574058
>>574029

>Го запускает гц, когда превышается лимит по памяти...


Это не прогрев, это особенность работы ГЦ, джава тоже делает много работы (и тоже увеличивает память) в том числе поколения копирует и заодно дефрагментирует, но мы же не будем это ждать?
Прогревание в жабе это реальный технически достижимый процесс в 10К итераций (и речь про код, а не данные). Работа ГЦ непонятная когда достижима и можно всегда кудахтать что плохо погрели, надо было 3 часа ГЦ погонять.
В общем, это чистой воды подражание терминологии жабы (если уж и доставать линейки, у жабы там сложнее ГЦ и тем более нет value type).

>поэтому работать они будут +- одниково


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

По всем параметрам го должен рвать жабу, в го нет виртуальных методов, нет исключений и прочей абстракции. Просто у жабы качественная VM (и jit).
Как собственно успешно вкладывались и пилили до блеска V8.
152 1574065
>>574058
Чувак, что ты несешь??
Какой нахуй jit? И с чего ты решил, что jit - это всегда хорошо??
Какое нахуй подражание джаве?
Кому оно нахуй нужно?

> Даже с синхронным бд (но асинхронной io) жаба работает лучше, почти в два раза.


Чего лучше?? В два раза? Может в три?
153 1574067
>>574043

У жабы есть реалтайм гц с гарантированным времени отклика, для какой-то йоба-экзотики, но ты школота с твичей о таком и не слышал.

Ну и уже давно завезли обычные гц с минимальными паузами (не вспомню сейчас это ебанутое название).

Запомни простое правило, что все эти микропаузы они не даются даром, не зря у жабистов тонна рычагов, которые они могут подвигать чтобы достичь наилучшего результата между паузами и производительностью (я в свое время память для пет-проекта докупал, чтобы ГЦ реже срабатывал, т.е. чтобы больше процессорного времени уходило на сервис и чистый кэш)
У гоферов вообще нет никакой возможности, что-то там подкрутить, подвигать нормально. Кушай что завещал Роб Пайк (а будешь возмущаться, тебе статью напишут, мол это не язык плохой, это ты не так думаешь)

>Сделаешь чат-сервис


>задержкой GC в <1ms?


Я бы тебя только за одну мысль написать чат с тиком меньше 1мс уволил бы.
154 1574068
>>574065
Если сложно и непонятно, воспользуйся гуглом
155 1574110
>>574058

> Это не прогрев, это особенность работы ГЦ


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

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


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

> Почему-то они не используют то, в чём го силён (многопоточность), выполняя 500 ПОСЛЕДОВАТЕЛЬНЫХ никак не связанных запросов в базу, хотя напиши они `go` перед вызовом fetchRandomWorld ситуация резко стала бы иной.



В синхронном режиме го и джава будут соревноваться в удачности компиляции и оптимизации библиотек, всё так, я об этом написал ещё здесь
>>573959
и разница здесь не особо велика

> работать они будут +- одниково, без отличий на порядки



Я уже устал повторять одни и те же аргументы, давай что-нибудь новое обсудим.

>>574067

> У гоферов вообще нет никакой возможности, что-то там подкрутить, подвигать нормально. Кушай что завещал Роб Пайк (а будешь возмущаться, тебе статью напишут, мол это не язык плохой, это ты не так думаешь)


Это так, и сделано осознанно, чтобы не сделать хуже. Есть вполне объективные доводы, почему авторы го решили никаких рукояток юзерам не давать.
И да, не то, чтобы это было очень плохо, потому что gc в го и так пиздец быстрый, лимиты настраивать можно, работать через unsafe без гц работать можно, памяти требуется на порядки меньше за счёт более простого рантайма (нету такой тяжелой VM) и так далее.
Вечный баланс между автоматизацией и контролем. Ручной управление памятью vs сборщик мусора, ручное управление потоком выполнения vs планировщик и всё такое, аргументы обеих сторон почти не меняются от срача к срачу.
156 1574594
Зачем вообще сравнить энтрпрайз ублюдка типа Java, и маленькую уютную быструю писечку Го, которая великолепно работает там где она нужна.
Никто не ставил задачу написать очередного интырпрайз ублюдка.
157 1574603
>>574067

> У гоферов вообще нет никакой возможности, что-то там подкрутить, подвигать нормально. Кушай что завещал Роб Пайк (а будешь возмущаться, тебе статью напишут, мол это не язык плохой, это ты не так думаешь)


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

> Я бы тебя только за одну мысль написать чат с тиком меньше 1мс уволил бы.


Что несёшь? Я про stop-the-world паузы. Жява-токсики не умеют читать?
158 1574608
>>574594
Потому что многие тут не выбирают инструменты под задачи, а натягивают задачи на один конкретный язык и искренне удивляются, почему на остальных кто-то до сих пор пишет. Кто-то вон предлагает писать веб на сишке, и даже не хайлоад.
159 1574610
>>574608

>веб на сишке


Так это же и есть go
160 1574618
>>573803
Вообще-то зависит от того, что тебя именно интересует. На Go мало вакансий, его в основном слишком уверенные в себе конторы используют. Вкатываться стоит только если ты уже знаком с каким-нибудь яп.
161 1574621
>>574594
То есть микросервисы на го не пишут, в отличие от джавы? Ясно.
162 1574629
>>574610
Go хотя бы безопасный и более высокоуровневый.
163 1574805
>>574629

> Go хотя бы безопасный


А в чём небезопасность Си, кроме забытого освобождения памяти?
164 1574833
>>574805
Выход за пределы сегмента. Выход за пределы массива (за пределы сегмента не вышел, но данные всё равно похерил). Куча тонких случаев с UB, которые влекут вообще что угодно. Таких случаев много, даже банальный плюс при signed integer overflow влечёт это. В общем, хватает проблем, которые даже в плюсах не решили полностью.
165 1575028
>>574603

>Что несёшь? Я про stop-the-world паузы. Жява-токсики не умеют читать?


Был бы настоящим программистом, знал бы что даже тик в 500мс для чата это уже много.
Они хвастаются гц в чате, потому что, видимо, реальное высоконагруженгое на го побоялись написать.
Это очередное событие, когда отделу программистов разрешили поиграться с языком, а не реальные исследование и последующее решение.
1578872886295.png145 Кб, 512x512
166 1575109
>>575028
Блядь, что ты несёшь, клоун? Я в курсе что 500 мс это много. И я тебе пишу, что у твитча 1мс (ОДНА МИЛЛИСЕКУНДА). 1 мс это меньше 500 мс, ты это понимаешь? Они как раз написали высоконагруженное приложение с исследованием и последующим решением. Я не понимаю, это троллинг тупостью?

Почему некомпетентные люди так любят первыми включать токсиков на пустом месте? Я просто кинул статью твитча, меня назвали школьником ни за что, а ещё и начали серить под себя после этого.
167 1575134
>>574043

>Сделаешь на жяве чат-сервис с нагрузкой уровня твитча и задержкой GC в <1ms? Удачи. Сколько Раджешей понадобится?



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

Которая прекрасно летает при херовейшем коде и однопокпоке.
168 1575136
>>575134

> Сделаешь на жяве чат-сервис с нагрузкой уровня твитча и задержкой GC в <1ms? Удачи. Сколько Раджешей понадобится?



> в <1ms



> Которая прекрасно летает при херовейшем коде



> Minecraft's game loop normally runs at a fixed rate of 20 ticks per second, so one tick happens every 0.05 seconds. An in-game day lasts exactly 24000 ticks, or 20 minutes.


> However, if the computer is unable to keep up with this speed, there are fewer game ticks per unit time. As the vast majority of actions are timed based on tick count rather than on wall clock time, this means that many things take longer on a slower computer.



> One thing that does not happen as part of a tick is drawing graphics. Rendering happens after updating. This is why a varying frame rate does not affect the tick rate, which prevents video performance from affecting game mechanics.



https://www.youtube.com/watch?v=Aj2CvNIVqpI
169 1575155
А когда майнкрафе на хуане работает, она там тоже яву машину поднимает?
170 1575159
>>575155

Нет, они его на кресты переписали.
171 1575160
>>575136
А я не про майнкрафт говорил.
172 1575165
Вот и сравним майнсруфт на го с майнсруфтом на жабе:

https://github.com/icexin/gocraft

Алсо, в добавок развлекуха на покодить дома, прикрутить к вот этой хуитке шагающие кубачи и SVO.
173 1575174
>>574805
UB на каждом шагу
Это косвенно к безопасности относится, но достает
174 1575178
>>575165

>Вот и сравним майнсруфт на го с майнсруфтом на жабе


Огрызок низкого качества, где даже деревья сливаются в "не-разбери-пойми-что". Как можно сравнить поделку вида "поигрался в opengl и ушел делать уроки" с полноценной игрой со 100500 элементами игрового процесса?

Хотя холивар бессмысленен (что го говно что жаба, в сравнение с шарпом и юнити).
175 1575187
>>575178

>reduce background thread cpu usage


азазаз
176 1575188
177 1575189
>>575178
Особенно забавно это смотрится с шейдерами
178 1575190
>>575178
А почему на юнити не написали клон майнкрафта?
179 1575192
>>575190
Block Story.
180 1575193
>>575190

Потому что C# может в соло и без юнити

https://github.com/KeenSoftwareHouse/SpaceEngineers
181 1575195
>>575193

Там вообще смешная история вышла, ваыложить сорс в общедоступный паблик по лицензии ЕУЛА, что бы потом подгореть что все пиздят, собирают свои клиенты да еще и пулревесты издевательски шлют.
182 1575201
https://github.com/fyne-io/fyne
Пробовал кто это GUI? Заявлена поддержка android.
183 1575202
>>575195

Там никто не подгорал, просто у них куча сторонних анальных поделок с NDA используется и, кажется, после перехода на 64бит онли анальные лицензии им запретили полногстью выкладывать код, по причине линковки и применения анальных поделок.
image.png2,1 Мб, 1280x720
184 1575384
>>575190

>А почему на юнити не написали клон майнкрафта?


хм, rust же.
185 1575402
>>574833
>>575174
На сколько трудно и болезненно всё это отлавливать?
186 1575404
Сложно с питона перекатиться? Хочу написать свою ASCII mmorpg, но питон для этих задач медленное говно
187 1575450
>>575404
Ты написал игру и увидел что тормозит или тебя ойтишники на ютубе сказали?
У питона там половина либ в сишечку завернуто. Тебе уже сказали - только юнити, только .net core
188 1575459
>>575450
Я глубоко изучал эту тему, но сам не пробовал, конечно. Просто не хочется получить готовый продукт, понять что это - тормозное говно напоминаю, игра - ммо и переписывать его под другой язык. А про юнити - игра то текстовая, аля MUD
189 1575461
>>575450
>>575459
И да, ты меня спутал с кем-то, я только вкатился в тред
190 1575518
>>575402
Пиздец как. А самое главное, что времени и капец каких дорогих человеческих ресурсов на это уходит порядочно.
191 1575613
>>575402
Очень трудно и болезненно. Если в какой-нибудь жабке в случае ошибки максимум вылетит исключение с подробным стектрейсом, и ошибку находишь сразу, то на сишке у тебя тупо внезапно завершится программа, а среда плюнет в консоли лаконичное "Ошибка сегментирования", и всё. И приходится обмазываться дебаггером, логами, дизассемблером и линтером.
192 1575713
>>575518
>>575613
Если все так плохо, то почему популярные языки продолжают быть небезопасным говном, падающим в рантайме? Почему не используют OCaml, который не падает?
193 1575719
>>575713
Всё плохо только в сишке. Исключения (или их сабжевый аналог error) хотя бы можно перехватить и обработать. А вот с сегфолтом ничего не сделать.

А у окамла, видимо, своих проблем хватает. Например, отсутствие инструментов и большого коммунити.
194 1575722
>>575719
Диванный теоретик, плиз.
195 1575723
>>575722
Есть что сказать - говори.
196 1575724
>>575713
Потому что всё предусмотреть невозможно и вся разница в том, что С - это ещё более небезопасное говно чем та же джава
197 1575735
>>575724

>Потому что всё предусмотреть невозможно


С исключениями тоже самое. Все предусмотреть нельзя банально из-за того, что люди, в большинстве своем, плохие программисты. Нам нужны безопасные языки, в которых тайпчекер будет ебать за любую хуйню (это не поможет от логических ошибок, но мы ведь не про это спорим).
198 1575753
>>575735
Так бы оно так, но проблема в том, что за безопасность приходится платить, так или иначе. Или накладными расходами (сборщик мусора) или временем и сложностью языка (rust), или ещё чем-нибудь.
Всегда важен баланс.
199 1575780
>>575753

>акладными расходами (сборщик мусора)


А в джаве, го, с# его нет? Реальных отраслей, где каждый байт памяти на счету, не так уж и много.
200 1575788
>>575753

> Всегда важен баланс.


Есть Dlang. Он с gc, но его можно отключить. Для безопасности есть SafeD: https://dlang.org/articles/safed.html
201 1575793
>>575788
А ещё он сложный.
202 1575803
>>575793
Ну, хз. Говорят, что проще C++ и подавно проще rust. Может, чуть сложнее go, я не видел сравнений сложности между ними. А ты в чём видишь его сложность?
203 1575826
>>571412
Интересный способ написать .forEach
204 1575972
>>575404
В ММО ты просто не можешь без классов и наследования. Один геморой будет.
205 1576128
>>575459

>Я глубоко изучал эту тему


Ну опять же, ты не тестировал и не собирал какие-то сборки не сравнивал, а тупо шарился по форумам и читал мнение ваннаби программистов, которые говорили - "даааа питон тормозноооой".
Динамические и интерпретируемые языки действительно в простых тестах будут медленно в плане сравнения. Но в плане человеческого восприятия это все равно быстро.
Еще как пример на какой-то юнити есть возможность писать на питоне и дергать скриптами api юнити. Вроде бы казалось тормознутые скрипты и в сердце проекта.
Но на самом деле это нормальная практика, когда тяжелыми вещами (например отрисовкой графики и прочими числодробилками) занимается какой-нибудь нативный компилируемый код, а бизнес логика пишется на простом языке

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

В любом случае ты сможешь профилировать проект и какие-то узкие модули переписывать на си или скорее юзать pypy.
Тем более у тебя нет графики. Работать с текстом я бы кроме питона вообще бы не стал ни с чем
206 1576130
>>575788
D хорош, но за ним не стоят гиганты и гиганты его не двигают.
Проще не насиловать себе свой мозг и сразу на С++ сеть.
Идеальная связка Си + Питон (на сях пишешь реально тяжелое говно, на питончике логику и всякие CRUD-вещи)
207 1576139
>>576130

> D хорош, но за ним не стоят гиганты и гиганты его не двигают.


https://dlang.org/orgs-using-d.html
Зато эти компании его используют. Может так случиться, что выложат какие-то наработки. К примеру, netflix использует непопулярную freebsd и недавно выложила свои наработки для неё: https://www.opennet.ru/opennews/art.shtml?num=51463
Также по верхней ссылке есть какие-то наработки тех компаний, но их не так много.

> Проще не насиловать себе свой мозг и сразу на С++ сеть.


Наоборот же. C++ менее безопасен и насилия над мозгом будет больше.

> Идеальная связка Си + Питон


Си? Самый небезопасный язык. Речь не про уязвимости, если кто не понял, а про возможность отстрелить ногу, утечки памяти, неопределённое поведение и тд.
208 1576142
>>576139
Компании вечно там что-то используют. Вообще уже не показатель.
Топовый слой С++ сейчас в геймдеве, вот взяли бы и флагман какой-нибудь написали типа движок Dunity.

Сейчас языки без флагман проектов (главное нужных) - не интересны (зажрались, да, но такая вот реальность)
209 1576182
>>576139
Чем он лучше раста?
210 1576200
>>576182

>Чем он лучше раста?


Не нужно писать на расте или с++.
211 1576206
>>576142

>языки без флагман проектов - не интересны


Назови несколько таких флагман проектов для разных языков, вижу ты в этом разбираешься.
image.png80 Кб, 1139x713
212 1576210
>>576206
Новых? Вот именно что нет. Возможно только у дарта, поэтому он из пепла почти котлин уже догнал.
А так у рубей были рельсы.
213 1576211
>>576182
Вот немного со стебом сравнение: http://dlang.ru/faq
214 1576218
>>576211

>Как сказал один разработчик в Яндексе, у меня слишком плохая память, чтобы писать на динамически типизируемом языке.


Динозавры на vim'е.
Давно уже были докстринги во всех языках завезли и потом уже даже хинты завезли. Оказалось что кроме автокомплита (и чтобы IDE подсвечивала ошибку) - больше статическая типизация и не нужна (всякие auto, var, let - это доказывает).

Я реально еще на 2009 году вел на говно-динамике проект, где все типы были в докстрингах (вся эта херня типа @param), писал по ощущениям как на жабе. Причем в 90% случаях даже нетбинс автоматом выводил типы.

Потом эти динозавры напишут такой язык как го и будут говорить что все нормально (это не мы не осилили, это вы нас не поняли)
215 1576219
>>576218
У меня сейчас небольшой питонячий проект, там типизация (за счет хинтов) сильнее чем у го с его interface{}.
Причем когда проект прототипировал, мне типы только мешали (я уже потом все по мере необходимости расставил или переписал участки)
216 1576222
>>576210
Нет, почему новых? Вообще.
image.png96 Кб, 240x240
217 1576223
>>576222
Речь про новые языки. Зачем набирать популярность популярным языкам?
218 1576226
>>576223
>>576222
>>576210
>>576206
И да, под флагманским проектом я понимаю не программу, типа у го там докер или раста браузерного что-то там. А именно инструмента облегчающего работу с чем-то.
image.png268 Кб, 1162x1039
220 1576236
>>576232

>D для web


И сразу идут нахуй со своим кустарным говном
image.png54 Кб, 1714x247
221 1576237
>>576236
Причем быстрым шагом идут. Хватит жрать говно маркетологов, всегда проверяйте инфу
image.png84 Кб, 1162x283
222 1576238
>>576237
>>576236
>>576232
Еще чуток и догонит питон, лол.
223 1576245
>>576238
Пролистай в самый низ. Встретишь там C++.
224 1576256
>>576245
Я до первых топов листаю, с низами то понятно, что бывают ошибочные.
225 1576260
>>576256
Я к тому, что реализации каких-то инструментов не говорят о самом языке.
226 1576261
>>576260
Тащи другие тесты
227 1576265
>>576261
Если что, для dlang три компилятора: dmd, ldc и gdc.
229 1576286
>>575788
Я сам на нём не писал, поэтому могу наврать, но вроде бы как там есть серьёзные проблемы со сборщиком мусора, а его отключение вообще делает невозможным использование 99% всех библиотек.
Ну и да, он скорее мертв, чем жив.

>>575780
Никто не спорит.
230 1576287
>>576267
Чет проиграл.

>They are written as the average software developer


>JIT warming up is applied when necessary.


То есть, если жаба была очень быстра, то мы исключали JIT :)

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

>>576265

>три компилятора: dmd, ldc и gdc.


То-то головняка не хватало, еще и между компиляторами холиварить.

А вообще идея и язык неплох. Я за любую вменяемую замену С++
231 1576292
Пока холиварите, там новый язык запилили
https://concurnas.com/

This is actually a quite interesting language offering a unique combination of features for a statically-typed, object-oriented language:

dead easy concurrency via isolates and actors, which can be "trivially" used in a distributed setup.

reactive refs (i.e. change of a value causes auto-modification of dependent values, like in Excel).

vectorization (efficient and easy matrix operations).

GPU Programming.

language extensions (basically, embed code in other languages).

union types, which they actually call multitype (as in TypeScript).

off-heap memory.

Object providers (Dependency Injection at the language level).

more basic features, but cool to have: pattern matching, tuples, null safety, extension functions, serialization for everything out-of-the-box, list comprehensions, ranges, a REPL...
232 1576299
>>576292

> pattern matching


Дальше можно не читать.
233 1576302
>>576299
А в чём проблема?
// мимо
234 1576304
>>576299

>Дальше можно не читать.


Когда ты это прочитал про "pattern matching", ты уже почти все прочитал.
235 1576305
>>576302
Попытки подражать хаскеллю почти всегда превращают язык в уродливое, ебически сложное и нежизнеспособное нечто
236 1576308
>>576304
Это скопировано с сайтика, где это только начало, а инфы ещё много.
237 1576310
>>576305

>Никто, никто не имеет права копировать с хуцкеля!!

238 1576312
>>576305
Чувствуется какой-то фанатизм в словах
239 1576316
>>576310
Да пусть копируют, лол. Раз хотят опуститься до его уровня.
240 1576321
>>576287
А rust невменяем?
1468002328790.png178 Кб, 450x450
241 1576332
>>563445 (OP)

>современный язык


>нет дженериков


>современный

242 1576343
>>576332
И исключений. И рекурсивных импортов.
Да даже элементарных аннотаций нет.
243 1576388
>>576321
Лафтаймы и владение (чекер и в целом синтаксис) - это сложнее чем прямое управление памятью. То есть, язык снимает одну нагрузку С++ и вещает другие, не менее сложные.
Можно конечно натренироваться и использовать язык для компенсации и последующего демонстрации собственного достоинства, но для таких понтов уже есть хаскель.

Язык никак нельзя назвать прагматичным. Очередная экзотика для поиграться.
244 1576399
>>576388
У крестов и так теперь на замену ручному управлению памятью есть std::unique_ptr, std::shared_ptr, и std::move. Но и там нужно быть осторожным, а то легко наступить на UB.
245 1576401
>>576343
Сырые строковые типы. Они реально поток байт выдавали за фичу. Но чтобы реально работать с полноценным utf-8 надо перегнать в руны (название тоже доставляет)

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

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

и т.д.
Язык просто на отъебись
246 1576419
Почаны, хватит сраться, пошли в питон, я создал
https://habr.com/ru/post/484136/
247 1576526
>>566462
у нас на работе на ноде был сервис, как-то связанный с конвертацией валют, точно не знаю, я тогда еще не работал там. Переписали этот сервис на го. Прогнали тестики и получили в 1000 раз больше обрабатываемых запросов в секунду.
248 1576534
>>567562
на го очень мало вакансий. На джунов я вообще очень редко вижу. Попробуй на ноде/пхп/джаве/шарпах в бек залезть, а оттуда и в го. Также часто видел вакансии го прогеров, в которых писали, что рассмотрят челов с опытом на пыхе
249 1576535
>>576526
Скорее всего код на ноде был плохо написан. Это не упрек, такое явление не редкость. С джавы на джаву переписывали полностью проект, получили производительность больше (была бы какая-нибудь скала или котлин или еще что там, сразу бы субъективно посчитали что дело в языке, а не архитектуре).
250 1576538
>>570155
у нас чат и нотификатор написаны. Еще вроде сервисы с работой сети эфириума.
251 1576547
>>570698
у нас миграция на го вызвана проблемой производительности. Легаси код на ноде и пхп не вывозит нагрузок, отчасти потому что сам код говно. На выбор было два стула: го и плюсы. Быстрее гохи только кресты будут, но пересадить команду на них пиздец сложно. И в целом время разработки увеличится в сотни раз. А го относительно простой(с пыхи наша команда легко перешла) и дает весомый буст в производительности лично в нашем случае.
252 1576563
>>575109
а твитч на гохе написан?
253 1576570
>>576526
Когда нода только пиарилась, молодой "тимлид" неделю мне зачесывал про то какая нода офигенная. А потом оказалось что она у них в одном экземпляре на 4 ядрах работала.
Так что js-разработчики те еще мастера своего дела.

У меня даже больше вопрос - как вообще пришла мысль для финансовых расчетов взять javascript? Это такая специальная олимпиада или что?
254 1576575
>>576570
это говно индусы писали(или тайцы). Потом этот проект перешел в нашу компанию, нагрузки со временем увеличились, нода стала дохнуть. Решили переписывать на го
255 1576579
>>576547
Всегда проигрываю с этой маняфантазии, что если мы возьмем язык Х код у нас будет работать быстрее в 100 раз!!

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

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

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

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

В-четвертых, если сравнивать все говно на статике и динамике (реальные проекты, а не перегонка в цикле листов), то динамика в реале просидает не боле так 10-20 не более (а порой меньше). Но реального вклада и денег статика требует больше (в том числе и на поиск спецов, на С++ вы на вряд ли найдете годных спецов, а если найдете, то завтра у вас их сразу же уведут)
256 1576587
>>576579
какие маняфантазии? У нас был сервис на ноде, который не справлялся с нагрузками, теперь есть такой же на го, который все спокойно вывозит на проде. Ну и у нас этот сервис с финансовыми расчетами связан, на го априори эти вычисления будут быстрее. А ноду мы не выбирали - это подарок от предков.
257 1576704
че нынче спрашивают на собесах синьор гошников?
пишу 4 года на питоне и все это время немного пописываю на го, думаю полностью перекатиться
258 1577086
>>576535
То есть на ноде чтобы проект писать иделаьно, наняв 300к в сек сеньора, когда одна го-обезьяна напишет тот же проект, на отъебись и получит тот же результат?))
259 1577094
>>576704
Готовься серьезно отвечать на вопросы о паралелльном программировании, конкуренси и прочего горутинного говна.
Почти никто не спрашивает базовые вещи.

Прошел-около-5-го-собеседований-в-скайпах
260 1577186
>>576704
Планировщик, сборщик мусора, с азов (что такое горутины) до эскейп анализа (но нечасто).
261 1577211
>>576587

>финансовыми расчетами


У тебя много коннектов, скажем 4 ядра и 100.000 горутин.
Одна горутина занимается расчетами, значит ~25.000 горутин зависли и ждут.
Асинхронный язык идеален для "получть-положить", "взять-отдать", любые вычисления вешают весь поток/процесс. Не удивлюсь что вы и сейчас вешаете что-то, просто более мозговитый шедулер го - более грамотно старается распределить по свободным потокам (может даже создает еще).
262 1577212
>>577086
Снова жопой читаешь.
263 1577222
>>576267
Как понять, что некоторые тесты плохо написаны? Очень просто, когда какой-нибудь язык опережает Си.
264 1577228
>>576267
Nim недооцененный язык.
Нужен тред по всем таким экзотическим или малопопулярным языкам.
265 1577234
>>577228
И Crystal
266 1577252
>>577228
Чел, я не читал вашу дискуссию. Но ты пишешь в треде самого хайпового языка современности про то что нужен тред о маргинальных языках. Кого ты хочешь тут найти? Подними лисп тред для начала попробуй. Про nim и прочие подобные найти тут собутыльников вероятность крайне мала.
267 1577259
>>577222
Это значит, что затраты на написание хорошего кода выше.
268 1577266
>>577252

>Но ты пишешь в треде самого хайпового языка современности


Не вникал в вашу дискуссию, но прости, ты не в питон треде.

Ты же в курсе, что даже дарт обогнал по интересам го?
269 1577267
>>577259
Нет, это значит что либо качество кода на Си плохое, либо спекуляция тестами.
image.png226 Кб, 300x300
270 1577268
>>577252

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

271 1577277
>>577266

>хайпового языка


>питон


Ну раз вы считаете меня троллем, то, скажем так, ЯЗЫКИ РАЗМЕТКИ НЕ В СЧЁТ
272 1577279
>>577267
Ещё скажи, что писать на Си проще, чем на Go.
273 1577281
>>577228
Скорее Dlang. Десктоп, wasm, embedded, android (пилят), бекенд.
274 1577297
>>577281
В ldc, вроде, gpgpu завезли недавно.
275 1577356
>>577277

>Топ ML язык


>Основной язык используемый в науке и анализе данных


>Numpy опережающий по скорости языки Си


>...язык разметки


>Пук, среньк, потёк из треда

276 1577359
>>577279
Причем тут проще? Речь что тесты вызывают много вопросов.
277 1577367
278 1577370
>>577356
Numpy на C и F написан.
279 1577383
>>577370
И в этом питон великолепен.
280 1577450
>>577383
Скорость не его заслуга.
5dbd5105-30b2-445e-9497-7bcc5aa2fe07.jpg62 Кб, 679x513
281 1577461
>>577450
Поэтому число-дробилки и пишут на сях. Что касается CRUD - то между питоном и сями ты даже не почувствуешь разницу.

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

А в го? В го ты пишешь перманентно бойлерплейт.
282 1577468
>>577461
Что угодно может работать с сями блять.
283 1577478
>>577228
Двачую адеквата. Мне Nim побольше D понравился, т.к. почти все киллер-фичи D переняли в новых стандартах C (к примеру, анонимные юнионы, стракты и enum'ы в C11). Питону дает за обе щеки, т.к. по сложности синтаксиса и возможностям метапрограммирования он к нему близок, но при этом полезных конструкций в языке побольше. А по скорости даже Go даст пососать, т.к. она близка к C, к тому же есть линкер (ибо бинарники по 50 KB куда приятнее, чем по 5+ MB).
284 1577493
>>577468
Да ну конечно, с говно-обертками.
285 1577590
>>577478

> почти все киллер-фичи D переняли в новых стандартах C


Опциональный GC тоже переняли? А SafeD? D позиционирует себя как по умолчанию безопасный, дающий возможность играться на небезопасном уровне или не беспокоиться о нём. Си не добьётся этого никогда.
image.png8 Кб, 200x200
286 1577630
Зачем теперь го, когда есть https://vlang.io/ ???
287 1577659
>>577630
А зачем V, когда есть D? Или nim? Или zig?
288 1577676
>>577630
Пили теперь тред по нему, борщехлебам он понравился. Можешь сразу с другими переосмыслениями C (Nim, Fantom, Zig, Pike или даже D) тред объеденить, как в раст-треде предлагалось. Если соберется больше, чем полтора аутиста - можно будет либы пописать и специальную олимпиаду устроить.
289 1577678
>>577676
Я вечером запилю объединённый, с шапкой, инфой по языкам и полезными ссылками.
290 1577692
>>577678
Отлично, надеюсь взлетит. Много языков не бери, главный приоритет - V, Nim, D, Zig (самые большие комьюнити). Тэг можешь взять /clike/, если ничего лучше не придумаешь.
291 1577696

> Nim, Fantom, Zig, Pike, D, V


Нахуй нужны все эти близнецы-уродцы?

>>577678
Уверен ты даже сравнительный анализ по ним дать не сможешь.
292 1577711
>>577696

>Нахуй нужны все эти близнецы-уродцы?


А нахуй вообще ЯП нужны? Пиши прямиком на машинных кодах, и ассемблером не пользуйся, ибо их там тоже пара десятков реализаций (nasm, fasm, tasm, masm, *asm). А если серьезно, киллерфичи языков обычно подробно расписаны на их сайтах, которые запросто находятся по запросу %название_языка% lang. Для большинства это простота и безопасность по сравнению с C, но у каждого свои фичи - D себя позиционирует как переосмысление крестов, V имеет невероятно быстрый компилятор и встроенный менеджер зависимостей, Nim (и не только он, кажется) умеет транспилироватся в JS.
293 1577722
>>577711
Имеется в виду на фоне уже имеющихся языков.
Менеджер зависимостей это не фича нихуя, он и так должен быть у любого промышленного языка, и вообще похуй встроенный он или нет. Транслятор в жс это тоже не фича языка, любой production-ready имеет минимум один транслятор в js, тоже мне блять достижение. «Переосмысление крестов» вообще охуеть, а что конкретно делает его настолько непохожим на остальные языки или те же кресты чтоб он был прямо интересной альтернативой?
294 1577729
>>577696

> Уверен ты даже сравнительный анализ по ним дать не сможешь.


И не собирался. Для этого будет тред, а не шапка. Для сравнения нужно иметь опыт на этих языках. И не на одном.
295 1577733
>>577729
Опыт на языке, который вряд ли хоть где-то используется?
296 1577734
>>577722

>транслятор в js


У них теперь специальная олимпиада, кто лучше оттранслируется в жс. А по факту это просто кукаретики, которые насочиняют непойми чего и думают что они охуеть какие молодци, а если рядом найдётся ещё какой нибудь менее квалифицированный энтузиаст, то может образоваться петля с автоподдувом. Что в общем то и наблюдается почти с любым языком в индустрии. Для себя решил, что на таких фантазёров просто нет смысла время тратить.
297 1577776
>>577722
Я уже написал тебе, как найти информацию о киллер-фичах этих ЯП. Для большинства вышеупомянутых ЯП там весьма неплохо перечислены отличия от C. Go, кстати, точно такой же наследник C, но с поддержкой крупной копропорации.

>>577733
В этом тысячилетии ЯП вряд ли способен взлететь чисто за счет удобного синтаксиса/семантики и прочих приятностей вроде скорости компиляции. Для взлета в этом миллениуме нужна либо поддержка от крупных игроков рынка (Go, C#), либо популярный софт, который вытянет язык (Ruby с рельсами, обертки для нейросетей на Python), либо эксклюзивность для платформы (Java/Kotlin для Android). У этих языков пока ничего такого нет.
298 1577801
>>577733
Если ты не в курсе, это не значит, что не используется.
299 1578129
>>577678
Пук, среньк.
300 1578143
>>577722
Человек задизайнил V лучше чем разрабы го, это уже достойно отдельного внимания.
301 1578146
>>578143
Но ведь его продукт еще не production-ready
302 1578147
>>578129
Да, именно. Я пишу уже шапку пол часа, а завтра вставать рано. Так что, тред будет завтра. Не, я не забрасываю.
303 1578148
>>578146
Nim сейчас двое человек делают, не считая всяких контрибьютеров с гитхаба. Их даже какая-то компания начала спонсировать, чтобы они круглосуточно писали. Релиз 1.0 уже был. Так что, есть пример языка, который смог, не смотря на маленькое сообщество.
304 1578149
>>578146

>production-ready


Го так же трудно назвать.
305 1578153
>>578149
Кривая и нестабильная реализация vs работающий язык, хоть и с недочётами.
306 1578154
>>578148
Не думаю что выстрелит. Идея то не плоха, но все языки имеют фатальный недостаток - они не принадлежат какой-то топ компании. Это го или раст можно до посинения пытаться натянуть на рынок, а такие языки никому не нужны, потому что нельзя управлять комьюнити.

Nim имеет шанс потому, что он выглядит как питон на стероидах.
307 1578156
>>578153

>работающий язык


Там был какой-то момент, не помню точно, в 1.5 они переписали ГЦ, сделали его "быстрым" за счет процессорного времени и естественно многие схватили падение до 30% процентов (для пет проекта это может незаметно, но многие ощутили).
Или случай с алиасами, или что там было. Они просто взяли и решили по-своему.

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

>Nim


Было бы офигенно если бы они убрали двоеточие после if, for и функций, сделав просто обязательный перенос строки.

>>578147
Пока ты там шапку нашиш, приходится nim обсуждаться в го треде.
309 1578164
>>578156
Где-то читал, что гугл изначально создавал го для решения своих внутренних задач, и ему, в общем-то, должно быть плевать, что кто-то ещё захотел это использовать.
310 1578167
>>578161

> обязательный перенос строки


Охуеть, и в ниме синтаксис зависит от форматирования? Всё, вычёркиваю из своего списка "интересных языков".
311 1578170
>>578167
да, это требует линкера или IDE вменяемое, чтобы не страдать. Но после питона привык настолько, что даже скобки в if с трудом уже пишу
312 1578172
>>578153
Кривая и нестабильная реализация vs работающий язык с неизвестным будущем.

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

Эти парни вообще не парятся тому факту, что их продукты не выстреливают потому, что они их закрывают постоянно. Это уже замкнутый круг.
https://www.reddit.com/r/programming/comments/ept5c1/google_is_finally_killing_off_chrome_apps_which/

Котлинисты сейчас тоже напряглись
313 1578174
>>578172
Котлин почти наверняка ждёт участь скалы и других "убийц" джавы.
314 1578177
>>578174
Теперь мне кажется так-же.
Груви жалко, он мог бы стать моим топовым скриптовым инструментом. Но приходится душить змею.
315 1578181
>>578172
Как думаешь, что более вероятно: язык В станет относительно стабильным vs разработчику надоест им заниматься и он его бросит ?

>>578174
Судьба котлин зависит от судьбы андроида. Если гугл разработает свою операционку взамен андроида или какой-то новый язык, то котлин легко станет языком, который никому не нужен
316 1578184
>>578181

> Если гугл разработает свою операционку


Fuchsia.

> или какой-то новый язык


Dart. На Go для той операционки сетевой стек был написан.
317 1578188
>>578184

>Fuchsia.


Если она дойдет до готовности и гугл начнет ее пропихивать.

Правда, пока не ясно, заменит фуксия андроид полностью, или станет 3 системы
318 1578192
>>578184
>>578188
Только сейчас им показали как гугл очередной проект закрыл. Они сидят о фуксии мечтают.

>>578181

>относительно стабильным vs разработчику надоест им заниматься и он его бросит?


Никто не говорит перекатываться на кустарные проекты, есть такая стадия освоение языка "слежу за проектом" (или "играюсь с языком"). Этого для таких проектов достаточно.
319 1578202
>>563553

>Ультрагоднота


Try/catch — антипатерн.
320 1578203
>>567068

>Тут предлагают нарезать архитектуру не вдоль (все контроллеры в одном каталоге, все модели в другом, конфигурация в третьем), а поперёк (в одном каталоге контроллеры/модели/etc, связанные с одной сущностью, в другом - с другой и т.д.).


Проблемы вебмакак.
321 1578208
>>578203
Чем больше ты нарезаешь папок, тем вероятнее ты словишь циклический импорт, где-то на 10 вложении.
323 1578296
>>578271
Лол, он это серьезно?
324 1578321
>>578296
Через год про ваш Go уже никто не вспомнит.
325 1578334
>>578321
Самое забавное, что суслики то тупые, они же поведутся))
326 1578342
>>578334
Почему тупые-то, V действительно лучше Go. Если бы Go не форсился корпорацией добра, его бы никто в руки не взял просто посмотрев на синтаксис.
327 1578345
>>578202
И поэтому приходится вручную прокидывать ошибки наверх, потому что почти всегда на текущем уровне её не обработать. Из-за этих if err != nil { return nil, err } код разбухает в несколько раз. В джаве вон тоже изначально пытались бороться с игнорированием ошибок, высрав checked exceptions. Не прокатило, практика показала, что далеко не всё можно обработать здесь и сейчас.
А причин-то не добавлять эксепшены и нет, просто goвноеды из принципа упёрлись.
328 1578354
>>578345
Спасибо за ваше мнение. Мы его учтем и непременно добавим в Go2 эксепшены, ведь про это нам сказал анон с двача.
329 1578357
>>578354
Ну наконец-то.
12123123.jpg88 Кб, 1249x1300
330 1578358
Не надо ничего менять, го эталон мерила некомпетентности, я потом перестану так быстро ваннаби программистов отсеивать.
331 1578361
>>578358
Если потихоньку пинать разрабов пока ещё молодых языков в нужном направлении, то может наконец-то получиться если не убийца крестов, то хотя бы сишки.
332 1578367
>>578361
Там где-то в сети гуляет статья, что го не ваш язык, а гугла.
В этом вся суть, хера кого-то ты там распинаешь.
333 1578374
>>578367
Лучше уж пинать и надеяться на светлое будущее, чем не пинать.
image.png393 Кб, 500x335
334 1578384
>>578374
«Мыши плакали, кололись, но продолжали грызть кактус»
335 1578391
>>578384
Мыши продолжали писать на других языках с мыслью перекатиться на го, когда он станет достаточно годным.
336 1578394
>>578391
Когда на нём можно будет stm прогать?
337 1578932
>>576211

> Плюса у С++ только два. Минусы стремятся к бесконечности


Проиграл.

Вообще давно хотел попробовать D. Время пришло.
338 1579052
>>578932
Вы двинутые что-ли? Зачем пробовать мёртвый язык? Как бы хорошо он не был написан, ему уже 10 лет и он не взлетел. Всё, тема закрыта. Хочется чего-то нового, берите scala, rust, haskell, erlang, на худой конец, nim.
339 1579105
>>579052
Ну ладно, скалу и ерланг можно тогда. А вообще больше всего хочется Crystal.
340 1579107
>>579052
Думаю это тот же самый анон, который ним предлагал. Предлагаю укатывайться в V тред, как раз для маргиналов.
341 1579171
>>579052

>Зачем вы пробуете мертвый язык


>Лучше попробуйте эти мертвые языки


Есть только один язык и имя ему python
http://pypl.github.io/PYPL.html
ironic.gif484 Кб, 319x234
342 1579183
>>579171

>Есть только один язык и имя ему python


>Э тiльки одна мова - Українська

343 1579194
>>579183

>пiтхон

344 1579218
>>579171

Это у которого вышли три ломающие версии и каждая последующая с апокалипсисом всей предыдущей скодобазы?
345 1579238
>>579218
Почему три и кто тебе вернул твой 2008?
Почему ты решил что гугл не сломает если захочет? Язык его, а не комьюнити.
Но вот питон такое уже явно не будет делать.

Я вообще бы на месте гугла го закрыл (отдал в опенсорс), а сам бы на базе полученных данных от этого затянувшегося эксперимента запилил бы новый язык.
346 1579243
>>579238
И ведь ломает, причём достаточно активно. Выпиливает фичи от версии к версии, что-то переделывает. Синтаксис, к счастью, не меняется так радикально.
Вообще не представляю, как на таком языке долго поддерживают что-то большое.
347 1579258
>>579052
Ну когда у тебя нет карьеры и работы с миллионом задач, всегда хочется чето попробовать.
15746334064280.jpg322 Кб, 1275x1650
348 1579269
>>579258
O_o
Мы, видимо, слишком разные.
Казалось бы, нет карьеры и хорошей работы - ну так заведи её. Выучи любой действительно востребованный язык (джаву, пыху, гошечку, да даже джаваскрипт) и найди на нём работу.
Но вместо этого ты хочешь тратить время на то, что принципиально не способно решить твою проблему (не гуглив, уверен, что во всём СНГ ты не найдёшь ни одной вакансии на D или этом V).
349 1579294
>>579243
пруф, или ты сейчас деприкейтед принесешь нам?
image.png139 Кб, 1137x733
350 1579304
>>579269

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


>гошечку

351 1579305
>>579304
Тот случай, когда востребованный язык симулирует ось x в графике
352 1579309
>>579294
Ну да, фичи объявляются депрекейтед и выпиливаются. Других причин выпиливать и нет. А легаси ведь так мгновенно переписывается, что можно вообще об этом не париться.

> vendoring


> binary only packages


> go tool yacc

353 1579315
>>579309
А ты про го? Го вообще прелесть, вроде и обновления маленькие, но реально может что-то сломаться.

Хз, имел бы я легион хомяков бесплатных, я бы тоже на них тестировал.
354 1579378
>>579315
Что конкретно в го поломали? Максимум, что-то задепрекетили (и это нормальный процесс).
Что vendor, что yacc можете использовать совершенно свободно, они будут работать. vendor вообще в go modules нативно поддерживается.
355 1579405
>>579378
Хз у знакомого там что-то упало, в принципе и при джаве не торопятся обновлять обычно. В общем, парни поигрались, потом откатились до обратно до жабы не без помощи участия начальства.
Давно было, тут половина еще в школу ходила.
356 1579437
>>579405
Звучит, как "одна бабка сказала", я про джаву могу тоже очень много негативных слухов припомнить.
357 1579474
>>579437
Ну может есть тут кто не пет-проекты тискает и между версией встрял.
Мне лично хватило когда они просто взяли и в пользу своего модного ГЦ мое процессорное время разменяли.

Попробуй так в джаве сделай.
358 1579486
>>579474
Лолчто? И го и джава одинаково жертвуют процессорным временем для гц во имя упрощения работы с памятью. Гошный и джавовый гц немного по-разному работают, конечно, но это довольно специфичные материи и в 99% проектах эта специфика бесполезна.
гошные хейтеры такие хейтеры
pokuchatdlaybratichki.jpg53 Кб, 612x459
359 1579520
>>579486
Читаешь попой да?
Это было когда ввели микропаузы в 10 мс. И это уже была как минимум 1.5 версия (вроде), то есть люди активно пилили тырпрайз и они просто взяли и херанули.

Я знаю, ты не оч умен. Поэтому просто объясню, они походу заебались с ГЦ (или их заебали с ГЦ) и они тупо выкрутили на максимум.
Ну и конечно натянули токсичный маркетинг, мол, как теперь стало круто у го. Но оказалось это дается не бесплатно и кто-то хапнул на железках падение 20-40% (что в моих 70-80% было критично кстати).

Как потом оказалось, что в мире ГЦ не сложно достичь низких пауз, но достигается это не бесплатно, а самим дорогим ресурсом (нет, не ОЗУ мой юный друг) - а процессором

Ну и конечно они там не дали никакого ключа типа "хочу как раньше". Они просто сделали как пожелали и клали на все.
360 1579607
>>579520
Мне кажется что работой жц в го можно таки управлять.

>>579474

>Попробуй так в джаве сделай.


Жаба это страшный жирный как твоя мамка монстр, там изначально так было.
361 1580061
А меня одного бесит гошная УТИНАЯ ТИПИЗАЦИЯ? Казалось бы, круто - но меня дико бесит, что, когда начинаешь в интерфейс добавлять новые методы, то хер проссышь, где там имплементации этого интерфейса были.
362 1580194
>>580061
А IDE тебе на что дана? Там все подобные действия уже давно реализованы, одной горячей клавишей всё везде поменять можно.
DEHfMMPXkAAPX64.jpg85 Кб, 700x963
363 1580305
>>579607

>Мне кажется что работой жц в го можно таки управлять.



Два состояния в го:
1) Блин, тут наверное должно быть какое-то решение, не может же это быть так глупо сделано.
2) Бля...
364 1580309
>>580305
Я не го программист но за 5сек нагуглил это https://golang.org/pkg/runtime/
Можно установить процент, можно запускать вручную. Стандартно всё.

Почему хуйню несёш ты, а стыдно мне?
Убей себя.
365 1580310
>>579520

>Как потом оказалось, что в мире ГЦ


Спешите видеть, эксперт в программировании с двача открыл для себя автоматическое управление памятью. Ещё немного и начнёт откровения ООП раскрывать.
CUn-7LuU8AA-8Yp.jpg89 Кб, 600x600
366 1580315
>>580309

>Можно установить процент, можно запускать вручную.


Тебе сказали, что накатили другую модель ГЦ за счет железа (денег) пользователя, без возможности заюзать старую модель.
Что ты там по-подергать собрался, суслик? Не оторви себе.

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

У гугла мона репа именно поэтому они так неохотно ели пакетный менеджер и высирали статьи "ненужно" (до сих пор там лажа какая-то).

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

Я застал реинкарнаций 5-10 тредов по го (застал даже Илюшу), все эти треды жили на хейте и лулзлах над фанатиками.

Есть, конечно, очень маленькая доля рынка, где го просто был идеален в свое время, но сейчас, когда запихнули зеленные потоки async await даже в те языки где он не нужен, надо быть отбитым чтобы брать го.
367 1580319
>>580315

>прррррр среееньк прррррр говеньк


Тортопёк, ты?
368 1580321
>>580319
Нет, это как раз тот кто задеанонил куколда у которого жена с тортами спит.
369 1580330
>>580321
Что узнали в процессе деадона?
370 1580353
>>580330
Да толком ничего (или я забыл).
-Сайт с тортами или объявление тортов (жена пекла, может ИП).
-Мухосранск
-Ну что чел шизик (причем какой-то реально невменяемый).

Дианон в /pr уныл и беспощаден (там были какие-то данные, можно было погуглить, напрячься, но я ленивая жопа).

Вообще, были мемные события, особенно того же Илюши, которого полностью дианонили и лулзовали как могли, даже в го чате. Но никто это не увековечил даже в лурке, а Илюша вырос и стал музыкантом ушел из го. хотя вроде пытался пилить свой го, с блекджеком и дженериками, но увы, малолетний долбаеб, хотя вроде и умный
371 1580368
>>580353
То есть, ты только что заявил, что деанонимизировал кого-то, и тут же признался что не деанонимизировал никого?
Тебе сколько лет?
372 1580378
>>580315

> Тебе сказали, что накатили другую модель ГЦ за счет железа (денег) пользователя, без возможности заюзать старую модель.


Ну а пруфы, пруфы-то где?
373 1580381
>>580378
Дополню вопрос, в то, что они улучшили gc - я верю, это легко гуглится. Где пруфы, что это так сильно влияет на ресурсы процессора?
375 1580394
>>580368
Сдеанонили шизика по тортам.
@
Нашли объявление жены, фирму, номера телефонов, мухосранск
@
Анон не легион он один, забил тупо болт
@
Шизик обосрался и залег на дно реально срал в каждом треде
@
Смысл лулзов пропал вообще
@
Торто-куколд сейчас радуется что его не сдеанонили до соцсетей "ко-ко-ко" это не считается.

Ты не расслабляйся, вдруг треды в архивах.
376 1580397
>>580391
Пока что я могу сказать, что судя по гитхабу, проблемы с деградацией решили где-то в go1.8, там в каждой версии, начиная с 1.5 были улучшения на эту тему.
Более того, быстрый гуглинг по статьям говорит, что он gc в го схожс jdk-шным, вроде бы даже реализован тем же разработчиком, но позже, с какими-то улучшениями.
Не могу квалифицированно сказать, что там конкретно поменялось, но вроде как они изменили архитектуру gc и это в ряде случаев начало вызывать проблемы.
Что сказать, да, они пидорасы, что выкатили настолько странную новую версию, которая вызывала такие проблемы. Хорошо, что потом это починили.
Ты это хотел услышать?
377 1580400
>>580394
А ты чего ожидал? Что ему под дверь насрут?

>легион


>шизик


>куколд


>лулзы


Не поверю, что это может писать человек старше 20 лет
378 1580415
>>580397
У нас уже получается гуглить. Это хорошо.
Тонна говна тогда выложили (лично читал боль в гугл группах), даже вроде в релизе говорили про цену в 10-20%
Но смысл, еще раз не в этом, даже срать починили они или нет никто там не починит, такая модель ГЦ просто. Где-то даже в подкастах на джаве умные люди на пальцах объясняли. Кстати, и не починили скорость компиляции, динозавры помнят

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

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

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

Судя по тому что местные даже нагуглить не могут, не то что помнят сию трагедию, это можно уже считать мифом. Так что забей, кушайте кактус.
379 1580418
>>580400

>А ты чего ожидал?


Ты точно мне это задал, а не этому посту?
>>580368
380 1580421
>>580418
Тебе.
Ты же начал про легион и куколдов вещать
381 1580460
>>580421
Что легион? Тебе написал что анон один, анону было похуй.
О чем ты, тортошизик?
382 1580491
>>580421
Да не обращайте на него внимания, он ебанутый. Сказки рассказывает какие-то про 80% деградацию, про какой-то деанон рассказывает. Сидимо, у первокурсника каникулы начались, вот и в свободное время засирает интернеты.
383 1581004
>>580315

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


И поэтому сейчас его начали использовать в Авито, Озоне, Мейлру, Тинькове и т.д.? Ну тупые, ведь анон с двача скозал что только отбитые так делают.
15780999372150.jpg151 Кб, 1000x1000
384 1581016
>>580391
>>580415
Джава-ретард, ты? Начинай оправдываться.

https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/

Starting with Go 1.5 in August of 2015, Go’s garbage collector is mostly-concurrent and incremental, meaning that it no longer requires the application to be entirely stopped while it does the bulk of its work. Aside from relatively short setup and termination phases, our program can continue to operate while garbage collection is underway. Upgrading to Go 1.5 immediately led to a 10x improvement in the length of GC pauses in our chat system, with pause time on a heavily-loaded test instance shrinking from 2 seconds to around 200ms.

We’d endured the multi-second GC pauses of Go 1.2 through 1.4. Go 1.5 brought them down to around 200ms, and Go 1.6 cut it further to around 100ms. Now with pauses generally less than 70ms, we can claim an improvement of more than 30x.

With pre-release Go 1.7 from June 2016, the GC pause times are better than ever with no manual tuning required. Typical pause times for our chat server are close to 1ms out of the box — a 10x improvement over the tuned Go 1.6 configuration!

Profiling and tuning gave our application a 10x improvement in pause time with Go 1.5 and 1.6, but between Go 1.5 and Go 1.7 the runtime team was able to turn that into a 100x improvement in pause time for all apps like ours.
385 1581031
>>581004

> Мейлру, Тинькове


С ними и так с самого начала было всё ясно.
386 1581181
>>580491
Торто-шизик, плиз.
387 1581185
>>581004
В 2020 удивляться что крупные компании могут позволить себе взять и поиграться в очередной язык чтобы пропиарить себя в узкой группе разработки (ты же их запомнил, умница) и чтобы избежать текучку кадров, тем самым дав поиграться очередным своим макакам.

У нас так и руби был, нода, го, котлин даже тискали. Сейчас одна команда сидит и заливает как им очень нужен раст (они же постигали в свое время говно).
388 1581189
>>581185
А зачем кому-то поддерживать узкие группы разработки по "плохому" языку? Зачем вкладывать ресурсы? Или ты думаешь, там тупые люди сидят, один ты тут такой умный - срыватель покровов с го?
111111.jpg136 Кб, 800x528
389 1581190
>>581016
Гоферы на все блестящие ведутся, думать не хотят совсем.
Парням очень важны были эти паузы, вместо того чтобы взять С++ или раст они тупо дрочили эти паузы и радовались.
Важны ли эти паузы тебе? В 99% нет.

Ладно, распишу для самых маленьких.
У тебя есть некий язык и у него есть два варианта использования:

1) У тебя есть сайтик, который раз в 5-10 минут делает stop-the-world в 200мс. Естественно, это незаметно для клиентов вообще.

2) У тебя есть сайтик, который очень часто делает stop-the-world, но всего лишь 10мс, плюс отнимает 20-40% процессорного времени. Естественно, тоже незаметно для клиентов вообще.

Какой вариант выберешь? Да никакой не выберешь у тебя нет выбора в го. У тебя есть только возможность читать очередные истории успеха, от которых приторно стало еще в 2015 году агрессивный и слащавый маркетинг это плохо
390 1581226
>>581189
Ты тупой? Тебе там сразу написали.
1) Пиар. Потом хомяки бесплатно произносят твою фирму при холиваре. А так же пиар на конфиренциях.

2) Уменьшить текучку кадров, позволяя программистам во что-то новое поиграть. В условиях микросервисной архитектуры - это ничего не стоит.
391 1581227
>>581004
>>581189

>Авито, Озоне, Мейлру, Тинькове


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

Мы в свое время на какой-то конфе чела отправляли, чтобы просто нашу ноуй-нейм фирму хотя бы услышали (а потом может узнавали). Вроде было про нод.жс, потом эту каку конечно выпилили потому что бывшие фронтент разработчики не очень то подходят для бэка
392 1581229
Есть приложение на Го и это приложение хочет базу. Но базу оно хочет не абы какую, а Постгрю, что, учитывая масштабы применения приложения выглядит ебанутым проектированием скейлинга ради скейлинга. Короче, как с минимумом усилий подменить для Go-приложения postgres на sqlite3?
393 1581234
>>581229

>Есть приложение на Го и это приложение хочет базу. Но базу оно хочет не абы какую, а Постгрю, что, учитывая масштабы применения приложения выглядит ебанутым проектированием скейлинга ради скейлинга. Короче, как с минимумом усилий подменить для Go-приложения postgres на sqlite3?



Без анализа того что именно и как твоё приложение делает - никак.
Или ты о чем вообще?
Что если оно жс запускает на стороне базы данных?
394 1581260
>>581227

> Авито, Озоне, Мейлру, Тинькове


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


Толсто.

> бывшие фронтент разработчики не очень то подходят для бэка


Это почему? Я сам из фронта в бек выкатился и вполне успешно.
proniknovennie-illyustracii-hudozhnika-sako-asko-21-sht-19.jpg49 Кб, 500x500
395 1581274
>>581190
Успокойся уже, не отнимает он столько процессора. В 1.5 версии был конкретный баг (точнее, недоработка) связанный с конкурентной обработкой горутин, находящихся в паузе, сборщиком. Её пофиксили, теперь не только паузы маленькие, но и процессор он не жрёт.
А ты сиди дальше на своей джаве, жирной, как твои наезды на гошечку.
396 1581285
>>581260

>Это почему? Я сам из фронта в бек выкатился и вполне успешно.


Двач борда успешных людей.
397 1581287
>>580394

>Сдеанонили


>Нашли


Ты же говорил что сам лично сдеадонил.

>Анон не легион он один


Хм.

>Нашли объявление


А деадон то был?

>Ты не расслабляйся, вдруг треды в архивах.


Требую деадона.
398 1581288
>>581285
Не верю в такие кулстори. Это как с гомоеблей, если даже и прекратишь - то пидором быть не перестанешь. С фронтендом та же история.
399 1581289
>>581288
Будешь фуллстеком-би.
400 1581293
>>581274

>теперь не только паузы маленькие, но и процессор он не жрёт.


Гоферы изменяют физику.
Ты думаешь нету реалтайм ГЦ? Есть, но оно оч дорогое по ресурсам.
Вам тупо "ползунок" выкрутили в одну сторону есть мнение что их запарило бороться с минутными паузами для 50гб систем.

Проблема то не в этом. У гоферов нет выбора, вот мне не нужны паузы в 10мс, я хочу себе throughput поднять, в жабе я могу сделать выбор, в го я могу только пукать в треде.
401 1581294
>>581287
Прошли сутки
@
Целый день искал в архивах те темы.
@
Не нашел
@
-"Ну че ты, че ты, деанонь меня".
402 1581295
>>581294
Ищи лучше.
403 1581296
>>581293
Ты глупенький что ли? Он не реалтайм, он с паузами, его там оптимизировали (добавили конкурентную разметку, как я понимаю), чтобы паузы минимизировать. Да, это имеет некоторый оверхед, но он совсем не такой, как ты описываешь.
То, что ты пишешь - это какие-то сказки.
404 1581300
>>581296
Кто сказал что го реалтайм?
Реалтайм ГЦ это крайняя степень, когда занижают throughput ради маленькой и стабильной latency.
Реалтайм показывает, что делать так можно, но не нужно.
405 1582527
>>581288
>>581289
Почему не веришь? Такое нередко случается. Был фронтендером с некоторым знанием бекенда. Постепенно знание росло, достигло примерно 50/50 со знанием фронтенда, выполнял задачи как фуллстек разраб. Ну и дальше со временем все больше знаний становилось в бекенде, так и выкатился.
407 1583892
Все. Мы решили. Го не нужен. Закрываем тред. Сворачиваемся.
408 1583933
>>583892
Ну вот чего вы начинаете, нормально же общались.
409 1583942
>>583933
Не общались*
410 1584013
>>583892
Все ушли на шарфик?
шизик.jpg720 Кб, 1024x1403
411 1584136
>>583892
Шизя, шизечка, шизоид, ути какой синенький, иди сюда, я тебя покормлю.
412 1584147
>>584136
Торто-куколд, а я думал ты левнул с борды.
Как бизнес с тортами, пошел в гору или не?
413 1584156
Пацаны а что если это я срущий петух
414 1584163
>>584156
Ты попал по адресу
415 1584171
>>584147
Поймал шизика схватил обнял.
Ути пути какой смешной ты у нас.
Держи тортик, вкусный тортик?
Как там диодон? Скоро уже? Давай диадон, а я тебя тортиками накормлю.
для шизика тортик.jpeg222 Кб, 605x571
416 1584174
>>584147
Кушай тортик, кушай и расти большой и синий.
417 1584179
Вы тут ебанулись?
418 1584190
>>581294

>Целый день искал в архивах те темы.


>@


>Не нашел


Шизя, я тебе архивы принёс.
https://2ch.hk/pr/arch/2017-06-14/res/973015.html (М)
Давай уже диадонь скорее, у меня для тебя целая гора тортиков.

>>584179

>Вы тут ебанулись?


В треде орудует шизик, любитель сладких тортиков, срет тут с 2017.
419 1584221
>>584190
И жава-ретард ещё.
420 1584227

>Go is a procedural programming language


ахахах
421 1584232
>>584227
Ну так ведь не object oriented и не functional же.
422 1584282
https://bradfitz.com/2020/01/27/leaving-google

Из гугла ( и скорее всего го тимы) уходит разраб, который 4ый по количеству коммитов в го репу
423 1584286
>>584174
Ахах, да, это ты. Нахрена ты столько лет тут сидишь? Это рил нудно же.
424 1584288
>>584190
Ты настолько тупой, что даже не понял что паста была от твоего лица??
для шизика тортик 4.jpg102 Кб, 800x800
425 1584311
>>584286
Заглянул неделю назад, обрадовался шизику.

>ахаха ты тут сидишь так долго я не шизик


Всё ещё жду деадона. Если не будешь стараться не получишь тортиков.
426 1584323
>>584311
Тут 99% мимовкатывальщиков и половина вменяемого анона, что тут тебя держит?
427 1584366
>>584323
Ты забыл одного шизика.
Не могу смотреть как шизик от голода страдает. Кормлю его тортами.
428 1584409
>>584366
Мне тебя жалко.
429 1589733
Скоро в жяве будут fibers и вы все на заводы пойдете.
430 1589769
>>589733
А уж когда там будет async/await никогда, так и питон с js сразу сдохнут.
431 1589894
>>589733
Скороее жава господа научатся перекатывать свой тред.
432 1589895
>>589894
А что не так? Тебе не нравится, что джава-треды перекатывают после 1000? Так это фича такая.
433 1589897
>>589894
Мы долго поддерживаем свой тред, а не переписываем каждые 500 постов.
434 1590052
>>589733
Эх, придётся перекатываться с гошечки в кровавый ынтырпрайз (нет)
435 1590083
>>584221

>И жава-ретард ещё.


Он вроде раньше рассказывал что сеньер девелопер фронтенда.
436 1590128
>>589733
2024? Да? Лол.
437 1590149
>>563445 (OP)

так и придется хромоногие жабаскрип интерфейсы писать?
438 1590156
>>590149
У таких интерфейсов есть и плюсы. Можно объявить интерфейс и принимать его на вход функции, которой передавать уже существующий тип.
1025694336.jpg546 Кб, 848x1200
439 1590373
Купил пикрил. Как оно? Куда потом вкатываться с этим.
Мимо фронтенд.
440 1590397
>>589894
Зашел в джава тред, там все обсуждения - это как настроить иде и как сделать лабу по программированию
441 1590510
>>590397
Это какой-то блаженный наспамил хеллоуворлдными вопросами.
442 1590523
Как с го пейти на NET Core?
443 1590597
Посоветуйте на что лучше перекатиться с го.
444 1590604
>>590597
На жабу.
445 1590607
Мне одновременно интересен Эрланг и ОКамл. У Эрланга многопоточность, у ОКамла её нет, но зато там стронг статик. Как мне совместить эти две вещи в одном языке, чтобы не распыляться на два фронта?
446 1590618
>>590607
А при чём тут го, в котором нет ни того, ни того?
447 1590622
>>590597
Если серьезно - си шарп
448 1590664
>>590618
Ну местные же по многопоточности специализируются, тут часто мелькала в треде другая функциональщина.
449 1590730
Существует ли логер, в котором можно указать отдельные io.Writer для инфо и для ошибок?
450 1590746
>>590607
Scala.
451 1590817
>>590607

>Мне одновременно интересен Эрланг и ОКамл. У Эрланга многопоточность, у ОКамла её нет, но зато там стронг статик. Как мне совместить эти две вещи в одном языке, чтобы не распыляться на два фронта?


Ada
452 1590819
>>590510
Неиначе гошизик тортоед в джаву вкатывается.
453 1590889
>>590819
Лол, когда жаберы уходят в дотнет, он полез в кобол.
454 1590923
>>590607
Хаскелл.

>многопоточность


Чек.

>стронг статик


Чек.
455 1590948
>>590923

>Хаскелл.


>многопоточность


Толсто.
456 1591045
>>590664

> Многопоточность.


В го нет потоков и ещё меньше контроля на ними.
457 1591053
>>567737
Мимо реактообезьяна, пилить интерфейсы заебало. Я тоже хочу на бекенд, хоть куда. Дай наставлений, анон?
458 1591073
>>591053
Учи ноду и тайпскрипт.
459 1591080
>>591045
Шизик, таблеточки прими, или ты опять голодный?
460 1591082
>>591053
Использую связку typescript + c_sharp
461 1591086
>>591045

>В го нет потоков


Ку-ку дядя. Если горутина делает блокирующий системный вызов, то рантайм создаёт/берет из пула новый поток, а блокированный отправляет в пул.
462 1591092
>>590397
А туда ли ты зашел - петушок?
463 1591107
>>591073
ТС знаю достойно, а на ноде смогу написать небольшой сервер или утилиту. Есть чуть больше года опыта фронта и немного бекенда. Монго на уровне "добавь комментарий в блог". Представляя собеседование на бекенд позицию пугают вопросы про алгоритмы, SQL и паттерны / бест практисы (нихуя из этого не знаю). Как дальше поступать?
464 1591117
>>591107

>Как дальше поступать


Я на интервью сразу говорю, что с sql неочень, т.к. у меня есть дба и они бля, да и вообще идите вы нахуй.
Все время спрашивают какую-то хуйню - вы умеете проектировать бд? Да хуле там проектировать, чертила, таблица хуяк хуяк нормализация.
465 1591119
>>590664
Мало есть вещей более далёких от функциональщины, чем го
466 1591142
>>591086
Ну раз такой умный, помести мне эвент-луп tcp-сервера в отдельный сетевой неймспейс, оставив мейн-тред в текущем.
467 1591147
>>591119
Да у них каждый первый язык, где есть функции, функциональный. Скоро и сишку будут классифицировать как функциональщину.
15782327752590.jpg263 Кб, 1148x1080
468 1591159
>>591142

>отдельный сетевой неймспейс


Я тут мимопроходил.
Первый раз такое услышал.
Это что-то из POSIX socket API ? Я с системщиной неработал никогда, но на уровне пользования апи ос из тех-же сей никогда о таком не слышал, или я забыл просто?
pepe6.jpg137 Кб, 1920x1080
469 1591161
>>591147

>у них


У кого?
470 1591172
>>591159
Это фича ядра линукс, которая сегодня в основном используется для создания контейнеров. Она позволяет содавать отдельные области видимости для разных ресурсов системы, изолируя процессы друг от друга по ресурсам (не по ядру).
Сетевой неймспейс изолирует видимые сетевые девайсы, и соответсвенно даёт свою таблицу марштрутизации, цепочки в iptables и т.д.
https://www.youtube.com/watch?v=j_UUnlVC2Ss
Например внутри докера ты можешь как угодно сломать сеть и маршруты, и при этом в другом контейнере сеть будет нормально работать дальше, потому что это другой сетевой неймспейс.

Go позволяет запускать процессы в отдельных неймспейсах - тут хороший список примеров в нескольких статьях:
https://medium.com/@teddyking/linux-namespaces-850489d3ccf

Проблема той задачи выше в том, что нейспейс - это свойство потока в ОС, но Go очень сильно абстрагирует работу с потоками и не позволяет заиметь два пула потоков с разными свойствами, делая задачу "жить в двух неймспейсах одновременно" нетривиальной и настолько неудобной, что проще просто запустить отдельный процесс.
Т.о. в Go есть пул потоков, но сами потоки как объекты ОС го пощупать не даёт и не может дать - он сам ими управляет и сам шедулит горутины на потоки из пула.

Есть правда одно исключение - runtime.LockOsThread, оно позволяет решить часть задач, но он не позволяет указать несколько горутин которым разрешено сесть на текущий тред, только одну.
471 1591174
>>591172

> сами потоки как объекты ОС го пощупать не даёт


Плохо выразился. Пощупать даёт, но с костылями (см. репу coreos) и одноразовыми тредами.
472 1591180
Анонче, помоги:
>>1591099 (OP) (OP)
473 1591182
>>591180
Какая нахуй разница? Они все одинаковые.
15802913354940.jpg88 Кб, 960x699
474 1591192
>>591172
Окей.
Как в C# в одном приложении один поток в один неймспейс а другой в другой запихнуть?

Это вообще где-то кроме Сях можно сделать? Ведь нужно напрямую команды ядру ОС посылать, верно?

>Проблема той задачи выше в том


Я вроде понял, но это тяжело назвать "не работает с потоками". Я первый раз в жизни слышу, чтобы кто-то делал подобное отдельно для отдельных потоков в одном процессе. Обычно всякие сгрупс распространяются на процесс.
Задача интересная конечно, очевидно ГО предлагает в таком случае выносить функционал в отдельный процесс.
475 1591198
>>591192
Я видел как на отдельный тред вешали секкомп профиль. с неймспейсами не помню такого, но api позволяет. И есть всякие пруфы что это возможно вроде - https://unix.stackexchange.com/questions/494195/is-there-a-file-that-associates-a-thread-to-its-network-namespace
или man setns

Вообще и в го это можно - надо только забить на гошный шелуллер и сделать врапперы для pthreads. Насчёт других языков - в принципе, если треды под капотом держат нативные треды ОС, то всё сводится либо к вызову unshare и спауну нового треда, или к вызову clone с кастомными параметрами для создания нового треда.
Мне аж стало интересно запилить такое для ждавы с native threads
476 1591212
>>591198
Будем надеяться что никто этим всерьёз заниматься не будет.
Не хочу такую хуйню в проекте встретить.
477 1591915
gовноедов снова прокинули через хуй, дискорд съёбывает с gовна на Rust, кек.

https://www.reddit.com/r/rust/comments/eytyug/why_discord_is_switching_from_go_to_rust/

inb4 только выиграли, хипстеры нинужны, дискордом никто не пользуется
478 1591954
>>591915

>TLDR: Rust is faster and just as safe, Golang has GC lag spikes.


>


>It's interesting though because they are using a Cassandra database, which is pure Java and needs a lot of GC tuning to maximize performance, but it's still a very fast database.


Тут 2 момента: во первых разные GC это серьезное преимущество. Во вторых Cassandra более scalable чем fast.
479 1591963
>>591954
У Кассандры есть крестовый клон, на который съебать никогда не поздно.
480 1592012
>>591963
Что они и делают:

> Post author here. Agreed Cassandra has issues due to GC too. We've been switching over to Scylla, which is a C++ database that is a drop in replacement for Cassandra. Scylla does not suffer from GC.

481 1592060
>>591915
Шизичька шизя, схватил шизика накормил таблеточками.

Как таблеточки, шизоид, вкусные?
482 1592061
>>592012
Джава обезьян снова ебут, да ещё крестами, какой позор.
483 1592068
>>591915

>мам смотри реддит


Уже нашёл жж Артема Лебедева?
484 1592069
>>591915
Как же я лолирую с комментов гугл-фанбоев -

>Тесты не тесты!


>А пачиму старый гоу, мммм?!!! В новом гоу все хорошо!!!


>Руст - это сложно, гоу - хорошо!!

помгаю от шизика.png191 Кб, 720x300
485 1592090
486 1592094
>>591915
А что у них вообще на говне было написано?
Бенкенд у них на Elixir со вставками на Rust в местах требующих оптимизации. Фронт вроде на реакте.
487 1592135
>>590746
Она же с динамической типизацией.

>>591915
Вывод такой, что настоящая годнота — Elixir.

>Our core services aren’t written in Rust, they are Elixir-based.


>11kk concurrent connections

488 1592241
>>592060
>>592068
>>592090

>мам шизик)



Это всё что могут высрать goвноеды? Ни аргументации, нихуя, просто называй всех шизиками, так победим!

Признайте уже, что эксперимент "goвно" провалился, и идите писать на нормальных языках.
489 1592259
>>592135

>Scala


>Она же с динамической типизацией.



Лол. Нет конечно.
Более того там система типов по уровню фич сопоставима с Haskell.
Хуй знает может ты с Groovy перепутал.
490 1592326
>>590607

>Как мне совместить эти две вещи в одном языке, чтобы не распыляться на два фронта?


Легко, берешь F# и получаешь OCaml с развитыми многопоточностью, асинхронностью, и даже с моделью акторов как в Эрланге, плюс развитая экосистема .NET Core, в которой есть все что нужно для жизни, чего ты не найдешь в Эрланге и в Окамле.
491 1592384
>>592383 (Del)
Выше кидали.
492 1592393
>>592090

>Блокирует маркетологов


Тогда всем говноедам нужно срочно по две пачки выписать.
494 1592470
>>592383 (Del)
Щас бы следить за тем что делают в дискорде, и делать тоже самое. А если они завтра говно начнут жрать, ты тоже подтянешься??? Уверен что да.
495 1593315
>>592394
Наркоман что ли? Во-первых - это практически мёртвый проект. Во-вторых никакой многопточки и грин тредов как в эрланге там нет, только убогие жвм либы.
496 1593397
>>593315

> мёртвый проект


Вряд ли эрланг и окамл сильно живее.
497 1593432
>>593397
Эрланг сильно живее, чем typed clojure.
498 1593463
>>593397
Двачую, регулярно выходят релизы.
499 1593797
>>593315

>Во-вторых никакой многопточки и грин тредов как в эрланге там нет, только убогие жвм либы.


Чаво? Clojure один из strong concurrent/multithreading language. Clojure один из редчайших языков, в который встроена STM, - транзакционная память, в само ядро языка, а не в сбоку.
500 1594042
>>593797
кожура - претенциозное тормозное говно.
strong concurrent/multithreading language - не более чем просто слова, язык всегда живёт в экосистеме, так вот - экосистема жвм это всякое легаси говно, построенное на различных велосипедах или вовсе на блокирующем IO. Хуй там все клали на твои strong concurrent/multithreading.
501 1594170
“Why Discord is switching from Go to Rust” by Jesse Howarth https://link.medium.com/cg9FNegJS3
502 1594267
>>594042
Ебать ты олень. NIO это что блять? А Netty? Clojure стабильно находится в лидерах по производительности, как и джава впрочем. Только дебилы могут говорить, что в Джаве нет конкурентности и многопоточности. Я хоть джаву как язык терпеть не могу, но JVM это сила, это нельзя отрицать.
sage 503 1594768
>>594170
Бля, давайте теперь каждый день это постить, уже дважды кидали
image.png280 Кб, 604x438
504 1594969
505 1596216
>>594768
Goвноедам нужно напоминать их место у параши.
506 1597084
>>596216
О, жвм петух опять фантазирует. У тебя весь бек на го, ты оподливился, даже твои убогие сервисы работают в докере, который оркестрируется кубером. Аналоги тоже на го, типа номада и консула. Рыночек доказал, что го лучше жвм-чиркашей, иначе бы всё было на них, но они не годны не для чего кроме поддержки обоссаного легаси.
IAVkkcgy.png319 Кб, 512x501
507 1597089
>>594267

>JVM это сила, это нельзя отрицать.

508 1597366
>>597084
Шизло, чини детектор. Ты там свою мамашу ещё жвм-петухом не называешь? Лол!
509 1599449
Кто что использует для работы с дб?
Raw SQL не удобно, gorm медленное говно.
Что есть ещё?
510 1599455
>>594170

И да, кордевы утверждали, что им не нужен gc с поколениями.
Вот их и ткнули носом, что при большом хипе все скатится в говно.
511 1599513
>>599449

> gorm медленное говно


Вся суть ORM.

>Что есть ещё?


Говнецо одно есть. ORM очень хуёво ложится на скудные фичи го. Самое годное - это

> Raw SQL

512 1599560
>>599513

А как же xo? Классная же штука.
513 1599683
>>599449
Есть еще всякие sql-builder, поищи.

Но вообще, raw sql - нормальное решение. В случае фейла запроса, лучше видеть, в каком он был виде, а не гадать, что же на самом деле вызывалось
514 1599798
>>599683

Не хочу искать, хочу удобную серебряную пулю с минимальным оверхэдом.
lelz.jpg27 Кб, 486x309
515 1599866
>>599683

> Но вообще, raw sql - нормальное решение



Вся суть просто. Господи, goвнина это просто язык для поржать, заходишь ИТТ или на реддит, и настроение подняли на весь день.
516 1599885
>>599798
https://awesome-go.com/#database

В разделе sql builders смотри
517 1599932
>>599866

Молча завидуй нашим диким зарплатам.
518 1600088
>>599798
Masterminds/squirrel
519 1600164
520 1600256
>>599866
Ловите дегенарата, который даже SQL не осилил. Джявист пади или шарпоёб.
521 1600309
>>600256
Авотхуй, SQL-фобов это не обязательно энтерпрайз-кабанчик, это может быть один из создателей очередного интернет-магазина на Джанге или рельсах
522 1600310
>>600309
*SQL-фоб
523 1600771
>>600256

> Джявист


А что с джависты? У нас вот ORM ненавидят, и почти все запросы нативные.
524 1600955
Есть одна функция рекурсивная, принимает указатель и возвращает тоже указатель
return findNode( node.left ) || findNode( node.right ) одна из строчек из-за которой не собиралась программа
Но оказывается в го нельзя так сравнивать указатели или если можно, то как это сделать?
525 1600962
Рекурсия в Go - антипаттерн.
526 1600974
>>600962
Заебись език
527 1600982
>>600955
А ты сам код скинуть не можешь, ничего непонятно?
528 1600998
>>600982
Я уже переделал по другому
529 1601058
>>600962
Хуйню скозал. Не более, чем в какой-нибудь Сишке
530 1601060
>>600974
Да вообще, нет бы нормально язык сделать, сплошные антипаттерны
531 1601109
>>599683
Нормальные орм начинают логировать запросы по щелчку logger-config.txt
532 1601114
>>600955
Никак. В го нет указательной арифметики и неявных кастов. Пиши через if.
533 1601342
А на го есть какие-нибудь production-ready фреймворка для реалтайм stream аналитики?

Нужно вставить что-то после Кафки и перед кликхаусом, что бы показывать реалтайм статистику и триггерить события при аномалиях.
534 1602939
>>600955

> return findNode( node.left ) || findNode( node.right )


в го хоть что-то кроме булов поддерживает || ?
535 1602945
>>600962
во всех императивных языках.
536 1603079
Хаю хай это тупой уебан. Подскажите как можно в Го-реверсПроксиСервере оранизовать дальнейшее раскидывание по проксям подключенных клиентов?
537 1603108
>>600962
Ты сказал? Это чепуха. В Go даже размер стека настраивается.
539 1603120
Насколько раз слышал, что что-то делать осознанное на пщ можно уже через пару дней.

Что я должен прочитать чтобы сделать это?

Пишу на питоне и жс
540 1603123
>>603120
Новый тред >>603116
Тред утонул или удален.
Это копия, сохраненная 29 марта 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски