Здравствуйте, FR, Вы писали:
FR>Там и си версия есть (Python re module) она шустрее явы.
Не надо нести пургу. Ты хотя бы почитал то на что даешь ссылку:
The lesson from these posts is not that you can or should write a practical and general regular expression module in this way – indeed, enhancing the algorithm to support more features of the re module would be a lot of work and it is also unclear what the speed results for more realistic regular expressions would be. However, it makes for a great case study of the JIT generator.
В прочем, убедил. Отныне мы будем считать, что Питон самый быстрый язык на свете (просто потому, что ты так хочешь). За ним идет Ява. Далее С++. А самый медленный язык это, конечно же, С.
Доволен? Такой маразм тебя устраивает.
ЗЫ
Кончай нести пургу. Тебя читают не только те кто уже сам понимает что к чему в компьютерном мире, но и новички.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: почему в вебе распространены именно динамические язы
Здравствуйте, FR, Вы писали:
VD>>Пожалй пояснию. Не уловил связи межу скоростью интерпретаторов и скоросью статических языков с джит-компиляцией (к которым относится RPython (сильно ограниченная реализация Python без динамизма времени исполнения и некоторых других возможностей (с) Википедия)). К тому же RPython-овский код был напичкан жуткими хинтами для джита.
FR>Так питон почти однозначно транслируется в RPython.
Ты читать то умеешь? Я же приводил тебе ссылку на Википедию.
Или тебе нужно основные мысли написанного выделить? ОК, пожалуйста:
RPython ... сильно ограниченная реализация Python без динамизма времени исполнения и некоторых других возможностей.
Какой это на хрен Питон? Тогда С — это тоже питон, но с указателями и скобочками вместо отступов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: почему в вебе распространены именно динамические язы
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, FR, Вы писали:
FR>>Угу при этом слово рефакторинг придумали Smalltalk разработчики. WH>Только их "рефакторинг" тупо переименовывал все вхождения имени в программе. WH>Сравни с решарпером который может переименовать один из перегруженных методов.
Это было тогда сейчас в Smalltalk автоматический рефакторинг.
FR>>Кстати рефакторинг в питоне все-таки появился, года три назад он практически отсутствовал, я недавно смотрел питоные IDE WH>Могут ли они надежно переименовать метод класса при условии что есть другой класс с таким же методом? WH>Или они одно имя меняют на другое по всей программе?
Здравствуйте, FR, Вы писали:
FR>Там и си версия есть (Python re module) она шустрее явы.
С-версия там действительно есть. Только это "re module" — это не она. "re module" — это использование универсальной библиотеки. А вот реализация того же алгоритма полученная трансляцией RPython в С дала 720 килобайт в секунду, что почти в три раза медленнее аналогичной реализации на Яве (1 920 КБ/сек.).
Так что опять лож.
Скажи, тебе просто нравится врать и троллить? Зачем ты этим занимаешься?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: почему в вебе распространены именно динамические язы
Ну будет
VD>Нельзя же так нагло и беспардонно лгать в глаза?!
Нужно иначе не дадут денег.
VD>Код там написан на RPython. Вот что про него пишут в Википедии: VD>
VD>RPython[70] — созданная в рамках проекта PyPy сильно ограниченная реализация Python без динамизма времени исполнения и некоторых других возможностей. RPython код можно компилировать во множество других языков/платформ — C, JavaScript, Lisp,
VD>Так что никакими скриптами тут и не пахнет. Мы имеем дело с языком который мало чем отличается от С. Разве что ли более ограниченный, так как с указателями не позволяет работать.
VD>Потом там идет какая-то трехэтажная химия с джитом. Так что назвать это JIT-компиляцией скрипта никак нельзя. Там имеет место JIT-компиляция языка регулярных выражений. А скорость работы самого Питона там берется за пяденицу. И она на порядки медленнее чем любая другая реализация.
Зато хорошо показали светлое будущее
Re[17]: почему в вебе распространены именно динамические язы
Здравствуйте, FR, Вы писали:
FR>Это было тогда сейчас в Smalltalk автоматический рефакторинг.
Что ты под автоматическим рефакторингом подразумеваешь?
Может ли он вот это:
WH>>Могут ли они надежно переименовать метод класса при условии что есть другой класс с таким же методом?
PyCore.run_module() runs a module and collects object information if perform_doa project config is set. Since as the program runs rope gathers type information, the program runs much slower. After the program is run, you can get better code assists and some of the refactorings perform much better.
А если выполнение не зашло в нужный нам уголок кода?
FR>http://pystructure.ifs.hsr.ch/doc/thesis.pdf
Это я еще почитаю но в чудеса я не верю.
FR>Так раньше и такого не было, прогресс весьма существенный.
Короче все ясно.
Глюкодром.
Рефактори что попало и где угодно.
Вместо того что надо.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[16]: почему в вебе распространены именно динамические язы
Здравствуйте, VladD2, Вы писали:
VD>Ну, найди ссылку, тогда обсудим. А пока оставим эти инсинуации.
Лень искать, но флейм был пока longhorn пости полностью не урезали.
FR>>Понятно компиляторы лиспа и схемы мне приснились.
VD>Ты опять перевираешь чужие слова. Миф — это скорость получаемого кода. Я видел этот код (машинный). Он далек о того что может сделать даже дотнет с Явой. О сравнении его с хорошими оптимизирующими компиляторами С даже речи идти не может.
Конечно, ты споришь с самими собой. Я утверждал только что такие компиляторы есть и они существенно быстрее соответствующих интерпретаторов.
VD>К тому же пересометрия в этой области обычно проводится на примитивных примерах где в основном присутствует простенькая целочисленная арифметика. А вот когда дело доходит до компиляции реальных лисповских приложений, то как и в случае со Смотоком, все становится куда печальнее. Динамика есть динамика. Она всегда накладывает свой след. Получать быстрый код в общем случае не представляется возможным. Можно говорить только о его ускорении по сравнению с интерпретацией.
Со схемой не так печально, хотя тоже конечно медленнее статики.
VD>Так что кончай повторять эту ересь в сотый раз. Право, надоело.
Никакой ереси ты просто не читаешь что я пишу и споришь с виртуальным собеседником.
И вообще я в последнее время стал мирным малоспорящим и скромным человеком
Re[17]: почему в вебе распространены именно динамические язы
Здравствуйте, VladD2, Вы писали:
FR>>Так питон почти однозначно транслируется в RPython.
VD>Ты читать то умеешь? Я же приводил тебе ссылку на Википедию. VD>Или тебе нужно основные мысли написанного выделить? ОК, пожалуйста: VD>
VD>RPython ... сильно ограниченная реализация Python без динамизма времени исполнения и некоторых других возможностей.
VD>Какой это на хрен Питон? Тогда С — это тоже питон, но с указателями и скобочками вместо отступов.
А ассемблер в который транслируется в конечном счете все это шарп но без классов.
Какая разница во что транслируется питон.
Re[18]: почему в вебе распространены именно динамические язы
Здравствуйте, VladD2, Вы писали:
VD>Так что как не крути это еще одна попытка выдать сказки за чудесную действительность. VD>Я уже устал повторять. Чудес не бывает. Скрипты дико медленны и могу использоваться только как клей для компонентов созданных на более быстрых средствах разрабоки. Компиляция скриптов конечно может несколько их ускорить, но в общем случае это ускорение не будет очень значительным в следствии динамической природы самих язков.
Ты хочешь сказать, что если динамический язык компилируется, а не интерпретируется, то это не дает значительного ускорения?
Re[20]: почему в вебе распространены именно динамические язы
M>>В начале двухтысячных Ericsson опросил своих клиентов, стоит ли вводить в Erlang статическую типизацию. Клиенты дружно послали их туда, где солнце не светит. Вот такая вот ошибка природы, ага. WH>Демагогия. Аппеляция к общественному мнению. WH>По существу есть что сказать?
1. Не демагогия, а факт
2. Куда еще более по сушеству? Людям, которые разрабатывают системы для телекома, важнее динамика, а не мифические бенефиты от статики.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Ты хочешь сказать, что если динамический язык компилируется, а не интерпретируется, то это не дает значительного ускорения?
Да. С оговоркой, что "значительное" можно интерпретировать по разному. Ускорение конечно будет. Но достичь сравнимых результатов с теми что можно достичь при компиляции не динамических (статически типизируется) языков невозможно.
И кому как не тебе об этом знать. Ты же представляешь как в динамических языках представляются переменные?
На самом деле единственный путь который может привести к тому что динамический язык будет компилироваться в код быстродействие которого будет примерно такое же как у шарпа и явы — это замена динамики на вывод типов.
Код с выводом типов очень похож на скрипты, так как не содержит аннотаций. Но по сути это уже не будет динамический код. Так что не во всех случаях можно это сделать. Везде где будут операции вроде возни с метаклассами компиляция не приведет к существенному ускорению кода.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: почему в вебе распространены именно динамические язы
Здравствуйте, WolfHound, Вы писали:
ВВ>>Хитер. Ну ты покажи код, в котором используемые по ссылке типы объявляются, я посчитаю. А так-то что считать. WH>Оверхед в коде. WH>Его НЕТ.
А объявления классов, вариантов и проч. это уже не код? Удобно.
ВВ>>Я так понимаю, ты представляешь тут другое направление в споре динамика вс. статика. Т.е. пытаешься динамику выводом типов лечить. WH>Я не пытаюсь лечить динамику. WH>Эту ошибку природы личить не имеет смысла.
Понятно. Только начали беседовать — уже религиозные лозунги.
У меня уже начинает складываться впечатление, что у всех немерлистов есть строгая и неоспоримая позиция по всем, так сказать, вопросам жизни и смерти. А несогласие с этой позицией воспринимается чуть ли не как личное оскорбление. Надеюсь, это не заразно.
Кстати, пользуясь случаем, хотел бы спросить: что лучше — Кока-Кола или Пепси-Кола? А то я все как-то не решу
ВВ>>Так вот — лечить динамику выводом типов не надо. Динамика — это не болезнь . И вывод типов по большому счету ей ортогонален. Динамика — это прежде всего возможности самой системы типов, которая, благодаря позднему связыванию, обладает просто чудовищной гибкостью, на статически-типизированном языке недостижимой. WH>Бред! WH>Макры + вывод типов зарулят всю твою динамику в минуса.
И правда бред.
Я тебе говорю, что вывод типов есть штука по большому счету ортогональная динамической типизации. Ты мне в ответ про макросы. Причем тут макросы? Макросы прекрасно себя чувствует как в динамике, так и в статике.
А зарулить динамику невозможно в принципе. Динамика позволяет программисту делать любые допущения о типах на этапе создания программы. *Любые*.
ВВ>>Естественно, ничто не бывает бесплатным, и за гибкость приходится платить. WH>Ага... платить дохрена (тормоза и баги) а выгоды по сравнению с правильными статически типизированными языками никакой.
Как объяснишь феномен людей, которые с удовольствием пишут на динамических и статических языках? При этом в числе последних могут быть и весьма мощные языки. FR, если я не путаю, пишет на Питоне и OCaml.
Впрочем, что я спрашиваю "как объяснишь". Наверняка в ответ будет что-нибудь нецензурное.
WH>А если вспомнить про рефакторинг... я вообще не представляю как рефакторить без статической типизации. WH>Автоматический рефакторинг для динамики сделать нельзя. Вообще никак. В лучшем случае получится что-то типа текстовой замены когда одно имя заменяется сразу во всей программе. WH>А перегрузка? А методы в разных классах?... WH>Ручной рефакторинг тоже проблема. WH>Что-то поменял и что дальше? WH>Статически типизируемый язык покажет кучу мест где нужно поправить. WH>А что делать с динамически типизируемым?
Ты либо в дурку играешь, либо я не знаю. С одной стороны сам же утверждаешь, что вывод типов позволяет писать практически такой же лаконичный код, как в динамике, с другой — рекламируешь крутые возможности рефакторинга для языков с выводом типов, а вот для динамики — ни-ни. Тебе самому не странно, нет?
В динамических языках для рефакторига и используется механизм, по принципу своей работы очень близкий к этому вашему выводу типов. Я бы сказал, что и сложность разработки рефактора для какого-нибудь Немерле, если у тебя нет доступа к исходникам компилятора, и для Питона в общем сравнительна.
Re[18]: почему в вебе распространены именно динамические язы
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Воронков Василий, Вы писали:
ВВ>>Ты хочешь сказать, что если динамический язык компилируется, а не интерпретируется, то это не дает значительного ускорения?
VD>Да. С оговоркой, что "значительное" можно интерпретировать по разному. Ускорение конечно будет. Но достичь сравнимых результатов с теми что можно достичь при компиляции не динамических (статически типизируется) языков невозможно.
Я думаю, что ускорение при компиляции все же будет значительное. Ну положим, интерпретируемый динамический язык на 2 порядка медленнее компилируемого. Компилируемый динамический будет на порядок медленнее. Да и то ИМХО в худшем случае. Опять же это можно проверить. В качестве компилируемого динамического языка взять выбенет+страшные опшины или шарп+динамик и сравнить с JScript/VBScript. Я думаю, они некисло от них улетят.
А скорость "как у Си" не особо-то и требуется на самом деле. Типичные бизнес-приложения, много работы с БД, веб-сервисы, прочая хрень — на этом фоне, во-первых, практически весь код таких приложений идет под графом "клей", а во-вторых, и скорость особо и не требуется.
VD>И кому как не тебе об этом знать. Ты же представляешь как в динамических языках представляются переменные?
Ты что имеешь в виду под представлением переменных? Если динамический люкап, то это совсем не обязательное требование для языка с динамической типизацией и, собственно, никакого отношения к ней не имеет.
Кстати, как раз динамический люкап мне не очень нравится самому.
VD>На самом деле единственный путь который может привести к тому что динамический язык будет компилироваться в код быстродействие которого будет примерно такое же как у шарпа и явы — это замена динамики на вывод типов.
А зачем нужно это быстродействие в динамике?
Re[19]: почему в вебе распространены именно динамические язы
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Я думаю, что ускорение при компиляции все же будет значительное. Ну положим, интерпретируемый динамический язык на 2 порядка медленнее компилируемого. Компилируемый динамический будет на порядок медленнее. Да и то ИМХО в худшем случае.
Это высасывание цифр из пальца. В среднем разница между хорошим скриптом и средненьким компилятором — 10-30 раз, т.е. ~ 1 порядок. Компиляция дает (опять же в среднем) двух-, трех-кратное ускорение. Но на отдельных (обычно вырожденных) задачах можно достичь и более серьезного ускорения.
ВВ>Опять же это можно проверить. В качестве компилируемого динамического языка взять выбенет+страшные опшины или шарп+динамик и сравнить с JScript/VBScript. Я думаю, они некисло от них улетят.
А зачем брать "шарп+динамик"?
Потом, я тебе и так скажу, что там будет где-то ~ 20-и кратного отставания от компилированного варианта.
ВВ>А скорость "как у Си" не особо-то и требуется на самом деле.
Гы-гы. А нафиг тогда этот С (и особенно С++) сдался бы?
ВВ>Типичные бизнес-приложения, много работы с БД, веб-сервисы, прочая хрень — на этом фоне, во-первых, практически весь код таких приложений идет под графом "клей", а во-вторых, и скорость особо и не требуется.
Веб сервисы тоже время занимают. К тому же "типичными бизнес-приложениями" ПО не заканчивается.
В прочем, "Типичные бизнес-приложения" (тм) очень редко пишут на скриптах. Так что тут даже разговаривать не о чем.
VD>>И кому как не тебе об этом знать. Ты же представляешь как в динамических языках представляются переменные?
ВВ>Ты что имеешь в виду под представлением переменных? Если динамический люкап, то это совсем не обязательное требование для языка с динамической типизацией и, собственно, никакого отношения к ней не имеет. ВВ>Кстати, как раз динамический люкап мне не очень нравится самому.
Я имею в виду рантаймное определение типов значений хранимых в переменных.
VD>>На самом деле единственный путь который может привести к тому что динамический язык будет компилироваться в код быстродействие которого будет примерно такое же как у шарпа и явы — это замена динамики на вывод типов.
ВВ>А зачем нужно это быстродействие в динамике?
Поставим вопрос по другому. А зачем она вообще нужна — эта динамика? А вот быстродействие полезно всегда. Я вот не представляю себе парсер написанного динамическом языке. Те же реализации Лиспа все же обычно пользуются парсерами написанными на низкоуровневых языках или специальных расширениях лиспа позволяющих указывать типы и получать тем самым приемлемый по производительности код. Или взять к примеру PyPy-шный парсер. Он как раз реализован на RPython-е который по сути статически типизируемый сабсэт питона. Это позволяет добиться приемлемой производительности.
Короче я дже не хочу обсуждать вопрос производительности динамики с ним давно все ясно. Реально высокая производительность достижима только в статике. Но если для ваших задач хватает и того что обеспечивает динамика (пусть даже с дижтом), то пользуйтесь ее. Я вот за что не возьмусь, так производительность почему-то становится одним из актуальнейших факторов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: почему в вебе распространены именно динамические язык
Л>Вообще, потребность в Domain Specific Language для веба достаточно очевидна. Но я б ручонки всем авторам динамических языков поотрывал. Могли бы ограничиться трансляторами со своего языка в сишный или плюсовый код. На самом C++ могли бы с помощью перегрузки операторов сделать DSL. Да и вообще, для веба нужен не столько функциональный язык, сколько HTML-шаблонизатор с возможностью подстановки данных из баз, интеграцией с веб-сервером.
Ггг. Для веба нужны точно такие же языки, как и для любой другой области.