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

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

2 comments

Comments 1 - 2 of 2 previous next Post a comment

  • + guesta5ae7b93 Oberon Andreas 2 months ago
    1. Ruby очень тормознут. Даже если сделать скидку на то, что это скриптовый язык.
    2. Его гибкость и сама концепция языка не мотивирует программиста писать быстрый оптимизированый код.
  • + guest4062a6 guest4062a6 2 years ago
    В ruby нет возможности передавать аргументы функции по адресу а не по значению. Тем же страдает и многими любимый питон. А в перле - запросто, и без всяких танцев с бубнами, типа создания класса под переменную или занесение ее в массив. Еще не хватает например таких простых конструкций как for (i=0; i<=10; i++) - это бэвает необходимо если декремент производится на нецелое значение. Приходится все это прописывать отдельно. В общем при всех его достоинствах, есть и косяки как у любого языка.
Post a comment
Embed Video
Edit your comment Cancel

Notes on slide 1

A free scripting (or dynamic) language invented by Yukihiro Matsumoto. Similar to Perl, Python, TLC, Lisp, Lua, and more.

Favorites, Groups & Events

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

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

+ guest5f907eguest5f907e, 2 years ago

custom

1047 views, 0 favs, 1 embeds more stats

Вольный перевод слайдов с к more

More info about this document

© All Rights Reserved

Go to text version

  • Total Views 1047
    • 1020 on SlideShare
    • 27 from embeds
  • Comments 2
  • Favorites 0
  • Downloads 1
Most viewed embeds
  • 27 views on http://mett.ru

more

All embeds
  • 27 views on http://mett.ru

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories