Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ruby for Java

273
02 января 2007 года
3A3-968M
1.2K / / 22.12.2005
Слышал, что Sun дала дорогу языку Ruby для своей платформы Java. Я слышал о нём поверхностно, может кто уже пользовался? Что это за зверь такой?
16K
02 января 2007 года
WandM
46 / / 13.11.2006
Ruby - динамический язык. Позволяет определять типы данных и осуществлять синтаксический анализ и компиляцию «на лету», непосредственно на этапе выполнения.

Возможности Ruby

* Имеет лаконичный и простой синтаксис, частично разработанный под влиянием Ада и Эйфель.
* Позволяет обрабатывать исключения в стиле Java и Python.
* Позволяет переопределять операторы, которые на самом деле являются методами.
* Полностью объектно-ориентированный язык программирования. Все данные в Руби являются объектами в понимании SmallTalk. Например, число «1» — это экземпляр класса Fixnum. Также поддерживается добавление методов в класс и даже в конкретный экземпляр во время выполнения программы.
* Не поддерживает множественное наследование, но вместо него может использоваться концепция «примесей», основанная в данном языке на механизме модулей.
* Содержит автоматический сборщик мусора. Он работает для всех объектов Руби, в том числе для внешних библиотек.
* Создавать расширения для Руби на Си очень просто частично из-за сборщика мусора, частично из-за несложного и удобного API.
* Поддерживает замыкания с полной привязкой к переменным.
* Поддерживает блоки кода (код заключается в { … } или do … end). Блоки могут использоваться в методах или преобразовываться в замыкания.
* Целые переменные в Руби автоматически конвертируются между типами Fixnum (32-разрядные) и Bignum (больше 32 разрядов) в зависимости от их значения, что позволяет производить целочисленные математические расчёты с бесконечной точностью.
* Не требует объявления переменных. Язык использует простые соглашения для обозначения области видимости. Пример: просто var — локальная переменная, @var — переменная экземпляра (член или поле объекта класса), @@var — переменная класса, $var — глобальная переменная. Таким образом нет необходимости использовать какой-либо специальный синтаксис (например, self.имя_переменной для Python) для доступа к переменным экземпляра.
* В Руби непосредственно в языке реализованы многие шаблоны проектирования, так, например «одиночка» (singleton) может быть (хотя и не обязан) реализован добавлением необходимых методов к одному конкретному объекту.
* Может динамически загружать расширения, если это позволяет операционная система.
* Имеет независимую от ОС поддержку многопоточности.
* Перенесён на множество платформ. Он разрабатывался на Linux, но работает на многих версиях Unix, DOS, Windows 95/98/Me/NT/2000/XP, Mac OS, BeOS, OS/2, и т. д.

(C) Гугл.

ИМХО: единственный плюс - "бесконечная точность". Переходить на него пока что не имеет смысла.
273
03 января 2007 года
3A3-968M
1.2K / / 22.12.2005
На счёт бесконечной точности - в Java есть BigInteger, да и к тому же эта возможность эмулируется программно и реализовать алгоритмы сложения, умножения, деления больших чисел несложно. А то, что даже простые типы и их экземпляры - тоже классы (приведён пример про число 1 - что это тоже экземпляр), такое и в C# есть.
16K
03 января 2007 года
WandM
46 / / 13.11.2006
Я имею в виду, что если в Яве объявить int, а потом выйти за его диапазон, то он автоматически не приведется к BigInteger.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог