![]() |
|
Модераторы: LSD |
![]()
|
|
| GrayCardinal |
|
||||||||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: нет Всего: 58 |
[ИМХО]
Мы тут с powerfox'ом решили захоливарить..Суть сабжа. Я утверждаю, что зная основы Ruby, не стоит отвлекаться на такой мусор, как Python. powerfox настаивает на том, что надо знать и Python в том числе... Были взяты два примера. (ruby)
и (python)
Одинаковый по действию код. НО. По-моему умножать строку на число не совсем логично... [/ИМХО] Далее... Вооружившись книгами по python и ruby... В том же духе, под эгидой "где логика ?!"... Добавлено @ 16:19 (из книжки !)
Что мы видим ? Нормально. Заменяем в тексте запятую на "zpt", Однако, если глянуть немного "с боку". Что мы видим. Подгружается МОДУЛЬ строка (типа строки не всегда используем). Задается текст (ОК). Далее. Из модуля (!) string вызывается метод replace. Почему не text.replace ? Добавлено @ 16:22 Про словари.
Думаю всем понятно как ЭТО должно выглядеть в реальной жизни Это сообщение отредактировал(а) GrayCardinal - 21.12.2008, 16:27 |
||||||||
|
|||||||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: нет Всего: 58 |
Так, "навскидку", пока всё
Короче Python |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Не только Питон, но и другие языки. Правда, пока ни тем, ни тем особо похвастаться не могу. p -> print. В питоне 1 в 1.
Не поверишь, но тоже 1 в 1 В общем, такое можно написать и на С++. Это сообщение отредактировал(а) powerfox - 21.12.2008, 16:43 |
|||
|
||||
| source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Этот же код прекрасно работает и в Руби, а по поводу логичности, так это от контекста зависит.
Оригинальные камменты для кода на Питоне P.S. Языков надо знать как можно больше, хотя бы основы, это очевидно для любого программиста, т.к. ни один из существующих на звание silver bullet не тянет, соответственно если не хочешь ограничивать круг подвластных задач жёсткими рамками одного языка, то надо выбирать язык под каждую конкретную задачу. Насколько я знаю, особенность Питона в том, что там практически любая задача решается единственно возможным способом, что зачастую проявляет ограничения его интерпретатора, который в некотором смысле приносит удобство в жертву скорости выполнения, а в Ruby наоборот, практически на любую задачу найдётся с десяток разных способов, выбирай какой больше нравится... -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Что-о-о? Нет, насчёт «There should be one—and preferably only one—obvious way to do it.» © Python Zen всё верно. Но отнюдь не в ущерб скорости выполнения, напротив, только YARV недавно позволил Руби как-то тягаться с питоновским интерпретатором байт-кода. Собственно, с этой позиции и стоит их сравнивать. Руби действительно во многом интереснее как язык, хотя отличия не столь радикальны. Вопрос в бибиотеках, эффективности, поддержке. И персональных вкусах, конечно же. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
||||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
||||
|
||||
| kemiisto |
|
||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Ну, по поводу умножения строки на число, уже опередили. В Ruby тоже так можно. В этом весь Ruby! There is more than one way to do it! (лозунг для такого подхода, походу, дёрнут у Perl
Весь это Zen - словоблудство! И не более.
Python 2.6 vs Ruby 1.8.7. Превосходство (в среднем) - 3-5 раз. Т.е. производительность даже до YARV была одного порядка. Вот это да. Мне вот например C-like синтаксис не по душе, так я когда Python увидел, чуть не -------------------- |
||||
|
|||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
kemiisto, я слышал ты на Delphi программируешь...
единственное, что сильно не нравится в python, так __вот__ __такие__ __методы___ __и __такие __private __аттрибуты |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Сишники в своё время грызли дотнетчиков за 20 процентов, а ты тут разами кидаешься! Не для холивара стратегия -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
примеры какие-то игрушечные, нужен реальный пример
например такой: есть список целых чисел [1, 2, 5, 3, 7... нужно создать список по следующему правилу, если очередной элемент равен N, то мы добавляем N элементов со значением N, практической пользы в этом нет, но по крайней мере можно увидеть больше возможностей ЯП Добавлено через 1 минуту и 40 секунд
Добавлено через 4 минуты и 6 секунд вариант на срр
|
||||
|
|||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Точнее - программировал. Delphi - уже в прошлом.
Сишники вечно всех не по делу грызут! Меряться будем? -------------------- |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
ну по скорости мой пример будет сложно побить
Добавлено через 21 секунду по скорости написания, читаемости итп |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Добавляем, вроде, N - 1 элементов? Один то уже есть. Так? -------------------- |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
да, в общем результат - новый список
|
|||
|
||||
| kemiisto |
|
||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Ну, если новый список, то можно, например, так:
Добавлено через 9 минут и 3 секунды Или так:
-------------------- |
||||
|
|||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
Добавлено через 2 минуты и 8 секунд хотя наверное можно и короче... сейчас что нибудь соображу. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
Это сообщение отредактировал(а) Lazin - 21.12.2008, 21:09 |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Нате вам
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Мне вариант Void'а понравился.
-------------------- |
|||
|
||||
| powerfox |
|
||||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Пока я думал, ты написал похожий пример.
----- Ой, немного не то делает )) Это сообщение отредактировал(а) powerfox - 21.12.2008, 21:21 |
||||
|
|||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
MAKCim,
Lazin, наглядно, то я даже и не знаю, что сказать! Хотя, оно и понятно, синтаксиса то я не знаю питоновского. -------------------- |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
||||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
В споре, что круче, Python или Ruby, правильным ответом будет Void. -------------------- |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
||||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
ну это называется list comprehensions, в принципе ничего сложного тут нет, в общем Python пока впереди вообще, что такое есть в руби, чего нет в питоне? |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: нет Всего: 97 |
Смотрю на твою аватарку и думаю об этом |
|||
|
||||
| Lazin |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
еще, кроме __таких__ имен в python туго с многострочными лямбдами, приходится создавать вложенную функцию, в руби таких проблем нет.
и еще есть проблема с локальными переменными при создании замыканий, вот мой надуманный пример
в обшем тут создается замыкание(closure),и все работает нормально, но, если попытаться изменить переменную local внутри функции inner то произойдет ошибка: UnboundLocalError: local variable 'local' referenced before assignment. что-бы это обойти нужно извращаться, например так:
а в python3k этой проблемы уже нет, благодаря новой конструкции языка - nonlocal:
Это сообщение отредактировал(а) Lazin - 22.12.2008, 09:33 |
||||||
|
|||||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Так я это и написал, что иногда в Питоне удобство программирования приносится в жертву скорости выполнения, т.е. скорость выполнения выигрывает за счёт частичной потери удобства(хотя удобство - вещь субъективная). А ты почему то понял эту мысль с точностью до наоборот... P.S. Вот кстати пример на Ruby, тоже в одну строчку
Это сообщение отредактировал(а) source777 - 22.12.2008, 14:54 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
source777, перечитал: действительно, заклинило
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
От перемены мест слагаемых... Ну, думаю, ты понял. -------------------- |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
так совсем неинтересно, неужели никто не знает, что хорошего в этом вашем руби?
|
|||
|
||||
| Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
||||
|
||||
| doomik |
|
|||
![]() Одинокий волк ![]() ![]() Профиль Группа: Участник Сообщений: 360 Регистрация: 25.10.2005 Где: #vingrad Репутация: нет Всего: 15 |
В Ruby нет нужды в табах.
Gem'ы которые можно устанавливать с помощи cmd\terminal. -------------------- "Единственный способ изучать новый язык программирования - писать на нем программы." - Brian Kernighan Remember, st1ng3r /server irc.ircline.ru /j #vingrad |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
||||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
![]() На всякий случай, ибо в соседнюю тему ее уже прилепил. |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
-------------------- |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
10-50% прирост производительности, в большинстве тестов, а теперь смотрим еще раз на график
вообще, дело даже не в производительности а в фичах, python делает руби по фичам |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
nerezus, а что мне до твоего Psyco, ты вот сюда посмотри:
![]() Это сообщение отредактировал(а) kemiisto - 26.12.2008, 12:45 -------------------- |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
ну и? все равно быстрее, да и производительность здесь не самое главное
|
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Да не заметишь ты такого "быстрее". А что да то без списка фич -------------------- |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
ну как скажешь... вот то чего точно нет в руби
|
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Lazin, ну знаешь, разбираться в тёмных уголках Python совсем не охота. Может примерчики приведёшь?
А вообще, у меня складывается впечатление, что:
Не помню, где встретил, но, как говорится, ППКС. Это сообщение отредактировал(а) kemiisto - 26.12.2008, 13:58 -------------------- |
|||
|
||||
| Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
пример простого генератора, ф-я even_numbers возвращает по очереди, при каждом вызове все четные числа, то есть она помнит свое предыдущее состояние.
тут переменные tickets, play, prize - генераторы, созданные с помощью генераторных выражений. Главный прикол генераторов в том, что они ленивы, то-есть не вычисляют всю последовательность сразу, поэтому они позволяют работать с бесконечными последовательностями для данного примера это означает, что тогда, когда будет напечатан первый результат, будет создан только один лотерейный билет, а не все 12 про остальное напишу потом Это сообщение отредактировал(а) Lazin - 26.12.2008, 16:43 |
||||
|
|||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Lazin, так ну с генераторами разобрался - есть!
Сейчпс посмотрим, что там за генераторные выражения... -------------------- |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
декораторы:
в общем это самый простой декоратор, он представляет из себя обычное замыкание, ф-я которую он возвращает обязана получать ф-ю в качестве параметра, вызывать ее и возвращать то что она вернула, так, как будто нет никакого декоратора, но может делать что нибудь полезное до и после вызова Добавлено через 1 минуту и 29 секунд зы сдесь logger это декоратор, some_func - декорируемая ф-я |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
сопрограммы:
в общем это генератор наоборот, ф-я print_value на самом деле не ф-я а сопрограмма, единственно но, нужно сначала вызвать ф-ю next генератора, а потом уже туда что-то отправлять, но это можно обойти использовав декоратор |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
-------------------- |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
ага, с помощью патча для интерпретатора
|
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Синтаксический сахар рулит? Давно ли? Добавлено через 6 минут и 2 секунды И это тоже есть. Признаться мне очень трудно оценить практическую полезность всех этих "фич". В конечном счёте - всё это синтаксический сахар. Да, Python, наверное, будет послаще... Но, разве в этом суть? В общем, вот правильная статья! Добавлено через 8 минут и 28 секунд И коменты там тоже ничего. -------------------- |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
Эх народ, как же меня умиляют подобные "беседы". Супер.
Кстати, как опытный холиварщик, могу сказать, что слив типа "а это синтаксичесий сахар" на самом деле означает "блин, а реально нет:(". Тем более из уст приверженца Руби |
|||
|
||||
| kemiisto |
|
||||||||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Daevaorn, ага, сразу видно, что ты "опытный" холиваршик. Не читая, сразу всё "разрулил". Извиняюсь за грубость, но речь шла о том, что декораторы в Python появились вот так:
Тут как раз и говорится, что это синтаксический сахар. И неоднакротно обсуждалось в списке рассылки: 1, 2, ... Для первого варианта в Ruby есть аналог, чтоб была поддержка Python-like декораторов - нужно патчить интерпретатор. -------------------- |
||||||||||
|
|||||||||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
Ровным счетом не важно как они появились. При сопоставлении фич языка, ответ вида "синтаксический сахар" не зачетный. Т.к. сахар не сахар, это не важно - важно что эта фича есть. Кстати, сливы типа "а полезно/нужно ли" тоже в зачет не идут. У всех своя область применения. |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
если-бы не синтаксический сахар, писать нам всем на асме |
|||
|
||||
| kemiisto |
|
||||||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Дык и не было такого "слива". А про синтаксический сахар. Ещё раз: то, что в Python делают декораторы, доступно и без них. Причину введения в язык декораторов я уже приводил:
Ну, коли уж это не по-питоновски, так уберите первую возможность! А то:
Shoul be, should be, а как на деле, так
Добавлено через 1 минуту и 42 секунды Как любит говорить Akella, Troll Detected! -------------------- |
||||||||
|
|||||||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
Опять повторяю, что это не аргумент. Так можно дойти и до того, что операция умножения тоже синтаксический сахар...Нет, есть фича и её не отнять.
Да ладно там декораторы, в питоне ещё куча вкусностей и дескрипторы, и метаклассы и даже list comprehensions. Так что список набирается хороший. |
|||
|
||||
| kemiisto |
|
||||||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Вы утрируете. Операция умножения - одна из 4-х простоейших арифметических операций. Никак она не может быть синтаксическим сахаром. Я и не отнимаю, просто говорю, что такая же или аналогичная по функциональности "фича" найдётся и в Ruby. А если не найдётся, видимо, не нужна. В свете наличия других "фич".
Я не знаю, что это такое. Но либо это есть и в Ruby, либо в нём есть иные "фичи" для достижения аналогичных целей. А вот это как раз не аргумент, т.к. если "покопать" Ruby можно набрать аналогичный список. Просто сначала говорили скорость - оказалось, что уже не аргумент. Python 3 существенно медленнее предшественика, а вот Ruby 1.9 (2.0), напротив, должен существенно прибавить в скорости. Потом был аргумент:
Как оказалось всё это (или как минимум аналоги) в Ruby есть. А теперь, посмотрим с чего всё начиналось:
Так вот, если убрать слово мусор, то я, как говорится, ППКС. Т.е. я хочу сказать, что зная Ruby, знать Python не за чем. Обратное то же верно! Языки во многом схожи (перечислять не буду, лень, но думаю понятно). Нет смысла изучать 2 таких похожих языка. Одни и теже задачи на этих языках решаются примерно одинаково (с использованием аналогичных синтаксических конструкций). Если знаешь основы Ruby, значит ты не разочаровался в этом языке по мере его изучения, тебе он по душе, его и надо продолжать изучать. Это сообщение отредактировал(а) kemiisto - 27.12.2008, 18:54 -------------------- |
||||||||
|
|||||||||
| Daevaorn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 5 Всего: 70 |
Вам? А нам нужна. Странная позиция.
Так узнайте. И потом, что значит "либо в нём есть иные "фичи" для достижения аналогичных целей." - это же ведь все можно до такого абсурда свести. Поизучайте лучше питон - он явно у вас страдает.
Да еще какой! Только вы нам его еще не показали;-) Не все.
Так основы знают многие и те кто все-таки разочаровался и выбрал питон. Так что каждому свое. Не надо крайностей. |
||||||
|
|||||||
| nerezus |
|
||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Жжош. Сравнивай одинаковые версии(в данном случае - продакшн). А это python 2.5 + psyco и ruby(не 1.9 unstable которая).
Из моих сайтов, написанных для заказчиков, ддосили большую часть.
Т.е. C++ - как бы синтаксический сахар над C. Но заметь, как этот сахар помогает %) Да и вообще компилятор - это синтаксический сахар над бинарным кодом (с) кто-то отсюда Это сообщение отредактировал(а) nerezus - 28.12.2008, 12:51 |
||||||||
|
|||||||||
| kemiisto |
|
||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Я не знал, извиняюсь. Я думал это уже официально текущая версия.
Во-первых, топикстартер не делал акцент на веб. Во-вторых, есть не малое число не "хомпагов" powered by RoR. И ничего, работают. Тормоз! Я и не говорю, что не помогает... Это сообщение отредактировал(а) kemiisto - 28.12.2008, 19:28 -------------------- |
||||
|
|||||
| nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
|
||||||
|
|||||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
интересно, куда пропал топикстартер?
Добавлено через 18 секунд и какие выводы он сделал? |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
По паре синтетических тестов разве что, на деле максимум на 30%, да и то если звёзды сложатся наилучшим для Питона способом... -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
||||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
да, т. к умножение - это многократное сложение ассемблер тоже синтаксический сахар любой более высокий уровень является синтаксическим сахаром для более низкого -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
MAKCim, не любой. тот же питон - это далеко не сахар к паскалю, а нечто, совсем с ним не связанное.
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
и мешает Добавлено через 7 минут и 59 секунд
PVM на чем написана? можно ли ее на Pascal'е написать? можно -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Следовательно паскаль - сахар к питону. А компилятоор асма на пхп? Можно Выходит, что асм - сахар для пхп?) |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
nerezus,
неправильная логика для того, чтобы написать компилятор паскаля на питоне, нужно сначала написать интерпретатор питона на паскале -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Позиция «всё — синтаксический сахар к ассемблеру» заведомо неконструктивна, хотя и практически неопровержима за неимением сколько-нибудь строгого определения синтаксического сахара.
Абстрактные языки — сахар к машине Тьюринга или лямбда-исчислению, реальные системы — к машинному коду. А операция сложения, MAKCim, тоже «сахар» в аксиоматике Пеано. Засим предлагаю считать упоминания синтаксического сахара демагогией, пока автор не показал, как та же операция в общем виде реализуется в синтаксисе другого языка в сопоставимом объёме кода. «Читаемость» кода за аргумент не считается, как весьма субъективный критерий. Либо необходимо показать, как та же задача решается в другом языке какими-то существенно отличными средствами, но опять-таки в сопоставимом объёме кода. Это сообщение отредактировал(а) Void - 2.1.2009, 15:55 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Чтобы написать интерпретатор питона на паскале, нужно сначала написать компилятор паскаля на питоне. Тоже "верное" утверждение, как и твое. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
а я про что? это лишь подтверждает зависимость более высокого уровня от более низкого если уж перешли на формализм, давайте уточнять, что есть "сопоставимый объем кода" и почему это есть объективный критерий, в отличие от субъективного "читаемсть" nerezus, твоя предпосылка - _наличие_ и компилятора паскаля, и интерпретатора питона на практике же из пустого места ничего не вознивает есть причина - есть следствие -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Void |
|
||||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Может и про то же самое, но зачем вообще было начинать?
Мне тоже не нравится канцелярщина, но что ещё можно противопоставить, маханию флагом «всё сводится к маш. кодам» (или технологии N - 2 уровня по вкусу). Определение сопоставимого объёма кода: число лексем отличается не более чем в N раз. Я предлагаю N = 2,71828... Голосование по уточнению константы или введению второго члена устраивать будем?
Только не говори, что ты про раскрутку трансляторов не слышал. Это сообщение отредактировал(а) Void - 2.1.2009, 17:25 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||||
|
|||||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
ну уж точно не размер увеличение размера не всегда есть хуже поэтому нужно уточнить, что мы хотим получить в итоге: меньший объем кода, большую производительность, реализация определенной функциональности и т. д к сожалению, нет -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Раскрутка компилятора — это написание его на том же языке, что он компилирует. wiki: Bootstrapping (compilers)
Вот это уже конструктивно. А разборки, является умножение сахаром для сложения — нет. В практике программирования это неприменимо. Хотя, с другой стороны, это подсказывает нам правильный подход: как в математике мы задаёмся аксиоматикой, так в программировании мы должны определить базовый уровень, ниже которого решаем не спускаться — и определяем его именно исходя из практических требований. Это сообщение отредактировал(а) Void - 2.1.2009, 18:27 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
||||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
а компилировать в уме? наличие огромного числа библиотек учитываем? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
А в статью по ссылке заглянуть? Добавлено через 1 минуту и 29 секунд P.S. Исправил опечатку в ссылке, но по-моему и так понятно было, что должно быть. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
наличие огромного числа каких библиотек? с помощью ctypes я могу использовать любую динамическую библиотеку в Python программе. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
заглядывал я так или иначе все методы за исключением одного использует нечто уже созданное Lazin, я в том смысле, что фичи, которые являются частью одного языка, могут быть реализованы в виде библиотеки другими средствами в другом языке в обоих случаях мы получим равную производительность программиста и скорость разработки как пример, тонны кода в boost, реализующие многие концепции, которые являются фичами в других языках -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
А вследствии этого увеличилась производительность программиста. |
||||
|
|||||
| MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
засчет чего? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Легче написать прару строк, чем пару сотен(гротеск). |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
|
|||
|
||||
| Dobermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 992 Регистрация: 7.1.2008 Репутация: нет Всего: 0 |
Выходит, что питон получше будет?!
|
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Dobermann, ну субъективно — гораздо лучше.
|
|||
|
||||
| Dobermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 992 Регистрация: 7.1.2008 Репутация: нет Всего: 0 |
А у python tcnm что-нибудь общего с прологом?
|
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 11 Всего: 173 |
Dobermann
Первая буква в названии, разве что. Мало какой язык можно заподозрить в родстве с Прологом, уж больно специфический подход. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Dobermann |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 992 Регистрация: 7.1.2008 Репутация: нет Всего: 0 |
Pythologic - Prolog syntax in Python
|
|||
|
||||
| plat1num |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 14.12.2008 Репутация: нет Всего: нет |
а как насчёт РоР и Джанго?
Не читал всей темы, но может и не было такого... в общем мне кто-то говорил или я где-то читал(будет очень смешно, если здесь и читал), что РоР больше заточен под веб, хотя и Джанго тоже далеко не лузер. Разъясните новичку, пожалуйста! ну или у кого какие мнения! спасибо! п.с. если повторяю вопрос, то пните, я не обижусь |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
и RoR и Django заточены под веб и только под него
К.О. Добавлено через 3 минуты основное отличие Django от RoR в том, что он написан на няшном python-e поэтому рулит еще в RoR тебе придется создать самому схему БД, потом RoR создаст для тебя классы моделей(АФАИК!), а в django все наоборот, ты описываешь модели и связи между ними и django создает для тебя схему бд, что ИМХО прваильнее |
|||
|
||||
| plat1num |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 0 Регистрация: 14.12.2008 Репутация: нет Всего: нет |
||||
|
||||
| unumi |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 17.10.2007 Репутация: нет Всего: нет |
||||
|
||||
![]()
|
| Правила ведения Религиозных войн | |
|
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Религиозные войны | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |