Нужны ли отступы сначала строк в коде
24.02.2023
|
velkin |
Отступы в языках программирования высокого уровня
В первую очередь отступы сначала строк используются в языках программирования высокого уровня. Они позволяют определить иерархию с точки зрения синтаксиса.
1. В него как правило входят конструкции самого языка программирования называемые инструкциями.
2. Но если говорить об архитектурных конструкциях созданных самими программистами из инструкций, то отступы увы ничего об этом не говорят.
3. Тоже самое касается функционала, который кодирует программист.
Вывод, отступы в языках программирования высокого уровня направлены прежде всего на их синтаксис.
Отступы в языках программирования низкого уровня
Если же взять языки низкого уровня, такие как ассемблер, то никаких отступов там может и не быть, хотя адепты языков высокого уровня могут их сделать. На вопрос почему же так происходит ответ видимо кроется в том, что в языках низкого уровня, а именно в ассемблере нет чётко выраженной иерархии инструкций.
Но здесь для дальнейших размышлений важен лишь факт, что отступы в программировании это не нечто незыблемое. Было время, когда люди обходились без них. Конечно, я не говорю, что нужно вспомнить эпоху перфокарт, но традиция кода без отступов существует продолжительное время. По запросу на тот же бейсик мне выдаёт код как с отступами, так и видимо более древний без них.
Обязательные и не обязательные отступы
В некоторых языках отступы не важны, тогда как в других они являются обязательными и представляют те же блоки кода.
Python правильно.
for number in range(5):
print(number)
Python неправильно.
for number in range(5):
print(number)
C++ правильно.
#include <iostream>
int main()
{
for(int i = 0; i < 5; ++i)
std::cout << i << std::endl;
}
C++ правильно.
#include <iostream>
int main()
{
for(int i = 0; i < 5; ++i)
std::cout << i << std::endl;
}
Речь сейчас лишь о первых отступах сначала строк, остальные не рассматриваются, хотя в предыдущих статьях у меня были мысли по этому поводу.
1. Код должен быть удобочитаемым.
2. Конспектирование на смартфоне.
Плюсы и минусы отступов
Плюсы отступов.
1. Показывают иерархию инструкций.
Минусы отступов.
1. Мешают копипасте требуя ручного или автоматического исправления при смене уровня иерархии инструкций.
2. Не показывают иерархию архитектуры, функционала и других возможных слоёв конструкций.
3. Мешают логическим методам для построчного сравнения кода, а так же его разбору (анализу), сбору (синтезу) и в какой-то степени отвлечению (абстрагированию) характеристик с обобщением и ограничением.
Как по мне пункт про копипасту является важным минусом, всё же это "мощная техника" создания программ из чужого кода. Но задумался я об этом даже не из-за того, что отступы отражают лишь иерархию инструкций игнорируя архитектуру, функционал и прочее.
Основная суть на данном этапе моего размышления в логических методах. Впрочем, если у кого есть какие-то свои доводы за и против отступов сначала строки пишите мысли по этому поводу в комментариях. Да и в принципе люди включая меня десятилетиями мыслят шаблонно, получая некие преимущества не видя недостатков, а они есть.
24.02.2023 4 комментария |
V>Плюсы отступов.
V>1. Показывают иерархию инструкций.
Это не плюс, а предназначение отступов.
V>Минусы отступов.
V>1. Мешают копипасте требуя ручного или автоматического исправления при смене уровня иерархии инструкций.
Во-первых, IDE это делают прозрачно, человеку незаметно.
V>2. Не показывают иерархию архитектуры, функционала и других возможных слоёв конструкций.
И тапочки не приносят. И кофе варить не умеют.
V>3. Мешают логическим методам для построчного сравнения кода, а так же его разбору (анализу), сбору (синтезу) и в какой-то степени отвлечению (абстрагированию) характеристик с обобщением и ограничением.
Не мешают. Игнорировать пробелы умеют даже всякие онлайн-тулзы, задача тривиально алгоритмизируема.
V>Плюсы отступов.
V>Минусы отступов.
Сравнивать плюсы и минусы отступов чисто умозрительно это имхо интеллектуальный онанизм (без обид, ничего личного). Ты вот сделай реальный проект с кодом без отступов, да поддерживай его пару лет. Тогда можешь чего-то сравнить.
Давайте спорить о вкусе устриц с теми, кто их ел! (с)
W>Ты вот сделай реальный проект с кодом без отступов, да поддерживай его пару лет. Тогда можешь чего-то сравнить.
Я думаю точно так же, но телегу впереди лошади не поставишь. Сначала нужно хотя бы дойти до мысли, что код может быть без отступов. И вот я до неё дошёл со словами "а что так можно было что-ли?".
Плюсы: можно пить чай
Минусы: нельзя забивать гвозди.