LINUX.ORG.RU

История изменений

Исправление AlexM, (текущая версия) :

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

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

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

Итого: относительно медленную тулзу мы запускаем постоянно; относительно быстрый компилятор мы гоняем не просто так, а с пачкой юнит-тестов. В чем профит упрощённого синтаксиса, допускающего нелепые ошибки человека и быстрого компилятора, эти ошибки пропускающего?

…Поэтому все в синтаксис ты не затащишь и нужен определенный компромисс.

Знаете, Ваш пример про

сделать_все_зашибись()
носит демагогический характер.

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

Собственно, пометить переменные и параметры методов как nullable или (по умолчанию) not-null - это не бог весть какая ракетная наука. А волосы забывчивого кодера после такого улучшения сразу становятся мягче и шелковистее, и попа меньше прирастает к стулу при попытках найти источник дурацкой ошибки.

Исправление AlexM, :

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

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

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

Итого: относительно медленную тулзу мы запускаем постоянно, относительно быстрый компилятор мы гоняем не просто так, а с пачкой юнит-тестов. В чем профит упрощённого синтаксиса, допускающего нелепые ошибки человека и быстрого компилятора, эти ошибки пропускающего?

…Поэтому все в синтаксис ты не затащишь и нужен определенный компромисс.

Знаете, Ваш пример про

сделать_все_зашибись()
носит демагогический характер.

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

Собственно, пометить переменные и параметры методов как nullable или (по умолчанию) not-null - это не бог весть какая ракетная наука. А волосы забывчивого кодера после такого улучшения сразу становятся мягче и шелковистее, и попа меньше прирастает к стулу при попытках найти источник дурацкой ошибки.

Исправление AlexM, :

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

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

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

Итого: относительно медленную тулзу мы запускаем постоянно, относительно быстрый компилятор мы гоняем не просто так, а с пачкой юнит-тестов. В чем профит упрощённого синтаксиса, допускающего нелепые ошибки человека и быстрого компилятора, эти ошибки пропускающего?

…Поэтому все в синтаксис ты не затащишь и нужен определенный компромисс.

Знаете, Ваш пример носит демагогический характер.

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

Собственно, пометить переменные и параметры методов как nullable или (по умолчанию) not-null - это не бог весть какая ракетная наука. А волосы забывчивого кодера после такого улучшения сразу становятся мягче и шелковистее, и попа меньше прирастает к стулу при попытках найти источник дурацкой ошибки.

Исходная версия AlexM, :

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

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

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

Итого: относительно медленную тулзу мы запускаем постоянно, относительно быстрый компилятор мы гоняем не просто так, а с пачкой юнит-тестов. В чем профит упрощённого синтаксиса, допускающего нелепые ошибки человека и быстрого компилятора, эти ошибки пропускающего?

…Поэтому все в синтаксис ты не затащишь и нужен определенный компромисс.

Знаете, Ваш пример носит демагогический характер.

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

Собственно, пометить переменные и параметры методов как nullable или (по умолчанию) not-null - это не бог весть какая ракетная наука. А волосы забывчивого кодера после такого улучшения сразу становятся мягче и шелковистее, и попа меньше прирастает к стулу при попытках найти источник дурацкой ошибки.