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

Форум Игромании (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 03:43

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

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

Цитата:

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

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

Enchantner 18.07.2011 11:03

Цитата:

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

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

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

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

[CCCP] Monster 18.07.2011 13:18

Цитата:

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

Цитата:

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

Enchantner 18.07.2011 14: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 14:52

Цитата:

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

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

[CCCP] Monster 18.07.2011 19:13

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

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

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

Цитата:

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

Enchantner 18.07.2011 20: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 21:46

Enchantner,
Цитата:

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

Цитата:

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

Цитата:

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

Цитата:

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

BlizzardJedi 19.07.2011 00:53

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

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

Hast 23.07.2011 03:59

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

adVISeR 23.07.2011 10:59

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

†Grave† 23.07.2011 13:36

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

[CCCP] Monster 24.07.2011 01:10

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

Enchantner 24.07.2011 19:38

Цитата:

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

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

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

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

[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

Цитата:

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

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


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

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