Size: a a a

2020 April 03

AZ

Alex Zhukovsky in rust_offtopic
https://habr.com/ru/post/193722/ хорошая статья в тему. Цитата:

На Хаскеле таких ошибок, ошибок уровня «ой, в этом ветвлении забыл проверить» или «перепутал возвращаемый тип» в программах не появляется. Программисты это аргументируют удобной системой типов, которая позволяет на этапе компиляции отловить большую часть таких ошибок, плюс язык, позволяющий писать главное, не отвлекаясь на счёт индексов массивов и временные переменные. Им виднее.

По опыту разборов найденных ошибок я могу сказать, что большая часть ошибок, с которыми мы сталкивались — это либо ошибка в ТЗ (то есть ошибка вашего покорного слуги), либо неправильно понятое ТЗ программистами. Но не локальная ошибка или забывчивость.

Из этого вытекает парадоксальный вывод: баги в программе на Хаскеле фиксить сложнее, чем в языках с динамической типизацией, потому что в языке с динамической типизацией очередное место, где вдруг внезапно вылез NoneType, поправил и ладушки, а на Хаскеле надо с алгоритмом разбираться да по повводу неясности ТЗ с другими людьми ругаться.
источник

P

Pavel in rust_offtopic
polunin.ai
Ну я на питоне рисовал графики. Рассчеты были на си в либе, которую я не видел глазами.
тоесть ты пользовался магией, не понимая, как она работает и откуда программа знает, где чёрная точечка, а где -- белая?
источник

AK

Alexander Krivitskiy in rust_offtopic
polunin.ai
А кто-то заставляет писать код с багами?
Ну и скажу, что можно писать код без багов сразу, да, это возможно
Можно просто писать без багов? Прикольно, так зачем тебе Раст? Просто на си без багов пиши. А ещё лучше на асме. Там всего лишь дополнительно за регистрами ещё самому следить надо.
источник

S

Soul in rust_offtopic
polunin.ai
А кто-то заставляет писать код с багами?
Ну и скажу, что можно писать код без багов сразу, да, это возможно
да, человеческий фактор
источник

P

Pavel in rust_offtopic
polunin.ai
А аннотациями в других языках?
любой формы аннотация времени компиляции, что говорит "если это, то то" + чекер
источник

P

Pavel in rust_offtopic
polunin.ai
У тебя глаза никто не закрывал
пещеру Платона знаешь?
источник

p

polunin.ai in rust_offtopic
Pavel
тоесть ты пользовался магией, не понимая, как она работает и откуда программа знает, где чёрная точечка, а где -- белая?
То есть я ввел graphic.draw() и у меня на экране появился график
источник

P

Pavel in rust_offtopic
то, что ты что-то видишь или знаешь, не означает, что это именно то, что есть на самом деле и не разобьётся об реальность. Субъективное знание не всеобъемлюще, а то, что за его пределами и есть то, чего ты не видишь, будто бы глаза у тебя закрыты.
источник

p

polunin.ai in rust_offtopic
Alexander Krivitskiy
Можно просто писать без багов? Прикольно, так зачем тебе Раст? Просто на си без багов пиши. А ещё лучше на асме. Там всего лишь дополнительно за регистрами ещё самому следить надо.
Писать без багов можно с мощной системой типов
источник

P

Pavel in rust_offtopic
polunin.ai
То есть я ввел graphic.draw() и у меня на экране появился график
понял, таки магией пользовался
источник

P

Pavel in rust_offtopic
polunin.ai
Писать без багов можно с мощной системой типов
нельзя
источник

P

Pavel in rust_offtopic
кто проверит, что ты правильно описал типы?
источник

p

polunin.ai in rust_offtopic
Pavel
понял, таки магией пользовался
Поэтому и спрашиваю, зачем нужно то вычислять?
источник

p

polunin.ai in rust_offtopic
Pavel
кто проверит, что ты правильно описал типы?
Компилятор
источник

S

Soul in rust_offtopic
Такой компилятор и код за тебя напишет, зачем ему какое-то промежуточное звено
источник

P

Pavel in rust_offtopic
polunin.ai
Поэтому и спрашиваю, зачем нужно то вычислять?
не вычисляй
import magic go brrr
источник

P

Pavel in rust_offtopic
polunin.ai
Компилятор
откуда компилятору знать, что ты решаешь именно ту задачу, которую тебе поставили, а не другую?
источник

P

Pavel in rust_offtopic
Soul
Такой компилятор и код за тебя напишет, зачем ему какое-то промежуточное звено
именно
источник

p

polunin.ai in rust_offtopic
Ну я тут пыжусь, пытаюсь объяснить, а на просьбу объяснить меня посылают. Ок, понял вашу позицию.
источник

p

polunin.ai in rust_offtopic
Pavel
откуда компилятору знать, что ты решаешь именно ту задачу, которую тебе поставили, а не другую?
Ниоткуда, иди пиши на си и радуйся жизни.
источник