Electronic Design
Я, наверное, шучу, да? Вовсе нет. Я просто предлагаю еще раз взглянуть на старый язык программирования, известный как BASIC. У языка есть много преимуществ, особенно в том, что его легко выучить и использовать. Теперь мы заменили его более сложными языками.
Так или иначе, в течение последних нескольких лет я имел дело с множеством микроконтроллеров, практически все из которых используют C или какие-либо его разновидности. Мне удалось выучить C и написать несколько простых программ, но я ненавижу его. Я все время вспоминаю, как много писал на BASIC. Он делал то, что я хотел, и был относительно прост в использовании.
Конечно, BASIC – не лучший язык. По сути, это интерпретируемый язык, который часто недостаточно быстр для некоторых приложений. Но компилируемая версия BASIC обычно решает эту проблему. Язык работает и делает то, что должен делать.
Я выучил BASIC еще на заре персональных компьютеров – это почти все, что тогда у нас было. Многие из нас рано освоили BASIC, потому что он был в чем-то похож на FORTRAN, который многие из нас изучали в колледже на больших ЭВМ. Мы писали короткие программы и длинные программы, и бизнес персональных компьютеров реально взлетел. Я думаю, что с BASIC это случилось бы быстрее, поскольку он был прост в освоении и использовании, и потому многие приняли его. Об этом были написаны десятки, а может быть, и сотни книг.
На смену BASIC пришли другие языки. Помните Pascal? Он пришел, а через несколько лет ушел. Затем от разработчиков UNIX пришел C, и всех, казалось, потянуло к нему. Таким образом, C стал де-факто языком программирования сегодняшнего дня. Практически любой программист микроконтроллеров изучил и принял C, и теперь его преподают большинство колледжей. Рескрипт гласит: «Вы выучите C несмотря ни на что». Я тоже выучил, но мне он не понравился.
Трансформации BASIC
Несколько лет назад компания Parallax представила BASIC Stamp – микроконтроллер на основе PIC со встроенным интерпретатором BASIC (Рисунок 1). Parallax предложил BASIC Stamp – небольшой, дешевый и простой одноплатный микрокомпьютер со своей собственной разновидностью BASIC, оптимизированной для встраиваемых проектов. Я подсел на них и сделал много полезных проектов. Stamp поддерживал жизнь BASIC еще несколько лет, прежде чем он снова исчез.
![]() |
||
Рисунок 1. | Микроконтроллер BASIC Stamp компании Parallax. |
Microsoft внесла вклад в поддержание жизни BASIC своим Visual BASIC. Компания по-прежнему предлагает целую линейку продуктов BASIC. Visual BASIC преподавали в колледже, когда я был профессором. А затем он пропал. Большинство из тех, кто должен был заниматься программированием, сразу перешли на C, и, кажется, сегодня он все еще доминирует.
Во время недавнего переезда я вновь обнаружил коробку, полную старых плат BASIC Stamp. Я вытащил их и снова начал играть с ними. Я сделал несколько новых проектов после того, как освежил в памяти основные команды и процедуры BASIC. Это было весело.
Примерно в то же время я открыл для себя PICAXE. Это однокристальный микроконтроллер PIC, в который зашит интерпретатор BASIC (Рисунок 2). На персональном компьютере вы готовите программу на BASIC, а затем загружаете программу в 8-выводной корпусе DIP микроконтроллера PIC. Такой подход позволяет делать небольшие проекты с помощью однокристального микроконтроллера. Как и Stamp, PICAXE позволяет быстро и легко создавать встраиваемые проекты с минимальными затратами сил и материальных средств. При использовании C это заняло бы у меня в два-четыре раза больше времени.
![]() |
||
Рисунок 2. | PICAXE – однокристальный микроконтроллер PIC с внутренним интерпретатором BASIC. |
Ах да, было бы упущением, если бы я не упомянул некогда популярный Intel 8052. По сути, это версия широко используемых встраиваемых контроллеров 8051. 8052 имел внутренний интерпретатор BASIC (Рисунок 3). Я использовал его в одном проекте. Не думаю, что он все еще доступен.
![]() |
||
Рисунок 3. | Микроконтроллер Intel 8052 с внутренним интерпретатором BASIC. (Фото с сайта http://www.retro-lab.nl) |
Я хочу сказать, что BASIC до сих пор существует и весьма полезен. Тем, кто все еще изучает программирование, я бы посоветовал: побалуйте себя упрощенным языком и получите удовольствие, учась использовать его. Если до сих пор вы откладывали обучение программированию, BASIC – отличный выбор для начала. Большая часть того, что вы узнаете из программирования на BASIC, применима к C или другим языкам.
Скáчки языков
Однажды я ненадолго сошел с прямого пути, отвлекшись на Arduino. Как вы, наверное, знаете, его язык по сути такой же, как C или C++, со всеми обычными точками с запятой и фигурными скобками. Но я никогда не был достаточно компетентен, чтобы заинтересоваться использованием популярного Arduino.
Я полагаю, что большинство языков по-прежнему доступны всем, кому они нужны. Например, что случилось с FORTH? Или с одним из других любимых мною языков – LISP. Я занимался программированием на LISP еще на заре движения искусственного интеллекта. LISP – странный язык, но с ним можно делать удивительные вещи.
Думаю, мне стоит упомянуть Java. Каким бы распространенным он ни был, я так и не выучил его. Одно время я изучал HTML, но никогда особо им не пользовался. Я отдаю себе отчет, что продолжаю возвращаться к BASIC во многом потому, что когда-то у меня это хорошо получалось, и теперь я знаю, как решать поставленные задачи, используя его на встраиваемом контроллере.
Я не профессиональный программист, и не собираюсь менять чье-либо мнение этими похвалами в адрес BASIC. Настоящие программисты и инженеры, вероятно, ненавидят BASIC и порочат его всякий раз, когда могут, хотя я уверен, что более половины из них в ранние годы изучали программирование на BASIC.
Если не BASIC, то что?
Что, если бы кто-то спросил меня: «Представьте, BASIC больше не доступен, а C вы ненавидите. Какой язык вы бы использовали?». Я ответил бы: «ASSEMBLER». Да-да, язык ассемблера. Он нравится мне, поскольку я могу видеть или, по крайней мере, представлять себе, что происходит внутри чипа. Он ближе к железу, чем что-либо еще.
Сначала я изучал ассемблер на оригинальном Intel 8080, а позже много поработал с Motorola/Freescale 68HC11. Совсем недавно я использовал ассемблер в проекте на MSP430. Если мне нужно запрограммировать микроконтроллер, я предпочитаю ассемблер, хотя иногда это занимает у меня немного больше времени. Я знаю, большинство из вас думают, что я спятил, если простому предпочитаю сложное, например ассемблер. Кстати, а вы когда-нибудь пробовали его?
Одним словом, я до сих пор вожусь с проектами на BASIC и ассемблере. Однако я сохранил способность к непредубежденным суждениям. Возможно, в конце концов, я откажусь от всего этого ретро после прочтения недавнего обзора IEEE.
Какой язык сейчас самый популярный?
Время от времени издаваемый IEEE журнал Spectrum делает довольно подробные обзоры того, на чем нравится программировать членам IEEE. В рейтинге 55 разных языков. Вверху списка находятся Java и C – на втором и третьем местах. А номер один – Python. Удивлены? Да, Python – новый фаворит среди программистов и инженеров, с большим отрывом ушедший от других языков. И теперь это популярный курс в колледжах; Python хороший язык для изучения программирования, очень похожий на BASIC. Я еще не пробовал писать на нем, но программистам, похоже, он нравится, поскольку многие одноплатные компьютеры теперь поддерживают его хорошими библиотеками для встраиваемых приложений. Может быть, и нам стоит попробовать.