Просмотр полной версии : Холивары с Монстром
[CCCP] Monster
18.07.2011, 03:43
Enchantner, Во-первых, не гору, а небольшой интерпретатор
Он не небольшой, и там не только интерпретатор.
это величайшая находка - код отлично читается и даже неискушенный человек врубается на раз.
То, что выдается за величайшую находку на самом деле величайший кошмар - вместо того, чтобы отдать форматирование кода на откуп синтаксическому анализатору, как это сделали в Visual Studio, и автоматизировать часть решительно ненужной программисту работы по поддержанию кода в едином и читабельном виде, они принудительно заставили программиста под страхом ошибок отсчитывать табы.
BlizzardJedi, GPGPU эффективны только при больших объемах однородных данных, которые минимально включают в себя линейные участки кода, где до вычисления промежуточных данных невозможно определить адрес перехода на следующую инструкцию. Про условные переходы - не совсем верно, я еще в 2006 году писал на шейдерах с использованием условных переходов, обнаружил что набор команд уже достиг почти тьюринговской полноты, и мечтал о более удобных средствах описания алгоритмов. И через год NVidia прочитала наконец мои мысли.
Enchantner
18.07.2011, 11:03
Monster;9532520]Он не небольшой, и там не только интерпретатор.
Ага, а теперь сравни с этими 15 мегабайтами вес любой из составляющих VS - от дотнет-фреймворка до самой минимальной реализации сишарпа.
Monster;9532520]То, что выдается за величайшую находку на самом деле величайший кошмар - вместо того, чтобы отдать форматирование кода на откуп синтаксическому анализатору, как это сделали в Visual Studio, и автоматизировать часть решительно ненужной программисту работы по поддержанию кода в едином и читабельном виде, они принудительно заставили программиста под страхом ошибок отсчитывать табы.
Это проблема не языка, а IDE. Любой нормальный редактор кода сам запросто отсчитывает отступы и помогает с форматированием.
[CCCP] Monster
18.07.2011, 13:18
Ага, а теперь сравни с этими 15 мегабайтами вес любой из составляющих VS - от дотнет-фреймворка до самой минимальной реализации сишарпа.
Для запуска ничего качать не надо, а для работы и там и там IDE нужна, если только ты конечно не в блокноте кодить собираешься.
Это проблема не языка, а IDE. Любой нормальный редактор кода сам запросто отсчитывает отступы и помогает с форматированием.
Да, вот только "гениальный создатель" умудрился сделать так, что помощь IDE в форматировании попросту невозможна в том виде, в котором она нужна - программист вынужден для каждой строчки решать, какой отступ делать. Там нет средства отделения блока кода, на основании которого можно было бы определить что и как форматировать.
Enchantner
18.07.2011, 14:38
Monster;9533053]Для запуска ничего качать не надо, а для работы и там и там IDE нужна, если только ты конечно не в блокноте кодить собираешься.
Во-первых, на питоне можно легко и в блокноте (тот же Geany или виндовый Notepad++), а во-вторых, ты забыл про кроссплатформенность. Для питона под никсами (а вроде, и под макосью тоже) качать тоже ничего не надо.
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, 14:52
Monster"]Про условные переходы - не совсем верно, я еще в 2006 году писал на шейдерах с использованием условных переходов, обнаружил что набор команд уже достиг почти тьюринговской полноты, и мечтал о более удобных средствах описания алгоритмов. И через год NVidia прочитала наконец мои мысли.
Шутишь! ГПУ умеет работать с условиями? О_О
[CCCP] Monster
18.07.2011, 19:13
BlizzardJedi, разумеется: http://msdn.microsoft.com/en-us/library/bb509610(v=vs.85).aspx
Enchantner, Можно и в блокноте, но в условиях отступов регулярное возвращение к написанному коду в простом текстовом редакторе без средств контроля табов превращается в блуждание по минному полю.
Про кроссплатформенность я помню, но она нужна там, где она нужна по ТЗ, и там кстати прекрасно справляются Java и Mono.
Ну, вроде как там и так все наглядно, что в цикле - с одним отступом, что вне его - с другим, и т.д. А автоотступы умеет почти любой редактор. Зато в итоге такой код читать в сто раз проще, и не надо спорить, как в сях, на какой строчке ставить фигурную скобку. Так что:
Наглядно, да, но поддержка и редактирование - сущий кошмар. Т.е. в традиционном варианте создания блоков кода ты ставишь специальные операторы, обрамляющие начало и конец блока. Здесь невозможно по невнимательности или еще как-либо случайно сделать из одного блока кода два, разной вложенности. В Питоне это легко, и при этом среда тебе только при синтаксическом разборе, и то не во всех случаях, может подсказать где проблема. А Касательно чтения кода и форматирования - так за это должна отвечать среда. Если угодно - можно посмотреть VS C# с его IntelliSence. Пишешь ты как тебе надо, или редактируешь уже написанное, поставил курсор за пределы блока кода, и он сам все отформатировал как надо. Потому что блок кода опознается однозначно. Все эти автоформатирования и подсказки для параметров и методов созданы чтобы облегчить программисту жизнь и дать ему возможность беспокоиться только насчет кода и того, что он делает, а хорошую читабельность IDE берет на себя, и успешно справляется.
Enchantner
18.07.2011, 20:50
Monster;9534100]В Питоне это легко, и при этом среда тебе только при синтаксическом разборе, и то не во всех случаях, может подсказать где проблема.
Любой питоновый трейсбэк проводит полный экскурс по строкам с ошибками. Кроме того, в многие среды встроены тулзы наподобие Pychecker, которые выдают еще более подробный лог.
Monster;9534100]прекрасно справляются Java и Mono
Ага, одинаково тормозит на всех платформах. Не, я не буду сравнивать с питоном, это скриптовый язык. Но (пусть это будет чисто мое имхо) считаю Java не пригодным для прикладных разработок (если это не веб-ориентированные корпоративные системы), а Mono - костыль для тех, кто хочет на линукс и хочет дотнет.
Monster;9534100]Если угодно - можно посмотреть VS C# с его IntelliSence.
Я тебе больше скажу, уже существует VS-плагин для Python с поддержкой IntelliSense.
В общем, это вечный спор, кому что удобнее :) В защиту легко сказать, что код на том же C++ можно, наплевав на расположение скобок, превратить в такую кашу - мама дорогая. А в питоне это невозможно по определению, именно это делает его очень удобным для поддержки и снижает порог вхождения для чтения чужого кода.
[CCCP] Monster
18.07.2011, 21:46
Enchantner, Любой питоновый трейсбэк проводит полный экскурс по строкам с ошибками. Кроме того, в многие среды встроены тулзы наподобие Pychecker, которые выдают еще более подробный лог.
Я полагаю, что разница в эргономике между логом постфактум и онлайн-редактированием понятна.
Ага, одинаково тормозит на всех платформах. Не, я не буду сравнивать с питоном, это скриптовый язык. Но (пусть это будет чисто мое имхо) считаю Java не пригодным для прикладных разработок (если это не веб-ориентированные корпоративные системы), а Mono - костыль для тех, кто хочет на линукс и хочет дотнет.
А в прикладных разработках очень много народу хочет на линукс?
Я тебе больше скажу, уже существует VS-плагин для Python с поддержкой IntelliSense.
Угу, только там IntelliSence - это в основном подсказки по классам, методам и функциям, и преформатирование в виде табов при переходе на следующую строку (удобно когда пишешь новый код, но при редактировании старого это не помогает никак, к сожалению).
В общем, это вечный спор, кому что удобнее
Конечно вечный:) Мне вот КПП с механикой нравится, но большинство автомобилистов не разделяет мои предпочтения. Что печально, т.к. производители на рынке ориентируются таки на большитсво. И я их понимаю! Автомат с точки зрения эргономики - намного проще, и очень мало таких как я, извращенцев, любящих переключать передачи самостоятельно. Может быть, будь я профессиональным водителем автобуса, тоже больше любил бы автомат. Со средами разработки вопрос тот же. Есть конкретные правила разработки, обеспечивающие эффективную эргономику. Есть конкретные примеры "как не надо делать". И проблема в том, что Питон умудрился наступить на неправильные грабли, которые внутриконцептуально закрыли путь помогалкам программистов в деле форматирования кода, потому что здесь сама концепция заставила именно программиста ставить табы, а не переложить это на среду, которая без лишних хлопот могла бы ненавязчиво поправить программиста, и я думаю, это его ключевая проблема. Достаточно пописать на шарпике и питоне какое-то время, промышленный код. И тогда все станет понятно. Кстати, питон, в виде интерпретируемого кода еще больший тормоз, чем жаба. Хотя если компилировать в MSIL а потом в целевую архитектуру, код становится более шустрым.
BlizzardJedi
19.07.2011, 00:53
[CCCP] Monster, Enchantner, каждому программисту не угодишь. Поэтому и появляются C++, STL и прочие вещи, которые программисты создавали для себя и под себя.
[CCCP] Monster, механика! Только механика! )
[CCCP] Monster,
Enchantner,
объясните как вообще можно сравнивать полноценный язык проверенный десятками лет и непонятно откуда выползший скриптовый язык?
Hast
Как бы питон уже тоже далеко не младенец)
Hast,
Как бы питону уже 21 год :sml:
[CCCP] Monster
24.07.2011, 01:10
Hast, как-бы речь про концепции вообще, и место, в которое они ведут. У питона - нехорошее.
Enchantner
24.07.2011, 19:38
Monster;9548499]У питона - нехорошее.
У любого языка есть свои плюсы и минусы. Я вот, например, могу про себя сказать, что мне не нравится сишарп - ни по концепции, ни по чему другому. То есть вообще. Это как бы сугубо мое личное мнение :)
объясните как вообще можно сравнивать полноценный язык проверенный десятками лет и непонятно откуда выползший скриптовый язык?
А это уже вроде объяснили :)
[CCCP] Monster
25.07.2011, 01:00
Enchantner, Есть предпочтения сугубо личные вроде цвета или вкуса. А есть технические возможности, которые можно измерить. Я использовал именно вторые.
Enchantner
25.07.2011, 16:28
[CCCP] Monster, то есть ты сравнивал технические возможности Java-C/C++ и питона? Или ты про сишарп? Круто. Я бы так не смог, особенно если учесть, что это языки для совсем разных целей. Это если не вспоминать, что один компилируемый, а другой скриптовый.
[CCCP] Monster
25.07.2011, 20:08
Enchantner, я говорил о технических концепциях реализации синтаксиса и его привязки к средам разработки, технологии я никак не сравнивал.
Enchantner
26.07.2011, 10:26
[CCCP] Monster, если бы везде был один и тот же синтаксис - язык бы тоже был один. А среды разработки есть как нормальные, так и отстойные для всех языков. Причем тут именно питон? Тем более что для питона теперь есть тот же PyCharm.
[CCCP] Monster
26.07.2011, 22:22
Enchantner, Через синтаксис реализуется концепция. Только часто для поддержки концепции также нужна особая технология, не имеющая нативной поддержки в ОС и процессоре. Поэтому такие системы тащут за собой фреймворк+интерпретатор/ВМ или еще что-то. Именно питон тут притом, что помимо в общем-то стандартных концепций вроде ООП, функционального программирования и т.п. есть еще очень специфическая синтаксическая особенность, не относящаяся к реализации технологий и не влияющая на общие возможности языка, но полностью убивающая возможности по внешнему анализу и управлению блоками кода, за исключением автоматической простановки табов при переходе на следующую строку. Эта особенность питона исключительно неприятна, и при этом другие языки, аналогичные по возможностям, лишены этой проблемы. При этом неприятность проблемы заключена именно в проблемах с эргономикой абсолютно любой среды программирования, которая будет работать с синтаксисом питона, потому что в случае с таким синтаксисом надежные знания о блоках кода имеются лишь в голове программиста, и оттуда их никак не извлечь, если только он сам не пожелает. Результатом этого становится геморрой при поддержке уже написанного кода, если его требуется менять, т.к. включать свою внимательность приходится на всю катушку, причем там, где можно было бы просто автоматизировать процесс, оставив его на откуп машине, которая всегда внимательна.
Enchantner
27.07.2011, 18:40
Monster;9555724]полностью убивающая возможности по внешнему анализу и управлению блоками кода
На основании чего ты делаешь такой вывод? Во-первых, есть двоеточия, во-вторых, циклы for и while и if-условия, равно как и объявления функций, никто не отменял - это явный показатель перехода к новому блоку кода. Никакого геморроя при поддержке не существует, если имеется хоть какое-то понятие о питоне - более удобно читаемый язык сложно себе представить, и это как бы его главная фишка. И лучше не упоминать о внимательности - в конце концов, что заметнее - отступ в начале строки или непонятно где расположенная в коде скобка?
[CCCP] Monster
28.07.2011, 19:45
Enchantner, Я делаю такой вывод на основании отсутствия внятного закрывающего блок символа. Поэтому система просто не может определить, где отсутпы делать, а где нет.
Enchantner
28.07.2011, 21:34
[CCCP] Monster, это должен определять программист, а не система. Ты бы еще сказал, что блокноты должны автоматом определять, где JNZ, а где JE в ассемблере. Да и ошибку, как я уже сказал, в коде с отступами отлавливать гораздо проще, имхо. Особенно при таком хорошем трейсбэке.
Чую, надо переименовать тред в "Холивары с Монстром" :)
[CCCP] Monster,
Судя по вашей ненависти к питону, вы кроме его интерпретатора ничего больше ничего не видели, поэтому и пишите полную чушь. Все современные IDE сами делают отступы, когда надо. Тот же PyCharm или MC Visual Studio с ironPython на борту. Читаемость кода без не пойми где расположенных скобок и ковычек(споры о расположении которых ведутся до сих пор). Читается и поддерживается такой код легко, даже без дополнительных комментарием, т.к. практически сразу понятно, что именно делает тот или иной участок кода.
[CCCP] Monster
29.07.2011, 00:14
Enchantner, Да, переползем сюда.
Верно, программист и определяет. Только получается, что когда ты ставишь скобку - эта скобка там и остается, и внутри блока можно работать, не опасаясь, что там что-то куда-то не туда денется. У питона нету второй скобки, там очень запросто можно при редактировании кода, особенно при автозамене, съехать с нужных отступов, и потом собирать кости по всему коду.
†Grave†, Споры о расположении скобок и форматирование текста внутри них должно разрешаться средой программирования. Про остальное написал выше.
Enchantner
29.07.2011, 10:48
Monster;9561518]внутри блока можно работать, не опасаясь, что там что-то куда-то не туда денется
Ты сам уже упоминал про автоматические отступы - вот тут они и нужны. Ты работаешь в блоке, пока все на одном уровне, захотел перейти на другой - уменьшил отступ и работаешь дальше. И не сказал бы, что легко куда-то съехать, и уж тем более после этого не надо будет искать ошибку по всему коду. Когда ты пишешь на С/C++ - ты же не забываешь про области видимости, и скобки тут ни при чем.
[CCCP] Monster
29.07.2011, 14:25
Enchantner, А если ты где-то в середине редактируешь код, автозаменяешь какие-либо куски, содержащие символы конца строки, или вставляешь код?
Enchantner
29.07.2011, 15:54
[CCCP] Monster, а какая проблема со вставкой отформатированного кода? Все отступы сохраняются, а двигать блоки туда-сюда в случае чего умеет любой редактор. И в итоге код читается нормально по-любому, а не мешанина из скобок.
Monster;9562503]А если ты где-то в середине редактируешь код, автозаменяешь какие-либо куски, содержащие символы конца строки, или вставляешь код?
А в C++ ты просто кидаешь так как есть и не правишь отступы для лучшей читабельности? о_О
Мне вот как-то без разницы, что нажать "{", что Tab или "}" и Shift+Tab %)
[CCCP] Monster
29.07.2011, 18:22
adVISeR, В основном за меня это делают среды разработки. В VS C++ IntelliSence конечно не так божественен, как в C#, но такие вещи он делает.
Добавлено через 2 минуты
Enchantner, Зависит от того, как ты копировал код из другого места. Но в итоге ты вынужден внимательно проверить, все ли в порядке.
Enchantner
29.07.2011, 18:28
[CCCP] Monster, ну да, а для утечек памяти - Garbage Collector, а для исправления косяков в коде - синтаксический анализатор и компилятор. В итоге смысл программирования с отловом ошибок ручками и оптимизацией скорости сведен к нулю - приходим к тому же тыканью по кнопочкам и рисованию окошек.
[CCCP] Monster
29.07.2011, 19:07
Enchantner, Эээ, не совсем так. Синтаксис управляющих конструкций в данном случае не влияет на технологические возможности генерации кода. А то о чем ты написал - очень даже хорошие штуки, если речь идет о том, что надо сделать быстро, и что не требует быстродействия. Вот интерфейс как раз относится к таким вот вещам, которые желательно сделать побыстрее.
Monster;9563179]В основном за меня это делают среды разработки.
Эмм, дык а при чём тут отступы питона тогда? Там вроде есть что-то для переноса строки в строковых переменных. Если уж прям какой-то текст большой вставить нужно. Отступы IDE тоже проставит. Не вижу проблемы %)
Enchantner
29.07.2011, 19:52
[CCCP] Monster, интерфейс да, хотя и то готовые виджеты далеко не всегда обеспечивают всю требуемую функциональность. Delphi, собственно, до сих пор и жив благодаря простоте и скорости разработки на нем оконных приложений.
Еще некоторые вообще ухитряются сравнивать, что удобнее - высокоуровневый язык программирования или высокоуровневая и интуитивная среда для работы с низкоуровневым языком. Естественно, что все зависит от задачи, однако я считаю, что периодически второе становится большим злом, если начинает слишком уж усердно "заботиться" о программисте. Это примерно как код веб-страниц, сгенерированный с помощью Microsoft FrontPage - куча мусора, табличная верстка, и при всем том, что это как-то работает и даже более-менее красиво, это не имеет никакого отношения к настоящей разработке (в данном случае, верстке) вообще.
[CCCP] Monster
29.07.2011, 22:35
adVISeR, Дык косяк в том, что из-за отсутствия конечного символа блока кода, парсер ИДЕ питона просто не знает, где закончить уже эти отступы делать.
Enchantner, Ну, сейчас Делфи в 90% - это поддержка старого кода. Остальные 10% - это все студенты. Я не знаю, зачем и кто ухитряется сравнивать абсолютно разные в реализации технологии (я все-так предпочитаю рассматривать системы в полном составе - Язык-Компилятор-Код, Язык-Компилятор-Виртаульная Машина, Язык-Интерпретатор, иначе однобоко получается и всей панорамы не видно), но популярные среды в основном таки толково подсказывают и форматируют.
Enchantner
30.07.2011, 11:55
[CCCP] Monster, то есть единственная проблема - это невозможность автоматического завершения блока редактором, и из этого ты делаешь вывод, что питон - хреновый язык?
[CCCP] Monster
31.07.2011, 01:04
Enchantner, Я из этого делаю вывод, что это один из неприятнейших элементов эргономики языка, который опускает Питон по сравнению с другими аналогами.
[CCCP] Monster
По-моему у тебя религиозные проблемы)) Между фигурной скобкой и табуляцией лично я разницы не вижу %)
[CCCP] Monster
31.07.2011, 02:18
adVISeR, разница такова, что при модификации текста фигурная скобка остается в той смысловой точки, где ее поставили изначально, а табы важны для каждой строчки индивидуально, и такая синтаксическая особенность вынуждает программистов проявлять дисциплину там, где она по сути не требуется - достаточно встроенного в среду автоформатирования кода. Здесь же автоформатирование добавить затруднительно, т.к. информация о смысловой точке завершения блока кода, которая раньше выражалась лексемой } или end; или еще как-то, теперь отсутствует, и компилятор не может догадаться, где программист хотел сделать табы, а где нет.
Enchantner
31.07.2011, 11:01
Monster;9566868]один из неприятнейших элементов эргономики языка, который опускает Питон по сравнению с другими аналогами
Ерунда какая-то. Ты бы еще вспомнил структуру брейнфака или скобки в лиспе. На самом деле это все реально звучит как "нашел и придрался". И компилятор тут ни при чем - нарушение области видимости сразу же попадет в трейсбек, а если блок неверно завершен - это то же самое, как если бы программист забыл скобку. Просто в данном случае ограничение блока идет вместо скобок нечитаемыми символами.
[CCCP] Monster
31.07.2011, 12:36
Enchantner, Я не "нашел и придрался" - странно выглядит рекламная кампания питона с пунктом о "гениальном решении" с табуляциями, которые по сути создают больше проблем, чем решают. И как именно система понимает, что блок завершен неверно? Там же строгое построчное разделение выражений, какая ему разница, вошло следующее выражение MyVar += 2 в описанный выше for или нет?
Enchantner
01.08.2011, 00:08
Monster;9567473]создают больше проблем, чем решают
Это лично твое мнение. А многим нравится :)
Monster;9567473]И как именно система понимает, что блок завершен неверно? Там же строгое построчное разделение выражений, какая ему разница, вошло следующее выражение MyVar += 2 в описанный выше for или нет?
А как компилятор понимает, что поставлена лишняя скобка или отсутствует нужный оператор? А еще, поскольку, как ты заметил, редактор сохраняет отступы, для выхода из блока волей-неволей надо уменьшать отступ, и ты чисто машинально это сделать не сможешь, не обратив внимания на строку, которую пишешь. Плюс, для случаев "только что работало, случайно ткнул на клавиатуре" всегда есть Ctrl+Z.
P.S. На мой взгляд, единственное преимущество именно в построении языка у C/C++ перед питоном состоит в наличии нормальных const методов и объектов, а также продуманной приватности/инкапсуляции. В питоне это считается ненужным, я до сих пор не очень понимаю, почему так сделано.
А как компилятор понимает, что поставлена лишняя скобка
Да хотя бы стеком.
Эти табы - нечто из разряда бэйсика с его 10 20 30 40. Абсолютно согласен с Монстром.
Вот представить ситуацию, когда копируется строчка кода, а при выделении отступ перед строчкой потерялся. Вставил и забыл - точнее пошел в другие места вставлять. В результате действие внутри цикла или проверки выпадает из них и да здравствует великий трындец.
В любом "скобочном" языке скобки можно автоформатом расставлять, вместе с отступами - практически любая IDE это позволяет из коробки. Читаемость кода от этого только улучшается благодаря отделяющим строкам со скобками. Пример
do thmsng
{
here i am;
and i;
and he;
{
but she isnt;
she drinks wine;
}
}
получается скобки позволяют добиться той же читабельности, при этом исключают ошибки автокоррекции и форматирования, не ограничивая программиста в стиле представления.
Enchantner
09.08.2011, 16:43
Вот представить ситуацию, когда копируется строчка кода, а при выделении отступ перед строчкой потерялся. Вставил и забыл - точнее пошел в другие места вставлять. В результате действие внутри цикла или проверки выпадает из них и да здравствует великий трындец.
Ага, точно так же, если случайно при выделении не скопировал скобку - порвал нэймспейс и капец.
В любом "скобочном" языке скобки можно автоформатом расставлять, вместе с отступами - практически любая IDE это позволяет из коробки. Читаемость кода от этого только улучшается благодаря отделяющим строкам со скобками.
Никто не спорит, просто в питоне читабельность кода лежит в самой основе, а не перекладывается на IDE. Любой алгоритм на питоне всегда хорошо читается, и неважно, в какой среде он набран. Именно поэтому в питоне так хорошо с поддержкой чужого кода (я уж молчу, какую вермишель можно сделать из C). И автокоррекция (за исключением автоотступа) в большинстве случаев просто не нужна.
[CCCP] Monster
09.08.2011, 17:34
Enchantner, Ну так лексический анализатор обнаружит нечетное число открытых или закрытых скобок и скажет тебе об этом. А про недоставленный таб тебе никто ничего не скажет.
Enchantner, Никто не спорит, просто в питоне читабельность кода лежит в самой основе, а не перекладывается на IDE.
Это не правда! В питоне читабельность кода _фундаментально_ переложена на плечи программиста _дизайном_ языкового синтаксиса! И вытащить это оттуда нельзя!
Enchantner
09.08.2011, 19:00
Monster;9591973]Ну так лексический анализатор обнаружит нечетное число открытых или закрытых скобок и скажет тебе об этом. А про недоставленный таб тебе никто ничего не скажет.
Если нарушается область видимости - тут и интерпретатор взбесится, а если получается двоякая ситуация - ССЗБ. Но это редкий случай.
Monster;9591973]Это не правда! В питоне читабельность кода _фундаментально_ переложена на плечи программиста _дизайном_ языкового синтаксиса! И вытащить это оттуда нельзя!
Ты так говоришь, как будто это что-то плохое. Ты пишешь читабельный код, в чем проблема?
Если нарушается область видимости
как раз это редкая проблема
Ты пишешь читабельный код, в чем проблема?
проблема в том, что читабельный код можно писать на любом языке, при этом не будет даже малейшей вероятности ошибиться в неправильной расстановке отступов. Скажешь, что волчьи ямы на даче - это хорошо, потому что заставляет ходить по тропинкам и не топтать газон?
Enchantner
09.08.2011, 22:50
читабельный код можно писать на любом языке, при этом не будет даже малейшей вероятности ошибиться в неправильной расстановке отступов.
Да чего такого в отступах? Ошибиться можно в черт знает чем, ракеты космические падают из-за таких ошибок. Если не понимаешь в кодинге - то при работе с любым языком можно наделать кучу косяков. У каждого из них свои синтаксические особенности, и гнобить из-за этого язык - это как-то непрофессионально, имхо.
Enchantner, да никто и не гнобит. А особенности эти слишком особенные. Выходят из шаблона мышления и привычки. А так как язык - лишь инструмент, то это только создает неудобства. Как например писать тридцатисантиметровым карандашем - его и потерять сложнее, и почесать спину можно в случае чего, но не удобно ведь - если привык к десятисантиметровым перьевым ручкам.
[CCCP] Monster
10.08.2011, 21:20
Enchantner, Очень сильно достают те косяки, где ты по невнимательности ошибаешься. При этом множество таких ошибок можно отследить алгоритмом анализа кода. Если хочешь сделать эффективный инструмент, надо предусматривать возможности для нивелирования ошибок. Разработчики питона, решив поместить кобуру пистолета стволом к ноге, в надежде что это поможет дисциплинироваться и писать читабельный код, устроили проблему, связанную с ошибками по невнимательности, с которой еще наплачутся. Также как наплакались в С с оператором ==
Enchantner
10.08.2011, 22:33
Enchantner, да никто и не гнобит. А особенности эти слишком особенные. Выходят из шаблона мышления и привычки. А так как язык - лишь инструмент, то это только создает неудобства. Как например писать тридцатисантиметровым карандашем - его и потерять сложнее, и почесать спину можно в случае чего, но не удобно ведь - если привык к десятисантиметровым перьевым ручкам.
Ага, а теперь можно вспомнить, что так можно сказать о многих языках :) Haskell, Lisp, Erlang. Непривычно, но со своей работой справляется на раз.
Monster;9595442]Разработчики питона, решив поместить кобуру пистолета стволом к ноге, в надежде что это поможет дисциплинироваться и писать читабельный код, устроили проблему, связанную с ошибками по невнимательности, с которой еще наплачутся. Также как наплакались в С с оператором ==
__________________
Сколько там у нас лет питону? Диалект ANSI C появился в 1989, Python - в 1990. Никаких проблем и масса профита :) Так что слив низащитан.
Monster;9595442]пистолета стволом к ноге,
Хотел тоже сначала про выстрел в ногу написать.
Ага, а теперь можно вспомнить, что так можно сказать о многих языках Haskell, Lisp, Erlang. Непривычно, но со своей работой справляется на раз.
И многие из них тупо заставляют учить чтобы поддерживать килотонны легаси кода в банковских системах. Хотя, наконец-то есть подвижки в этом вопросе.
[CCCP] Monster
10.08.2011, 23:31
Enchantner,
Дык вопрос не в том, когда появился, а в том, как спроектировали. И потом, если он так крут и древен, почему менее популярен, чем Перл или Джава?
Enchantner
11.08.2011, 00:22
Monster;9595896]менее популярен, чем Перл или Джава?
Шутишь? Джава джавой, но Перл? Джава берет кроссплатформенностью, хорошей поддержкой и тем, что это "C++ c garbage collector'ом". Перл уже давно ни на что другое, кроме анализаторов логов и простейшего синтаксического анализа, не годится. Пик популярности питона еще не пришел, но достаточно сравнить количество вакансий для питонистов на рынке с тем, что было даже год назад - прирост в разы.
И да, по простоте питон на базовом уровне может освоить даже школьник. И "неудобные" синтаксические особенности как-то незаметно идут лесом.
%languagename% на базовом уровне может освоить даже школьник
Это не аргумент.
На пайтоне написана замечательная программулина myPaint, только вот самое кошерное в ней написано на сях, а пайтону отдан по сути только ui, да общее управление.
Enchantner
11.08.2011, 13:21
На пайтоне написана замечательная программулина myPaint, только вот самое кошерное в ней написано на сях, а пайтону отдан по сути только ui, да общее управление.
Логично, потому что сам питон изначально написан на сях, а большая часть "гибридных" программ используют сишные модули для него при обходе боттлнеков. А все потому, что скорость и удобство разработки в разы выше.
Это не аргумент.
Еще какой аргумент. Простота и удобство - вот что лежит в основе питона.
По-моему, мы опять скатились в тупое письязыкомеряние.
vBulletin® v3.8.0, Copyright ©2000-2025, Jelsoft Enterprises Ltd.