LINUX.ORG.RU

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

> А это на perl получиться сложнее:
> a.each_with_index{|n,i| puts i if [2..5].include?(n) } puts a.inject{|n,acc| acc+n}
Ты слышал про regexp'ы?
Если проблемная читаемость языка является его плюсом, то вперед разрабатывать крупномаштабные проэкты, а потом заниматься их поддержкой.
А скрипт на 1000 строк написать для своего удовольствия (есть где развернуться полету воображения) это да, но тогда не стоит на perl нависать, там тоже есть где развернуться.
> Я раньше сидел на Perl, но мне в нем не нравилось: 1. "ненормальная" модель объектов (неудобная и "неполноценная")
Есть именно объктно-ориентированные языки в которых эта модель как раз нормальная, перл не для того создавался. Проблемно-ориентированные языки рулят.

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

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

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

На Ruby я написал бы так, это более Ruby way

a.select{|element| 
	element > 3 
}.each{|element|
	puts element
}

Помните о select, reject и inject

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

правильное _английское_ произношение этого слова меня небёт нисколько, равно как и правильное японское.

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

За питон обидно, так что встряну.

Был проект на Zope. Для пробы. 10000 строк питона. Впечатления:

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

Можно логику приложения выразить в хитрой структуре данных Zope. Тогда она будет трудно обозрима. Я переехал на Quixote (2 месяца). Полный контроль и полная свобода (+grep sed make emacs latex).

Так что у нас теперь и Zope - сайт на ем и сайты отдельных подразделений (15 минут народ учим), и Quixote для сложных приложений.

На сервер пускаем Есть два варианта: перенести логику приложения

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

>Ну, обычный python CGI поддерживает практически любой UNIX хостер (хотя обычно это и не рекламируется), а вот с серверами приложений действительно засада.

Тут CherryPy поможет.

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

>> а если нужно более сложное, то: a.each{|n| puts n if n<6 }

>А в питоне такое делается ещё проще IMHO:

>for x in a: >. if x < 6: print x # точка в начале строки стоит для сохранения форматирования на LOR

В Ruby тоже можно написать:

for n in a do . print n if n<6; end

И, вообще, мне Ruby понравился тем, что позволяет писать как на Perl/Python.

Это очень помогло переходе на него: пока плохо знал Ruby - писал как на Perl (и работало!). Потом прочуствовал мощь итераторов и т.п. вкусностей и практически поменял стиль написания.

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

Может быть просто покажите примеры на ваших Zope и Ruby для 2-х страничного сайта:
1) Первая страница - феб форма с парой текстовых полей и сабмитом.
2) Вторая - запихнуть данные из формы в базу, с выборкой того что уже есть в таблице куда запихнули эти данные.

Я приведу пример Perl HTML::Mason

Любитель TT2 пусть свой пример покажет.

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

> чем она конкретно лучше питона - конкретно ?
чем питон лучше руби? конкретно!

> а перл совсем ужас - сейчас проект один на перле - ужасно отладка идёт - месяц назад начинал писать - сейчас уже файлов много и чёрт ногу сломит

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


> на питоне аналог занимает раза в 4 меньше кода !
пример в студию!

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

>>мхо, в обязательном порядке. это же японская разработка.

>я спрашиваю не про мхо, а про юникод ( хотя знаю что нет там юникода).

ты такой умный! тебе череп не жмет?
иди да в сырцах покопайся и будет просветление.

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

А чё устроим состязание?

Задача: простенький веб демон, не апач канешно :)

Сокет на порту 8080 доки отдает из /var/www

Получив сигнал INT или TERM - должен тихо склеить ласты.

Код на ruby < 6 строк



Sun-ch
()
Ответ на: комментарий от Sun-ch

Лично я умываю руки. Раздел межпроцессного и сетевого взаимодействия не читал. Пока не нужно.
Ктото докажет Санычу что у него короче?

И потом, Саныч, ренегат вы хренов. Вы всегда здесь отстаивали чистое и светлое, то биш Perl. Что за перебежки? Получите пулю в спину... А оружием будет мало что умеющий Руби.

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

Держи пока на Perl

use HTTP::Daemon;
my $d = new HTTP::Daemon( LocalAddr => 'www.someplace.com', LocalPort => 80);
while (my $c = $d->accept) {
      $c->send_file_response( '/var/www/' . $c->get_request->url->path );
      $c = undef;
}

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

use HTTP::Daemon;
my $d = new HTTP::Daemon( LocalAddr => 'www.someplace.com', LocalPort => 80);
while (my $c = $d->accept) { $c->send_file_response( '/var/www/' . $c->get_request->url->path ); $c = undef; }

пж-та. тоже 3 строки!

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

> Sun-ch, откуда контент берёшь?

ага! больше похоже на запуск готового настроенного приложения.

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

Sun-ch, погоди сигналить, что клиенту выдаешь?

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

в общем одинаково получилось.
а как на руби будет выглядеть скрипт, когда придется обрабатывать методы GET и POST?
это не для сравнения языков. просто интересно, как будет выглядеть программа.

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

> А клиент будет ждать у моря погоды?
> Нужно выполнить server.shutdown и чё-то квакнуть вразумительное клиенту

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

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

Нужно создать класс на основе HTTPServlet::AbstractServlet

И каждый метод do_* в нем вызывается на основе типа запроса

do_GET, do_POST, do_OPTIONS, do_HEAD

Sun-ch
()
Ответ на: комментарий от SKYRiDER

>> Ruby имеет синтаксическую вариативность. Модификаторы выражений (if, unless, while, until и другие) могут следовать после любого выражения.

... что превращает программу в нечитаему кашу типа spaghetty на Perl

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

>Учитывая космическую юзабилити LOR, следить за ответами в тредах и, тем более, возвращаться к старым настолько неудобно, что удивительно, как вообще здесь можно хоть что-то найти.

Дык форумы ведь не для удобства пользователей создаются, а для удобства хакеров. Хакерам легко писать кривой движок форума, хакерам легко искать утонувшие ветки с помощью mnogosearch.

А если тут станет *удобно* общаться, набегут ведь ламаки которые хотят себе линукс установить и тролли с www.winfaq.ru и фсе испортят

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

import os, sys, SimpleHTTPServer, signal as s
s.signal(s.SIGINT,lambda a,b: sys.exit(0))
os.chdir('/var/www/htdocs') or SimpleHTTPServer.test()

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

> ... что превращает программу в нечитаему кашу типа spaghetty на Perl

Ты уж определись - в кашу или в спагетти.

А нечитаемость паскакальщиками - это скорее достоинство.

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

Если у тебя в школе трояк был по информатике это еще не причина считать всех кто смог выучить паскаль на пять личными врагами.

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

Хоть я в школе не паскаль, а basic на 5 учил,
но все равно поддерживаю

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

Sun-ch, есть ли у ruby репозитарий, типа CPAN ?

P.S. Хочу небольшой проектик замутить. Думал на perl, а тут пришла мысль присмотреться заодно к ruby. Интересуют возможности рабты с текстом, http и БД (Oracle, PostgreSQL). Не подскажешь?

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

лучше всё же питон для этих целей
его для того и развивают, что это самый красивый из всех язык и экономит нажатия на клавиши :)

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

В догонку - RubyGems, a package management framework for the Ruby programming language

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

> 1) работает 2) не через zope 3) не нужно мучаться отступами (пока окружающие работают)

Ну, то есть, в реальной жизни плюсов никаких. Так и запишем.

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

Для меня существует только один цитрус - Апельсин. И не надо мне говорить, что есть еще какие то мандарины и грейпфруты. Я их не пробовал и даже не собираюсь. А зачем их пробовать, если они все круглые !!!!!? Если японцы берутся за дело, они как правило, доводят его до конца. Если Руби в последнее время не обходят стороной многие солидные интернет газеты, журналы и сайты, значит он тоже этого заслужил. Мне всегда нравилась здоровая критика языков программирования. Когда же все сводится к тому, что человек знает только один цитрус а другой фрукт не хочет даже попробовать - я могу сделать один вывод - либо человек фанатик либо &#8230; глуп

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

>> a.each_with_index{|n,i| puts i if [2..5].include?(n) } puts >> a.inject{|n,acc| acc+n}

Ты-таки думаешь что эта синтаксическая гадость - понимаема? Воистину, ООП - это объектно-озабоченный программист.

new Document=Разлив.шалаш.Ленин.авторучка.письмо("Послание к пролетариату")..

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