Конечно. До того, как что-то случилось с 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 , спаривание, рефакторинг беспощадно, такого рода вещи. Конечно, не по этим именам. (Смотрите также: Екклесиаст ;-)
Дни славы.
Were those BASIC dialects only used to teach aspiring programmes bad style
Хм ... Это плохой стиль сейчас, но это было не тогда.