Нужны ли отступы сначала строк в коде
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 24.02.23 18:19
Оценка:

Отступы в языках программирования высокого уровня


В первую очередь отступы сначала строк используются в языках программирования высокого уровня. Они позволяют определить иерархию с точки зрения синтаксиса.

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. Мешают логическим методам для построчного сравнения кода, а так же его разбору (анализу), сбору (синтезу) и в какой-то степени отвлечению (абстрагированию) характеристик с обобщением и ограничением.

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

Основная суть на данном этапе моего размышления в логических методах. Впрочем, если у кого есть какие-то свои доводы за и против отступов сначала строки пишите мысли по этому поводу в комментариях. Да и в принципе люди включая меня десятилетиями мыслят шаблонно, получая некие преимущества не видя недостатков, а они есть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.