Болталка PascalABC.NET

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

  1. Нет ничего плохого, пока тот с кем говоришь - понимает.
  2. Для у елдов нет русского названия.

Мне Ваш гугл-переводчик до… э… лампочки. Слышали такое слово - “транскрипция” ? )))

%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA1

Я потому и написал, что это для устной речи когда-то допустимо.

Все-таки “йилд”. Это я почти как специалист - “поверхность текучести”…

1 лайк

Кстати говоря, это и к read-only полям относится.

Но это только для классов, да и то с оговорками. А что делать с методами, которые имеют свои собственные константы?

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

Т.е.е это настолько вымороченный случай, что его представить сложно даже теоретически. Тем более, что речь о значении в пределах одной структурной единицы.

Можно случайно изменить переменную. Лучше константы или read-only поля, тогда это даст ошибку компиляции. Надёжнее.

Я не знаю, есть ли read-only поля в PascalABC.Net, но константы можно ими имитировать. Это удобнее иногда. Например, в C# object-константу не инициализируешь значением кроме null. А read-only поле - можно.

Нельзя делать язык в расчете, что им будут пользоваться идиоты.

Но это никак не повод позволять программисту делать все что хочется. Компилятор должен контролировать программиста. Тем более, тогда зачем вообще сообщения об ошибках компиляции? Языком же не идиоты пользуются, так пусть сами догадываются, что не так в коде и почему он падает. Преувеличение, конечно, но думаю мысль понятна.

Не нужно доводить все до абсурда.

Ошибка компиляции при изменении константы или read-only поля - вовсе не абсурд.

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

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

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

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

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

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

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

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

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

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

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

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

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

1 лайк

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