Учитывая всплеск активности по теме «goto», хочется попробовать расспросить народ о том, кто что думает о необходимости использования разделителей типа «;» в тексте программы? Как мешает жизни разделитель типа того же перевода строки. При этом, хочешь несколько операций в одной строке? — используй разделитель типа «;». Хочешь для наглядности разбить слишком длинную строку на несколько? — оставляй висящим знак операции или используй какой-нибудь символ для склейки строк (чтобы компилятор врубился). Есть у кого какие мысли?
Неактивен
Перевод строки, как и пробел, обычно называется whitespace и игнорируется компилятором. Явно завершать оператор - лучший способ на мой взгляд.
Неактивен
Я не говорю про существующие компиляторы.
Неактивен
По-моему, исключительно дело привычки. В Visual Basic, например, строки разделяются переводом строки, для склейки используется символ подчеркивания с пробелом. Точка с запятой - тоже совершенно нормально. Больших проблем у меня с этим не возникало никогда.
Опять же, помню, еще в институте мне вдолбили, что использование нескольких операторов в одной строке снижает читаемость кода (хотя и экономит бумагу и дисковое пространство;), поэтому я - человек зомбированный и всегда стараюсь размещать по оператору на строке. А вот если их по нескольку на строку лепить, то тут, конечно, точка с запятой дает явные преимущества.
Неактивен
Глазам своим не верю: прошло уже больше полутора суток, а дискуссия словно замерла! Где же бескомпромиссные посты от истинных знатоков на тему "обратный дабл-слэш рулит" и "только вопросительный знак"? Энтузиасты ИЛ, откликнитесь! Пора всколыхнуть это болото!
Чтобы не сотрясать воздух пустыми призывами, выдвигаю ряд свежих и, безусловно, конструктивных идей.
1. Ввести жесткое требование размещать не более одного оператора в строке, ограничив максимальную длину строки 10-15 символами. И никаких переносов! Краткость - сестра таланта, в том числе программистского. Чтобы избежать проблем с выводом обширных фрагментов текста, которыми так славится наш любимый жанр, потребуется организовать их (фрагментов) подгрузку из внешних файлов на этапе компиляции. Помимо всего прочего, такой подход будет способствовать образованию идеальных с точки зрения написания текстовых квестов пар "программист-писатель", поскольку более четко разграничит их функции и позволит работать обоим участникам авторского тандема независимо, не мешая друг другу.
2. Сделать символ-разделитель тотально настраиваемым, для чего предусмотреть разветвленный набор опций, выделенный в отдельное меню или тул-бар. Для продвинутых авторов дополнить IDE графическим редактором, позволяющим прорисовывать символ разделения в TrueColor с использованием как растровой, так и векторной графики, а также вешать его на любую "горячую" клавишу по выбору пользователя. Разумеется, потребуются также средства для калибровки цветопередачи, чтобы листинг программы не терял своей читабельности при распечатке.
3. Вместо специальных символов использовать в качестве признака разделения цвет. Текст программы мог бы в этом случае выглядеть примерно так:if u=7 thenprint("Hello, world"
)inc(i)x:=y+1ClrScr
elseGetAttrCode
PutPixel(x,y)
dec(i)
endif
Помимо того, что при этом автор практически не будет ограничен в стиле программирования, такая система однозначно должна понравиться творческим натурам, так как позволит создавать из текстов программ настоящие произведения искусства (в духе ASCII-арта).
4. Наконец, использовать в качестве разделителя русский "неопределенный артикль" из трех букв. В среду разработки можно будет встроить небольшую распознавалку речи, единственной функцией которой будет улавливание этого "артикля"-разделителя, произносимого автором вслух, и вставка его в нужном месте программы. Многим это предложение может показаться примитивным и лишенным фантазии, но вдумайтесь, как это будет самобытно и патриотично, насколько повысит читабельность кода! А главное - в какой степени развитие этой идеи приблизит наш жанр к народу, возможно, позволив ему наконец снискать массовую популярность в России!
Отредактировано uux (19.09.2007 06:25)
Неактивен
С моей точки зрения точка с запятой в конце строки - пережиток прошлого века (такой же как си++ бвахахаха ). У меня на работе закоренелые сишники даже луашный код оформляют с точками запятой - чтобы потом легко было перенести код в с++.
Отредактировано /gray_flannel (28.09.2007 16:00)
Неактивен
Никого не удивляет, что каждое предложение на русском языке кончается точкой. Так почему должно удивлять наличие символа конца оператора в языках программирования ?
Когда пишу на ассемблере - не пользуюсь точкой с запятой, когда пишу на С, С++ - пользуюсь, поскольку язык этого требует. Не напрягает нисколько.
Несколько операторов в строке - рационально бывает. Например:
a=f(x);b=k(y);c=b+k; - вполне красиво смотрятся в одной строке.
Неактивен
Уже на автомате.
Паскаль, PHP - везде есть точка с запятой.
Привык.
А каждую команду в отдельной строке - по-началу будет куча ошибок (не так перенес, не полностью написал и т.д.) и сиди думай, где это я заблудился в трёх соснах.
Неактивен
Читабельность лучше, когда каждая команда на отдельной строке. И вообще текст лучше форматировать по стандарту, с правильно проставленными пробелами:
int a = 0; for (int i = 0; i < n; i++) { a += f(x) + b(y); if (a < z) c = a; }
Читается гораздо легче чем
int a=0; for(int i=0;i<v;i++) { a+=f(x)+b(y);if(a<z)c=a ;}
Неактивен
В паскале, код вообще пишешь, как предложения. Все операторы оканчивающие на точку с запятой указывают на конкретно одно действие и что еще есть несколько после него, а точка после END, указывает на конец самой проги. Так что главное, чтобы смысл ; имела весомый в языке, а так это уже как стандарт, сразу можно определиться, что здесь конец описания одного оператора.
Неактивен