Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что лучше осваивать. (Python or Ruby) 
:(
    Опции темы
GrayCardinal
Дата 21.12.2008, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: нет
Всего: 58



[ИМХО]
Мы тут с powerfox'ом решили захоливарить..Суть сабжа. Я утверждаю, что зная основы Ruby, не стоит отвлекаться на такой мусор, как Python. powerfox настаивает на том, что надо знать и Python в том числе...

Были взяты два примера.
(ruby)
Код

5.times { puts "hello" }


и (python)
Код

p "hello" * 5


Одинаковый по действию код. НО. По-моему умножать строку на число не совсем логично...
[/ИМХО]

Далее... Вооружившись книгами по python и ruby... В том же духе, под эгидой "где логика ?!"...

Добавлено @ 16:19
(из книжки !)
Код

import string
text = "Text, Text, Text"
text1 = string.replace(text, ",", " zpt ")

Что мы видим ? Нормально. Заменяем в тексте запятую на "zpt", Однако, если глянуть немного "с боку". Что мы видим. Подгружается МОДУЛЬ строка (типа строки не всегда используем). Задается текст (ОК). Далее. Из модуля (!) string вызывается метод replace. Почему не text.replace ?

Добавлено @ 16:22
Про словари.
Код

del dict["zero"]

Думаю всем понятно как ЭТО должно выглядеть в реальной жизни smile


Это сообщение отредактировал(а) GrayCardinal - 21.12.2008, 16:27


--------------------
PM MAIL WWW   Вверх
GrayCardinal
Дата 21.12.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: нет
Всего: 58



Так, "навскидку", пока всё  smile 
Короче Python  smile 


--------------------
PM MAIL WWW   Вверх
powerfox
Дата 21.12.2008, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 97



Цитата(GrayCardinal @  21.12.2008,  17:10 Найти цитируемый пост)
что надо знать и Python в том числе...

Не только Питон, но и другие языки. Правда, пока ни тем, ни тем особо похвастаться не могу.
Цитата(GrayCardinal @  21.12.2008,  17:10 Найти цитируемый пост)
p "hello" * 5

p -> print.
Цитата(GrayCardinal @  21.12.2008,  17:10 Найти цитируемый пост)
del dict["zero"]

В питоне 1 в 1.

Цитата(GrayCardinal @  21.12.2008,  17:10 Найти цитируемый пост)
import string
text = "Text, Text, Text"
text1 = string.replace(text, ",", " zpt ")

Не поверишь, но тоже 1 в 1 smile
В общем, такое можно написать и на С++.


Это сообщение отредактировал(а) powerfox - 21.12.2008, 16:43


--------------------
user posted image
PM WWW   Вверх
source777
Дата 21.12.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: нет
Всего: 56



Цитата
и (python)
Код

p "hello" * 5

Этот же код прекрасно работает и в Руби, а по поводу логичности, так это от контекста зависит.

Цитата
В питоне 1 в 1.
...
Не поверишь, но тоже 1 в 1 

Оригинальные камменты для кода на Питоне smile

P.S. Языков надо знать как можно больше, хотя бы основы, это очевидно для любого программиста, т.к. ни один из существующих на звание silver bullet не тянет, соответственно если не хочешь ограничивать круг подвластных задач жёсткими рамками одного языка, то надо выбирать язык под каждую конкретную задачу. 
Насколько я знаю, особенность Питона в том, что там практически любая задача решается единственно возможным способом, что зачастую проявляет ограничения его интерпретатора, который в некотором смысле приносит удобство в жертву скорости выполнения, а в Ruby наоборот, практически на любую задачу найдётся с десяток разных способов, выбирай какой больше нравится... 


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Void
Дата 21.12.2008, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(source777 @  21.12.2008,  19:08 Найти цитируемый пост)
особенность Питона в том, что там практически любая задача решается единственно возможным способом, что зачастую проявляет ограничения его интерпретатора, который в некотором смысле приносит удобство в жертву скорости выполнения

Что-о-о? Нет, насчёт «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
PM MAIL WWW GTalk   Вверх
powerfox
Дата 21.12.2008, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 97



Цитата(source777 @  21.12.2008,  18:08 Найти цитируемый пост)
Оригинальные камменты для кода на Питоне smile

Ой smile 


--------------------
user posted image
PM WWW   Вверх
Lazin
Дата 21.12.2008, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Цитата(GrayCardinal @  21.12.2008,  16:10 Найти цитируемый пост)
p "hello" * 5

можно по другому:
Код

for i in range(5): print ("hello")


Цитата(GrayCardinal @  21.12.2008,  16:10 Найти цитируемый пост)
import string
text = "Text, Text, Text"
text1 = string.replace(text, ",", " zpt ")

Код

d = "Text, text, text"
d.replace(",", "zpt")

то-же на руби:
Код

d = "Text, text, text"
d.gsub(",", "...")


PM MAIL Skype GTalk   Вверх
kemiisto
  Дата 21.12.2008, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Ну, по поводу умножения строки на число, уже опередили. В Ruby тоже так можно. В этом весь Ruby! There is more than one way to do it! (лозунг для такого подхода, походу, дёрнут у Perl smile).

Цитата(Void @  21.12.2008,  16:22 Найти цитируемый пост)
«There should be one—and preferably only one—obvious way to do it.» © Python Zen

Весь это Zen - словоблудство! И не более.

Цитата(Void @  21.12.2008,  16:22 Найти цитируемый пост)
только YARV недавно позволил Руби как-то тягаться с питоновским интерпретатором байт-кода

Python 2.6 vs Ruby 1.8.7. Превосходство (в среднем) - 3-5 раз. Т.е. производительность даже до YARV была одного порядка.

Цитата(Void @  21.12.2008,  16:22 Найти цитируемый пост)
Руби действительно во многом интереснее как язык

 smile 

Цитата(Void @  21.12.2008,  16:22 Найти цитируемый пост)
И персональных вкусах, конечно же.

Вот это да. Мне вот например C-like синтаксис не по душе, так я когда Python увидел, чуть не smile Вот. smile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Lazin
Дата 21.12.2008, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



kemiisto, я слышал ты на Delphi программируешь...  smile
единственное, что сильно не нравится в python, так __вот__ __такие__ __методы___ __и __такие __private __аттрибуты smile 
PM MAIL Skype GTalk   Вверх
Void
Дата 21.12.2008, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(kemiisto @  21.12.2008,  21:36 Найти цитируемый пост)
Python 2.6 vs Ruby 1.8.7. Превосходство (в среднем) - 3-5 раз. Т.е. производительность даже до YARV была одного порядка.

Сишники в своё время грызли дотнетчиков за 20 процентов, а ты тут разами кидаешься! Не для холивара стратегия smile


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Lazin
Дата 21.12.2008, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



примеры какие-то игрушечные, нужен реальный пример smile 
например такой: есть список целых чисел [1, 2, 5, 3, 7... нужно создать список по следующему правилу, если очередной элемент равен N, то мы добавляем N элементов со значением N, практической пользы в этом нет, но по крайней мере можно увидеть больше возможностей ЯП smile

Добавлено через 1 минуту и 40 секунд
Код

[1, 2, 5, 3, 7] => [1, 2, 2, 5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7]
вот так smile

Добавлено через 4 минуты и 6 секунд
вариант на срр

Код

std::vector<int> input, output;
...
for (int i = 0; i < input.size(); ++i)
    for (int j = 0; j < input[i]; ++j) 
        output.push_back(input[i]);

PM MAIL Skype GTalk   Вверх
kemiisto
Дата 21.12.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(Lazin @  21.12.2008,  17:47 Найти цитируемый пост)
kemiisto, я слышал ты на Delphi программируешь... smile 

Точнее - программировал. Delphi - уже в прошлом. smile 

Цитата(Void @  21.12.2008,  17:53 Найти цитируемый пост)
Сишники в своё время грызли дотнетчиков за 20 процентов, а ты тут разами кидаешься!

Сишники вечно всех не по делу грызут! smile 

Цитата(Lazin @  21.12.2008,  18:04 Найти цитируемый пост)
примеры какие-то игрушечные, нужен реальный пример

Меряться будем? smile О! А что будем замерять, скорость? Или холиварить по синтаксису?


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Lazin
Дата 21.12.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



ну по скорости мой пример будет сложно побить smile

Добавлено через 21 секунду
по скорости написания, читаемости итп
PM MAIL Skype GTalk   Вверх
kemiisto
Дата 21.12.2008, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(Lazin @  21.12.2008,  18:04 Найти цитируемый пост)
то мы добавляем N элементов со значением N

Добавляем, вроде, N - 1 элементов? Один то уже есть. Так?


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Lazin
Дата 21.12.2008, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



да, в общем результат - новый список smile 
PM MAIL Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1369 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.