История изменений
Исправление hobbit, (текущая версия) :
Про текстовый сишный уровень можно будет забыть как только будет на 100% надежная трансляция в сишный код
Эта самая надёжность должна быть проверяемой. Не «один раз проверил и забыл», так не получится, а проверяемой в течение всего жизненного цикла твоего продукта для стороннего человека.
Отсутствие предупреждений — один из критериев надёжности. Не единственный и не главный, скорее, самый элементарный из косвенных. Если произошёл фейл ДАЖЕ на этом этапе — дальше вменяемые люди просто не будут ковыряться.
Вообще, формулировка «можно будет забыть как только...» говорит, что ты не представляешь себе, как живут большие системы, не представляешь, что такое жизненный цикл. Нельзя забыть, пока система жива! Всё должно быть проверяемо и воспроизводимо, в том числе и то, что для большинства разработчиков находится под капотом.
А сам механизм трансляции в сишный код тестировать и дебажить можно по элементарным тестам на трансляцию каждой фичи, что я, кстати, уже и делаю.
Ну вот это уже лучше. Элементарные тесты, кстати, должны сохраняться вместе с кодом. Но это — верхний уровень. А низкий тоже должен проверяться.
Варнинги - всего лишь рекомендации.
Формально да. А по факту игнорирование таких «рекомендаций» ведёт к печальным последствиям.
Исходная версия hobbit, :
Про текстовый сишный уровень можно будет забыть как только будет на 100% надежная трансляция в сишный код
Эта самая надёжность должна быть проверяемой. Не «один раз проверил и забыл», так не получится, а проверяемой в течение всего жизненного цикла твоего продукта для стороннего человека.
Отсутствие предупреждений — один из критериев надёжности. Не единственный и не главный, скорее, самый элементарный из косвенных. Если произошёл фейл ДАЖЕ на этом этапе — дальше вменяемые люди просто не будут ковыряться.
Вообще, формулировка «можно будет забыть как только...» говорит, что ты не представляешь себе, как живут большие системы, не представляешь, что такое жизненный цикл. Нельзя забыть, пока система жива! Всё должно быть проверяемо и воспроизводимо, в том числе и то, что для большинства разработчиков находится под капотом.
А сам механизм трансляции в сишный код тестировать и дебажить можно по элементарным тестам на трансляцию каждой фичи, что я, кстати, уже и делаю.
Ну вот это уже лучше. Элементарные тесты, кстати, должны сохраняться вместе с кодом. Но это — верхний уровень. А низкий тоже должен проверяться.