Пожелания
Модератор: Модераторы
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Mirage, тогда уж лучше notepad++ он хоть имеет подсветку синтаксиса и линии блоков.
Редактор IDE ничуть не хуже, чем notepad++, подсвечивает соответствующие операторные скобки
и рисует соединяющую их вертикальную линию - при включённом сворачивании, естественно.
ПМСМ, проблема высосана из пальца. Следить за правильностью оп.скобок должен любой программер,
претендующий на владение языком. Это вопрос правописания на уровне 2-3-го классов СШ.
и рисует соединяющую их вертикальную линию - при включённом сворачивании, естественно.
ПМСМ, проблема высосана из пальца. Следить за правильностью оп.скобок должен любой программер,
претендующий на владение языком. Это вопрос правописания на уровне 2-3-го классов СШ.
ммм... Ерунду какую-то обсуждаем...
Помнится, был такой диалект бейсика, у которого логические блоки замыкались как endif, endfor, endwhile и ... endelse. Помнится, при программировании это доставляло неимоверно вплоть до настоящей расовой ненависти.
Зато у нас в паскале содержится слово THEN, логически не имеющее ни малейшего смысла, но нужное компилятору, чтобы отделить условие оператора IF от остального, потому что условие IF идеологи языка в скобки решили не заключать.
Зато есть у нас в паскале такой анахронизм, как case-insensitive идентификаторы, что позволяет в тексте творить вполне определенный бардак и - порою - наведенные ошибки.
Тут вспомнили фортран...
Знавал я одного программера, перешедшего с фортрана... Он тексты своих программ писал сплошняком, чтобы больше входило на экран - и это ему чертовски нравилось и он считал это удобным.
Честно говоря, долго думая, не могу даже представить, что в фортране такого выдающегося, что по нему до сих пор ностальгируют... Кроме разве что непереводимых прикладных библиотек, большая часть которых возможно и не на фортране вовсе написана.
Помнится, был такой диалект бейсика, у которого логические блоки замыкались как endif, endfor, endwhile и ... endelse. Помнится, при программировании это доставляло неимоверно вплоть до настоящей расовой ненависти.
Зато у нас в паскале содержится слово THEN, логически не имеющее ни малейшего смысла, но нужное компилятору, чтобы отделить условие оператора IF от остального, потому что условие IF идеологи языка в скобки решили не заключать.
Зато есть у нас в паскале такой анахронизм, как case-insensitive идентификаторы, что позволяет в тексте творить вполне определенный бардак и - порою - наведенные ошибки.
Тут вспомнили фортран...
-
yantux_netbook
- новенький
- Сообщения: 15
- Зарегистрирован: 30.10.2012 23:13:24
alexs писал(а):Проблема искусственная. Из серии создам сам себе трудности - а потом буду преодолевать их.
Первое правило оформление кода - текст процедуры должен целиком помещаться на экране без перелистывания! Если процедура больше - рефакторинг кода просто необходим. Если придерживаться этого стандарта - не будет проблем с большим количеством блоков кода.
Ну и естественно - не стоит писать весь код в одну строку. А то сразу предвижу примеры из этой области.
1 логическая операция - 1 строка.
Не считаю проблему искусственной. Тоже самое можно сказать в отношении ассемблера. В плане операторов ассемблер вполне может всё то, что и языки более высокого уровня. Тогда зачем языки более высокого уровня?
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
Зато есть у нас в паскале такой анахронизм, как case-insensitive идентификаторы, что позволяет в тексте творить вполне определенный бардак и - порою - наведенные ошибки.
Бардак как раз выше при case-sensitive идентификаторах. Не надо эту дрянь в паскаль тащить, в С++ от нее тошно, особенно на сложных идентификаторах.
Padre_Mortius писал(а):Не надо эту дрянь в паскаль тащить
С учетом того, что наименования функций во всех системных библиотеках - исключительно case sensitive, причем на всех известных операционках - конечно дрянь.
Код: Выделить всё
ПРОГРАМ ТУПИ;
VAR Q,TY;
БЕГИН
Я:=СЯРТ(2.0);
ТЫ:=Я+Я+СИН(Я);
ВРИТЕLN('НАПИСАНО:',ТЫ);
ЕНД.
Кстати, не смешно. Вполне корректный и компилируемый код, в некоторых исторических условиях.
А идентификаторы надо писать все таки однозначно с полным соблюдением регистра, а не как вздумается в разных местах.
Эту, как вы говорите, "дрянь" почему то внедрили во все языки высокого уровня, появившиеся гораздо позже паскаля, включая скриптовки
Добавлено спустя 1 час 23 минуты 42 секунды:
Вообще, здраво рассуждая, мечтать о Case-sensitive в самом языке бессмысленно, поскольку потеряется обратная совместимость кода. А вот иметь директиву, которая будучи включена в тектс модуля, заставила бы компиялтор выдавать предупреждения при наличии в тексте переменных, написанных не так, как при их определении, юыло бы здравой идеей
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
yantux_netbook писал(а):Не считаю проблему искусственной. Тоже самое можно сказать в отношении ассемблера. В плане операторов ассемблер вполне может всё то, что и языки более высокого уровня. Тогда зачем языки более высокого уровня?
Я говорил про совсем другое.
Не надо писать большие процедуры. Процедура выполняет 1 логическое действо. И если у вас получается процедура слишком большая - значит вы плохо провели декомпозицию задачи.
Насчёт асемблера - вообще не в тему разговора. Не будем ещё это флем поднимать тут...
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
alexs, он, похоже, просто не поймет нас. Ему проще изобретать велосипед.
-
yantux
- постоялец
- Сообщения: 133
- Зарегистрирован: 29.10.2007 15:02:33
- Откуда: Санкт-Петербург
- Контактная информация:
Лекс Айрин писал(а):alexs, он, похоже, просто не поймет нас. Ему проще изобретать велосипед.
Про велосипед мне ответить не чего, т.к. я не спец по языкам. А кроме фортарана похоже ни кто операторы не метил, чтобы не путаться в них.
Добавлено спустя 15 минут 47 секунд:
alexs писал(а):Я говорил про совсем другое.
Не надо писать большие процедуры. Процедура выполняет 1 логическое действо. И если у вас получается процедура слишком большая - значит вы плохо провели декомпозицию задачи.
Насчёт асемблера - вообще не в тему разговора. Не будем ещё это флем поднимать тут...
Да, я в общем понял позицию большинства по этому вопросу.
Меня лично раздражает даже такой код:
Код: Выделить всё
begin
код 1
begin
код 2
begin
код 3
end;
код 4
end;
код 5
end;
поэтому какая либо связка между begin и end я считаю жизненно необходимой, чтобы читая нижние end-ы не приходилось вспоминать, перелистывать вверх, чтобы вспомнить предыдущие begin-ы и считать их.
В целом у меня вопросов больше нет.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
yantux писал(а): А кроме фортарана похоже ни кто операторы не метил, чтобы не путаться в них.
А ничего так, что фортран один из старейших языков?
Есть еще малораспространенный диалект бейсика. Яндекс подсказывает, что это Small Basic. Так же в нем есть конструкция:
Код: Выделить всё
if
then
else
ifelse
endif
endif есть в Pure Basic.
Писать на этих них безобразный код также легко как и на остальных языках.
-
yantux
- постоялец
- Сообщения: 133
- Зарегистрирован: 29.10.2007 15:02:33
- Откуда: Санкт-Петербург
- Контактная информация:
Лекс Айрин писал(а):yantux писал(а): А кроме фортарана похоже ни кто операторы не метил, чтобы не путаться в них.
А ничего так, что фортран один из старейших языков?
Если честно, то я даже не знаю, как в Фортране метят операторы аля begin end.
Лекс Айрин писал(а):Есть еще малораспространенный диалект бейсика. Яндекс подсказывает, что это Small Basic. Так же в нем есть конструкция:Код: Выделить всё
if
then
else
ifelse
endif
endif есть в Pure Basic.
Писать на этих них безобразный код также легко как и на остальных языках.
То же самое есть в vhdl:
Код: Выделить всё
if ... then
endif;
но это всё не то, я имелл ввиду:
Код: Выделить всё
begin(first_block)
код 1
begin(second_block)
код 2
begin(third_block)
код 3
end(third_block);
код 4
end(second_block);
код 5
end(first_block);
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
yantux писал(а):но это всё не то, я имелл ввиду:
А Если будет код типа:
Код: Выделить всё
begin(first_block)
код 1
end(first_block);
код 2
begin(first_block)
код 3
end(first_block);
.....
begin(first_block)
код 4
end(first_block);
Лекс Айрин писал(а):А Если будет код типа:
Плохо воспринимается.. не зря все, кто пытается добиться легкочитаемого кода, отделяют логические блоки, добавляют пробелы между операторами и операндами.. разделяют фокус восприятия. В варианте выше - все слишком сумбурно..
Добавлено спустя 4 минуты 22 секунды:
Кстати, в языке Ада енды указывают на блок, который они завершают.. Для дополнительной страховки.. Боже храни этих терпеливых людей, на нем пишуших)
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
B4rr4cuda, я специально привел пример неудобочитаемого кода, для которого невозможно добиться ясности подписывая операторные скобки.
