LINUX.ORG.RU
Ответ на: комментарий от anonymous

>Дык форумы ведь не для удобства пользователей создаются, а для удобства хакеров [...]

Может, подарить хакерам книжку про юзабилити-тестирование своими силами, или, на худой конец, просто знаниями поделиться?..

dsx
()
Ответ на: комментарий от vladare

1. Ruby проигрывает питону по всем тестам скорости исполнения
http://www.iolanguage.com/comparisons/Performance.html

2. Общая производительность Ruby немного хуже Python'а.
http://shootout.alioth.debian.org/great/benchmark.php?test=all&lang=all&a...

3. Perl, Python, Ruby, Lisp:

print join(' ',map {uc} @ARGV) . "\n";
print ' '.join(map(string.upper,sys.argv[1:]))
puts ARGV.map{|arg| arg.upcase}.join(' ')
(princ (join " " (mapcar #'string-upcase args)))

4. В целом же, питон и Ruby очень похожи, но например фраза на питоне типа:
for r in contactRecords: print "t".join(r)

в Ruby выглядит отвратительно:
contactRecords.each {|r| print r.join("t"), "n" }

5.Сравните чтение записей из файла:
Python:
for line in fileinput.input():
___record = [field.replace('"', '') for field in line.split("t")]
___records.append(record)

Ruby:
while gets
record = $_.split('t').collect! {|field| field.gsub('"', '') }
records << record
end

Вывод - языки похожи, да только в руби синтаксис противный...

vm ★★
()
Ответ на: комментарий от vm

Неа! Вывод: языки похожи, да только в питоне синтаксис противный...

Jedem das Seine.

anonymous
()
Ответ на: комментарий от vm

2 vw:
это ты кричал, что у тебя код на перле занимает в 4 раза больше, чем на питоне.

как попросили пример предоставить, так сдулся.

anonymous
()
Ответ на: комментарий от anonymous

Re:

Ага. А следом перечислить все те ужасы ада, которым подвергнется программист, который использует подобные трюки в работе :-)

AlexM ★★★★★
()
Ответ на: комментарий от anonymous

Re:

> Когда я последний раз смотрел на питон, там такого тоже не было.

...вероятно, это было очень давно

В современном питоне есть "строчки" (экземпляры класса str, хотя чаще их пишут просто как "something") и "юникодные строчки" (экземпляры класса unicode, константы могут создаваться как u"smth") и поддерживаемые объектами этих классов различные преобразования "друг в друга" (.encode/.decode) при помощи внешних кодеков (из модуля encodings). Для вывода в "байт-ориентированные" среды (н-р, в файл) "юникодные" строки могут на лету преобразовываться в "обычные", используя "кодировку по умолчанию" (sys.getdefaultencoding() / sys.setappdefaultencoding())

AlexM ★★★★★
()
Ответ на: Re: от anonymous

Re:

на питоне очень быстро пишутся сложные научные приложения
очень простой и красивый синтаксис.
руби же велосипед.

vm ★★
()
Ответ на: Re: от anonymous

Re:

Не, ну, предложили идиотскую пузомерку, какова задача, таково и решение, не так-ли? :-).

Впрочем, Твистедовский веб-сервис имеет вполне реальное применение. Например, когда надо _быстро_ клепать http-based _приложения_ , не имеющие отношения к собственно "www". Например, сервера для каких-нибудь j2me-шных приблуд с весьма приличными характеристиками для тамошних специфичных условий существования: как правило, HTTP-1.0, во всяком случае мне не удалось добиться от местных мобильных операторов настройки гейтов соответствующим образом, хотя, говорят, это возможно; короткие запросы-ответы, причем, от одного отдельно взятого индивида не чаще чем раз в две-три секунды, да и то, при хорошей погоде; но зато сравнительно большое количество индивидов итп. Аналогичный сервер, скажем, на яве, создает бОльшую загрузку на машинку, по крайней мере, без приличного тюнинга JVM (пробовалось на 1.4).

Но это все, в общем, лирика и "прелести нашего болота".

AlexM ★★★★★
()
Ответ на: комментарий от anonymous

Re:

> Логика приложения сложная, а Zope ограничивает возможности.

Оформляйте логику в продуктах, натурально. Там, можно сказать, полный беспредел можно устраивать :-)

AlexM ★★★★★
()
Ответ на: Re: от AlexM

Re:

интересно. вы этим в россии занимаетесь или где?

anonymous
()
Ответ на: Re: от AlexM

Re:

> Аналогичный сервер, скажем, на яве, создает бОльшую загрузку на машинку, по крайней мере, без приличного тюнинга JVM (пробовалось на 1.4).

в каком смысле он "аналогичный"? многотредовый или нет? -- как раз в этом может быть основная разница, а не в java vs. python

anonymous
()
Ответ на: Re: от anonymous

Re:

Ну, как... "Многотредовые-то" они оба "многотредовые", но только в среднем, "если не заморачиваться", то сервер на яве получается заметно более "многотредовым". Отсюда, собственно, и более высокая нагрузка... Конечно, ничего, кроме лени, не мешает и на яве соответствующий фрэймворк написать, но это ж время, опять-таки деньги, отданные на девелопмент, а не пропитые самостоятельно итп...

Плюс, у твистеда готовые реакторы есть, скажем, под kqueue... "Вот тебе и еще одно преимущество, слоненок..."

AlexM ★★★★★
()
Ответ на: Re: от anonymous

Re:

Территориально? :-) Да.

А так вообще голимый оффшор :-)

AlexM ★★★★★
()
Ответ на: Re: от AlexM

Re:

> "Многотредовые-то" они оба "многотредовые", но только в среднем

а как же http://twistedmatrix.com/documents/current/howto/async ?

> Конечно, ничего, кроме лени, не мешает и на яве соответствующий фрэймворк написать

смею предположить что можно найти и готовый

> "Вот тебе и еще одно преимущество, слоненок..."

"это не наша собака, это наркоманская"

anonymous
()
Ответ на: Re: от AlexM

Re:

короче twisted это такая фигня о которой надо знать что она существует, и в общих чертах -- для чего ее следует применять, но пока нет конкретного приложения глубже разбираться не имеет смысла. примерно то же можно сказать о zope.

anonymous
()
Ответ на: Re: от anonymous

Re:

может в целях пропаганды стоит форкнуть русскую версию zope под нормальным названием?

anonymous
()
Ответ на: комментарий от vm

2vm ** (*) (30.12.2004 17:45:00)

Сударь, а Вы - злы!

1. Это старые данные по v1.6. Ruby 1.8 существенно ускорился.

Мы делали миграцию с Python на Ruby навороченного парсера логов: отношение скорости Python/Ruby1.6 ~ 0.8; Python/Ruby1.8 ~ 1.2 .

2. Возможно, если можно судить по набору в 25 тестов, из которых для языка нет 10, а 3 не смогли быть исполнены. Я бы не стал делать в таких условиях выводы.

4. В Ruby можно и так написать:

for r in contactRecords do puts r.join("\t") end

И вообще, несмотря на строгость парадигмы, синтаксис Ruby очень гибок: Хочешь - пишешь как на Perl или Python, хочешь - пишешь как на CLU или еще как.

5. То же, но немного веселее (хотя я и не понял смысла кода!):

open('inputfile'){|rec| recs<<rec.split("\t").map{|f| f.delete '"'}}

> Вывод - языки похожи, да только в руби синтаксис противный...

Вопрос пристрастий, но Python жестко ограничивает стиль, а Ruby нет. Кроме того могу привести обратные примеры, когда через код Python без пива "не продраться".

И, наконец, у Ruby "есть вкусностей", которых нет у других скриптовых языков.

В конце концов, Вам выбирать на чем работать, и никто Вас заставить не сможет, если сами не захотите.

dmitriku
()
Ответ на: Re: от anonymous

Re:

> а как же http://twistedmatrix.com/documents/current/howto/async ?

Еще актуально?

В Twisted'е ничего не мешает, если надо, сделать deferToThread (в thread pool), и, натурально, twisted.enterprise.adbapi этим активно пользуется, но, в общем случае, никто не принуждает, более того, весь фрэймворк построен с убеждением, что event-driven программирование можно делать без особого напряжения и в "малопоточной" модели.

> > Конечно, ничего, кроме лени, не мешает и на яве соответствующий фрэймворк написать

> смею предположить что можно найти и готовый

Вероятно. Более того, вероятно, стоит глядеть на обвязки NIO, почти все необходимое там есть... Но, в общем, лень :-)

AlexM ★★★★★
()

А это чтобы кое-какая тема в Top10 не вышла.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.