Вопрос

Я начал программировать на Basic на ZX81, тогда БАСИКА, GW-БАЗОВЫЙ, и QBasic ( Базовый ).Я перешел на C (Ах, Turbo C 3.1, я тебя почти не знал ...)

Когда я начал работать с микроконтроллерами, я регрессировал с БАЗОВЫЙ Штамп из Параллакса.Тем не менее, BASIC является / был потрясающим, потому что его было так легко понять и так трудно ошибиться.В конце концов я перешел на ассемблер и C, потому что мне нужна была дополнительная мощность (скорость, емкость, ресурсы и т.д.), Но я знаю, что если бы планка была намного выше, многие люди никогда бы не занялись программированием микроконтроллеров.

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

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

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

Это было полезно?

Решение

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

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

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

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

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

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

Другие советы

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

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

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

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

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

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

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

У меня все еще есть мое Дартмутское базовое руководство 1965 года выпуска.Я не тоскую по старым добрым временам.

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

http://jumentum.sourceforge.net/

это базовый инструмент с открытым исходным кодом для микроконтроллеров

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

http://elua.berlios.de/

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

PS:БАЗОВЫЕ варианты, такие как PBASIC, имеют очень мало общего, скажем, с Visual BASIC, несмотря на сходство именования.Они разошлись очень разными путями.

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

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

Я не очень хорошо знаю Python, но из того, что я прочитал, он такой же простой, мощный и строгий, как Lua.

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

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

Так что я бы просто позволил Basic спокойно выйти на пенсию...:-П

PS.:Почему он держится?Возможно, Microsoft это не чуждо...(VB, VBA, VBScript ...)
Существует также множество диалектов (REALbasic, DarkBasic и т.д.) С определенной аудиторией.

Рискуя показаться двумя стариками в креслах-качалках, позвольте мне ворчливо сказать, что "Современные дети не ценят ОСНОВЫ", а затем парадоксально заявить: "Они не знают, насколько хорошо они это усвоили".

ОСНОВЫ наибольшей силой были всегда его понятность.Это было то, что люди могли получить.Это долгое время игнорировалось учеными и разработчиками языка.

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

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

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

Короче говоря, я не надо думаю, вам следует вложить свои усилия в БАЗОВЫЙ интерпретатор.

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top