С lua и Python embeddable, есть ли место для Basic?

Я начал программировать в Basic на для ZX81, потом BASICA, GW-BASIC и QBasic. Я перешел на C (Ах, Turbo C 3.1, я едва знал вас...)

когда я начал работать в микроконтроллерах, я регрессировал с основной штамп от параллакса. Тем не менее, BASIC is/was awesome, потому что это было так легко понять и так трудно сделать ошибку. Я перешел к сборке и C в конце концов, потому что мне нужен был дополнительная сила (скорость, емкость, ресурсы, etc.), но я знаю, что если бы планка была намного выше, многие люди никогда не стали бы программировать микроконтроллеры.

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

  • каковы преимущества BASIC перед другими языками, если таковые имеются?
  • почему он еще работает?
  • если я решу сделать плату микроконтроллера общего назначения с интерпретатором, есть ли причина сделать версию BASIC?

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

9 ответов


как архитектура, основная претензия к славе BASIC заключается в том, что вы можете сделать базовые интерпретаторы очень маленькими - всего несколько КБ. В дни DG Nova это была победа, поскольку вы могли использовать такие системы, как Business BASIC, для создания многопользовательского приложения на машине с 64K ОЗУ (или даже меньше).

BASIC (VB в частности) является устаревшей системой и имеет большую существующую кодовую базу. Возможно, VB действительно язык (некоторые сказали бы тонкую оболочку над COM), который имеет базовый синтаксис. В наши дни я вижу мало причин, чтобы держать язык вокруг, кроме знакомства с ним людей и поддерживать существующую кодовую базу. Я, конечно, не буду выступать за новое развитие в нем (обратите внимание, что VB.Net на самом деле не является базовым, а просто имеет синтаксис VB-like. Система типов не сломана так, как это было у VB.)

Что is отсутствует в вычислительном мире является соответствующей язык, который легко узнать и возиться с и имеет ум-доля в основная разработка приложений. Я вырос в дни 8-битных машин, и входной барьер для программирования на этих системах был очень низким. Архитектура машин была очень проста, и вы могли легко научиться программировать и писать более или менее релевантные приложения на этих машинах.

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

Это приводит к проблеме языка, который легко для детей, чтобы узнать, но все еще позволяет им писать соответствующие программы (или даже игр) что они действительно могут захотеть. Она также должна широко восприниматься в качестве актуальной.

самое близкое, что я могу придумать, это Python. Это не единственный пример языка такого типа, но это тот, у которого больше всего разума, и (IMO) восприятие релевантности необходимо играть в этой нише. Это также один из самых простых языков для изучения, которые я испытал (из 30 или около того, которые я использовал на протяжении многих лет).


[Это может показаться более негативным, чем на самом деле. Я не говорю, что Basic-это корень всех зол, другие. Я говорю, что это наследие, которое мы можем себе позволить оставить.]

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

" каковы, если таковые имеются, преимущества Basic перед другими языками?" нет, на самом деле.

" почему он все еще здесь?" две причины: (1) Microsoft, (2) все ИТ-отделы, которые начали делать VB и теперь имеют миллионы строк устаревшего кода VB.

"многие другие языки считаются мертвыми..." да. Basic есть вдоль боковых COBOL, PL / I и RPG как наследие, которое иногда имеет больше стоимости, чем значение. Но из-за политики" если он не сломан, не исправляйте его " big IT, там они сидят, всасывая ресурсы, которые могли бы легко заменить его чем-то меньшим, проще и дешевле в обслуживании. За исключением того, что это не "провалилось" - это просто непропорционально дорого.

30-летний COBOL-ужасная ситуация для переработки. Начиная с 2016 года мы будем смотреть на 30-летнюю MS Basic, которую мы просто не можем понять, не хотим жить без нее и не можем решить, как заменять.

"но basic просто держится" похоже, что некоторые люди любят Basic. Другие видят в этом еще один плохо разработанный язык; его преимущества рано выходят на рынок и поддерживаются огромными поставщиками (IBM, изначально). Плохой дизайн, ранний выход на рынок только оставляет нам наследие, с которым мы будем страдать в течение десятилетий.

У меня все еще есть мое 1965-издание Dartmouth Basic manual. Я не тоскую по старым добрым временам.


Почему бы не дать Jumentum попробовать и посмотреть, как это работает для вас?

http://jumentum.sourceforge.net/

Это базовый с открытым исходным кодом для micrcontrollers

проект elua также lua для микроконтроллеров

http://elua.berlios.de/


BASIC сохраняется, особенно в реализации штампа, потому что он ниже, чем большинство других очень простых в освоении языков программирования. Для большинства встроенных базовых реализаций основные инструкции сопоставляются непосредственно с одиночными или группами машинных инструкций с очень небольшими накладными расходами. Те же программы, написанные на языках "более высокого уровня", таких как Lua или Python, будут работать намного медленнее на тех же микроконтроллерах.

PS: основные варианты, такие как PBASIC, имеют очень мало общий с, скажем, Visual BASIC, несмотря на сходство именования. Они разошлись в разные стороны.


хороший вопрос...

в основном (sic!), У меня нет ответа. Я бы сказал, что Lua очень легко выучить, вероятно, так же легко, как Basic (который был одним из моих первых языков, я использовал диалекты на многих 8-битных компьютерах...), но более мощный (позволяя OO или функциональные стили и даже смешивая их) и как-то строже (нет Гото...).

Я не знаю хорошо Python, но из того, что я прочитал, это так же легко, мощно и строго, чем Луа.

кроме того, оба "стандартизированы" де-факто, т. е. нет диалектов (кроме различных версий), в отличие от Basic, который имеет много вариантов.

также тщательно ВМ, эффективные, (в основном) bugless. Если вы создаете свой собственный интерпретатор, вы должны либо взять существующую виртуальную машину и создать байт-код для нее из базового источника, либо сделать свой собственный. Конечно, весело, но много времени и склонны к ошибкам...

Итак, я бы просто позволил Basic иметь хороший отставка... :- P

PS. Почему он держится? Возможно, Microsoft не чужда этому... (VB, VBA, VBScript...)
Есть также много диалектов вокруг (RealBasic, DarkBasic и т. д.), с некоторой аудиторией.


рискуя показаться двумя старожилами в креслах-качалках, позвольте мне ворчливо сказать ,что" дети сегодня не ценят BASIC", а затем парадоксально сказать: "они не знают, насколько хорошо у них это есть."

основы наибольшая сила была всегда его усвояемость. Это было что-то, что люди могли get. Это долгое время игнорировалось учеными и разработчиками языков.

когда вы говорите о желании реализовать BASIC, я предполагаю, что вы не говоря о линии-нумерованной базовой, но структурированной форме. Проблема в том, что как только вы начинаете переходить к структурированному программированию-функциям, " почему не могу Я только что получил это место?', п. -- действительно становится непонятно, какие преимущества, если таковые имеются, у BASIC будет, скажем, над Python.

кроме того, одна из причин, по которой BASIC было "так легко получить право", заключалась в том, что в те дни библиотеки не были так важны, как сегодня. Библиотеки подразумевают структурированные, если нет объектно-ориентированное программирование, поэтому вы снова находитесь в ситуации, когда более современный динамический язык сценариев "соответствует" реальности того, что люди делают сегодня лучше.

Если реальный вопрос: "Ну, я хочу реализовать интерпретатор, и поэтому он сводится к возврату инвестиций", то это становится проблемой грамматики, которую на самом деле легко реализовать. Я бы предположил, что BASIC на самом деле не имеет так много преимуществ в этом отношении (если вы действительно do вернуться к номера строк и очень ограниченная грамматика).

Короче, я не думаю, вы должны инвестировать свои усилия в базовом интерпретаторе.


Ну, эти люди, кажется, думают, что не только basic все еще имеет место в мобильном пространстве, но и что они могут зарабатывать на этом деньги:

http://www.nsbasic.com/symbian/


Я тоже начал с ZX81. Но как Тони Хоара сказал, программирование на BASIC похоже на попытку сделать длинное деление с использованием римских цифр.

множество других языков считается мертвым, но продолжает висит на.

к сожалению да. Я виню в этом Билла Гейтса...Бейсик лежал на носилках, священник произносил за него последние обряды, а потом Мисс принесла его обратно, как оспу.


Я использовал для программирования на BASIC в дни QBasic. У QBASIC были подпрограммы, функции, структуры (они назывались типами), и я думаю, что это все. Теперь это кажется ограниченным по сравнению со всеми функциями, которые есть у Python - OO, lambdas, metaclasses, generators, list comprehensions, просто чтобы назвать несколько из моей головы. Но эта простота, я думаю, есть сила основы. Если вы смотрите на простой встраиваемый язык, я бы поспорил, что QBasic будет быстрее и легче понять. И процедурный langauge, вероятно, более чем достаточен для большинства приложений типа встраивания/сценариев.

Я бы сказал, что самая важная причина, по которой BASIC все еще существует, - это Visual Basic. Долгое время в 90-х годах VB был единственным способом написать код GUIs, COM и DB для Windows, не попадая в один из тарпов C++ Turing. [Возможно, Delphi тоже был хорошим вариантом, но, к сожалению, он никогда не стал таким популярным, как VB]. Я думаю, что это из-за всего этого кода VB и VBA, который все еще используется и поддерживается, что BASIC все еще не мертв.

тем не менее, я бы сказал, что есть довольно хорошее обоснование для написания базового интерпретатора (возможно, даже компилятора с использованием LLVM или чего-то подобного) для BASIC сегодня. Вы получите чистый, простой в использовании и быстрый язык, если вы реализуете что-то похожее на QBasic. Вам не придется решать какие-либо вопросы языкового дизайна, и лучшая часть-люди уже будут знать ваш язык.