Ruby/Основные свойства Ruby: различия между версиями
< Ruby
Содержимое удалено Содержимое добавлено
Строка 18: | Строка 18: | ||
* Всё есть [[w:Объект (программирование)|объект]]. Даже имя класса есть экземпляр класса <code>Class</code>. |
* Всё есть [[w:Объект (программирование)|объект]]. Даже имя класса есть экземпляр класса <code>Class</code>. |
||
* [[w:Класс (программирование)|Классы]], [[w:Метод|методы]], [[w:Наследование (программирование)|наследование]], [[w:Полиморфизм |
* [[w:Класс (программирование)|Классы]], [[w:Метод|методы]], [[w:Наследование (программирование)|наследование]], [[w:Полиморфизм(прогпаммирование)|полиморфизм]], [[w:Инкапсуляция (программирование)|инкапсуляция]] и так далее. |
||
* [[w:Одиночка (шаблон проектирования)|Методы-одиночки]]. |
* [[w:Одиночка (шаблон проектирования)|Методы-одиночки]]. |
||
* [[w:Примесь (программирование)|Примеси]] при помощи модулей (возможность расширить класс без наследования); |
* [[w:Примесь (программирование)|Примеси]] при помощи модулей (возможность расширить класс без наследования); |
Версия от 13:55, 19 июня 2013
Основные свойства Ruby
Интерпретируемый язык:
- Возможность прямых системных вызовов.
- Мощная поддержка операций со строками и правилами (регулярными выражениями).
- Мгновенное проявление изменений во время разработки.
- Отсутствие стадии компиляции.
Простое и быстрое программирование:
- Не надо объявлять переменные.
- Переменные динамически типизированы.
- Простой и последовательный синтаксис.
- Автоматическое управление оперативной памятью.
Объектно-ориентированное программирование:
- Всё есть объект. Даже имя класса есть экземпляр класса
Class
. - Классы, методы, наследование, полиморфизм, инкапсуляция и так далее.
- Методы-одиночки.
- Примеси при помощи модулей (возможность расширить класс без наследования);
- Итераторы и замыкания.
- Широкие возможности метапрограммирования.
Удобства:
- Неограниченный диапазон значений целых чисел.
- Модель обработки исключений.
- Все операторы возвращают значения, даже управляющие структуры.
- Динамическая загрузка.
- Механизм перехвата исключений.
- Поддержка потоков; как собственных, так и систем семейства UNIX.
Недостатки:
- Неуправляемость некоторых процессов (таких, как выделение памяти), невозможность задания низкоуровневых структур данных или подпрограмм;
- Невозможность компиляции и сопутствующей ей оптимизации программы;
- Открытость исходного кода даже в готовой программе (есть средство упаковки исходного кода в .exe-файл под Windows);
- Следствие двух первых недостатков — весьма низкая скорость запуска и выполнения программ.