К 2017 г. продано 12,5 млн. единиц Raspberry Pi
, а количество оригинальных проектов, созданных на его основе, исчисляется десятками тысяч. По состоянию на 2019 г. популярность устройства не снижается, разработчик выпускает обновленные версии с актуальным железом, а база проектов регулярно пополняется интересными новинками.
Это устройство напоминает Ардуино, но с уклоном в программирование. Если Arduino больше подходит для любителей поработать руками, то Raspberry Pi в большей степени – головоломка для мозга. На Хабре, да и на сайте разработчиков полно интересных проектов, основу которых составляет именно «малина». Это и датчики разного типа, и роботы, и аналоги планшетов (iPad, конечно, не заменит, но эксперимент отличный). Из ограничений здесь – только ваша фантазия и скилл в программировании.
Популярность сделала свое дело – под Raspberry Pi адаптированы практически все популярные языки программирования. КПД у всех разный и сегодня мы предлагаем не концентрироваться на каком-то одном проекте, а коротко пройтись по языкам, пригодным для работы с «малиной».
Один из основных языков Raspberry Pi. Создавался как язык для детей, а его разработчики использовали принцип конструктора Лего. Создание программы на Scratch напоминает составление блок-схемы. Программы состоят из отдельных графических блоков, каждый подписан, в числе поддерживаемых есть и русский язык.
Подходит для первых шагов в освоении IoT. Язык набирает популярность, а его исходники включены в Raspbian.
Один из базовых языков для работы с «малиной». Если ваш проект предполагает работу с серверными системами, например, в составе IoT, то C – идеальный выбор. Он позволяет отказаться от машинных команд и вывести производительность на максимум. Сама Raspbian – Unix система и C в ней базовый язык.
Если проект предусматривает работу с «яблочными устройствами», придется использовать Objective-C. Но и это проблемой не станет, компилятор без проблем понимает обычный C код.
Создавая проекты на Raspberry Pi работать придется в 2 направлениях:
С++ подходит под обе задачи. Язык обеспечивает безопасность, надежность и скорость работы – то, что нужно для Raspberry Pi.
Если выберете этот язык, то работать придется по такой схеме:
Создавать код сразу на Raspbian будет сложно, пока что полноценную среду для этого не создали. Критическим недостатком это назвать нельзя, концепция Java (возможность запуска на любой платформе) позволяет создавать приложения для «малины» без ограничения функционала.
Изначально создавался как «язык для непрограммистов». Нечто, обладающее функционалом Java, но с более низким входным порогом. Задача решена, и мы получили легкий и функциональный язык для создания веб- и десктопных приложений. В работе пригодится платформа Node JS и сторонние библиотеки, в частности jQuery.
Отсылка к этому языку скрыта в названии самого устройства, Pi указывает именно на Python. Для новичков этот язык – идеальный старт. Его синтаксис несложный, код получается простой и удобочитаемый, используются стандартные английские слова, запомнить их несложно.
Даже среда разработки на Raspberry Pi (IDLE) работает на этом языке. На сайте разработчиков есть развернутое руководство по Python, также в сети полно исходников по Python Games.
Языку уже больше 30 лет, и он до сих пор востребован. Из особенностей отметим громадное количество модулей CPAN и возможности по работе с текстом. Лучше всего Perl характеризует его символ – верблюд. Код получается может и не слишком красивым, зато он надежен и подходит для решения сложных задач.
В последние годы его популярность постепенно снижается, но на Raspberry Pi этой тенденции пока нет. Идеально подходит для сбора информации, задачу облегчает масса разных дополнений, расширений. Работать с кодом просто, наблюдается снижение быстродействия по сравнению, например, с C, но для «малины» это некритично.
Эту связку рекомендуем тем, кто решил на основе «малины» создать виртуальную оболочку для смарт дома (Raspberry Pi подходит не только для развлекательных проектов). В Raspberry Pi встроен браузер Epiphany, значит нам необходим веб язык. Решение таких задач с помощью CSS3 и HTML5 максимально экономичное и быстрое.
Компания Ericsson создавала его для создания сложных распределенных вычислительных систем. Применяется главным образом для решения нетривиальных задач в духе создания параллельных высоконагруженных распределенных систем (телекоммуникационная сфера), масштабирующихся распределенных баз данных.
Прикладной язык с такими задачами не справится, но Erlang может. В случае с «малиной» подойдет только людям со стажем в программировании.
Выбор языка для работы с Raspberry Pi должен проводиться с учетом того, какую задачу собираетесь решить. Для детской игрушки нелогично будет использовать Erlang, для умного дома лучше выбрать CSS3+HTML, чем Scratch. В остальном перед вами полная свобода действий, никто не загоняет вас в жесткие рамки. Занимайтесь творчеством, прокачивайте скилл в программировании и обязательно делитесь результатами своих экспериментов с Raspberry Pi.