KEEN SIDE успешно заменяет аналогичные продукты таких известных брендов, как Phoenix Contact, Weidmueller, Degson, Winstar, Hsuan Mao, KLS, G-NOR, Mean Well и др.
РадиоЛоцман - Все об электронике

Верните BASIC

Electronic Design

Я, наверное, шучу, да? Вовсе нет. Я просто предлагаю еще раз взглянуть на старый язык программирования, известный как BASIC. У языка есть много преимуществ, особенно в том, что его легко выучить и использовать. Теперь мы заменили его более сложными языками.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Верните 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 еще несколько лет, прежде чем он снова исчез.

Микроконтроллер BASIC Stamp компании Parallax.
Рисунок 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 это заняло бы у меня в два-четыре раза больше времени.

PICAXE - однокристальный микроконтроллер PIC с внутренним интерпретатором BASIC.
Рисунок 2. PICAXE – однокристальный микроконтроллер PIC с
внутренним интерпретатором BASIC.

Ах да, было бы упущением, если бы я не упомянул некогда популярный Intel 8052. По сути, это версия широко используемых встраиваемых контроллеров 8051. 8052 имел внутренний интерпретатор BASIC (Рисунок 3). Я использовал его в одном проекте. Не думаю, что он все еще доступен.

Микроконтроллер Intel 8052 с внутренним интерпретатором BASIC. (Фото с сайта http://www.retro-lab.nl)
Рисунок 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. Я еще не пробовал писать на нем, но программистам, похоже, он нравится, поскольку многие одноплатные компьютеры теперь поддерживают его хорошими библиотеками для встраиваемых приложений. Может быть, и нам стоит попробовать.

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: Bring Back BASIC

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения (только последние 20 сообщений):Полный вариант обсуждения »
  • Строго говоря, такая расширенная семантика оператора присваивания не является частью языка, а расширение конкретного компилятора. Которое кстати делает программу непереносимой.
  • Я тоже так думаю. Потому и возникает впечатление, что сравнивают не языки, а их компиляторы. А по поводу переносимости....есть основание полагать, что Renesas, объединившись с NEC, его традиции сохранил. Если так, то кому в голову придет переходить с МК самого крупного в мире по объёму продаж производителя микроконтроллеров на МК других изготовителей? От добра добра не ищут.
  • А чем бэйсик на BASCOM-AVR не устраивает?
  • PureBasic и BascomAVR лучший Бейсик!
  • Полное г. Для очень недалеких. Когда мы не позволяем, к примеру, своим детям есть пластилин, это считается нормальным. Но когда дети начинают изучать Бейсик, никто, ничего криминального в этом не видит. Бейсик - мерзость, подобная Ардуино, которая позволяет неофитам почувствовать себя электронщиками-программистами, хотя ни то, ни другое им недоступно по определению, хотя идиотские статейки на Хабре позволяют им себя такими почувствовать.
  • Бейсик - тупик, согласен. В школе учили Бейсик. В институте - Паскаль (начало 90х) и ассемблер для 8086. Потом я сам выучил Си и Object Pascal. Если бы начинал с нуля сейчас, то начал бы с Си. Причина тривиальна: Си - компиляторы существуют для любого МП, МК и вообще для всего на свете. Но я не профессиональный программист, если что, я - любитель ...
  • В этом то и загвоздка, для любителя не нужно полного набора компиляторов под все контроллеры, а под пару типов общераспространённых можно и на бейсике. Благо что в бейсике нет этих крючёчков, кавычек и прочих скобочек которыми так напичкан СИ!
  • Ничем сверхестественным Си не напичкан. Все "крючочки, кавычки и прочие скобочки" Ричи продумал, двусмысленностей не бывает, просто достаточно почитать внимательно документацию. В отличие от Бейсика, Си остается одинаковым, что для PC, что для PIC, что для AVR, что для ARM и в этом, IMHO, его сила. Я, как многие, начинал с Бейсика, на какой-то то-ли ЕС-ке, то-ли СМ-ке в институте, в кружке программирования, куда ходили после школы. Потом был программируемый калькулятор, а уж после Си, С++, разные ассемблеры, сейчас профессионально PHP и JavaScript, от электроники ушел, выгорел.
  • Нет тут тупика! PureBasic - лучший и самый удобный интерфейс/компилятор. Если нужен быстрый проект или калькулятор, лучше и проще нет. Сетевые функции, многопоточность, кроссплатформенный и в целом даже сохраняться не надо, работает как калькулятор Зная школьный Бейсик человек без особого труда сможет понять PureBasic. Рекомендую сперва опробовать, тут практичность на высоте Бейсик, он хороший. Тупики есть, не спорю, но те возможности которые даёт, просто колоссальные. Работают промышленные системы, разные инфраструктуры. Сам на Бейсике работал с QDEC, DMA, UART и т.п. То что на Си можно за месяц, на Бейсике возможно за неделю.
  • или крестик снять, или трусы одеть. о практичности, применительно к конкретной задаче, не спорю.
  • Если обсуждать именно BASCOM-AVR, то причём тут Бэйсик? По-моему, он больше на Паскаль похож.
  • На Паскаль???? В чем похожесть? Ни даже приблизительно.
  • Вы, IMHO вообще не в теме, раз эти концептуально разные ЯП сравнили. :-D
  • Синтаксически. Баском более "гуманоидно" выглядит, чем "обычный" Бэйсик (10.. 20.. 30.. и т.п.), и тем более, чем Си. (Ну или просто я всё с "первою любовью" сравниваю - с Паскалем). ( ͡° ͜ʖ ͡°)
  • Синтаксис Bascom AVR: [IMG]https://www.rlocman.ru/forum/attachment.php?attachmentid=45999&stc=1&d=1690459235[/IMG] Синтаксис PureBasic: [IMG]https://www.rlocman.ru/forum/attachment.php?attachmentid=45997&stc=1&d=1690459235[/IMG] Причём кто как пишет, у каждого свой стиль. Я в начале разработки придерживаюсь к синтаксису по проще.
  • я не профи, после того как познакомился с баском авр, в 2005 году, про С практически забыл
  • Так оно и есть, если человек видит себя выдающимся программистом зарабатывающем на своём умении писать на С то этот С нужен как воздух, а если для дома для семьи какую нибудь свистелку-перделку то ломать голову изучением С нет смысла, Баском самый удобный для начинающих!
  • Может для Вас и допустимо, что-то предназначенное исключительно "для дома, для семьи" назвать "свистелко-перделками", это Ваше личное право, просто просьба не обобщать Ваш быдлоподход к программированию, как таковому и к конструированию чего-либо вообще. ЯП вообще не важен, дело в подходе. Из-за таких ...чудаков, как Вы, "кулибиными" называют всех криворуких косоделов и дома горят из-за таких же.
  • +1000
  • Пишите PROMPT для ИИ, чтобы переписал любой исходный софт с C на BASIC или наоборот. Ахтунг: будьте внимательны :)))))
Полный вариант обсуждения »