Вам все еще нужно писать код для создания крутых машин и устройств?

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

Подводя итоги, я заметил, что изучение Си было обрядом посвящения для многих студентов в 1970-х годах. Сегодня мы обычно не думаем о C как о языке высокого уровня. Но в те дни, задолго до появления Java и Python, C считался высокоуровневым, особенно по сравнению с языками ассемблера.

В какой-то степени C был написан с целью поднять UNIX из операционной системы машинного уровня до чего-то вроде универсальной платформы для широкого спектра программных приложений. С момента своего создания в 1972 году C был общим языком UNIX, что, по сути, означает, что он присутствует повсюду.

C и C ++ лежат в основе Arduino, проекта с открытым исходным кодом для создания устройств и оборудования для самостоятельного изготовления. Код Arduino - это, по сути, C и C ++, - говорит Массимо Банци, соучредитель проекта Arduino. Прямо сейчас вы можете писать код Arduino на 8-битном микроконтроллере, а затем на процессоре ARM. Можно сразу перейти к «Самсунг Артик, который по сути представляет собой Linux-машину с 8-ядерным процессором. Мы можем запустить Arduino поверх Windows 10. "

Изучение программного обеспечения с помощью оборудования

Как это происходит в реальном мире? Допустим, вы аэрокосмический инженер, и вас просят улучшить функциональность исполнительного механизма, который перемещает поверхность управления, например, элерон на крыле самолета. Вы можете начать с использования компонентов из набора Arduino для создания недорогого прототипа привода.

После того, как ваш прототип заработал, вы можете повозиться с ним и оптимизировать его производительность. «Если вы инженер, вы можете взять свою идею и очень быстро использовать Arduino для создания прототипов», - говорит Банзи. «Итак, вы можете начать с Arduino, а затем решить повторно реализовать код с помощью другого инструмента. Но вы также можете полностью отказаться от использования Arduino. Или вы можете использовать компилятор C для переноса кода на оборудование, которое не запускает Arduino, но будет работать на C или C ++ ».

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

«Если бы это был мой проект, я бы написал свой код Arduino для инструмента, а затем использовал бы чистый файл C или C ++ для своего алгоритма», - говорит Банзи. «Когда мой проект заработает и я смогу настроить алгоритм, я просто возьму алгоритм и вставлю его в инструмент».

Непредвиденные последствия

В космическом смысле Arduino выполняет видение создателей C, которые предвидели мир портативных программных приложений. Однако они не ожидали появления оборудования с открытым исходным кодом, движения производителей и культуры производителей.

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

«C - это латынь языков программирования», - говорит Птах Пират Данбар, хакер с открытым исходным кодом и профессор компьютерных наук. Он отмечает, что на многие широко используемые языки высокого уровня C влияет через синтаксис, функцию или и то, и другое. «Изучение C дает разработчикам гибкость ума, необходимую для легкого и гибкого перехода между языками, на которых он основан».

«Это как научиться управлять рычагом переключения передач»

Эдвард Аморосо, главный исполнительный директор TAG Cyber ​​и бывший директор по информационной безопасности AT&T, говорит, что знание C удобно, но больше не обязательно. «Вы можете ехать на машине в Буффало и не знать, как работает двигатель», - говорит Аморосо. «Я думаю, что аналогия верна и для программного обеспечения. С другой стороны, если что-то пойдет не так или возникнет какая-то странная проблема, и вы не понимаете основную логику программного и аппаратного обеспечения, вам может быть труднее решить проблему ».

«Если вы программируете на« голом железе », то полезно знать C. Это все равно что научиться управлять рычагом переключения передач - это дает вам больше контроля», - говорит Аморосо.

Аморосо говорит, что скучает по старым временам, когда студенты действительно учились писать код. «Сегодня, к моему большому сожалению, молодых людей учат программировать, используя среды программирования, в которых они перемещают виджеты и создают небольшие игры. По сути, они добавляют логику к виджетам. Я не говорю, что это обязательно вредно, но я бы предпочел увидеть, как они сначала узнают, как работает компьютер, а затем перейдут к написанию программного обеспечения. Но сегодня в школах так не принято ».

Если вы хотите прочитать отчет полностью, вы можете скачать бесплатную копию здесь с веб-сайта O’Reilly. Мне интересно услышать ваше мнение о текущем состоянии C и других старых языков программирования.

Спасибо, что прочитали этот рассказ! Если вам понравилось, нажмите кнопку с сердечком чуть ниже. Будет много значить для меня, и это поможет другим людям увидеть историю.