Форум Игромании

Форум Игромании (http://forum.igromania.ru/index.php)
-   Программирование (http://forum.igromania.ru/forumdisplay.php?f=243)
-   -   Холивары с Монстром (http://forum.igromania.ru/showthread.php?t=122326)

[CCCP] Monster 18.07.2011 04:43

Холивары с Монстром
 
Enchantner,
Цитата:

Во-первых, не гору, а небольшой интерпретатор
Он не небольшой, и там не только интерпретатор.

Цитата:

это величайшая находка - код отлично читается и даже неискушенный человек врубается на раз.
То, что выдается за величайшую находку на самом деле величайший кошмар - вместо того, чтобы отдать форматирование кода на откуп синтаксическому анализатору, как это сделали в Visual Studio, и автоматизировать часть решительно ненужной программисту работы по поддержанию кода в едином и читабельном виде, они принудительно заставили программиста под страхом ошибок отсчитывать табы.

BlizzardJedi, GPGPU эффективны только при больших объемах однородных данных, которые минимально включают в себя линейные участки кода, где до вычисления промежуточных данных невозможно определить адрес перехода на следующую инструкцию. Про условные переходы - не совсем верно, я еще в 2006 году писал на шейдерах с использованием условных переходов, обнаружил что набор команд уже достиг почти тьюринговской полноты, и мечтал о более удобных средствах описания алгоритмов. И через год NVidia прочитала наконец мои мысли.

Enchantner 18.07.2011 12:03

Цитата:

Сообщение от [CCCP
Monster;9532520]Он не небольшой, и там не только интерпретатор.

Ага, а теперь сравни с этими 15 мегабайтами вес любой из составляющих VS - от дотнет-фреймворка до самой минимальной реализации сишарпа.
Цитата:

Сообщение от [CCCP
Monster;9532520]То, что выдается за величайшую находку на самом деле величайший кошмар - вместо того, чтобы отдать форматирование кода на откуп синтаксическому анализатору, как это сделали в Visual Studio, и автоматизировать часть решительно ненужной программисту работы по поддержанию кода в едином и читабельном виде, они принудительно заставили программиста под страхом ошибок отсчитывать табы.

Это проблема не языка, а IDE. Любой нормальный редактор кода сам запросто отсчитывает отступы и помогает с форматированием.

[CCCP] Monster 18.07.2011 14:18

Цитата:

Ага, а теперь сравни с этими 15 мегабайтами вес любой из составляющих VS - от дотнет-фреймворка до самой минимальной реализации сишарпа.
Для запуска ничего качать не надо, а для работы и там и там IDE нужна, если только ты конечно не в блокноте кодить собираешься.

Цитата:

Это проблема не языка, а IDE. Любой нормальный редактор кода сам запросто отсчитывает отступы и помогает с форматированием.
Да, вот только "гениальный создатель" умудрился сделать так, что помощь IDE в форматировании попросту невозможна в том виде, в котором она нужна - программист вынужден для каждой строчки решать, какой отступ делать. Там нет средства отделения блока кода, на основании которого можно было бы определить что и как форматировать.

Enchantner 18.07.2011 15:38

Цитата:

Сообщение от [CCCP
Monster;9533053]Для запуска ничего качать не надо, а для работы и там и там IDE нужна, если только ты конечно не в блокноте кодить собираешься.

Во-первых, на питоне можно легко и в блокноте (тот же Geany или виндовый Notepad++), а во-вторых, ты забыл про кроссплатформенность. Для питона под никсами (а вроде, и под макосью тоже) качать тоже ничего не надо.
Цитата:

Сообщение от [CCCP
Monster;9533053]Да, вот только "гениальный создатель" умудрился сделать так, что помощь IDE в форматировании попросту невозможна в том виде, в котором она нужна - программист вынужден для каждой строчки решать, какой отступ делать. Там нет средства отделения блока кода, на основании которого можно было бы определить что и как форматировать.

Ну, вроде как там и так все наглядно, что в цикле - с одним отступом, что вне его - с другим, и т.д. А автоотступы умеет почти любой редактор. Зато в итоге такой код читать в сто раз проще, и не надо спорить, как в сях, на какой строчке ставить фигурную скобку. Так что:
Цитата:

Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance

BlizzardJedi 18.07.2011 15:52

Цитата:

Сообщение от [CCCP] Monster
Про условные переходы - не совсем верно, я еще в 2006 году писал на шейдерах с использованием условных переходов, обнаружил что набор команд уже достиг почти тьюринговской полноты, и мечтал о более удобных средствах описания алгоритмов. И через год NVidia прочитала наконец мои мысли.

Шутишь! ГПУ умеет работать с условиями? О_О

[CCCP] Monster 18.07.2011 20:13

BlizzardJedi, разумеется: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Enchantner, Можно и в блокноте, но в условиях отступов регулярное возвращение к написанному коду в простом текстовом редакторе без средств контроля табов превращается в блуждание по минному полю.

Про кроссплатформенность я помню, но она нужна там, где она нужна по ТЗ, и там кстати прекрасно справляются Java и Mono.

Цитата:

Ну, вроде как там и так все наглядно, что в цикле - с одним отступом, что вне его - с другим, и т.д. А автоотступы умеет почти любой редактор. Зато в итоге такой код читать в сто раз проще, и не надо спорить, как в сях, на какой строчке ставить фигурную скобку. Так что:
Наглядно, да, но поддержка и редактирование - сущий кошмар. Т.е. в традиционном варианте создания блоков кода ты ставишь специальные операторы, обрамляющие начало и конец блока. Здесь невозможно по невнимательности или еще как-либо случайно сделать из одного блока кода два, разной вложенности. В Питоне это легко, и при этом среда тебе только при синтаксическом разборе, и то не во всех случаях, может подсказать где проблема. А Касательно чтения кода и форматирования - так за это должна отвечать среда. Если угодно - можно посмотреть VS C# с его IntelliSence. Пишешь ты как тебе надо, или редактируешь уже написанное, поставил курсор за пределы блока кода, и он сам все отформатировал как надо. Потому что блок кода опознается однозначно. Все эти автоформатирования и подсказки для параметров и методов созданы чтобы облегчить программисту жизнь и дать ему возможность беспокоиться только насчет кода и того, что он делает, а хорошую читабельность IDE берет на себя, и успешно справляется.

Enchantner 18.07.2011 21:50

Цитата:

Сообщение от [CCCP
Monster;9534100]В Питоне это легко, и при этом среда тебе только при синтаксическом разборе, и то не во всех случаях, может подсказать где проблема.

Любой питоновый трейсбэк проводит полный экскурс по строкам с ошибками. Кроме того, в многие среды встроены тулзы наподобие Pychecker, которые выдают еще более подробный лог.
Цитата:

Сообщение от [CCCP
Monster;9534100]прекрасно справляются Java и Mono

Ага, одинаково тормозит на всех платформах. Не, я не буду сравнивать с питоном, это скриптовый язык. Но (пусть это будет чисто мое имхо) считаю Java не пригодным для прикладных разработок (если это не веб-ориентированные корпоративные системы), а Mono - костыль для тех, кто хочет на линукс и хочет дотнет.
Цитата:

Сообщение от [CCCP
Monster;9534100]Если угодно - можно посмотреть VS C# с его IntelliSence.

Я тебе больше скажу, уже существует VS-плагин для Python с поддержкой IntelliSense.

В общем, это вечный спор, кому что удобнее :) В защиту легко сказать, что код на том же C++ можно, наплевав на расположение скобок, превратить в такую кашу - мама дорогая. А в питоне это невозможно по определению, именно это делает его очень удобным для поддержки и снижает порог вхождения для чтения чужого кода.

[CCCP] Monster 18.07.2011 22:46

Enchantner,
Цитата:

Любой питоновый трейсбэк проводит полный экскурс по строкам с ошибками. Кроме того, в многие среды встроены тулзы наподобие Pychecker, которые выдают еще более подробный лог.
Я полагаю, что разница в эргономике между логом постфактум и онлайн-редактированием понятна.

Цитата:

Ага, одинаково тормозит на всех платформах. Не, я не буду сравнивать с питоном, это скриптовый язык. Но (пусть это будет чисто мое имхо) считаю Java не пригодным для прикладных разработок (если это не веб-ориентированные корпоративные системы), а Mono - костыль для тех, кто хочет на линукс и хочет дотнет.
А в прикладных разработках очень много народу хочет на линукс?

Цитата:

Я тебе больше скажу, уже существует VS-плагин для Python с поддержкой IntelliSense.
Угу, только там IntelliSence - это в основном подсказки по классам, методам и функциям, и преформатирование в виде табов при переходе на следующую строку (удобно когда пишешь новый код, но при редактировании старого это не помогает никак, к сожалению).

Цитата:

В общем, это вечный спор, кому что удобнее
Конечно вечный:) Мне вот КПП с механикой нравится, но большинство автомобилистов не разделяет мои предпочтения. Что печально, т.к. производители на рынке ориентируются таки на большитсво. И я их понимаю! Автомат с точки зрения эргономики - намного проще, и очень мало таких как я, извращенцев, любящих переключать передачи самостоятельно. Может быть, будь я профессиональным водителем автобуса, тоже больше любил бы автомат. Со средами разработки вопрос тот же. Есть конкретные правила разработки, обеспечивающие эффективную эргономику. Есть конкретные примеры "как не надо делать". И проблема в том, что Питон умудрился наступить на неправильные грабли, которые внутриконцептуально закрыли путь помогалкам программистов в деле форматирования кода, потому что здесь сама концепция заставила именно программиста ставить табы, а не переложить это на среду, которая без лишних хлопот могла бы ненавязчиво поправить программиста, и я думаю, это его ключевая проблема. Достаточно пописать на шарпике и питоне какое-то время, промышленный код. И тогда все станет понятно. Кстати, питон, в виде интерпретируемого кода еще больший тормоз, чем жаба. Хотя если компилировать в MSIL а потом в целевую архитектуру, код становится более шустрым.

BlizzardJedi 19.07.2011 01:53

[CCCP] Monster, Enchantner, каждому программисту не угодишь. Поэтому и появляются C++, STL и прочие вещи, которые программисты создавали для себя и под себя.

[CCCP] Monster, механика! Только механика! )

Hast 23.07.2011 04:59

[CCCP] Monster,
Enchantner,
объясните как вообще можно сравнивать полноценный язык проверенный десятками лет и непонятно откуда выползший скриптовый язык?

adVISeR 23.07.2011 11:59

Hast
Как бы питон уже тоже далеко не младенец)

†Grave† 23.07.2011 14:36

Hast,
Как бы питону уже 21 год :sml:

[CCCP] Monster 24.07.2011 02:10

Hast, как-бы речь про концепции вообще, и место, в которое они ведут. У питона - нехорошее.

Enchantner 24.07.2011 20:38

Цитата:

Сообщение от [CCCP
Monster;9548499]У питона - нехорошее.

У любого языка есть свои плюсы и минусы. Я вот, например, могу про себя сказать, что мне не нравится сишарп - ни по концепции, ни по чему другому. То есть вообще. Это как бы сугубо мое личное мнение :)
Цитата:

Сообщение от Hast (Сообщение 9546377)
объясните как вообще можно сравнивать полноценный язык проверенный десятками лет и непонятно откуда выползший скриптовый язык?

А это уже вроде объяснили :)

[CCCP] Monster 25.07.2011 02:00

Enchantner, Есть предпочтения сугубо личные вроде цвета или вкуса. А есть технические возможности, которые можно измерить. Я использовал именно вторые.

Enchantner 25.07.2011 17:28

[CCCP] Monster, то есть ты сравнивал технические возможности Java-C/C++ и питона? Или ты про сишарп? Круто. Я бы так не смог, особенно если учесть, что это языки для совсем разных целей. Это если не вспоминать, что один компилируемый, а другой скриптовый.

[CCCP] Monster 25.07.2011 21:08

Enchantner, я говорил о технических концепциях реализации синтаксиса и его привязки к средам разработки, технологии я никак не сравнивал.

Enchantner 26.07.2011 11:26

[CCCP] Monster, если бы везде был один и тот же синтаксис - язык бы тоже был один. А среды разработки есть как нормальные, так и отстойные для всех языков. Причем тут именно питон? Тем более что для питона теперь есть тот же PyCharm.

[CCCP] Monster 26.07.2011 23:22

Enchantner, Через синтаксис реализуется концепция. Только часто для поддержки концепции также нужна особая технология, не имеющая нативной поддержки в ОС и процессоре. Поэтому такие системы тащут за собой фреймворк+интерпретатор/ВМ или еще что-то. Именно питон тут притом, что помимо в общем-то стандартных концепций вроде ООП, функционального программирования и т.п. есть еще очень специфическая синтаксическая особенность, не относящаяся к реализации технологий и не влияющая на общие возможности языка, но полностью убивающая возможности по внешнему анализу и управлению блоками кода, за исключением автоматической простановки табов при переходе на следующую строку. Эта особенность питона исключительно неприятна, и при этом другие языки, аналогичные по возможностям, лишены этой проблемы. При этом неприятность проблемы заключена именно в проблемах с эргономикой абсолютно любой среды программирования, которая будет работать с синтаксисом питона, потому что в случае с таким синтаксисом надежные знания о блоках кода имеются лишь в голове программиста, и оттуда их никак не извлечь, если только он сам не пожелает. Результатом этого становится геморрой при поддержке уже написанного кода, если его требуется менять, т.к. включать свою внимательность приходится на всю катушку, причем там, где можно было бы просто автоматизировать процесс, оставив его на откуп машине, которая всегда внимательна.

Enchantner 27.07.2011 19:40

Цитата:

Сообщение от [CCCP
Monster;9555724]полностью убивающая возможности по внешнему анализу и управлению блоками кода

На основании чего ты делаешь такой вывод? Во-первых, есть двоеточия, во-вторых, циклы for и while и if-условия, равно как и объявления функций, никто не отменял - это явный показатель перехода к новому блоку кода. Никакого геморроя при поддержке не существует, если имеется хоть какое-то понятие о питоне - более удобно читаемый язык сложно себе представить, и это как бы его главная фишка. И лучше не упоминать о внимательности - в конце концов, что заметнее - отступ в начале строки или непонятно где расположенная в коде скобка?

[CCCP] Monster 28.07.2011 20:45

Enchantner, Я делаю такой вывод на основании отсутствия внятного закрывающего блок символа. Поэтому система просто не может определить, где отсутпы делать, а где нет.

Enchantner 28.07.2011 22:34

[CCCP] Monster, это должен определять программист, а не система. Ты бы еще сказал, что блокноты должны автоматом определять, где JNZ, а где JE в ассемблере. Да и ошибку, как я уже сказал, в коде с отступами отлавливать гораздо проще, имхо. Особенно при таком хорошем трейсбэке.

Скрытый текст:
Чую, надо переименовать тред в "Холивары с Монстром" :)

†Grave† 28.07.2011 23:10

[CCCP] Monster,
Судя по вашей ненависти к питону, вы кроме его интерпретатора ничего больше ничего не видели, поэтому и пишите полную чушь. Все современные IDE сами делают отступы, когда надо. Тот же PyCharm или MC Visual Studio с ironPython на борту. Читаемость кода без не пойми где расположенных скобок и ковычек(споры о расположении которых ведутся до сих пор). Читается и поддерживается такой код легко, даже без дополнительных комментарием, т.к. практически сразу понятно, что именно делает тот или иной участок кода.

[CCCP] Monster 29.07.2011 01:14

Enchantner, Да, переползем сюда.

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

†Grave†, Споры о расположении скобок и форматирование текста внутри них должно разрешаться средой программирования. Про остальное написал выше.

Enchantner 29.07.2011 11:48

Цитата:

Сообщение от [CCCP
Monster;9561518]внутри блока можно работать, не опасаясь, что там что-то куда-то не туда денется

Ты сам уже упоминал про автоматические отступы - вот тут они и нужны. Ты работаешь в блоке, пока все на одном уровне, захотел перейти на другой - уменьшил отступ и работаешь дальше. И не сказал бы, что легко куда-то съехать, и уж тем более после этого не надо будет искать ошибку по всему коду. Когда ты пишешь на С/C++ - ты же не забываешь про области видимости, и скобки тут ни при чем.

[CCCP] Monster 29.07.2011 15:25

Enchantner, А если ты где-то в середине редактируешь код, автозаменяешь какие-либо куски, содержащие символы конца строки, или вставляешь код?

Enchantner 29.07.2011 16:54

[CCCP] Monster, а какая проблема со вставкой отформатированного кода? Все отступы сохраняются, а двигать блоки туда-сюда в случае чего умеет любой редактор. И в итоге код читается нормально по-любому, а не мешанина из скобок.

adVISeR 29.07.2011 17:35

Цитата:

Сообщение от [CCCP
Monster;9562503]А если ты где-то в середине редактируешь код, автозаменяешь какие-либо куски, содержащие символы конца строки, или вставляешь код?

А в C++ ты просто кидаешь так как есть и не правишь отступы для лучшей читабельности? о_О
Мне вот как-то без разницы, что нажать "{", что Tab или "}" и Shift+Tab %)

[CCCP] Monster 29.07.2011 19:22

adVISeR, В основном за меня это делают среды разработки. В VS C++ IntelliSence конечно не так божественен, как в C#, но такие вещи он делает.

Добавлено через 2 минуты
Enchantner, Зависит от того, как ты копировал код из другого места. Но в итоге ты вынужден внимательно проверить, все ли в порядке.

Enchantner 29.07.2011 19:28

[CCCP] Monster, ну да, а для утечек памяти - Garbage Collector, а для исправления косяков в коде - синтаксический анализатор и компилятор. В итоге смысл программирования с отловом ошибок ручками и оптимизацией скорости сведен к нулю - приходим к тому же тыканью по кнопочкам и рисованию окошек.

[CCCP] Monster 29.07.2011 20:07

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

adVISeR 29.07.2011 20:46

Цитата:

Сообщение от [CCCP
Monster;9563179]В основном за меня это делают среды разработки.

Эмм, дык а при чём тут отступы питона тогда? Там вроде есть что-то для переноса строки в строковых переменных. Если уж прям какой-то текст большой вставить нужно. Отступы IDE тоже проставит. Не вижу проблемы %)

Enchantner 29.07.2011 20:52

[CCCP] Monster, интерфейс да, хотя и то готовые виджеты далеко не всегда обеспечивают всю требуемую функциональность. Delphi, собственно, до сих пор и жив благодаря простоте и скорости разработки на нем оконных приложений.

Еще некоторые вообще ухитряются сравнивать, что удобнее - высокоуровневый язык программирования или высокоуровневая и интуитивная среда для работы с низкоуровневым языком. Естественно, что все зависит от задачи, однако я считаю, что периодически второе становится большим злом, если начинает слишком уж усердно "заботиться" о программисте. Это примерно как код веб-страниц, сгенерированный с помощью Microsoft FrontPage - куча мусора, табличная верстка, и при всем том, что это как-то работает и даже более-менее красиво, это не имеет никакого отношения к настоящей разработке (в данном случае, верстке) вообще.

[CCCP] Monster 29.07.2011 23:35

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


Enchantner, Ну, сейчас Делфи в 90% - это поддержка старого кода. Остальные 10% - это все студенты. Я не знаю, зачем и кто ухитряется сравнивать абсолютно разные в реализации технологии (я все-так предпочитаю рассматривать системы в полном составе - Язык-Компилятор-Код, Язык-Компилятор-Виртаульная Машина, Язык-Интерпретатор, иначе однобоко получается и всей панорамы не видно), но популярные среды в основном таки толково подсказывают и форматируют.

Enchantner 30.07.2011 12:55

[CCCP] Monster, то есть единственная проблема - это невозможность автоматического завершения блока редактором, и из этого ты делаешь вывод, что питон - хреновый язык?

[CCCP] Monster 31.07.2011 02:04

Enchantner, Я из этого делаю вывод, что это один из неприятнейших элементов эргономики языка, который опускает Питон по сравнению с другими аналогами.

adVISeR 31.07.2011 02:15

[CCCP] Monster
По-моему у тебя религиозные проблемы)) Между фигурной скобкой и табуляцией лично я разницы не вижу %)

[CCCP] Monster 31.07.2011 03:18

adVISeR, разница такова, что при модификации текста фигурная скобка остается в той смысловой точки, где ее поставили изначально, а табы важны для каждой строчки индивидуально, и такая синтаксическая особенность вынуждает программистов проявлять дисциплину там, где она по сути не требуется - достаточно встроенного в среду автоформатирования кода. Здесь же автоформатирование добавить затруднительно, т.к. информация о смысловой точке завершения блока кода, которая раньше выражалась лексемой } или end; или еще как-то, теперь отсутствует, и компилятор не может догадаться, где программист хотел сделать табы, а где нет.

Enchantner 31.07.2011 12:01

Цитата:

Сообщение от [CCCP
Monster;9566868]один из неприятнейших элементов эргономики языка, который опускает Питон по сравнению с другими аналогами

Ерунда какая-то. Ты бы еще вспомнил структуру брейнфака или скобки в лиспе. На самом деле это все реально звучит как "нашел и придрался". И компилятор тут ни при чем - нарушение области видимости сразу же попадет в трейсбек, а если блок неверно завершен - это то же самое, как если бы программист забыл скобку. Просто в данном случае ограничение блока идет вместо скобок нечитаемыми символами.

[CCCP] Monster 31.07.2011 13:36

Enchantner, Я не "нашел и придрался" - странно выглядит рекламная кампания питона с пунктом о "гениальном решении" с табуляциями, которые по сути создают больше проблем, чем решают. И как именно система понимает, что блок завершен неверно? Там же строгое построчное разделение выражений, какая ему разница, вошло следующее выражение MyVar += 2 в описанный выше for или нет?

Enchantner 01.08.2011 01:08

Цитата:

Сообщение от [CCCP
Monster;9567473]создают больше проблем, чем решают

Это лично твое мнение. А многим нравится :)
Цитата:

Сообщение от [CCCP
Monster;9567473]И как именно система понимает, что блок завершен неверно? Там же строгое построчное разделение выражений, какая ему разница, вошло следующее выражение MyVar += 2 в описанный выше for или нет?

А как компилятор понимает, что поставлена лишняя скобка или отсутствует нужный оператор? А еще, поскольку, как ты заметил, редактор сохраняет отступы, для выхода из блока волей-неволей надо уменьшать отступ, и ты чисто машинально это сделать не сможешь, не обратив внимания на строку, которую пишешь. Плюс, для случаев "только что работало, случайно ткнул на клавиатуре" всегда есть Ctrl+Z.

P.S. На мой взгляд, единственное преимущество именно в построении языка у C/C++ перед питоном состоит в наличии нормальных const методов и объектов, а также продуманной приватности/инкапсуляции. В питоне это считается ненужным, я до сих пор не очень понимаю, почему так сделано.

lorin 05.08.2011 23:43

Цитата:

Сообщение от Enchantner (Сообщение 9569635)
А как компилятор понимает, что поставлена лишняя скобка

Да хотя бы стеком.
Эти табы - нечто из разряда бэйсика с его 10 20 30 40. Абсолютно согласен с Монстром.
Вот представить ситуацию, когда копируется строчка кода, а при выделении отступ перед строчкой потерялся. Вставил и забыл - точнее пошел в другие места вставлять. В результате действие внутри цикла или проверки выпадает из них и да здравствует великий трындец.

В любом "скобочном" языке скобки можно автоформатом расставлять, вместе с отступами - практически любая IDE это позволяет из коробки. Читаемость кода от этого только улучшается благодаря отделяющим строкам со скобками. Пример
Код:

do thmsng
{
here i am;
and i;
and he;
  {
  but she isnt;
  she drinks wine;
  }
}

получается скобки позволяют добиться той же читабельности, при этом исключают ошибки автокоррекции и форматирования, не ограничивая программиста в стиле представления.

Enchantner 09.08.2011 17:43

Цитата:

Сообщение от lorin (Сообщение 9583088)
Вот представить ситуацию, когда копируется строчка кода, а при выделении отступ перед строчкой потерялся. Вставил и забыл - точнее пошел в другие места вставлять. В результате действие внутри цикла или проверки выпадает из них и да здравствует великий трындец.

Ага, точно так же, если случайно при выделении не скопировал скобку - порвал нэймспейс и капец.
Цитата:

Сообщение от lorin (Сообщение 9583088)
В любом "скобочном" языке скобки можно автоформатом расставлять, вместе с отступами - практически любая IDE это позволяет из коробки. Читаемость кода от этого только улучшается благодаря отделяющим строкам со скобками.

Никто не спорит, просто в питоне читабельность кода лежит в самой основе, а не перекладывается на IDE. Любой алгоритм на питоне всегда хорошо читается, и неважно, в какой среде он набран. Именно поэтому в питоне так хорошо с поддержкой чужого кода (я уж молчу, какую вермишель можно сделать из C). И автокоррекция (за исключением автоотступа) в большинстве случаев просто не нужна.

[CCCP] Monster 09.08.2011 18:34

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


Enchantner,
Цитата:

Никто не спорит, просто в питоне читабельность кода лежит в самой основе, а не перекладывается на IDE.
Это не правда! В питоне читабельность кода _фундаментально_ переложена на плечи программиста _дизайном_ языкового синтаксиса! И вытащить это оттуда нельзя!

Enchantner 09.08.2011 20:00

Цитата:

Сообщение от [CCCP
Monster;9591973]Ну так лексический анализатор обнаружит нечетное число открытых или закрытых скобок и скажет тебе об этом. А про недоставленный таб тебе никто ничего не скажет.

Если нарушается область видимости - тут и интерпретатор взбесится, а если получается двоякая ситуация - ССЗБ. Но это редкий случай.
Цитата:

Сообщение от [CCCP
Monster;9591973]Это не правда! В питоне читабельность кода _фундаментально_ переложена на плечи программиста _дизайном_ языкового синтаксиса! И вытащить это оттуда нельзя!

Ты так говоришь, как будто это что-то плохое. Ты пишешь читабельный код, в чем проблема?

lorin 09.08.2011 21:08

Цитата:

Сообщение от Enchantner (Сообщение 9592231)
Если нарушается область видимости

как раз это редкая проблема

Цитата:

Сообщение от Enchantner (Сообщение 9592231)
Ты пишешь читабельный код, в чем проблема?

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

Enchantner 09.08.2011 23:50

Цитата:

Сообщение от lorin (Сообщение 9592394)
читабельный код можно писать на любом языке, при этом не будет даже малейшей вероятности ошибиться в неправильной расстановке отступов.

Да чего такого в отступах? Ошибиться можно в черт знает чем, ракеты космические падают из-за таких ошибок. Если не понимаешь в кодинге - то при работе с любым языком можно наделать кучу косяков. У каждого из них свои синтаксические особенности, и гнобить из-за этого язык - это как-то непрофессионально, имхо.

lorin 10.08.2011 21:39

Enchantner, да никто и не гнобит. А особенности эти слишком особенные. Выходят из шаблона мышления и привычки. А так как язык - лишь инструмент, то это только создает неудобства. Как например писать тридцатисантиметровым карандашем - его и потерять сложнее, и почесать спину можно в случае чего, но не удобно ведь - если привык к десятисантиметровым перьевым ручкам.

[CCCP] Monster 10.08.2011 22:20

Enchantner, Очень сильно достают те косяки, где ты по невнимательности ошибаешься. При этом множество таких ошибок можно отследить алгоритмом анализа кода. Если хочешь сделать эффективный инструмент, надо предусматривать возможности для нивелирования ошибок. Разработчики питона, решив поместить кобуру пистолета стволом к ноге, в надежде что это поможет дисциплинироваться и писать читабельный код, устроили проблему, связанную с ошибками по невнимательности, с которой еще наплачутся. Также как наплакались в С с оператором ==

Enchantner 10.08.2011 23:33

Цитата:

Сообщение от lorin (Сообщение 9595289)
Enchantner, да никто и не гнобит. А особенности эти слишком особенные. Выходят из шаблона мышления и привычки. А так как язык - лишь инструмент, то это только создает неудобства. Как например писать тридцатисантиметровым карандашем - его и потерять сложнее, и почесать спину можно в случае чего, но не удобно ведь - если привык к десятисантиметровым перьевым ручкам.

Ага, а теперь можно вспомнить, что так можно сказать о многих языках :) Haskell, Lisp, Erlang. Непривычно, но со своей работой справляется на раз.
Цитата:

Сообщение от [CCCP
Monster;9595442]Разработчики питона, решив поместить кобуру пистолета стволом к ноге, в надежде что это поможет дисциплинироваться и писать читабельный код, устроили проблему, связанную с ошибками по невнимательности, с которой еще наплачутся. Также как наплакались в С с оператором ==
__________________

Сколько там у нас лет питону? Диалект ANSI C появился в 1989, Python - в 1990. Никаких проблем и масса профита :) Так что слив низащитан.

lorin 11.08.2011 00:04

Цитата:

Сообщение от [CCCP
Monster;9595442]пистолета стволом к ноге,

Хотел тоже сначала про выстрел в ногу написать.
Цитата:

Сообщение от Enchantner (Сообщение 9595714)
Ага, а теперь можно вспомнить, что так можно сказать о многих языках Haskell, Lisp, Erlang. Непривычно, но со своей работой справляется на раз.

И многие из них тупо заставляют учить чтобы поддерживать килотонны легаси кода в банковских системах. Хотя, наконец-то есть подвижки в этом вопросе.

[CCCP] Monster 11.08.2011 00:31

Enchantner,
Дык вопрос не в том, когда появился, а в том, как спроектировали. И потом, если он так крут и древен, почему менее популярен, чем Перл или Джава?

Enchantner 11.08.2011 01:22

Цитата:

Сообщение от [CCCP
Monster;9595896]менее популярен, чем Перл или Джава?

Шутишь? Джава джавой, но Перл? Джава берет кроссплатформенностью, хорошей поддержкой и тем, что это "C++ c garbage collector'ом". Перл уже давно ни на что другое, кроме анализаторов логов и простейшего синтаксического анализа, не годится. Пик популярности питона еще не пришел, но достаточно сравнить количество вакансий для питонистов на рынке с тем, что было даже год назад - прирост в разы.
И да, по простоте питон на базовом уровне может освоить даже школьник. И "неудобные" синтаксические особенности как-то незаметно идут лесом.

lorin 11.08.2011 03:01

Цитата:

Сообщение от Enchantner (Сообщение 9596023)
%languagename% на базовом уровне может освоить даже школьник

Это не аргумент.
На пайтоне написана замечательная программулина myPaint, только вот самое кошерное в ней написано на сях, а пайтону отдан по сути только ui, да общее управление.

Enchantner 11.08.2011 14:21

Цитата:

Сообщение от lorin (Сообщение 9596176)
На пайтоне написана замечательная программулина myPaint, только вот самое кошерное в ней написано на сях, а пайтону отдан по сути только ui, да общее управление.

Логично, потому что сам питон изначально написан на сях, а большая часть "гибридных" программ используют сишные модули для него при обходе боттлнеков. А все потому, что скорость и удобство разработки в разы выше.
Цитата:

Сообщение от lorin (Сообщение 9596176)
Это не аргумент.

Еще какой аргумент. Простота и удобство - вот что лежит в основе питона.

По-моему, мы опять скатились в тупое письязыкомеряние.


Часовой пояс GMT +4, время: 00:45.

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.