С возможностью встраивания Lua и Python, есть ли место для Basic? - PullRequest
6 голосов
/ 28 октября 2008

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

Когда я начал работать с микроконтроллерами, я регрессировал с помощью BASIC Stamp от Parallax. Тем не менее, BASIC является / был потрясающим, потому что это было так легко понять и так сложно сделать ошибку. В конце концов я перешел к сборке и C, потому что мне требовалась дополнительная мощность (скорость, емкость, ресурсы и т. Д.), Но я знаю, что если бы планка была намного выше, многие люди никогда бы не стали программировать микроконтроллеры.

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

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

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

Ответы [ 9 ]

10 голосов
/ 28 октября 2008

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

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

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

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

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

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

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

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

6 голосов
/ 29 октября 2008

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

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

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

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

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

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

2 голосов
/ 25 ноября 2008

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

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

2 голосов
/ 09 ноября 2008

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

http://jumentum.sourceforge.net/

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

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

http://elua.berlios.de/

1 голос
/ 21 декабря 2008

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

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

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

1 голос
/ 29 октября 2008

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

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

1 голос
/ 28 октября 2008

Имея риск походить на двух старичков на креслах-качалках, позвольте мне сердито сказать, что «дети сегодня не ценят бейсик», а затем парадоксально сказать: «Они не знают, насколько они хороши».

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

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

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

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

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

1 голос
/ 28 октября 2008

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

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

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

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

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

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

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

0 голосов
/ 28 октября 2008

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

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

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

...