Использовался ли когда-либо классический BASIC для разработки коммерческого программного обеспечения, и если да, то как преодолевались ограничения?


46

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

10 PRINT "ENTER RADIUS"
20 INPUT R
30 PRINT "CIRCUMFERENCE="; 2 * R * PI
40 PRINT "AGAIN?"
50 INPUT A$
60 IF A$="Y" THEN GOTO 10
70 END

Конечно, BASIC, основанный на номере строки, был склонен к созданию кода spagetti, также потому, что большинство диалектов BASIC пропускали структурные утверждения, такие как WHILE, делая все, кроме FOR-loop с IF, GOTOи GOSUB. Я говорю о базовых диалектах до 1991 года, когда появились QBASIC и Visual Basic .

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

Под «серьезным» я имею в виду:

  • Не игра (я знаю, что некоторые коммерческие игры были написаны на бейсике, например, Pimania )
  • Не бесплатная
  • Не тривиальный, то есть достаточно большой (скажем, не менее 1500 LOC )
  • Продано нескольким клиентам (не внутренняя разработка)
  • «Миссия критическая» - плюс

30
Were those BASIC dialects only used to teach aspiring programmes bad styleХм ... Это плохой стиль сейчас, но это было не тогда.
Яннис

9
Dartmough BASIC был разработан в 1964 году (и, что интересно, это был скомпилированный язык), эпоха, в которой доминировал FORTRAN.
Яннис

8
Предполагая, что вы пытаетесь вычислить окружность круга, стиль - не единственная плохая вещь, которую я вижу здесь.
Уильям Джексон

5
I'm seriously pissed off that this question was closed during the "History" contest.Хех, вы упустили прекрасную возможность получить дополнительные взгляды на вопрос, подняв его на Мете.
Яннис

15
99% всего написанного программного обеспечения составляют линейку бизнес- приложений, написанных собственными силами , и по определению делают их настолько серьезными, насколько это возможно.

Ответы:


48

Конечно. До того, как что-то случилось с Altair / MITS / SWTPC / Kim / Sinclair / Pet / RadioScrap / OSI / Apple, существовал восхитительный маленький аппарат, известный как IBM 5100 . У него был BASIC в ПЗУ , большой кассетный накопитель (или два), 8 КБ памяти. 24-строчный экран и принтер, все за жалкие 10 000 долларов США - на порядок дешевле, чем ваш обычный мини. Первоначально созданный для ученых ( APL в ПЗУ также был опцией), но затем несколько типов бухгалтерского учета обнаружили его и начали сходить с ума: каждый малый бизнес хотел такой. Конечно, со специальным программным обеспечением. Затем последовал 5110 с заменой ленточных накопителей на 8-дюймовые дискеты.

Любое коммерческое программное обеспечение? Галуны .

Можете ли вы сказать Главную книгу, платежную ведомость, кредиторскую задолженность, дебиторскую задолженность, управление запасами и выставление счетов? Я был там, сделал это - в бейсике. Коммунальные платежи, инвентарь для новых и подержанных автомобилей, вывоз мусора и планирование доставки напитков? Да - бейсик. Хотите отслеживать железную руду с шахт на поезда до кораблей ... бейсик. Все, что не было фальшпола, вероятно, было сделано в бейсике. Я имею в виду коммерчески. (Потому что RPG II не в счет ;-).

Как можно обойти ограничения?

Ну, первое, что вы сделали, это отправили клиента обратно в IBM за дополнительной памятью, потому что кто мог написать что-нибудь серьезное в 8 КБ? Вам просто нужно было 16. И два накопителя на магнитной ленте, если это возможно, потому что, если не считать теории автоматов, сортировка слиянием на одной ленте, ну, немного медленная.

Ой, прости - ты имел в виду ограничения Бейсика.

Ну, вы должны были очень осторожно управлять своими ресурсами - такими как номера строк - потому что вы не хотели исчерпывать их; настоящая боль в заднем плане состоит в том, чтобы перенумеровать целый раздел и вводить все обратно, без случайной потери одной или двух строк кода.

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

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

Строгое применение конвенций также помогло - вы знаете, как «вы должны всегда нацелены на GOSUB в строке комментария , который говорит , что эта процедура делает, и вы должны сделать то же самое для GOTO , когда это возможно , что такие вещи , как О, и.. Структурированной программирование , чуть позже - снова "по договоренности".

Некоторые даже пошли немного до крайности: OAOO , YAGNI , TSTTCPW , спаривание, рефакторинг беспощадно, такого рода вещи. Конечно, не по этим именам. (Смотрите также: Екклесиаст ;-)

Дни славы.


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

1
Голосуйте за ваш отличный ответ и ссылку на одну из лучших книг в Библии :)
Rocklan

46

Первым программным обеспечением, над которым я когда-либо работал, была программа GW-BASIC 8k line, которую компания написала в 80-х годах, чтобы использовать исчисление теплопередачи для определения размеров и оценки котельного оборудования. Хотя код был совершенно непонятным, он работал настолько хорошо, что его использовали уже более 20 лет.

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

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


Абсолютно это. - ^^^
Роберт Харви

30

Да, в Бейсике было много коммерческих продуктов и других «серьезных» разработок. Чтобы понять почему, вы должны понимать контекст 1970-х и 1980-х годов, когда BASIC вырос на мини- и микрокомпьютерах.

В то время техника была явно худой по сегодняшним меркам. Процессоры работали на частоте несколько МГц (часто гораздо меньше для микрокомпьютеров) и имели меньше памяти, чем было бы занято HTML-кодом, необходимым для отображения этой страницы. Если вы собирались развернуть продукт, вы должны были использовать имеющиеся в распоряжении инструменты, которые представляли собой либо голую сборку, либо на микрокомпьютерах интерпретатор BASIC, который поставлялся в ПЗУ (часто 16 КБ в адресном пространстве 64 КБ) с системой , Были доступны другие языки, но у многих не было всех структурированных функций, которые мы принимаем как должное. Это было во многом связано с тем фактом, что памяти было мало, * ни одна из них не была виртуальной, за исключением систем очень высокого класса, и ее обычно не хватало для компиляции более сложного языка. С такими ограниченными ресурсами "серьезно"

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

То, как мы обошли языковые недостатки, было просто: мы не увидели их таким образом и выполнили работу с тем, что было доступно. ANSI Minimal BASIC структурирован во многом подобно языку ассемблера, так как вы получаете большинство одинаковых разновидностей простых вызовов ветвления и подпрограмм, но вам нужно убедиться, что звезды правильно выровнены. Единственным исключением является FOR..NEXTконструкция, используемая для обеспечения зацикливания. По сути, если вы хотели разработать что-то на BASIC и хорошо поработать над этим, вы должны были спланировать и понять структуру ваших программ так же тщательно, как если бы вы писали их на ассемблере. Доступные средства отладки были очень примитивны, поэтому, по сути, вам нужно было действовать сообща, если вы хотите, чтобы ваши программы работали и поддерживались в обслуживании.

Да, тогда было много спагетти, но я еще не видел язык, на котором невозможно написать плохой код.


* Объем памяти в начале 1980-х годов составлял около 750-1000 долларов США за МБ. С учетом инфляции это составляет 1 200-2 200 долл. США в долларах 2010 года. В том же году стоимость мегабайта составила около 0,03 доллара США.


Я помню, как платил около 1000 долларов за плату памяти на 2 мегабайта EMS еще в 1980-х годах. Компьютер, в котором он был, комплект клонов ПК на базе NEC V20, стоил около 2500 долларов.
jfrankcarr

LOL, я помню, что в конце 80-х нам пришлось подписать контракт с президентом компании на покупку карты памяти 64 МБ для VAX. Честно говоря, это была ECC-память с двумя портами, но она стоила где-то на далекой стороне 30 тысяч долларов ...
TMN

Существовали бизнес-приложения, написанные на BASIC, некоторые из которых были проданы за деньги, и бизнес-приложение с горячей продажей, написанное на BASIC, для APPLE] [или CommodorePET, или Atari, или IBM, или микрокомпьютеры TI в начале 1980-х годов могли продавать 100 500 копий по цене около 100 долларов за единицу. Тогда не было ничего похожего на современный программный продукт, потому что тогда компьютеры были маленькими, а программное обеспечение для них было крошечным. Ни базовый, ни C, ни ассемблер, ни какой-либо другой современный язык не изменили бы это.
Уоррен П

В 80-х годах мейнфрейм нашего местного колледжа получил обновление с 10 МБ до 50 МБ. Конечно, 10 МБ были заполнены только наполовину, но они хотели иметь достаточно места для обозримого будущего ... Представьте себе, что жесткий диск всего 50 МБ для примерно 50-100 пользователей ... слишком много.
SoylentGray

22

Моя первая работа по программированию на 100%, в 1980-х годах, работала над пакетом учета вертикального рынка, который изначально был написан на GW-BASIC . Он был портирован на QuickBASIC 3.0, но сохранил почти все недостатки, связанные с ранними диалектами BASIC. Там были тонны GOTO и много плохой структуры. Было около дюжины модулей (инвентарь, бухгалтерская книга и т. Д.), И программа продавалась по цене от 1000 до 2500 долларов США за модуль плюс ежегодные контракты на поддержку. Выручка компании составляла от 15 до 25 миллионов долларов США в год.

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


12
Мне жаль вас, если, конечно, вы не попали на 15 мил.
Спенсер Рэтбун

@SpencerRathbun - К сожалению, мне заплатили довольно низкую зарплату, примерно равную примерно 35 тыс. Долларов сегодня.
jfrankcarr

Да, моя первая работа по программированию была в Quickbasic 3. Это был не порт, но не намного лучше. Основная часть была сделана кем-то, чьим «обучением» было чтение книги, поставляемой с компилятором. Критическое значение для клиентов, высокий четырехзначный ценник.
Лорен Печтел

5

Были ли крупные коммерческие проекты созданы на таком бейсикском диалекте?

На старых домашних компьютерах, таких как C64 или его предшественники, существовало много программ BASIC, а также некоторые коммерческие. Но «большой» был редко возможен, так как с <64 КБ ОЗУ писать «большие» программы на бейсике не так-то просто. Если вы хотели обойти ограничения машины, вам, как правило, приходилось покидать BASIC, «язык высокого уровня», и использовать ассемблер.

Таким образом, ответ на ваш вопрос «вероятно, не много», но не по причинам, которые вы имеете в виду (например, «слишком подвержен ошибкам / неструктурирован» и т. Д.).

Кстати: AFAIK знаменитый компилятор PETSpeed ​​BASIC был написан на BASIC (скомпилирован сам, конечно).


4
Я хотел бы отметить, что это важно! = Большое, особенно в те дни. Сегодня коммерческие программы, как правило, имеют все мыслимые возможности, но это не всегда так.
Жанна Пиндар

@DocBrown Были способы обойти ограничение памяти в 64 КБ и большие приложения. Многие большие приложения существовали больше как наборы приложений со многими модулями.
maple_shaft

Я помню несколько ранних коммерческих игр на C64, написанных полностью или частично на бейсике. «Рокс 64» один.
Алан Б

«Telengard», я думаю, что это называется, RPG-игра для C64, была похожа на 8k строк Basic. Было весело настраивать источник, чтобы сделать себя героем.
Нил Н

@maple_shaft: "Много?" Особенно "Много основных приложений?" У меня сложилось впечатление, что их было всего несколько.
Док Браун

5

Вся бухгалтерская строка Peachtree Software (дебиторская, кредиторская задолженность и т. Д.) Была написана (и все еще может быть, насколько мне известно) на бейсике. Когда IBM PC был впервые выпущен, я провел много долгих вечерних отладок и исправлений их кода для клиентов, которые купили IBM Personal Computer и пакеты Peachtree, чтобы сделать книги для своего малого бизнеса.


5

Моя первая работа была в 1981 году, программирование Apple IIs в Basic в офисе Price Waterhouse (Pre Coopers) в их консалтинговой компании в Белфасте, Ирландия. Команда из двух / трех человек разработала и установила системы на клиентах, включая книжный магазин и бойню. Это была система финансового моделирования, фактически очень сложная электронная таблица Visicalc (50 листов, 3000 переменных), превращенная в большую базовую программу. Потребовалось два дня на системе Apple II с 4 дисками, чтобы обработать недельную производительность на бойне. Немного быстрее, чем их ручная система, которая занимала две человеко-недели на каждую неделю.

Затем мы перешли на машины Act Sirius, снова программируя на Basic (Microsoft 8KB Basic), которые были установлены на клиентах.

У Basic были номера строк, но был набор инструментов, который мог бы перенумеровать программы. Поскольку я был только что из Uni, где я изучил Pascal, я пытался писать как можно более структурированным образом (насколько это возможно в Basic), но конечно использовались Gotos и Gosubs.

Позже я запрограммировал в 1983 году на Dec Rainbow, который использовал CBasic, неуклюжий скомпилированный базовый.


4

Было много коммерческого программного обеспечения, написанного с использованием BASIC-PLUS для систем PDP-11 . Я помню, как видел пакеты статистического анализа и учета, а также изрядное количество высококачественных лабораторных средств автоматизации (я не уверен, насколько они были «коммерческими». Они, как правило, включались как часть пакета инструментов, так что я не знаю, если они были проданы отдельно.). ISTR BASIC также был одним из основных языков для разработки приложений HP 2000 , и это был основной (возможно, единственный) язык, поддерживаемый для их ранних рабочих станций серии HP 9800 .


Поддерживала ли HP2000 разработку в чем-то еще? У меня сложилось впечатление, что HP2000 был жестко запрограммирован для запуска только пользовательских программ в HP Timeshare BASIC [некоторые или весь код системы управления файлами и пользователями мог быть написан с использованием других языков или машинного кода].
суперкат

3

Ранние продукты баз данных DOS Alpha Software (около 1985 г.) «Менеджер баз данных I», «Менеджер баз данных II» (DMB2) и «Альфа Три» были написаны на языке BASIC и скомпилированы с помощью компилятора IBM BASIC. Я работал на «Альфе Три». Весь пользовательский интерфейс был на бейсике, но в нем был основной компонент TSR (завершить и остаться резидентом), написанный на C и ASM, с которым бейсик связывался через прерывания. Номера строк и разрывы строк занимали ценное пространство сегментов, поэтому код был ужасно сжат и нечитаем. Мы постоянно использовали общие переменные и заменяли модули. Трудно было сделать работу. Однако мы все еще старались быть логичными в отношении организации, поэтому наша строковая библиотека была на малом количестве 60000 строк. Обычная операция, такая как обрезка строки, будет выглядеть так:

$ S = $ INS; GOSUB 60210; $ INS = $ S;

Мы перешли на все C вскоре после выхода "Alpha Three".


1
Поскольку все переменные были глобальными, и вам также пришлось злоупотреблять ими для передачи параметров, как вы управляли своим кодом, чтобы избежать случайной перезаписи уже используемой переменной?
user281377

Это было основано на соглашении.
Пит Лайонс

3

В начале 1980-х годов ВВС США приобрели кучу автобусных компьютеров Cromemco S100 для использования летающими эскадронами в качестве инструмента планирования полета.

Программное обеспечение для планирования полета было разработано с использованием BASIC пилотами и штурманами ВВС в Центре тактической авиации, расположенном в Eglin AFB, Флорида .

Что касается работы с «очевидными недостатками» BASIC, мы действительно не знали ничего лучшего. В тот момент просто предоставление физического доступа к компьютеру для летного экипажа казалось невероятным скачком технологий.


2

Я считаю, что оригинальная Ultima на Apple] [была написана на Applesoft Basic.

DEC использовала свою версию BASIC для большей части RSTS и других операционных систем, которые она разработала.


Была шутка, что RSTS / E написан на бейсике, но на самом деле это не так. Многие утилиты sysadmin, поставляемые с ОС, были написаны на бейсике.
Дон Роби

2

Единственный страх, который я испытывал, будучи программистом QuickBasic, 20 лет назад, это сообщение «Недостаточно памяти». Но это только сделало меня лучшим программистом! Я научился писать компактный и серьезный код.

Я использовал QuickBasic для промышленного программирования. В реальном мире (на фабриках) вы не можете сказать своему боссу: «Полугодие будет написано на С»; Вы можете только сказать: «Да, босс, он будет готов на следующей неделе». Да, BASIC был практичным и быстрым решением в реальном мире. Не С или Паскаль.

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

Одна тема, которую я хочу упомянуть:

мы все думаем, что новые методы программирования очень полезны . Но в реальной жизни (промышленности) большинство машин в наши дни работают на современных ПЛК. Программы, как правило, пишутся в релейном программировании, которое в миллион раз более примитивно, чем GW-BASIC. Как программист для ПЛК, я могу четко сказать: я хотел бы заменить это примитивное лестничное программирование языком высокого уровня как GW-BASIC или даже QuickBasic. (MEGA-BASIC - это диалект, который использовался для этой цели в прошлом).

В конце концов, что делает большинство машин? интерпретация входов и настройка выходов. Для этого вам не нужен C / Assembly, и вам не нужна Java. Вам крайне необходим QuickBASIC для создания поддерживаемого кода.


1

Абсолютно да.

Давным-давно я работал в компании, которая продала системы на многие миллионы долларов, главным образом, для автодилерской индустрии. В этих системах использовалось программное обеспечение BASIC для 16-разрядных производных мини-компьютеров HP 21MX (до эпохи успешных 16-разрядных микропроцессоров). Это была компания среднего размера с десятками программистов Basic. Они использовали старомодный диалект BASIC, который требовал номеров строк и позволял только 286 возможных имен переменных, и все же решения обеспечивали весь бухгалтерский учет и инвентарь для предприятий среднего бизнеса. Группа R & D также написала ассемблеры, компиляторы и даже аппаратные эмуляторы для Basic, чтобы помочь начать разработку оборудования следующего поколения.

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


1

На самом деле, большинство новых автодилеров в США сегодня используют программы BASIC, чтобы процитировать вам варианты финансирования и создавать те длинные расчетные ведомости, которые вы получаете при покупке автомобиля. Программы написаны в архаичных мини-компьютерных версиях BASIC, работающих под эмуляцией на современном оборудовании. Есть привитые веб-интерфейсы, но его BASIC говорит с tty внизу.

Приблизительно в 1980 году универсальное страхование жизни стало мгновенным увлечением в бизнесе страхования жизни. Каждая компания хотела сразу продать ее, и она требовала, чтобы значения счетов рассчитывались для каждого полиса каждый месяц, используя очень сложную комбинацию процентов и актуарного долга. Поскольку крупные проекты в отделах обработки данных заняли бы около года назад, многие компании начали производство с таким количеством яблок, компьютеров и / или Tandy TRS-80, сколько требовалось, выполняя более сложную версию того, что было на мэйнфреймах примерно 20 лет. Практически все они были запрограммированы на бейсике. В основном BASIC использовал короткую точность с плавающей запятой, поэтому миллионы клиентов теряли при округлении.

У JPL была версия BASIC, которую он также широко использовал около 35 лет назад. Он назывался MBASIC, где M обозначал управление, но он использовался, среди прочего, для программирования космических кораблей.


1

Очень популярная система розничной торговли 4680/4690 от IBM была написана на диалекте IBM 4680 BASIC . Я работал над этой системой с 1998 по 2002 год для крупного британского ритейлера.

Эта система была очень популярна, согласно вики-статье, в 2005 году она по-прежнему занимала 12% доли рынка. Сегодня система по-прежнему набирает силу, и шансы на то, что большинство людей в западном мире косвенным образом использовали эту систему на базе BASIC, были косвенными. неделю.


0

Посмотрите на PICK или любую другую базу данных MultiValue. Все они полагаются на DataBasic в качестве основного или единственного языка и широко используются на рынке. Мы до сих пор используем систему, которую я написал для сравнительного анализа закупок более 20 лет назад. Запускает до 50 тысяч строк кода.


0

В 80-х годах в Индии была компания Softek, которая создала собственные версии Wordstar, dBase и Lotus 1-2-3. Другим их продуктом был BASIC-компилятор.

Используя свой собственный CBASIC, они создали очень полный пакет учета двойной записи под названием SIMS-FA (Финансовый учет Softek).


0

Любые? Да. Много? Нет. Образовательное программное обеспечение и учет.

Базовая эра: ~ 1970-1990

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

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

В 1970-х, если бы обычная компания могла балансировать счета или регистрировать производственные показатели на компьютере без бюджета корпорации, это было бы отличным шагом по сравнению с ведением бухгалтерского учета, и если бы вы могли получить диаграмму, это было бы фантастически.

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

И то, и другое можно было бы сделать с помощью языка переводчика. Поскольку компьютеры могли хранить больше данных, сложность требовала компиляторов, потому что процессоры отстали от закона Мура в производительности перетасовки необработанных данных с 1977 по 1987 год.

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

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

Паскаль был главным соперником здесь. Раньше почти все такие были написаны на ассемблере. Наконец C пришел из Unix и начал использоваться на ПК.


0

Еще во времена Commmodore 64 часть игры Gunship была написана на бейсике. Вы даже можете редактировать код, чтобы ваш вертолет мог быть экипирован каждый раз, когда вы приземлились.


Я знаю, что некоторые (коммерческие) игры были полностью написаны на Basic, но я исключил игры по причине: игры - это то, что вы делаете, если они забавные. Легче жить с ограничениями, когда «набор функций» полностью зависит от дизайнера, и обслуживание не является проблемой.
user281377

0

BBC BASIC был создан на основе BBC Micro , выпущенной в Великобритании в 1981 году. К моменту выхода на пятую версию, реализованную на компьютерах Acorn с ОС RISC на базе ARM, он считался самой быстрой интерпретацией BASIC в мире. Его синтаксис был усовершенствован для своего времени, включая структурные ключевые слова, такие как CASE и WHILE, а также функции и процедуры. (Он даже включал ассемблер, первоначально для 6502 , а затем для ARM в версиях ОС RISC .)

Многие коммерческие настольные приложения были написаны с использованием этого, возможно, в значительной степени потому, что он предоставлял удобный доступ к вызовам SWI, которые использовала кооперативная система WIMP. Это было достаточно быстро, что даже были написаны некоторые аркадные игры - Nevryon , клон R-Type, я особенно помню, глядя на источник.


На самом деле, у меня был и Acorn Electron (уменьшенная версия BBC), и Acorn Archimedes (а также Cambridge Z88, в котором использовался тот же BASIC); и да, Бейсик в этих компьютерах был немного лучше, чем в большинстве других домашних компьютеров. Но поскольку в BASIC также включена возможность использовать встроенный ассемблер, может быть трудно отличить чистые BASIC-программы от смешанных, если вы просто посмотрите на исходный код.
user281377

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

0

Старые языки сценариев базы данных xBase (как в dBase II , dBase III + , Clipper и т. Д.) Были довольно тесно связаны с различными нестандартными BASIC того времени.

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


Steve314: эти языки xBase намного опередили домашний компьютер BASIC. Я написал много кода в Clipper, и я помню функции, локальные переменные, операторы цикла и многое другое, чего не хватает в бейсике домашнего компьютера 80-х годов. Яннис: QuickBasic появился в 1985 году.
user281377

@ user281377 - BBC Basic в 1981 году был структурирован и имел процедуры, хотя для него по-прежнему требовались номера строк. Стандарт ANSI basic (1984) включал в себя блочные структуры sub(функцию / процедуру с параметрами и локальными переменными) и многое другое и сделал номера строк необязательными. Borland Turbo Basic 1985 года обладал большинством стандартных базовых функций IIRC. Я использовал GFA Basic на Atari ST честно - тоже структурированный, процедурный, без номеров строк. В 80-х годах было множество структурированных процедурных основ.
Steve314

@ user281377 - xBase имел очевидные преимущества с точки зрения обработки базы данных и форм ввода данных, выполняя действия, которые не знал ни один Basic, но я также мог легко указать, что STOS имеет очевидные преимущества для отображения спрайтов и чтения джойстиков.
Steve314

@ Steve314: Я знаю, что были диалекты BASIC с хорошими функциями, но я специально спрашиваю о других BASIC. Те, где GOTO и GOSUB были все, что вы имели. Где каждая переменная была глобальной, а одномерный массив был настолько большим, насколько вы могли бы получить. Clipper был действительно продвинутым диалектом xBASE; честно говоря, я не могу вспомнить, сколько дополнительных функций Clipper было доступно и в dBASE III, но, по крайней мере, в нем были правильные циклы выполнения.
user281377

1
@ user281377 В оригинальной версии ответа было упомянуто Visual Basic (откуда вы
взяли QuickBasic

-2

У большинства микросхем были только базовые (ROM) или инструменты разработки на ассемблере. Для не критичных к скорости программ BASIC использовался для многих коммерческих приложений, а также для большинства внутренних проектов компании. Даже когда появился CP / M, единственным реальным улучшением была возможность обрабатывать большие проекты и использовать базовый компилятор Microsoft (BASCOM). Мой собственный опыт ранней микро разработки был следующим:

~ 1980 - Microsoft ROM основной на Nascom 2 с небольшим ассемблером. Разработка коммерческих приложений включала в себя программу возврата НДС (налога с продаж) и программу управления процессом (обе в BASIC).

198? - Все еще использую BASIC, но теперь у меня также есть Pascal (BLS - предшественник Borland Pascal ).

Середина 1980-х годов - доминирование ПК и появление первых компиляторов Си ( Hisoft и Mix). БЕЙСИК идет в упадок (возрожденный позже в форме зомби, конечно, MS с Visual Basic ). GW-BASIC был очень популярен в качестве внутреннего инструмента разработки. Многочисленные коммерческие пакеты (бухгалтерский учет, контроль запасов и т. Д.) Все еще были написаны на бейсике.

Конец 1980-х - C становится основным языком разработки (после выхода MSC 5 в 1986 году?). Microsoft и Borland доминируют в течение следующих нескольких лет ...


1
как это отвечает на вопрос?
комнат

он отвечает на вопрос, говоря: «Да, базовый широко использовался для коммерческой разработки в последних 70-х и начале 80-х». Что касается преодоления очевидных недостатков, имейте в виду, что программисты не видели эти недостатки в то время. Базовым является полный Turing, чтобы умные программисты могли делать все, что им было нужно (основными ограничениями были, конечно, скорость, память, память и т. Д., Но эти ограничения распространялись на все разработки в то время). Не уверен, почему так много отрицательных голосов, только пытался ответить на вопрос.

эти две программы, о которых вы упомянули, были ли они проданы нескольким клиентам (не собственной разработкой) ? Можете ли вы поделиться ссылками, где можно узнать больше об этом?
комнат

К сожалению, многие приложения (включая те, которые я тоже упоминал) были утеряны в глубине веков (не было ни веб-сетей, ни даже BBS для распространения в то время). Я потерял кассеты, на которых они были остановлены, но они были: 1) не играми, 2) не бесплатными, 3) не тривиальными и 4) критическими. Я не могу сказать, что они были проданы многим клиентам, приложение «Контоал» было для конкретного клиента, приложение с НДС было перепродано несколько раз. Все еще раздраженный о понижающих голосах (сборщики нитей или shoud я говорю сборщики сборов :-)).
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.