Что бы вы хотели улучшить в языке Ruby? - PullRequest
10 голосов
/ 25 февраля 2009

Что бы вы хотели улучшить в Ruby (и в целом в сообществе Ruby)?

Я прочитал где-то , что Руби - дитя любви Smalltalk и LISP, а мисс Перл - няней.

Я очень уважаю родителей Руби, но я не уверен, что мне нравится влияние, которое мисс Перл оказала на ребенка. В частности, мне не нравятся предопределенные переменные: мне нужен шпаргалка , чтобы знать, что они означают. Вы можете сказать «просто не используйте их». Ну, я не ... но другие люди делают. И когда я загружаю плагин в Интернете, у меня нет другого выбора, кроме как загрузить свой шпаргалку, если мне когда-нибудь понадобится пойти и прикоснуться к исходному коду. Я просто хотел бы, чтобы они удалили их из самого языка.

Кроме того, я думаю, что Руби - слишком подвижная цель. Мой код ломается при каждом новом обновлении Ruby, даже при незначительных выпусках. Это относится и к Ruby on Rails и большинству плагинов Rails, с которыми я работал: они просто меняются все время, и никого не интересует, нарушают ли все эти изменения или нет. ИМХО, хотя я люблю много вещей в Ruby, это отсутствие стабильности - едва ли не пробка.

Ответы [ 10 ]

7 голосов
/ 25 февраля 2009

Я хотел бы, чтобы люди рассматривали обратную совместимость между второстепенными выпусками как неразрушимое правило при выпуске новой языковой (или библиотечной или фреймворковой) версии.

3 голосов
/ 16 июля 2010

Сделать require -ing файлы менее болезненными. Не спрашивайте меня, как, но, может быть, есть один файл, посвященный знанию задействованных путей, и просто избавьтесь от относительного пути, взятого из всего остального.

3 голосов
/ 25 февраля 2009

Хотелось бы, чтобы некоторые из менее используемых модулей стандартной библиотеки были документированы.

2 голосов
/ 25 февраля 2009

Было бы неплохо избавиться от искусственного различия между модулями и классами.

И модули, и классы являются пространствами имен. Модули также являются миксинами, а классы - нет. Классы также могут быть созданы, а модули - нет. Это различие не является необходимым. Просто избавьтесь от модулей и разрешите использовать классы как миксины.

Пример языка, на котором это работает: Newspeak .

1 голос
/ 25 февраля 2009

Сделайте Ruby полностью на основе отправки сообщений, избавьтесь от всего, что не является отправкой сообщения: локальные переменные, глобальные переменные, переменные экземпляра, переменные иерархии классов, константы, магические глобалы, магические константы, встроенные операторы, встроенные ключевые слова, даже литералы , См. Self , Ioke или Newspeak для невероятной силы и элегантности, которые это приобретает.

1 голос
/ 25 февраля 2009

Буду признателен за возможность установить ruby ​​1.9 в качестве RPM, а не использовать источник.

0 голосов
/ 25 февраля 2009

Заменить исключения в стиле Common Lisp Условия system.

0 голосов
/ 25 февраля 2009

Замените систему Mixin системой Traits .

0 голосов
/ 25 февраля 2009

Я бы хотел иметь поддержку статического метапрограммирования во время компиляции. Конвергентный язык программирования может быть хорошей отправной точкой.

0 голосов
/ 25 февраля 2009

Хотелось бы, чтобы они избавились от предопределенных переменных : $!, $&, $+ и т. Д.

...