1.1, Celcion (ok), 12:59, 06/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +8 +/– |
И правильно. Зачем добавлять новый функционал и исправлять старые ошибки, когда можно сделать наоборот?
| |
|
2.17, F (?), 13:23, 06/06/2013 [^] [^^] [^^^] [ответить]
| +7 +/– |
> добавлять новый функционал
добавлять новую функциональность
| |
2.180, Гриша (?), 14:40, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Затем, чтобы через годик триумфально вернтуться на старое, хорошо продуманное и не тормозящее.
| |
|
1.3, UraniumSun (?), 13:02, 06/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
Хорошее решение, но жаль, что не на С/С++. Вообще, эти ребята почти всегда радуют своей работой, удачи проекту.
| |
|
2.11, Аноним (-), 13:11, 06/06/2013 [^] [^^] [^^^] [ответить]
| +9 +/– |
> Хорошее решение, но жаль, что не на С/С++. Вообще, эти ребята почти
> всегда радуют своей работой, удачи проекту.
Зачем на C++? Чтобы отладкой заниматься в 3 раза дольше разработки?
Аргументы, что быстрее, здесь ни к чему. Yast - не то средство, где лишнюю миллисекунду нельзя подождать. Да и возможности Ruby в части обработки строк ну никак не сравнятся с C++/STL.
| |
|
3.35, Аноним (-), 13:52, 06/06/2013 [^] [^^] [^^^] [ответить]
| +5 +/– |
> Да и возможности Ruby в части обработки строк ну никак не сравнятся с C++/STL.
Это кто с кем не сравнится?
| |
|
4.41, Аноним (-), 14:08, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> Да и возможности Ruby в части обработки строк ну никак не сравнятся с C++/STL.
> Это кто с кем не сравнится?
Ниже в осуждении пример обработки строки. Напишите аналог на C++/STL.....
| |
|
5.127, Аноним (-), 17:20, 06/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не так лаконично, но реализуемо. С++/Qt:
QSet <QString> ch = QString("aeiouy").split("", QString::SkipEmptyParts).toSet();
QStringList strList = QString( "fuckthemall aeouy yeah" ).split( QChar(' ') );
foreach (QString str, strList) ch.intersect( str.split("").toSet() );
qDebug()<< ch;
Кстати, в Qt-creator это выглядит более приятно и понятно чем на этой страничке.
| |
|
6.154, Мяут (ok), 01:56, 07/06/2013 [^] [^^] [^^^] [ответить]
| +10 +/– |
Спасибо тебе, Анон, теперь я научился понимать кукушек в лесу!
| |
|
7.183, Аноним (-), 17:28, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Обращайся )))
Если серьезно, то задачу можно решить более наглядно, но количество строк будет больше.
| |
7.188, Аноним (-), 20:22, 07/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Задачу решает третья строка:
foreach (QString str, strList) ch.intersect( str.split("").toSet() );
а строки выше - это подготовка данных.
Разве сложно?
| |
|
|
|
|
3.53, Аноним (-), 15:06, 06/06/2013 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Зачем на C++? Чтобы отладкой заниматься в 3 раза дольше разработки?
После этого оно по крайней мере работать будет. А у всяких рубистов и подобных - накорябают глюкало в 3 раза быстрее. На отладку положат болт. ВЫвалят юзерью полурабочий скелетон, который "типа, работает". После чего оказывается что там багов немеряно. И вот тогда скрипткидисы занимаются отладкой в три раза дольше любых си++'ников.
| |
|
|
1.4, Толстый (ok), 13:02, 06/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –10 +/– |
"наличие средств для быстрой разработки программных продуктов." - что за такие средства позволяющие *быстрее* разрабатывать? Тянет на мировую сенсацию, любая компания с с радостью внедрит чтобы сократить время разработки продуктов.
| |
|
2.26, anonymous (??), 13:39, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> "наличие средств для быстрой разработки программных продуктов." - что за такие средства
> позволяющие *быстрее* разрабатывать? Тянет на мировую сенсацию, любая компания с с
> радостью внедрит чтобы сократить время разработки продуктов.
man RAD
| |
2.50, Аноним (-), 14:53, 06/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> "наличие средств для быстрой разработки программных продуктов." - что за такие средства позволяющие *быстрее* разрабатывать? Тянет на мировую сенсацию, любая компания с с радостью внедрит чтобы сократить время разработки продуктов.
Ну так с радостью и внедряют.
Просто это тянет не на мировую сенсацию, а на гораздо более прозаичный вывод - вы отстали от жизни на несколько лет, но при этом пытаетесь свое лично понимание ситуации приписывать абсолютно всем, и если что-то является сенсацией лично для вас, вам кажется, что так должно быть абсолютно для всех.
| |
|
3.55, Аноним (-), 15:09, 06/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ага, внедряют - быстренько вывалить полурабочий прототип. Отладка? Тестирование? Не, не слышали. Клиенты потестируют. За что-то такое у рапидчиков постоянно очень хорошая репутация. Эталонный пример - дельфисты. А какая репутация может быть, если терминал оплаты нисколько не сомневаясь сожрал купюры а дальше - связи нет, поэтому о данном факте никто не узнает. Обратно купюры оно тоже выдавать не умеет. Но дельфистам пофиг - они работают как если бы сеть была. Навернется оно там дальше или нет - да пофиг. Это у лоха же деньги подвисли. Он как-нибудь пнет саппорт. Это, кстати, реальный пример как такой софт пишется. Стоит в терминалах одной фирмы, не будем показывать на нее пальцем. Наслаждайтесь рапидной разработкой, чо.
| |
|
|
5.73, Аноним (-), 15:41, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Не угадал - я всего лишь специалист по качеству софта :). Я думаю теперь ты понимаешь за что я так ненавижу скрипткидисов. Но да, твои подeлки я бы с удовольствием рекомендовал. Моим врагам, например. Жаль что ты не озвучил ни 1 наименования :(.
| |
|
6.74, бедный буратино (ok), 15:44, 06/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Не угадал - я всего лишь специалист по качеству софта :). Я
> думаю теперь ты понимаешь за что я так ненавижу скрипткидисов. Но
> да, твои подeлки я бы с удовольствием рекомендовал. Моим врагам, например.
> Жаль что ты не озвучил ни 1 наименования :(.
наименования чего?
| |
|
7.75, Аноним (-), 15:45, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> наименования чего?
Софта который ты написал. Подозреваю что такого может и вообще не оказаться. Ты же у нас философ.
| |
|
6.208, _yurkis__ (?), 12:48, 13/08/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Не угадал - я всего лишь специалист по качеству софта :). Я
> думаю теперь ты понимаешь за что я так ненавижу скрипткидисов. Но
> да, твои подeлки я бы с удовольствием рекомендовал. Моим врагам, например.
> Жаль что ты не озвучил ни 1 наименования :(.
Тогда Вы должны знать что в RAD давно существуют:
1. Удобные средства интеграции со статическими анализаторами
2. Удобные средства интеграции с тем же vargrind или llvm
3. Автоматические средства верификации кода, например по MISRA
4. Я молчу про профилировку
5. Я молчу про упрощение и уменьшение автоматических ошибок при рефакторе
Для того чтобы делать громкие заявления нужно все же чуть более разобраться в предмете. Или "специалист по качеству софта" подразумевает всего лишь ручное тестирование?
| |
|
7.209, arisu (ok), 12:58, 13/08/2013 [^] [^^] [^^^] [ответить]
| +/– |
самого главного в RAD не хватает: надёжного и качественного заменителя мозга.
| |
|
|
9.213, arisu (ok), 20:41, 13/08/2013 [^] [^^] [^^^] [ответить] | +/– | не так RAD 8212 это такой хитрый иструмент молоток, пила, отвёртка, подзорн... большой текст свёрнут, показать | |
|
|
|
|
|
4.206, _yurkis__ (?), 12:41, 13/08/2013 [^] [^^] [^^^] [ответить]
| +/– |
Тараканы, они в голове. В кривых руках и калькулятор зависает.
Если лично Вам больше нравится не пользоваться автодополнением, дебажится командной строкой gdb и руками дописывать реализацию метода в файл .cpp- это СУГУБО ВАШЕ желание и СУГУБО ВАШЕ время. Но тогда будте готовы обьяснять почему при прочих равных Вы выполняете меньший обьем работы.
| |
|
5.207, arisu (ok), 12:47, 13/08/2013 [^] [^^] [^^^] [ответить]
| +/– |
по моим наблюдениям, меньший объём как раз у тех, кто обожает отладчик и среду, которая за него фигачит код. коммитов-то у них больше, а вот по итогу полезного выхлопа меньше.
| |
|
6.210, _yurkis__ (?), 13:50, 13/08/2013 [^] [^^] [^^^] [ответить]
| +/– |
> по моим наблюдениям, меньший объём как раз у тех, кто обожает отладчик
> и среду, которая за него фигачит код. коммитов-то у них больше,
> а вот по итогу полезного выхлопа меньше.
Еще раз повторюсь - тараканы, они в головах.
| |
|
7.212, arisu (ok), 20:32, 13/08/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Еще раз повторюсь — тараканы, они в головах.
натурально. и именно эти тараканы зачастую обуславливают необходимость в «крутом RAD» и «навороченом отладчике». потому что обезьяна в основном делает всякую рутину и boilerplate — и тут обезьяне RAD шибко помогает, вставляя то, что обезьяна сама скопипастить ленится. а когда обезьяна с умным видом в отладчик пырится — всем понятно: Работает!
к отладчику вообще надо подпускать только тогда, когда человек научился комфортно жить без него. хотя тогда ему отладчик нужен в основном для того, чтобы кородамп посмотреть, все остальные возможности побоку. и тут gdb хватает с головой безо всяких надстроек.
| |
|
|
|
|
|
|
|
2.13, Аноним (-), 13:14, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Руби, он же по отзывам таааакоооой мееееедленнный
Какой? Ядро на C написано. Компиляция в байткод присутствует.
Да и откуда в конфигураторе возьмутся громадные вычисления, которые могут привести хотя бы к тому, что пользователь сможет заметить задержку?
| |
|
3.56, Аноним (-), 15:13, 06/06/2013 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Какой? Ядро на C написано.
И что? Интерпретатор писаный на си не обязан быть быстрым. Потому что интерпретатор, бэть.
> Компиляция в байткод присутствует.
Сам по себе байткод не обязан принципиально ускорять что либо. Вот JIT - еще может быть. А какая разница, интерпретирует интерпретер байткод или человекочитаемые слова? Байткод конечно чуть быстрее, но одно дело если машинный код аппаратно интерпретируется процом, и другое - если какой-то левый байткод софтварно парсится. Разница в десятки раз - как нефиг делать.
> Да и откуда в конфигураторе возьмутся громадные вычисления, которые могут привести хотя
> бы к тому, что пользователь сможет заметить задержку?
Сильно от операции зависит. Напримиер, рюхание большой иерархии пакетов - может требовать приличных вычислений.
| |
|
|
3.25, Аноним (-), 13:38, 06/06/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
> "Спешка е*ёт гарячку"
Пользователи python-программ никуда не спешат. И не экономят на памяти и проце. И не парятся по поводу стабильности. Счастливые люди.
| |
|
4.52, Михаил (??), 15:01, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Как пользователю может быть не плевать на язык программирования, на котором написана программа, если он не участвует в ее разработке? Это что-то религиозное?
| |
|
5.57, Аноним (-), 15:15, 06/06/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Как пользователю может быть не плевать на язык программирования, на котором написана
> программа, если он не участвует в ее разработке? Это что-то религиозное?
А легко: если 99.9% программ на некоем ЯП это тормоза и глюкастики - поневоле начнешь обходить вообще весь софт на оном по данному критерию. Потому что с вероятностью 99.9% не прогадаешь и сэкономишь время на возне с очередной кривой поделкой. Ну а что поделать, поделий наколенных много развелось - приходится продвинутые методы отсева применять.
Так что можете считать что религиозное: я ненавижу плохой софт. А хорошего на питоне как-то и не бывает практически.
| |
|
|
7.196, Аноним (-), 21:21, 08/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Вагон и тележку, 95% пашет только на 2.7 не сообществ, а дэбилы. 3.3 давно есть но новые версии не собираються под него делать ибо все сидят на 2.7. Прогресс на лицо.
| |
|
|
5.84, Аноним (-), 16:05, 06/06/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Как пользователю может быть не плевать на язык программирования, на котором написана программа, если он не участвует в ее разработке?
Если выбор ЯП оказывает непосредственное воздействие на скорость и ресурсоемкость программы - пользователю далеко не наплевать.
| |
|
6.167, aikus (?), 08:03, 07/06/2013 [^] [^^] [^^^] [ответить] | –1 +/– | Я, тут понял, что не знаю на чём написаны большинство программ, которые я исполь... большой текст свёрнут, показать | |
|
7.171, arisu (ok), 09:54, 07/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Второе, выбор ruby был обусловлен,
> тем, что разработчиков на нём много (подозреваю, что больше чем на
> C), т.е. функциональность будет подниматься быстрее.
связь почти отсутствующая. 100500 быдлокодеров быстро набыдлокодят быдлобаги, а не фичи.
| |
|
|
|
|
|
2.51, Аноним (-), 14:56, 06/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Руби, он же по отзывам таааакоооой мееееедленнный
Вот именно что вы полагаетесь исключительно лишь на чьи-то отзывы, а у самого личного опыта никакого нет, чтобы делать выводы, достаточна ли скорость Руби для тех задач, в которыхз он применяется.
| |
|
|
2.14, Аноним (-), 13:15, 06/06/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> А почему не на python? Такой элегантный язык...
Ну хотя бы потому, что код будет в 2 раза длиннее, чем в Ruby.
| |
|
|
4.95, Аноним (-), 16:11, 06/06/2013 [^] [^^] [^^^] [ответить]
| +4 +/– |
> длинный питон - правильный питон !
Правильный питон должен быть толстым и зеленым.
| |
|
|
4.19, Аноним (-), 13:27, 06/06/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Это ещё почему?
> ps. http://hyperpolyglot.org/scripting
Пример: найти гласные буквы (латинские), которые встречаются во всех словах:
words = gets.split
p result = ['a', 'e', 'i', 'o', 'u', 'y'].find_all{ |c| words.all?{ |word| word.index c } }
Теперь напишите на питоне.....
Да и возможности питона для создания DSL тоже никуда не годятся, а на Ruby - это элементарно - http://jroller.com/rolsen/entry/building_a_dsl_in_ruby .
| |
|
5.24, бедный буратино (ok), 13:38, 06/06/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> words = gets.split
> p result = ['a', 'e', 'i', 'o', 'u', 'y'].find_all{ |c| words.all?{ |word|
> word.index c } }
Я вот в этом нечте даже сам алгоритм не могу понять, не то, что переписать. А opensource - это то, что нужно поддерживать, и что смотрят многие люди.
ps. А python - это лучший язык для непрограммистов и тех, у кого антипрограммистское мышление.
| |
|
6.27, Аноним (-), 13:39, 06/06/2013 [^] [^^] [^^^] [ответить]
| +7 +/– |
> ps. А python - это лучший язык для непрограммистов и тех, у
> кого антипрограммистское мышление.
Лучший язык для таких людей - естественный.
А к программированию их лучше не допускать.
| |
|
7.36, бедный буратино (ok), 13:52, 06/06/2013 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Лучший язык для таких людей - естественный.
> А к программированию их лучше не допускать.
Тогда бы у нас не было бы scipy и sage. Да и многих других вещей, которые созданы людьми, которые лучше разбираются в предмете, чем в программировании. Если разобраться, то у программистов кроме программирования и профессиональных навыков-то нет, и они в рамках своего мира пишут "программистами для программистов".
Но пользователям больше интересны решения, которые решают проблемы пользователей, а не проблемы программистов. :)
| |
|
8.63, Аноним (-), 15:27, 06/06/2013 [^] [^^] [^^^] [ответить] | –1 +/– | Это вообще что А так прав был местный Кэп, назвав питон гвидобэйсиком Целевую... текст свёрнут, показать | |
|
9.88, Аноним (-), 16:07, 06/06/2013 [^] [^^] [^^^] [ответить] | +1 +/– | Это модули питона для математических расчетов Буратина внушает нам, что математ... текст свёрнут, показать | |
|
8.159, arisu (ok), 07:28, 07/06/2013 [^] [^^] [^^^] [ответить] | +2 +/– | я надеюсь, что ты принципиально летаешь на самолётах, которые были разработаны и... текст свёрнут, показать | |
|
|
6.29, Аноним (-), 13:43, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Я вот в этом нечте даже сам алгоритм не могу понять, не
> то, что переписать. А opensource - это то, что нужно поддерживать,
> и что смотрят многие люди.
Это элементарно, если немного перестроить мозги под функциональный стиль. В Ruby делается акцент на то, что любая программа должна быть предельно понятна программисту, понимающему английский язык. Кроме того, надо помнить, что в Ruby всё есть объект (от отличии от питона, кстати). Далее всё станет понятно.
А вот питон - императивный язык с традиционным синтаксисом, присыпанный сахаром.
| |
|
7.70, анон (?), 15:35, 06/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
p result = ['a', 'e', 'i', 'o', 'u', 'y'].find_all{ |c| words.all?{ |word| word.index c } }
result =[ c for c in ('a', 'e', 'i', 'o', 'u', 'y') if all(c in word for word in words)]
Что больше на английский похоже?
| |
|
|
|
10.130, Аноним (-), 17:27, 06/06/2013 [^] [^^] [^^^] [ответить] | +2 +/– | Ну вот кусок кода на Perl 3 боян, но все же BEFOREHEAD close door, each wind... большой текст свёрнут, показать | |
|
|
8.205, AlexAT (ok), 13:04, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | PHP in fuckthemall aeouy yeah letters array a , e , i , j , o , u , y... текст свёрнут, показать | |
|
7.146, Я не забыл поле нейм (?), 19:24, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>Кроме того, надо помнить, что в Ruby всё есть объект
Операторы тоже?
>(от отличии от питона, кстати).
И что в питоне не объект?
>А вот питон - императивный язык
После этой фразы тебе нужно свой мозг аккуратно порезать ланцетом, все равно бездействует.
| |
|
8.160, arisu (ok), 07:32, 07/06/2013 [^] [^^] [^^^] [ответить] | +1 +/– | лучше тебе это императивное дерьмо с неудачным полурабочим закосом под функцион... текст свёрнут, показать | |
|
|
6.58, Аноним (-), 15:17, 06/06/2013 [^] [^^] [^^^] [ответить]
| +5 +/– |
> ps. А python - это лучший язык для непрограммистов и тех, у
> кого антипрограммистское мышление.
По нему и софту на нем - заметно. Вот только зачем непрограммистам писать программы? Ты бы стал жрать булочки, которые испек сталевар? :)
| |
|
7.60, бедный буратино (ok), 15:19, 06/06/2013 [^] [^^] [^^^] [ответить]
| –5 +/– |
>> ps. А python - это лучший язык для непрограммистов и тех, у
>> кого антипрограммистское мышление.
> По нему и софту на нем - заметно. Вот только зачем непрограммистам
> писать программы? Ты бы стал жрать булочки, которые испек сталевар? :)
Потому что у непрограммистов гораздо больше профильных навыков. Кто лучше печёт булочки - пекарь или программист?
| |
|
8.65, Аноним (-), 15:29, 06/06/2013 [^] [^^] [^^^] [ответить] | +1 +/– | Пекарь, ясен перец А булочки которые испек программист - ты как нибудь сам жри,... текст свёрнут, показать | |
|
|
10.82, Аноним (-), 15:59, 06/06/2013 [^] [^^] [^^^] [ответить] | +4 +/– | Не, не так Если мне нужна булочка и я не пекарь - я иду к пекарю и даю ему дене... большой текст свёрнут, показать | |
10.151, Vkni (ok), 20:06, 06/06/2013 [^] [^^] [^^^] [ответить] | +2 +/– | Знаете, люди научились объединяться в группы еще когда на мамонтов охотились По... текст свёрнут, показать | |
|
|
|
|
6.107, Kyrxks (?), 16:20, 06/06/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
Буратино, да ты видать вообще сам себя в Великие Программисты произвел? :)
| |
|
7.109, бедный буратино (ok), 16:22, 06/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Буратино, да ты видать вообще сам себя в Великие Программисты произвел? :)
Нет, я не программист, и не хочу им быть - это точно. :) Когда-нибудь, надеюсь, и python забуду. Потому что основная проблема не в коде, а в том, что источники проблемы не видят того, что они основная проблема. И эту проблему никаким кодом не решишь, хоть ты три тонны кода налепи. :)
| |
|
6.158, arisu (ok), 07:25, 07/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Я вот в этом нечте даже сам алгоритм не могу понять
а виноват, конечно, руби. а не ленивый буратино, который считает, что все языки должны быть похожи один на другой. go-go учить Smalltalk. у тебя, скорее всего, попытки с десятой получится. потому что у семилетних детей получается с первой.
| |
|
5.28, anonymous (??), 13:40, 06/06/2013 [^] [^^] [^^^] [ответить]
| +8 +/– |
>> Это ещё почему?
>> ps. http://hyperpolyglot.org/scripting
> Пример: найти гласные буквы (латинские), которые встречаются во всех словах:
> words = gets.split
> p result = ['a', 'e', 'i', 'o', 'u', 'y'].find_all{ |c| words.all?{ |word|
> word.index c } }
Так вот ты какой, Perl 6.
| |
|
6.66, Аноним (-), 15:31, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Так вот ты какой, Perl 6.
Брейнфак 2.0 - по неочевидности конструкции оно спокойно заткнет иных участников obfuscated C code contest :).
| |
|
7.93, Аноним (-), 16:10, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Брейнфак 2.0 - по неочевидности конструкции оно спокойно заткнет иных участников obfuscated C code contest :).
Но все это детский сад по сравнению с некоторыми shell-скриптами труЪ-одминов. Десять минут пытаешься понять смысл одной строчки, а когда наконец понимаешь - разбиваешь себе лицо фейспалмом.
| |
|
|
5.30, userd (ok), 13:46, 06/06/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
я вот вашу программу прочитать не могу, так как синтаксис Ruby не знаю.
а по описанию -
words = raw_input().split()
result =[ c for c in ('a', 'e', 'i', 'o', 'u', 'y') if all(c in word for word in words)]
(это похоже на подстрочник, да?)
а можно и так -
words = raw_input().split()
result = list(reduce(set.intersection, (set(word) for word in words), set('aeiouy')))
| |
|
6.33, бедный буратино (ok), 13:50, 06/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> result =[ c for c in ('a', 'e', 'i', 'o', 'u', 'y')
> if all(c in word for word in words)]
Гы, ну внатуре, import this наше всё :)
Если можно решить одним способом - то у всех будет решено одним способом. :)
| |
|
5.32, бедный буратино (ok), 13:49, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
а вообще, у меня получилось вот так:
k = 'fuckthemall aeouy yeah'.split(' ')
print [i for i in 'a', 'e', 'i', 'o', 'u', 'y' if all(i in n for n in k)]
['a', 'e']
| |
|
6.68, Аноним (-), 15:33, 06/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> ['a', 'e']
Если это результат - то в нем что-то маловато гласных для твоей тестовой строки, тебе так не кажется? :)
| |
|
7.72, бедный буратино (ok), 15:40, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> ['a', 'e']
> Если это результат - то в нем что-то маловато гласных для твоей
> тестовой строки, тебе так не кажется? :)
нет. все остальные примеры отсюда тоже выдают на ней a e
и это легко проверить - берём y, e, a из yeah, и смотрим.
y - в первом слове нет, e - в первом слове есть, во втором слове есть, a - в первом слове есть, во втором слове есть.
кстати, лучше даже
k = 'fuckthemall aeouy yeah'.split(' ')
print [i for i in 'aeiouy' if all(i in n for n in k)]
это меня рубист смутил :)
| |
|
8.83, Аноним (-), 16:04, 06/06/2013 [^] [^^] [^^^] [ответить] | –1 +/– | Да все вы скрипткидисы одинаковые Лишний тому пруф Задачу поставили так, решил... текст свёрнут, показать | |
|
|
|
5.34, qqq (??), 13:51, 06/06/2013 [^] [^^] [^^^] [ответить]
| +11 +/– |
> words = gets.split
> p result = ['a', 'e', 'i', 'o', 'u', 'y'].find_all{ |c| words.all?{ |word| word.index c } }
И эти люди говорят, что на Perl пишут нечитаемый код.
| |
|
6.162, arisu (ok), 07:39, 07/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> words = gets.split
>> p result = ['a', 'e', 'i', 'o', 'u', 'y'].find_all{ |c| words.all?{ |word| word.index c } }
> И эти люди говорят, что на Perl пишут нечитаемый код.
и, что характерно, они правы.
| |
|
5.44, Cuernud (?), 14:15, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
reduce(lambda x,y:set(x)&set(y),words)&set(('a','e','i','o','u','y'))
| |
5.64, User (??), 15:29, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
set.intersection({'a', 'e', 'i', 'o', 'u', 'y'}, *[set(i) for i in string.split()])
| |
|
6.87, mangust (?), 16:07, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
скомпилировал несколько предложенных вариантов, вот каноническое решение на python
words = 'fuckthemall aeouy yeah'.split()
result = reduce(set.intersection, words, set('aeiouy'))
| |
|
7.97, бедный буратино (ok), 16:12, 06/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> скомпилировал несколько предложенных вариантов, вот каноническое решение на python
> words = 'fuckthemall aeouy yeah'.split()
> result = reduce(set.intersection, words, set('aeiouy'))
Оно не так наглядно. Встретив такую строку, непонятно, что оно делает. А в opensource лёгкая читаемость - это наше всё. :)
| |
|
|
9.123, userd (ok), 17:07, 06/06/2013 [^] [^^] [^^^] [ответить] | +1 +/– | теперь, когда придумано как минимум два варианта а с reduce можно ещё пару заму... текст свёрнут, показать | |
|
|
|
|
5.110, Kyrxks (?), 16:23, 06/06/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
Боже, как же Вы тупы. Переводится в Питон просто дословно...
Не, не нужны в нашей стране программисты. А вот колхозники - нужны. Потому как, колхозник самоуверенный - от него нет беды, только больше картошки даст стране
| |
5.119, gegMOPO3 (?), 16:45, 06/06/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
Найдите 10 отличий.
words = input().split()
print([c for c in 'aeiouy' if all(c in word for word in words)])
| |
5.147, Я не забыл поле нейм (?), 19:27, 06/06/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Да и возможности питона для создания DSL тоже никуда не годятся
Дружок, иди выучи вначале что есть DSL, потом старайся не проявлять больше своей тупости.
| |
5.178, V (??), 12:40, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
words = raw_input().split(' ')
print filter(lambda c: all(c in word for word in words), 'aeiouy')
| |
5.179, zed_0xff (?), 13:05, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
words = gets.split
result = %w'aeiouy'.find_all{ |c| words.all?{ |word| word[c] } }
| |
|
6.187, Аноним (-), 19:05, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
p %w'fuckthemall aeouy yeah'.map { |word| word.scan(/#{['a', 'e', 'i', 'o', 'u', 'y']}/) }
| |
|
|
|
3.181, Гриша (?), 14:42, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> А почему не на python? Такой элегантный язык...
> Ну хотя бы потому, что код будет в 2 раза длиннее, чем
> в Ruby.
А могли бы вообще на перле в одну строчку!
| |
|
2.48, zy (?), 14:44, 06/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
Питон элегантный? Ахахахахаха.
Вы видимо никогда не видели руби.
| |
|
3.80, Стас2 (?), 15:56, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Slushay zy, ty gde zhivesh? Davay vstretimsya pogovorim naschet elegantnosti...kozel
| |
|
|
|
|
|
4.39, бедный буратино (ok), 14:00, 06/06/2013 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Юниксвей умер. Хватит насиловать труп.
Читайте книгу Реймонда, и тогда в вашей голове уже не будет носиться таких глупых мыслишек. Извините, но пересказывать её здесь - нет смысла.
| |
|
|
6.163, arisu (ok), 07:41, 07/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Читайте The UNIX-HATERS Handbook
отличная книга. как раз для тех, кто таки хочет грок unix-way. а ещё великолепный детектор дебилов.
| |
|
|
4.96, Аноним (-), 16:12, 06/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Юниксвей умер. Хватит насиловать труп.
Насиловать труп - это юниксвейно же!
| |
|
5.126, Аноним (-), 17:20, 06/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ведь любой труп - это проверенное временем решение, стабильность которого гарантируется.
В отличие от живых организмов, которые сегодня такие, а завтра уже вырастут.
| |
|
6.137, kurokaze (ok), 17:46, 06/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Ведь любой труп - это проверенное временем решение, стабильность которого гарантируется.
> В отличие от живых организмов, которые сегодня такие, а завтра уже вырастут.
Ну здрасьте, сегодня труп, а завтра мумия, а то и вовсе скелет сразу.
| |
|
|
|
|
2.128, бедный буратино (ok), 17:22, 06/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Так, никто ещё не спрашивал, почему не пехапе?
Не осилят. Тут ни галереи, ни mysql-базы с оптимизированным на медленное выполнение оператором select.
| |
|
1.31, Анонимоус (?), 13:46, 06/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Мне вот только непонятно, зачем они изначально городили велосипеды со своим языком.
| |
|
2.133, acmnu (ok), 17:39, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Пародировали smit из aix, вот только smit не тормозит, а yast это нечто, блин.
| |
|
3.143, Анонимоус (?), 18:43, 06/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ага, точно. Это типа для того, чтобы 1,5 разраба геройски писали на никому неведомом языке? Ну что, герои, чо.
| |
3.145, Аноним (-), 18:59, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Пародировали smit из aix, вот только smit не тормозит, а yast это нечто, блин.
Ну дык его ня ребе переписали же! Поздравления! Теперь оно не тормозит, оно ну я даже не знаю как без мата :)
PS: А потом вы обновите рябу :)))) Как известно _все_ рябо-программы работают _только_ на компе девелопера :) Вобщем - УДАЧИ!
| |
|
4.164, arisu (ok), 07:42, 07/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Как известно _все_ рябо-программы работают _только_ на компе девелопера
вынужден тебя огорчить: это известно только тебе. видимо, тебе явилось сакральное знание в алкогольном делирии.
| |
|
5.173, acmnu (ok), 10:09, 07/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это практически правда: у рубистов есть такая идея, что продакшен должен следовать компу разработчика. Правда, в основном, это касается рельсоразработки.
| |
|
6.193, Аноним (-), 09:12, 08/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Это практически правда: у рубистов есть такая идея, что продакшен должен следовать
> компу разработчика. Правда, в основном, это касается рельсоразработки.
В том, что касается рельсоразработки есть Gemfile.lock и bundler, который автоматически приведёт конфигурацию к тому, что сказано. А можно его удалить, и построится новый Gemfile.lock по фактически имеющемуся окружению. И возможность фиксации версий - это правильно, потому, что гарантирует повторяемость результатов тестирования приложения.
| |
|
|
|
|
|
1.37, fi (ok), 13:53, 06/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Это всего лишь оболочка для нижнего уровня, так что и Ruby сойдет.
| |
1.40, inferrna (ok), 14:02, 06/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Ruby - разумный компромисс для тех, кому нравится питон, но кто не хочет его использовать, чтобы не быть как все. В сузевом сообществе таких детей, видимо, навалом.
| |
|
2.43, бедный буратино (ok), 14:11, 06/06/2013 [^] [^^] [^^^] [ответить]
| –4 +/– |
> Ruby - разумный компромисс для тех, кому нравится питон, но кто не
> хочет его использовать, чтобы не быть как все. В сузевом сообществе
> таких детей, видимо, навалом.
Ruby - хороший язык. Но для пакетного менеджера, который нужен и домохозяйке, и зубному технику, лучше выбрать python.
| |
|
3.54, Аноним (-), 15:06, 06/06/2013 [^] [^^] [^^^] [ответить]
| +3 +/– |
> ...и домохозяйке, и зубному технику...
Вот их-то спросить и забыли.
| |
|
4.59, бедный буратино (ok), 15:18, 06/06/2013 [^] [^^] [^^^] [ответить]
| –4 +/– |
> Вот их-то спросить и забыли.
Вот поэтому opensource-сообщество и такое узколобое, и развивается на 1% от всего потенциала.
| |
|
5.77, ананим (?), 15:50, 06/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну, пожиратели проприетари вообще безлобые и о развитии вообще речи не идёт.
Взять к примеру тебя.
| |
|
6.78, бедный буратино (ok), 15:52, 06/06/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Ну, пожиратели проприетари вообще безлобые и о развитии вообще речи не идёт.
> Взять к примеру тебя.
Ну, чтобы найти у меня проприетарь - это нужно сильно постараться. Вроде бы, на каких-то компьютерах есть даже adobe flash player, но не на всех, в openbsd точно нет :)
| |
|
5.98, Аноним (-), 16:14, 06/06/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Вот поэтому opensource-сообщество и такое узколобое, и развивается на 1% от всего потенциала.
Ну точно. Если домохозяйки и зубоврачебные техники начнут писать пакетные менеджеры - тут-то и будет все счастье, и 146% на десктопах.
| |
|
6.102, бедный буратино (ok), 16:16, 06/06/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Ну точно. Если домохозяйки и зубоврачебные техники начнут писать пакетные менеджеры -
> тут-то и будет все счастье, и 146% на десктопах.
Будет. Только без вас. Для вас все развлечения обычных людей, которые вы не понимаете - мимо кассы проходят. :)
| |
|
|
|
3.61, Аноним (-), 15:20, 06/06/2013 [^] [^^] [^^^] [ответить]
| +4 +/– |
> Ruby - хороший язык. Но для пакетного менеджера, который нужен и домохозяйке,
> и зубному технику, лучше выбрать python.
А потом это нечто, писаное зубными техниками и домохозяйками не может заапгрейдить мне систему. Б-ть, торжественно обещаю залечить зубы зубному технику и сварить борщ домохозяйке. Пусть выкусят насколько хреново когда кто-то подписывается делать чужую работу, совершенно не разбираясь в вопросе.
| |
|
4.116, Kyrxks (?), 16:42, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> Ruby - хороший язык. Но для пакетного менеджера, который нужен и домохозяйке,
>> и зубному технику, лучше выбрать python.
> А потом это нечто, писаное зубными техниками и домохозяйками не может заапгрейдить
> мне систему. Б-ть, торжественно обещаю залечить зубы зубному технику и сварить
> борщ домохозяйке. Пусть выкусят насколько хреново когда кто-то подписывается делать чужую
> работу, совершенно не разбираясь в вопросе.
Так у нас вся страна так, начиная с министров, курсирующих с министерства в министерство, заканчивая программистами, 90% которых вообще не программисты, а то и не ИТ-шники даже
| |
|
5.118, бедный буратино (ok), 16:45, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Так у нас вся страна так, начиная с министров, курсирующих с министерства
> в министерство, заканчивая программистами, 90% которых вообще не программисты, а то
> и не ИТ-шники даже
Зато на opennet-е все всё знают, все всех разоблачают, и никто никогда не ошибается. И куда все эти люди завели opennet?
| |
|
|
|
|
1.46, Аноним (-), 14:22, 06/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Обьясню, для тех кто не работал с openSuse.
yast - утилита настройки системы с графическим/или консольным универсальным интефейсом одновременно. Интерфейс пишется один раз и работает как в режиме графики с иконками ;) так и в консоле, аля MC.
| |
|
|
3.67, Аноним (-), 15:33, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
можно погуглить про инсталлятор во фрибсд
так что про баш не в тему
| |
|
4.69, Аноним (-), 15:35, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> можно погуглить про инсталлятор во фрибсд
А что, они его таки переписали на JS? :)
| |
|
5.115, Kyrxks (?), 16:39, 06/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да неуместное остроумие, на фоне запускания ядра Линукс и Нетки в JS... совсем неуместно.
| |
|
4.101, Аноним (-), 16:15, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> можно погуглить про инсталлятор во фрибсд
> так что про баш не в тему
Надо, чтобы реализация как во фрибсд, а вид как у убунтовского инсталлятора (все в радугах и хай-рез спецэффектах).
| |
|
|
6.166, arisu (ok), 07:51, 07/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> ага, темы про радугу как раз актуальны в инете, Вы не из
> этих? если предлагаете …
он-то как раз не из «этих». а вот если у тебя при слове «радуга» первым делом возникают мысли вовсе не о красивом оптическом эффекте в небе, то ты как раз личность оч-чень подозрительная.
| |
|
|
|
|
2.177, elv (?), 11:32, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
<SARCASM>Вы б еще на японском комментарий написали. Тоже мне придуммка! Писать на русском языке в компьютерном обсуждении.</SARCASM>
| |
|
1.124, Аноним (-), 17:09, 06/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Сначала специфичный язык, теперь руби, мало что изменили. Хотя может у них руби более популярен чем тот же C/C++
| |
1.139, kurokaze (ok), 17:49, 06/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Как программист использующий и С++ и руби, читал холивары в коментах с усмешкой умудренного опытом человека, так то
| |
|
2.174, pavel_simple (ok), 10:43, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Как программист использующий и С++ и руби, читал холивары в коментах с
> усмешкой умудренного опытом человека, так то
себя не похвалишь - как ...
| |
|
3.192, kurokaze (ok), 00:45, 08/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> Как программист использующий и С++ и руби, читал холивары в коментах с
>> усмешкой умудренного опытом человека, так то
> себя не похвалишь - как ...
Та ладно, то что у тебя батхерт - это не повод не учить плюсы и руби
| |
|
|
5.203, kurokaze (ok), 23:22, 16/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Не проецируй, умудрённый опытом.
Если я буду проецировать на тебя ты банально сгоришь
| |
|
|
|
|
1.149, Аноним (-), 19:50, 06/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
p 'fuckthemall aeouy yeah'.gsub(/\s/, '').scan(/#{['a', 'e', 'i', 'o', 'u', 'y']}/)
=)
| |
|
2.150, Аноним (-), 20:04, 06/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
или
p 'fuckthemall aeouy yeah'.split('').select { |e| ['a', 'e', 'i', 'o', 'u', 'y'].index(e) }
| |
|
3.184, A (?), 17:43, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Разуй глаза и прочитай условие "Пример: найти гласные буквы (латинские), которые встречаются во всех словах".
-> во всех словах <-
| |
|
4.186, Аноним (-), 18:59, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
делов-то
p %w'fuckthemall aeouy yeah'.map { |word| word.scan(/#{['a', 'e', 'i', 'o', 'u', 'y']}/) }
| |
|
5.197, Z (??), 23:52, 08/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Ахаха!Ты криворукий!
1.9.3p362 :003 > %w'fuckthemall aeouy yeah'.map { |word| word.scan(/#{['a', 'e', 'i', 'o', 'u', 'y']}/) }
=> [["u", "e", "a"], ["a", "e", "o", "u", "y"], ["y", "e", "a"]]
| |
|
|
|
|
|
2.153, kurokaze (ok), 23:39, 06/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
А ты осилил, то? Расскажи про свой дистрибутив с конфигуратором на жабке
| |
|
|
|
|
6.204, kurokaze (ok), 23:23, 16/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> Лолчто!? Ты хоть в теме-то?
> Вполне.
А теперь расскажи мне как этот конфигуратор использовать устанавливая дистрибутив на андроид, ггг
| |
|
|
|
|
|
1.168, Piter_Ring (ok), 09:18, 07/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
OpenSuse как дистр умер на релизе 11.3 (кажись).
В общем как Новел забил на него так он и ушел подоткос.
Все последующие реллизы с каждым выпуском привносят все большее разочарование.
Теперь и до "Святого" добрались.
Вместо конфигуратора получим еще 1гиг шлакокода который возможно через год-два-три
будет "почти" так же хорош как и яст 2007-го года.
Правильным путем идут, ничего не скажешь.
(на стареньком буке самсунь Р30 до сих пор стоит 11.1 и пашет как ПапаКарло. Пробовал ставить более свежие версии 12. - гавно в большинстве случаев не заводилось а если поплясать то как то стартует но половина дэвайсов всеравно не работает)
| |
1.185, Denjs (ok), 18:47, 07/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
(извините, буду резок)
блн.... сколько ни смотрю на сузе - он все куда-до в УГ скатывается...
сначала выпилили конфигуратор видео... (простите, но мне как человеку, наполовину представляющему "бизнес-потребности" - увы, хочется видеть решение вида вот вам _одна_ панель, которая сама показывает своим видом что в ней можно настроить, и в ней действительно можно _было_ все что нуджно настроить через гуй.) И именно этим сузя была прекрасна среди других дистров. Удобство и прелесть панели управления венды, где все в одном месте в 2 клика, с возможностью гибкой настройки линуха в конфигах, для тех кому не лень...
Соглашусь с оратором написавшим про смерть сузе как дистра на 11-й версии...
чем дальше - тем больше косяков какого-то самостоятельного, неожиданного для меня поведения... и постепенного накопления глюков...
взять 12.2... в какой-то момент, она решила убрать у меня из кде-старта кнопку "режим ожидания" в меню питание... фак-н-шит, я даже не знаю куда смотреть что бы она там появилась, и простите. искать дольше, чем поставить "ср****бубунту"(о, здравствуй, "стим"!).
Теперь они то лучшее что было в сузе, переписывают на руби...
Не, ну я конечно полностью согласен, что стоит переписать YAST на чем-то другом, не на YCP,... но руби?!
вроде как ястр на питоне переписывали? (не смотря на то что это ещё один отмороженный язык, не смотря на тошнотворную мерзость в работе с синтаксисом с невидимыми символами, я признаю его сильные стороны как скриптового ООП)...
но РУБИ?! где они вообще нашли много людей знающих руби...что? все любители руби в опенсузе собрались?!
блин... давайте потом поставим руби на рельсы и запустим весь сузе под откос.
йаст на рельсах... омайнефрау))))
| |
|
2.190, Аноним (-), 23:14, 07/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
webyast уже на рельсах.
Да и с каких это пор проблемы найти руби-программистов?
Впрочем, учитывая всё выше написанное, можно отметить только то, что питон и руби по синтаксису и возможностям в общем-то мало различаются за исключением того, что питон - более программистский, а руби - более человеческий.
| |
|
|