Звичайно. До того, як відбувалися речі Altair / MITS / SWTPC / Kim / Sinclair / Pet / RadioScrap / OSI / Apple, виникла чудова маленька машина, відома як IBM 5100 . Він мав BASIC в ПЗУ , великий накопичувач касети (або два), 8 КБ пам'яті. 24-рядковий екран та принтер - все це на 10 000 доларів США - на порядок дешевше, ніж ваш типовий міні. Спочатку побудований для вчених ( APL в ПЗУ теж був варіантом), але потім кілька типів бухгалтерського обліку виявили це і почали манія: кожен малий бізнес хотів одного. З звичайним програмним забезпеченням, звичайно. 5110 слідував за цим, із стрічковими накопичувачами замінили 8-дюймові дискети.
Будь-яке комерційне програмне забезпечення? Галони .
Чи можете ви сказати загальну книгу, нарахування заробітної плати, кредиторську заборгованість, дебіторську заборгованість, контроль запасів та виставлення рахунків? Я там був, робив це - в ОСНОВІ. Комунальні платежі, нові та вживані інвентаризації автомобілів, підбирання сміттєвозів та розклад доставки напоїв? Yup - ОСНОВНИЙ. Хочете відслідковувати залізну руду з шахт на поїзди на кораблі ... ОСНОВНІ. Все, що не було підняте підлогу, швидше за все, було зроблено в БАЗІ. Я маю на увазі комерційно. (Тому що RPG II не рахується ;-).
Як обходилися обмеження?
Що ж, перше, що ви зробили - це повернути клієнта назад до IBM для отримання більшої пам’яті, бо хто міг написати щось серйозне в 8 Кб? Вам просто довелося мати 16. І два накопичувачі, якщо це можливо, тому що теорія автоматів убік, сортування злиття на одній стрічці - це, мабуть, повільно.
О, вибачте - ви мали на увазі обмеження BASIC.
Ну, вам довелося керувати своїми ресурсами досить обережно - такі речі, як номери рядків, - тому що ви не хотіли закінчувати їх; справжній біль ззаду доведеться перенумерувати цілий розділ і ввести все це назад, не випадково втрачаючи рядок або два коду.
Ні, просто жартую. У нас насправді не було цієї проблеми, поки не з'явилися домашні комп’ютери з інтерпретатором BASIC, який не міг зробити перерахунок самим собою.
Ми також використовували модульність - де ви викликали нову програму, запускали її, поки вона не вийшла, і поверталися назад до програми виклику. Gosub на стероїди (тому що у вас є більше пам’яті для використання), але швидше повільніше (тому що машина зайняла деякий час, щоб знайти програму на стрічці та завантажити її, а потім перемотайте назад і знайдіть оригінальну програму та завантажте це назад ...). Дуже схоже на fork та exec, але без виделки, лише краще, тому що було поділено весь простір пам’яті.
Надійне використання конвенцій також допомогло - ви знаєте, на кшталт "Ви завжди повинні орієнтуватися на GOSUB у рядку коментарів, в якому йдеться про те, що ця рутина робить, і ви повинні зробити те саме для GOTO, коли це можливо. Ось так і структуровано. програмування , трохи пізніше - знову "за умовами".
Деякі навіть трохи пішли до крайності: OAOO , YAGNI , TSTTCPW , парування, рефактор нещадно, такі речі. Не за тими іменами, звичайно. (Див. Також: Еклезіяст ;-)
Дні слави.
Were those BASIC dialects only used to teach aspiring programmes bad style
Гм ... Це поганий стиль зараз, але тоді не було.