Статьи

Идеи по улучшению языка Ruby в 2016 году

Прогресс-бар Загрузка с текстом: 2016 голов

Эта статья была рецензирована Джеймсом Хиббардом и Адамом Робертсом . Спасибо всем рецензентам SitePoint за то, что сделали контент SitePoint как можно лучше!

Счастливого 2016 года, вы все! Как и многие из вас (я предполагаю), я всегда испытываю чувство tabula rasa после Нового года. Все возможно! Пришло время принимать решения и цели на предстоящий год, время думать о том, как я собираюсь улучшаться. После написания моей ретроспективной статьи 2015 года у меня возникла гениальная идея написать статью для Руби на 2016 год. Когда я собирал воедино то, к чему должен стремиться Руби, я понял, что мое мнение по этому вопросу слишком узкое. Кроме того, я не эксперт в духе некоторых более известных рубистов. Я Джо Шмо Рубист. Я работаю с этим ежедневно, я занимаюсь этим долгое время, но есть другие, которые гораздо более квалифицированы, и есть другие, у которых есть другие точки зрения.

Итак, я спросил сообщество , надеясь получить хорошее представление о том, что, по мнению Rubyists, должно быть в 2016 году для языка. Вот что я получил обратно:

перекатывается

Хммм. ОК, подумал, попробую другое сообщество . Конечно, в Твиттере есть некоторые мнения. Вот что я получил обратно:

чириканье сверчков

Хммм. Хорошо, подумал я, в третий раз это очарование . Могу поспорить, что информационный бюллетень SitePoint Ruby что-то сгенерирует. Вот что я получил обратно:

звук ветра

Хорошо. Думаю, вопрос не такой интересный, как я думал. Или, может быть, мои коллеги по Rubyists просто не хотят делать мою работу за меня. Я знаю, что у меня нет другого выбора, кроме как подвергнуть вас своим мыслям о Ruby в 2016 году. Возможно, мое мнение будет настолько оскорбительным / вдохновляющим, что в комментариях возникнут другие мысли.

разнообразие

Позвольте мне быть честным здесь. Я не из тех людей, которые заявляют о недостатке разнообразия в нашей отрасли. Я читал об этом, но я ничего не делаю . Разнообразие — это одна из тех поляризационных тем, которых я часто избегаю, потому что я белый и мужчина, и поэтому у меня нет проблем. Я сочувствую (насколько я могу) другим, затем я возвращаюсь к работе. Я качаю головой, рассказывая о притеснениях, и возвращаюсь к работе. Я передаю ссылку на замечательную статью о разнообразии, написанную кем-то, на кого она влияет, и я возвращаюсь к работе. Я принимаю на себя вину за то, что родился с белой ложкой во рту, не делая ее хуже. Затем я встречаю кого-то или читаю что-то, что говорит мне, что я являюсь частью проблемы. БОЛЬШАЯ часть этого. Я злюсь и защищаюсь и … возвращаюсь к работе.

Мне потребовалось много времени, чтобы осознать единственное, что я действительно знаю о разнообразии: я не знаю и не могу понять, как это влияет на других. Я могу сказать «Вау, это должно отстой», но я не могу ЗНАТЬ. Как таковое, говорить кому-то просто «усердно работать», и все будет хорошо, нечестно. Расстраиваться, когда кто-то расстраивается, и использование мной «парней» в качестве общего термина в канале Slack — не честно. Я не могу быть на их месте, поэтому я не могу понять проблему.

Это здорово, Гленн. Вы заявили о проблеме, но что мы можем сделать с точки зрения языка программирования?

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

1. Учредители и лидеры, присоединяйтесь

Мы все знаем, кто являются лидерами Ruby, поэтому я не хочу «называть имена». Может быть, требуется всего лишь потребовать, чтобы конференции имели Кодекс поведения для того, чтобы его «наказывал» «язык». известные ораторы отказываются говорить, если не имеется CoC. Я думаю, что политика разнообразия может быть чем-то, что может создать и поддерживать Ruby Together . Дело в том, что у нас есть лидеры и известные люди на языке. Вовлечение этих людей имеет большое значение для привлечения разнообразия к классу.

2. Соберите лучшие данные

Для улучшения в любой области должен быть способ измерения результатов. Как мы можем измерить улучшение в разнообразии. Опять же, я думаю, что конференции — отличное место для начала. Создать выездные опросы, которые быстро и задать вопросы по этим вопросам. Нет недостатка в людях, которые могли бы задать вопросы, поэтому собранные данные имеют смысл.

3. Расширьте свою сеть

Из того, что я могу сказать, во многом причина того, что разнообразие — это проблема, заключается в возможности. Или, может быть, это происходит из-за отсутствия возможностей. Для программирования требуются дорогостоящие инструменты: компьютер, подключение к Интернету, книги, время и т. Д. Эти ресурсы не так популярны для детей, не говорящих по-английски и / или имеющих более низкий доход. Я сосредотачиваюсь на детях, потому что большинство знакомых мне программистов приобрело свою страсть к этому в детстве. Хотя есть организации, которые предлагают некоторые варианты, я думаю, что язык мог бы продвинуть еще некоторые возможности. Например, если сообщество может создать учебный план для Ruby, который можно администрировать удаленно (например, Google Hangout), это позволит ресурсам Ruby обучать этому учебному плану из любой точки мира. Мы могли бы даже записать «уроки» и сделать их доступными для скачивания. Тогда это просто вопрос продвижения в школы, которые могли бы его использовать. Это мысль.

4. Сознательно подумайте об этом

Нанимать технические ресурсы сложно. Нанимать разнообразные технические ресурсы очень сложно. В моей компании у нас есть хранилище вопросов для каждого языка, создание которого заняло много времени. Мы публикуем нашу работу на нашем сайте и через различные службы найма. Все вещи, которые делают большинство компаний. Тем не менее, мы также спонсируем внеконкурсные программы, такие как Night Shift, чтобы открыть обучение в реальном мире для студентов и других, которые хотят больше узнать о цифровых разработках. Руби нужно обдумать, как он может «привлечь» в свои ряды более разнообразных кодеров.

5. Создайте культуру, которая поддерживает разнообразие

Этот изумительный. Мне кажется, сложно создать культуру вокруг языка. Особенно в современном мире полиглота. Однако есть шаги, которые можно предпринять:

  • Требование Кодекса поведения для языка и его событий
  • Выпустить политику, которая не терпит преследования
  • Превозносите тех, кто тянется и создает возможность для людей изучать Ruby
  • «Привлекать» людей из разных слоев общества, чтобы помочь в создании этой политики и культуры

Вот и все. Я думаю, что улучшение разнообразия в Ruby — большая цель на 2016 год. Я знаю, что сказал, что это не влияет на меня, но у меня есть три девочки. Мне бы хотелось думать, что, если они решат пойти по пути программирования / технологии, мир, который их встречает, — это мир поддержки и уважения.

Улучшить язык

Duh. «Замороженная строка», появившаяся в 2.3 и 3.0, является примером грядущих улучшений. Мне нравится, когда Руби исследует функциональный ландшафт для улучшений и дополнений к языку. Это должно продолжаться. Кроме того, проблема параллелизма висит над Ruby как призрак. Я говорил это раньше и скажу еще раз: МРТ нуждается в лучшем ответе, чем GIL. Тем не менее, я также не достаточно умен, чтобы создать этот ответ, но я знаю, что есть люди, которые есть .

А как насчет изменений, которые еще не находятся в стадии разработки? Ruby должен оставаться верным своим корням и продолжать радовать разработчиков, но сейчас? В прошлом году Адам Хокинс написал замечательный пост о «следующей версии» сообщества Ruby. Он хорошо продуман и содержит много моментов о том, как мы можем изменить наш подход к кодированию для создания лучших артефактов. Возможно, Руби следует взглянуть на принципы в этой статье и начать разрабатывать язык для поддержки, а не поощрения их принятия. Это такие принципы, как «Предпочитайте простоту, а не удобство», «Предпочитайте небольшие библиотеки» и «Минимизируйте и проверяйте свои зависимости». Есть вещи, которые мы должны делать, но иногда Ruby делает слишком легким написание красивого кода или использование 75 гемов, которые в конечном итоге приведут нас в Ад зависимостей.

Я хотел бы видеть некоторые инструменты в ядре, которые, например, просматривают мои зависимости и говорят мне, когда у меня их слишком много. Еще одна идея — добавить что-то вроде Rubocop и оставить язык позади. Go имеет gofmt Наконец, я не знаю ни одного разработчика, который бы любил Monkey Patching. Ограничение на уровне языка, которое делает исправления для обезьян более явными и кричит на вас, чтобы вы знали, что это происходит, возможно, стоит рассмотреть. Удаление способности к патчу обезьяны, вероятно, излишне, но оно укусило нас всех и может абсолютно отпугнуть новых Rubyists.

Как насчет того, чтобы посмотреть на изменения в других устоявшихся языках для идей? Мне действительно нравится большая часть ES2016, происходящая в мире javascript. Такие вещи, как Destructuring Assignment и Decorators , значительно повышают производительность, не запутывая язык.

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

Вот к Великому 2016

Независимо от того, куда идет язык, я знаю, что 2016 год будет отличным для Ruby. Это по-прежнему язык, который делает программистов счастливыми, и это немалый подвиг. Я взволнован еще одним годом с Руби и наблюдением за его изменениями в постоянно меняющемся технологическом ландшафте.

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