В принципе, на очень много минусов голанга можно закрыть глаза, если считать его заменой для питона
Правда рано или поздно я наткнусь на какой нибудь голангоспецифичный пиздец, и тоже буду очень долго ныть
Top-level
В принципе, на очень много минусов голанга можно закрыть глаза, если считать его заменой для питона Правда рано или поздно я наткнусь на какой нибудь голангоспецифичный пиздец, и тоже буду очень долго ныть 27 comments
А, ещё диагностики компилятора после раста очень грустные. Местами нифига неочевидно что эта хрень от меня хочет ...и мне больно от примитивности языка. Он как будто не позволяет elegant solutions в принципе На сегодня с меня хватит (написать парсер - 2 минуты, заставить всё скомпилироваться - 20) код отвратительный пиздец, надо рефакторить... > с меня хватит Какой красивый отрефакторенный код, а теперь добавим проброс ошибок... Серьезно, этот if (err != nil) это просто лютейший визуальный мусор, неужели авторы не попробовали хоть что-то написать на своём языке прежде чем релизить...? @mo к этой фигне привыкаешь быстро, а потом ещё и врапать начинаешь, что ещё шума добавляет, но шоткат не помешал бы. На самом деле подобный подход к обработке ошибок очень хорошо себя показывает в сильно конкурентных программах: ты точно видишь откуда может прилететь, а язык заставляет обработать или отправить выше. Асинхронный код на языке с исключениями больнее, потому что прилететь может откуда угодно, приходится городить try/catch и вообще к защитному программированию не располагает. @mo потому и написал про шоткат. Я этот err != nil пишу за деньги по сотне раз в день, не могу сказать что это вот болит прям. Принимаешь/привыкаешь и пишешь, а теперь ещё и копайлот помогает неплохо А я правильно понимаю, что в одной директории может быть только один голанговский package..? И при этом его имя совершенно не обязано совпадать с именем директории? И чтобы всё было логично разделено по неймспейсам без неявных проникновений между файлами, получается нужно каждый файл закидывать в свою директорию..? @mo Всё так. Одна директория - один package (он же неймспейс), но таки принято, чтобы он совпадал с именем директории. Вот названия файлов внутри у тебя могут ни с чем не совпадать. @SignPainter круто, то есть внутри package творится локализованная вакханалия уровня сишных include @mo не думаю, что оно там внутри что-то инклюдит. Скорее компилятор все файлы внутри package интерпретирует как один файл, который ты, жалкий человек, раскидал для своего удобства. @SignPainter да какая разница что там внутри, снаружи это так же удобно как сишные инклюды (сишные инклюды абсолютно не удобны) @mo я просто подумал, что ты спрашиваешь, создаёт ли куча разноимённых файлов внутри package какой-то оверхед. Насколько понимаю, не создают. @SignPainter они создают оверхед на того кто будет это читать, потому что вещи берутся в неймспейсе хз откуда, из какого-то файла, угадай @mo это зависит от того, кто и как будет делить на файлы) PS Go to definition - самая полезная фича этих ваших IDE :) @SignPainter очень полезная, но код иногда хочется просто бегло глянуть на гитхабе, а не грузить в IDE Ну окей, я написала какой-то экспортер. Выглядит даже не слишком как говно, а то что есть можно списать на, кхм, крайнюю несовершенность языка.
го это же вроде гугловский язык? делать всё так, чтобы оно плохо выглядело - это нынче в их стиле @mo Да, это как раз заложено в основу языка. Создатели считают, что elegant solutions херово читаются. Поэтому всё должно быть примитивно, многословно, но понятно |
@mo например на необходимость реализовывать все функции через интерфейсы чтобы мокать. и при попытке использовать дженерики я на какие-то грабли наступил сейчас боюсь ерунды сказать, точно не помню, но было написано мы планируем это пофиксить в версии <какая то версия которой сто лет в обед>, но видно так и не смогли.
а в целом прекрасный язык, мы притон на него меняем везде где только можно. чтобы руку набить :-) и еще потому что бинарник можно класть в FROM: scratch