LINUX.ORG.RU

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

в Go тоже можно нагородить спагетти вложенных замыканий

Такой код не пройдет, потому что начальник индус его не поймет. И потом, если кодер такой умный, сфигали он не пишет финансовые опердени на хаскеле? Это касается и растозадротов, которые в хеловордах усьраивают цирк с конями. Впрочем, на этих всем пофиг, их в индустрию не пустят все одно.

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

AST != синтаксис.

Да, мы попоболь лучше терпеть будем, сначала натягивая «обилие спецсимволов» на то, что хотим сделать, а потом, кряхтя, отлаживая всякие implicit behavior.

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

Это касается и растозадротов, которые в хеловордах усьраивают цирк с конями.

А ты правда такой тупой, что не понял - по ссылке шутка? Можешь не отвечать - конечно же да, ты именно такой.

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

Ещё бы что-то из этого было действительно нужно.

А оно нужно. Не тебе, конечно (ты явно не знаешь, что это такое), но другим - они даже предложения к Go 2 написали.

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

тут варианты один похож на другой

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

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

Кокой ссылке?

Ясно. Походу я тебя даже переоценил.

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

Слышать такое от любителей динамической типизации - бесценно %)

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

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

Я сюда загляваю переодически побомбить: https://github.com/golang/go/wiki/Go2GenericsFeedback

Слайсов, ассоциативных массивов и интерфейсов хватает для всего. Будет в итоге такое же нечитаемое говно как в джаве.

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

А давайте проверим. Только что по диагонали пробежал глазами пример из «Senior Rust Programmer».

Похоже, что там программист пытается найти сумму целых чисел со знаком, общей величиной не более, чем 2^63, введённую единой строкой пользователем руками с клавиатуры, числа разделены пробельными символами. Пример содержит неочевидное для математика поведение, т.к. введённое '- 1' выдаст ошибку, в то время, как '-1' будет прочитано как отрицательное число.

tailgunner я прав? Код на Rust никогда не писал и более того, мои знания Rust на текущий момент абсолютно равны 0, т.к. доки по раст открывал пару, либо вообще 1 раз и довольно давно.

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

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

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

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

а вот из-за слабой типизации

из живых языков сейчас только у JavaScript слабая типизация, но она там ещё и динамическая

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

Код на Rust никогда не писал

Так он тоже не писал. Зачем у него спрашивать, это балаболка без единой подтвержденной строчки на чем бы то ни было. Воплощение лоровского специалиста по всему.

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

Больше никого не знаю на ЛОРе, кто знает раст. Не знаю, насколько хорошо, но во всяком случае, он хотя бы доки по нему читал. А я читал «настолько давно, что уже и неправда» (с).

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

С - это нежить. А в плюсах споткнуться можно, а можно и заделать себе полностью строгую типизацию. Если прям очень хочется, в плюсах можно полностью (на 99,99999%) отказаться от встроенных типов. А классы - сильно типизированы.

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

Разфлакон. Он даже либу написал. А тот кукаретик полдня вахтерит, полдня в игрульки дуется. Делай выводы.

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

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

Но это не то. Возможность внезапно обделаться всё равно присутствует.

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

Похоже, что там программист пытается найти сумму целых чисел со знаком, общей величиной не более, чем 2^63, введённую единой строкой пользователем руками с клавиатуры, числа разделены пробельными символами. Пример содержит неочевидное для математика поведение, т.к. введённое ‘- 1’ выдаст ошибку, в то время, как ‘-1’ будет прочитано как отрицательное число.

Да, примерно так.

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

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

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

Динамическая типизация (в лиспе) и неявное поведение - это ортогональные вещи.

Ортогонально, параллельное... пофиг. Кряхтения в отладке гораздо больше от динамической типизации.

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

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

тот кукаретик полдня вахтерит, полдня в игрульки дуется

Удивительно - такой толстый и такой обидчивыый %)

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

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

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

Слайсов, ассоциативных массивов и интерфейсов хватает для всего.

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

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

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

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

Спасибо.

а в том, чтобы продемонстрировать разные способы решения

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

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

«как вуду-магия» - как выглядит вуду-магия и чем это плохо?

ЯННП, если я всё равно могу легко прочитать и понять написанное, то какая разница?

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

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

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

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

Ты весь код в топике понял? Как много времени на это ушло? Как высоко ты оцениваешь шансы в таком запутаться, если там будет нечно нетривиальное?

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

тем проще оверинженерить дичайшую срань

Собирать ADT из говна и палок - так себе занятие.

не пишет код, а читает

Читать простыни if err то ещё удовольствие.

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

Не знаю. Я просто взглянул на код и записал то, что увидел.

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

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

if err

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

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

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

Верно.

Так что выразительностью следует жертвовать в пользу очевидности.

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

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

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

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