=KRoN=>Ну, во-первых, понятие читабельность я применяю к человеку мастерски владеющему языком. И чем короче и лаконичнее конструкции, тем читабельность программ выше. Не нужно говорить, что i++ читается хуже, чем i:=i+1 или inc(i). Просто, значит, ты плохо владеешь языком. Да, английский язык в целом проще русского, но какой из них выразительнее?
Тут не все так просто. Сложно сказать, что читается само по себе легче, i++ или inc(i), begin или {. По большому счету, одинаково. На мой вкус, скобочки даже похуже - теряются среди текста иногда. Но дело в другом. Гибкие сишные нотации
провоцируют навороченные конструкции, которые в сумме плохо читаются. Мало в Си строгости, именно это, я бы сказал, в основном мне не нравится.
Кстати, прямой зависимости между краткостью записи и читабельностью нет. Когда как...
=KRoN=>Да, для дилетанта конструкция Forth'а типа =KRoN=>vXY @ POINT + @ vSET! =KRoN=>выглядит куда страшнее, чем что-то типа=KRoN=>(point*) point_ptr=&vXY;=KRoN=>point_ptr=point_ptr+1;=KRoN=>point p=*point_ptr;=KRoN=>но для профессионала первый фрагмент более информативен, чем второй.
Дилетанту вообще иногда к компьютеру подходить боязно
Надо спрашивать только тех, кто понимает и то, и это. Только они могут оценить.
=KRoN=>Так что об удобочитаемости - это ещё аопрос для кого.=KRoN=>Мы же, кажется, говорим о профессионалах.
Ну да, именно. Согласен, что читабельность программы очень сильно зависит от культуры и профессионализма программиста, но язык всегда оставляет отпечаток. В общем, по моей практике, /при прочих равных паскалевские программы читаются заметно легче сишных.
Кстати, о комментариях. Совсем недавно научился наконец (т.е. заставил себя) писать комментарии почти одновременно с написанием кода. Все-таки ужжасно помогает. Хоть и кажется поначалу, что и так все понятно, а времени требует прилично.
Помнится, еще в школьные годы на каком-то конкурсе институтские преподы меня чуть не завалили, когда я им с гордостью вывалил распечатку 10 тыс. строк кода своей программы (на ассемблере). Они тут же спросили: а где же здесь комментарии?! Ну а я, с понтами, мол, я тут все наизусть знаю (в общем, так и было...) Короче, отмазался, только сказав, что в 20 КБ памяти не влезло. Тогда какой-то профессор сказал, что надо увольнять как программистов, не пишущих комментарии, так и тех, кто комментирует каждую строчку. Я только усмехнулся, но сейчас полностью согласен. С оговоркой, что это для программиста, пишущего для компании, а не только для себя. Чтобы себя уволить - это надо нехилым мужеством обладать перед самим собой.
Zeus>>Так что коли не знаешь до тонкостей, лучше в тонкостях и не сравнивать. А в общем, т.е. по существу, обсуждения языков не было.=KRoN=>А тонкости я и не сравниваю. Я вижу большую разницу уже на глобальном уровне
Однако
обсуждения (а не выкриков) по этому поводу я не заметил (собственно, ко всем относится).
Zeus>>Знаю, зато это элита =KRoN=>Сложный вопрос. Не могу скзать про тебя, т.к. тебя не знаю с этой стороны, но вот все остальные, с кем сталкивался... Сущие теоретики. Могут месяц рожать алгоритм программы, подгоняя его под имеющийся инструментарий, потом пол-года писать, а в итоге однажды получить шок от того, что кто-то то же самое, но на более подходящем инструменте кто-то делает за неделю.
Ну, это проблемы того, кто не знает подходящих инструментов. Будет учиться.
Zeus>>Вообще, показательно, что многие серьезные ученые брезгуют (sic!) Си (вот Дейкстра например). А ученых я уважаю как-то больше, чем чистых практиков. Такой уж у меня характер.=KRoN=>Блин, честное слово, я про теоретиков в предыдущем абзаце писал не заглядывая сюда Так я, знаешь, люблю, чтобы ехало. Быстро, надёжно, красиво. А не чтобы с шашечками. Профессиональный программист-теоретик... Гм. Звучит как "теоретик физкультуры", что ли...
А! Хочешь, все-таки, чтобы
красиво ехало? И быстро, и надежно? Тогда продется все-таки порожать алгоритм, возможно и в муках.
А "профессиональных программистов-теоретиков" просто не бывают. Как бы это сказать... Адекватного русского термина для computer science вообще нет. Потому я и выразился наиболее обще: ученый. Т.е. человек как минимум с высшим и притом не-инженерным образованием в данной области. Все-такие люди лучше глубины понимают и вообще делают... как бы это сказать... красивее. А я люблю красоту саму по себе. Могу, например, исправлять ошибочки и просто мелочи в уже сданной программе, которая (в исправленном виде) так и останется лежать у меня...
К слову - не чтоб похвастаться, а для подтверждения - очень многие, как пользователи, так и программисты, отмечают именно вылизанность и продуманность моих программ (равно как и интерфейса). Именно потому, что я проектирую зачастую дольше, чем программирую.
Да и, впрочем, без "теоретиков физкультуры" настоящего спортсмена не получится. Так, любительство.
Zeus>>Да и по языкам ясно чувствуется, что Паскаль создан ученым, а Си - практиком.=KRoN=>Тебе нужно программировать или теоретизировать? =KRoN=>Кстати, для теоретизации существуют и более удачные языки, чем Паскаль. Даже у того же Вирта.
А, это несомненно. От Оберона я почти в восторге. Но все упирается в те самые инструментальные средства...
Однако мы не о теоретизации говорим, а о профессиональном программировании. Я уверен, что для написания больших и особенно высоконадежных программ Паскаль подходит больше, чем Си (если выбирать из этих двух, конечно).
Во всяком случае, примеров больших и хороших программ достаточно и с той и с другой стороны, начиная с ОС и кончая последними утилитками, так что языки доказали свою сопоставимость и адекватность.
Zeus>>Наоборот, современное проектирование (опять же, языки - лишь частный пример) - это скорее искусство [само]ограничений, чем налепливание побрякушек...=KRoN=>Ой-йё... =KRoN=>Ты в каком мире живёшь?
В самом что ни на есть настоящем.
=KRoN=>Если бы у MSVC был IDE как у BC++3.1, а у Delphi как у VisualStudio 5 и выше, то я бы чаще работал бы на Delphi...
Так это не Delphi было бы. Delphi - это в первую очередь именно IDE, и именно этим она мне нравится (не во всем, конечно, но в общем, идеологически).
=KRoN=>Но при этом бы всё равно считал, что как язык C++ в целом лучше, чем ObjectPascal.
Ну я склонен считать наоборот; как я в самом начале и говорил, в любом случае каждый останется при своем мнении, ибо шел к нему порой годами. Серьезно же обсуждать именно языки как таковые надо на другом уровне.
Вот о конкретных реализациях можно подискутировать, хотя все равно малоперспективно...
=KRoN=>Вон, на C++ я уже года полтора не программил, т.к. всё Web да Web... А тут вовсе никакого IDE. Far+colorer вот и весь IDE.
Ага, а мне в свое время хватало экранного редактора Ассемблера ZEUS
)
MiG31>...Начали бормотать какие-то глупости о снижении производительности и качества, о потери времени на переучивание и т.д. Они говорили, а я смотрел на птички через окно.
Вот и зря. Поставил себя в позу, как я в случае с комментариями (см. выше). Правильные же вещи, в принципе, говорили.
MiG31>Не зачем. Но код для микроконтроллеров составляет около 0.001% из всего кода.
Недооцениваешь, однако. На порядки. Правда, если считать построчно, то может быть и так
А если в некоторых "полезных единицах", то для контроллеров и побольше может быть.
MABP>Вдогонку.. Мой босс убежден, что профи пишут исключительно на ASMe, в противном случае это хацкеры..
Как-то обычно считается, что наоборот...