Болталка PascalABC.NET

Переменная на то и переменная, что менять можно и никто не запретит, даже если случайно. Для неизменяемых величин нужны константы, так как их использование обеспечивает контроль со стороны компилятора.

Еще раз: это в пределах программной единицы абсолютно не нужно.

И бьются упорно за это зряшное дело те, кто хочет сделать его чужими руками. Чужого же труда не жалко…

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

Все зависит от задачи, где и что описывать. К примеру, в C# много возможностей, но есть стандарты, которым лучше следовать. И им следуют, и пишут в своем большинстве по стандартам, не смотря на то, что язык, может и позволяет сделать как-то по другому. И отвергать фичи языка только потому, что их можно неправильно использовать - глупо.

Простой пример: интерфейсы принято именовать с I, хотя можно и по другому, и компилятору все равно. Но раз так принято, то этим правилам следуют в своём большинстве. Писать неправильный код можно на любом языке. И вопрос не в том позволяет язык или нет, а в том как ты пишешь и следуешь ли каким-то стандартам.

Ну, разумеется, это же пара методов по сути. :slight_smile:

Касательно “Умных программистов”, которые должны обходиться без помощи компилятора, я скажу одно: я множество раз встречал модули(как в Паскале, так и в C#), содержащие ТЫСЯЧИ строк. Там даже профессионалу трудно будет, не говоря уже о новичках, которым этот код может понадобиться. Хотя за оптимизацию в Фортране, которую делает компилятор, Вы готовы стоять до последнего.

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

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

Завтра прима-балерина от программирования попадет под машину, ударится головой и будет лежать с сотрясением мозга. А коллеги, бросив работу, будут ползать сообща по простыне с распечаткой его кода, силясь понять, где там что. Таких на работе не держат.

Точнее Вы отрицаете реальность такой ситуации? Конечно, может, тысяча это много, возьмем 500. Но, все-же это имеет место быть.

1 лайк

Нет, это была как раз командная работа. 5000 строк. Проект по масштабам сопоставим с пакетом библиотек .NET.

Вы меня хотите убедить, что 5000 строк кода команда писала в единой программной единице? Т.е. берут три человека и пишут процедуру. Первые три строки кода первый, потом пять строчек второй… Так?

/Accord.NET

Не так. Каждый разработчик отвечает за свои файлы. Вам нужен был командный проект - я его показал.

Если бы ещё эта ссылка работала…

Это не ссылка, а название фреймворка. Вбейте в поисковик.

Тогда ставьте \ перед ней, чтоб в ссылку не превращало))

Век живи - век учись)

Мне не был нужен проект. Мне хотелось знать, где есть код, в котором - читайте внимательно! - программная единица (те функция, процедура, метод, и т.п,) имеет код длиной 5000 строк. Вы ведь об этом писали.

Так что именно Вы считаете программной единицей? Метод или файл кода?

@RAlex, если Вам не нужны какие-то конструкции, Вас никто не принуждает пользоваться ими или продвигать их. Но называть “идиотами” тех, кто считает иначе - хамство. @MrFresnel, я уже сказал, что свойства работают медленнее переменных и констант. Это легко доказать, используя пример BlockVars.pas и GlobalVars.pas. Глобальные переменные - поля класса Program.

1 лайк

Это только если вы идеальный человек. Ну, я не могу знать, может вы конечно робот, но, особенно если кода много - можно забыть или перепутать, запросто.

Вам не стыдно? Зачем Вы извращаете смысл написанного мной? Где я кого-то назвал “идиотом” ?