Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Top10 доводов против языка Ruby

15 611 vues

Publié le

Вольный перевод слайдов с конференции Matz'a.

Publié dans : Technologie
  • @guesta5ae7b93 юзай jruby. В чем проблема?
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Ruby is the best!.

    А при использование его как DSL, рвет всех
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • '''''1. Ruby очень тормознут. Даже если сделать скидку на то, что это скриптовый язык.
    2. Его гибкость и сама концепция языка не мотивирует программиста писать быстрый оптимизированый код.''''''
    Простой тест: http://oneline.org.ru/statii/speed-test.html

    ''''''''''''В ruby нет возможности передавать аргументы функции по адресу а не по значению. Тем же страдает и многими любимый питон. А в перле - запросто, и без всяких танцев с бубнами, типа создания класса под переменную или занесение ее в массив. Еще не хватает например таких простых конструкций как for (i=0; i

    0.step(12, 3) { } чем Вам плох?
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • 1. Ruby очень тормознут. Даже если сделать скидку на то, что это скриптовый язык.
    2. Его гибкость и сама концепция языка не мотивирует программиста писать быстрый оптимизированый код.
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Top10 доводов против языка Ruby

  1. 1. Top10 причин доказывающих, что язык программирования Ruby - Отстой !
  2. 2. 10. Слишком молод
  3. 3. Нет библиотек <ul><li>Коллекция хороших библиотек, подобных CPAN для языка Perl, позволяет быстрее добиваться лучших результатов </li></ul><ul><li>Библиотеки Ruby: </li></ul><ul><ul><li>96 стандартных библиотек </li></ul></ul><ul><ul><li>Ruby Application Archive (RAA) содержит 1,200 приложений и библиотек </li></ul></ul><ul><ul><li>RubyForge приютил более 800 проектов </li></ul></ul><ul><ul><li>RubyGems обслуживает порядка 900,000 gems-пакетов </li></ul></ul>
  4. 4. Нет поддержки <ul><li>Документация </li></ul><ul><ul><li>Ядро 100% документировано </li></ul></ul><ul><ul><li>Документирование стандартной библиотеки в процессе </li></ul></ul><ul><ul><li>Доступны учебники для разных категорий программистов </li></ul></ul><ul><ul><li>Масса «бумажных» книг по Ruby </li></ul></ul><ul><li>Сообщество </li></ul><ul><ul><li>Списки рассылки на многих языках </li></ul></ul><ul><ul><li>Группы Usenet </li></ul></ul><ul><ul><li>Веб-форумы </li></ul></ul>
  5. 5. Никто не использует <ul><li>Компании, которые используют Ruby </li></ul><ul><ul><li>HP, Intel, NASA и NOAA </li></ul></ul><ul><li>Ruby используется </li></ul><ul><ul><li>Моделирование, обработка данных, кодогенерация, обработка изображений, прототипирование </li></ul></ul><ul><li>«Убойное приложение» </li></ul><ul><ul><li>Ruby on Rails </li></ul></ul><ul><ul><ul><li>Уже задействован в таких прибыльних веб-приложениях как Basecamp и Blinksale </li></ul></ul></ul>
  6. 6. 10. Слишком молод Время не стоит на месте !
  7. 7. 9. Нечитабельный программный код
  8. 8. Легкий синтаксис <ul><li>Опциональные ; </li></ul><ul><li>Удаление символов </li></ul><ul><li>Опциональные () </li></ul>
  9. 9. ООП-синтаксис <ul><li>obj.attribute = </li></ul><ul><li>dangerous! и query? </li></ul>
  10. 10. Простой и гибкий синтаксис <ul><li>Простое объявление: </li></ul><ul><ul><li>local_var = ... </li></ul></ul><ul><ul><li>@instance_var = ... </li></ul></ul><ul><ul><li>$global_var = ... </li></ul></ul><ul><li>do...end или {...} </li></ul><ul><li>Java-подобная обраборка исключений </li></ul><ul><li>Вставка в строку: любой Ruby-код внутри #{...} </li></ul>
  11. 11. Сравнение с другими языками <ul><li>Ruby: puts “Hello world!” </li></ul><ul><li>Java: threeVeryLongLines.weHopeWork... </li></ul><ul><li>Perl: #$<!&; </li></ul><ul><li>Lisp: ((a(((b)))(c))) </li></ul>
  12. 12. 9. Нечитабельный программный код Чистый синтаксис!
  13. 13. 8. Ruby - объектно-ориентирован
  14. 14. Ruby - объектно-ориентирован <ul><li>Все — объект </li></ul><ul><ul><li>Числа, блоки кода... ВСЕ! </li></ul></ul><ul><li>Продуман, не содержит синтаксического мусора </li></ul><ul><ul><li>Нет необходимости постоянно использовать “self”, как в Python </li></ul></ul>
  15. 15. Ruby имеет много ОО-ухищрений <ul><li>Автоматическая генерация конструктора, в отличие от Perl </li></ul><ul><li>Упрощенные средства доступа (вроде attr_accessor) </li></ul><ul><li>Объявленные методы взаимодействуют с базовым Ruby </li></ul>
  16. 16. Возможен процедурный стиль <ul><li>Вы можете игнорировать объявление класса, когда это необходимо </li></ul><ul><li>Вы можете вытворять все, что угодно с объектами внутри процедурного кода </li></ul>
  17. 17. 8. Ruby — объектно-ориентирован Очень гибкий!
  18. 18. 7. Использование «примесей»
  19. 19. Вы не можете выиграть с множественным наследованием <ul><li>Множественное наследование позволяет наследовать класс более, чем от одного родительского класса </li></ul><ul><ul><li>Плюс: простое моделирование древовидного наследования </li></ul></ul><ul><ul><li>Минус: проблема с ромбообразным наследованием (неопределенность) </li></ul></ul><ul><li>Вы не можете удовлетворить обе стороны </li></ul>
  20. 20. Ruby использует единичное наследование...
  21. 21. ...и «примеси» <ul><li>«Примеси» подобны интерфейсам в Java, но с реализацией </li></ul><ul><li>Нет ограничений на количество примесей </li></ul><ul><li>Выгоды множественного наследования без минусов </li></ul>
  22. 22. 7. Использование «примесей» Гораздо больше возможностей!
  23. 23. 6. Нет циклов
  24. 24. Хорошо известные циклы Си-подобные Ruby while { ... } until { ... } while ... end until ... end do { ... } while do { ... } until begin ... end while begin ... end until foreach { ... } each do ... end for(...;...;...) { ... }
  25. 25. Что такое циклы? <ul><li>“N + 1” ошибок </li></ul><ul><li>foreach { ... } это концептуальный шаг назад </li></ul><ul><ul><li>Объекты не управляют процессом своего собственного обхода </li></ul></ul>
  26. 26. Итераторы <ul><li>Объекты управляют своим собственным обходом </li></ul><ul><li>Нет больше “N + 1” ошибок </li></ul><ul><li>На каждый случай по спец. итератору </li></ul>
  27. 27. 6. Нет циклов Есть итераторы!
  28. 28. 5. Блоки кода повсюду
  29. 29. Что такое блоки кода? <ul><li>Любой метод может принимать блок кода в качестве параметра </li></ul><ul><li>Блоки могут быть вызваны сразу или сохранены для последующего использования </li></ul><ul><li>Блоки являются замыканиями </li></ul>
  30. 30. Для чего они нужны? <ul><li>Блоки позволяют вашему коду гармонично взаимодействовать с пользовательским кодом </li></ul><ul><li>Блоки — лучший путь указания области видимости </li></ul><ul><li>Блоки идеальны для различных транзакций </li></ul>
  31. 31. 5. Блоки кода повсюду Очень мощный!
  32. 32. 4. Настежь распахнут во время выполнения
  33. 33. Динамический инструментарий <ul><li>Мощные методы «самопознания» </li></ul><ul><li>eval() </li></ul><ul><ul><li>instance_eval() </li></ul></ul><ul><ul><li>class_eval() и module_eval() </li></ul></ul><ul><li>Обработка событий реального времени </li></ul>
  34. 34. Классы открыты <ul><li>Добавляйте методы к классу в любое время </li></ul><ul><ul><li>Даже к базовым классам </li></ul></ul><ul><li>Индивидуальная настройка объектов </li></ul><ul><li>Перегрузка операторов </li></ul><ul><li>Hook into Ruby’s math and conversion operations </li></ul>
  35. 35. 4. Настежь распахнут во время выполнения Необузданный!
  36. 36. 3. Ruby гуру мучаются с «утипизацией»
  37. 37. «Если что-то ходит как утка и крякает как утка, то это утка»
  38. 38. Философия «утипизации» <ul><li>Мы судим об объекте не по его типу, а по его поведению </li></ul><ul><li>Вы всегда можете проверить наличие того или иного метода </li></ul>
  39. 39. 3. Ruby гуру мучаются с «утипизацией» Всем бы так!
  40. 40. 2. Слишком игрушечный
  41. 41. 96 стандартных библиотек Read/Write CSV XML YAML Talk to Email FTP Web Serve Code Servlets XML-RPC Work with Math Templates Threads Tools for Debugging Docs Testing
  42. 42. 2. Слишком игрушечный Вранье!
  43. 43. 1. «Слишком хорош и продуктивен для большинства людей» — Михаил Кларк (Mike Clark)

×