Czy klasyczny BASIC był kiedykolwiek używany do tworzenia oprogramowania komercyjnego, a jeśli tak, to w jaki sposób udało się pokonać ograniczenia?

46

Wielu z nas, w tym ja, zaczęło swoje programowanie od programów napisanych na komputerach domowych , coś w tym rodzaju

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

Oczywiście, linia numer oparty BASIC był skłonny do tworzenia spaghetti code, również dlatego, że większość dialektów PODSTAWOWE brakowało wypowiedzi strukturalne podoba WHILE, robią wszystko, ale FOR-loop z IF, GOTOi GOSUB. Mówię o dialektach BASIC przed 1991 r., Kiedy pojawiły się QBASIC i Visual Basic .

Chociaż dialekty BASIC mogły promować zły styl wśród początkujących programistów, czy w takim dialekcie BASIC powstały większe projekty komercyjne? Jeśli tak, to w jaki sposób udało im się żyć i obejść oczywiste niedociągnięcia?

Przez „poważny” mam na myśli:

  • To nie gra (wiem, że niektóre gry komercyjne zostały napisane w języku BASIC, na przykład Pimania )
  • Nie darmowy
  • Nie trywialne, czyli dość duże (powiedzmy: co najmniej 1500 LOC )
  • Sprzedany kilku klientom (nie projekt wewnętrzny)
  • „Misja krytyczna” to plus
281377
źródło
30
Were those BASIC dialects only used to teach aspiring programmes bad styleHm ... To jest zły styl teraz ale nie było wtedy.
yannis
9
Dartmough BASIC został zaprojektowany w 1964 roku (i, co ciekawe, był to język skompilowany), epokę zdominowaną przez FORTRAN.
yannis
8
Zakładając, że próbujesz obliczyć obwód koła, styl nie jest jedyną złą rzeczą, którą tu widzę.
William Jackson
5
I'm seriously pissed off that this question was closed during the "History" contest.Heh, przegapiłeś świetną okazję, aby uzyskać dodatkowe poglądy na to pytanie, podnosząc je na Meta.
yannis
15
99% całego napisanego oprogramowania to aplikacje biznesowe napisane w domu , a z definicji czyni je tak poważnymi, jak tylko się da.

Odpowiedzi:

48

Pewnie. Zanim wydarzyły się Altair / MITS / SWTPC / Kim / Sinclair / Pet / RadioScrap / OSI / Apple, istniała cudowna mała maszyna znana jako IBM 5100 . Miał BASIC w pamięci ROM , duży napęd kasetowy (lub dwa), 8 KB pamięci. 24-liniowy ekran i drukarka - wszystko to za mizerne 10 000 USD - o rząd wielkości tańsze niż typowe mini. Pierwotnie zbudowany dla naukowców ( APL w pamięci ROM był również opcją), ale potem odkrył go kilka rodzajów rachunkowości i zaczął szaleństwo: każda mała firma chciała takiego. Oczywiście z niestandardowym oprogramowaniem. 5110 poszło za tym, a napędy taśm zostały zastąpione 8-calowymi dyskietkami.

Jakieś komercyjne oprogramowanie? Galony .

Czy możesz powiedzieć księgi głównej, listy płac, zobowiązań, należności, kontroli zapasów i fakturowania? Byłem tam, zrobiłem to - w języku BASIC. Rachunki za media, spis nowych i używanych samochodów, odbiór śmieci i harmonogram dostaw napojów? Tak - BASIC. Chcesz śledzić rudę żelaza z kopalni przez pociągi na statki ... BASIC. Wszystko, co nie było podniesione podłogi, prawdopodobnie robiono w języku BASIC. To znaczy komercyjnie. (Ponieważ RPG II się nie liczy ;-).

Jak obejść ograniczenia?

Cóż, pierwszą rzeczą, którą zrobiłeś, było odesłanie klienta z powrotem do IBM, aby uzyskać więcej pamięci, bo kto mógłby napisać coś poważnego w 8 KB? Trzeba było po prostu mieć 16. A jeśli to możliwe, dwa napędy taśm, ponieważ pomijając teorię automatów, sortowanie po scaleniu na jednej taśmie jest trochę powolne.

Och, przepraszam - miałeś na myśli ograniczenia języka BASIC.

Cóż, musiałeś bardzo ostrożnie zarządzać swoimi zasobami - takimi jak numery linii - ponieważ nie chciałeś ich zabraknąć; prawdziwy ból w tyle, aby zmienić numerację całej sekcji i wpisać ją z powrotem, bez przypadkowej utraty wiersza lub dwóch kodów.

Nie - żartuję. Tak naprawdę nie mieliśmy tego problemu, dopóki nie pojawiły się komputery domowe z interpreterem w języku BASIC, który sam nie byłby w stanie samodzielnie numerować.

Użyliśmy również modułowości - w przypadku gdy wywołałeś nowy program, uruchomiłeś go, aż zakończył się i powrócił do programu wywołującego. Gosub na sterydach (ponieważ masz więcej pamięci do użycia), ale o wiele wolniejszy (ponieważ zajęło trochę czasu, aby maszyna znalazła program na taśmie i załadowała go, a następnie przewinęła i znalazła oryginalny program i załadowała go plecy...). Zupełnie jak widelec i exec, ale bez widelca, tylko lepiej, ponieważ cała przestrzeń pamięci była współdzielona.

Rygorystyczne stosowanie konwencji również pomogło - wiesz, na przykład: „MUSISZ zawsze celować w GOSUB w wierszu komentarza, który mówi, co robi ta procedura, i POWINIENEŚ zrobić to samo dla GOTO, jeśli to możliwe. Takie rzeczy. Och, i zorganizowane programowanie , nieco później - znowu „zgodnie z konwencją”.

Niektórzy posunęli się nawet do skrajności: OAOO , YAGNI , TSTTCPW , parowanie, bezlitośnie refaktoryzacja , tego typu rzeczy. Oczywiście nie pod tymi nazwami. (Zobacz także: Kaznodzieje ;-)

Dni chwały.

Jim Sawyer
źródło
4
Spośród wszystkich dobrych odpowiedzi wybieram tę, ponieważ nie ma ona jeszcze zbyt wiele miłości (entuzjastów), a także dlatego, że podkreśla użycie BASIC do komercyjnego oprogramowania na mikrokomputerach przed powstaniem komputerów domowych.
user281377
1
Do góry głosuj na swoją świetną odpowiedź i odniesienie do jednej z najlepszych książek w Biblii :)
Rocklan
46

Pierwszym oprogramowaniem, nad którym kiedykolwiek pracowałem, był 8-liniowy program GW-BASIC, który firma napisała w latach 80-tych, aby wykorzystać rachunek przenikania ciepła do doboru i wyceny urządzeń kotłowych. Chociaż kod był całkowicie niezrozumiały, udało mu się działać tak dobrze, że używano go od ponad 20 lat.

To była siła BASIC-a, że ​​inżynier mechanik z podręcznikiem referencyjnym mógł faktycznie napisać oprogramowanie użyteczne dla jakości (w tym czasie). Przed BASIC-em i powszechnym występowaniem komputerów PC coś takiego byłoby niespotykane. Będziesz musiał zatrudnić zespół inżynierów komputerowych i ewentualnie operatorów komputerowych do programowania i pracy ze współużytkowanym komputerem mainframe. Wszystko to byłoby zbyt skomplikowane, aby typowy inżynier mechanik mógł je odebrać w krótkim czasie.

Z pewnością więc BASIC był bardzo przydatny poza entuzjastami komputerów domowych, dlatego wiele firm po raz pierwszy wprowadziło do świata pisania niestandardowego oprogramowania we własnej firmie w przystępnej cenie bez zespołów ekspertów.

wałek klonowy
źródło
Absolutnie to. - ^^^
Robert Harvey
30

Tak, w BASIC wykonano wiele produktów komercyjnych i innych „poważnych” prac rozwojowych. Aby zrozumieć, dlaczego, musisz zrozumieć kontekst lat 70. i 80., kiedy BASIC rozwijał się na mini- i mikrokomputerach.

W tamtym czasie maszyneria była pozytywnie chuda jak na dzisiejsze standardy. Procesory były taktowane z częstotliwością kilku MHz (często znacznie mniejszą dla mikrokomputerów) i miały mniej pamięci niż zajmowałby HTML potrzebny do renderowania tej strony. Jeśli zamierzałeś wdrożyć produkt, musiałeś użyć dostępnych narzędzi, którym był albo goły montaż lub, na mikrokomputerach, interpreter języka BASIC dostarczany w pamięci ROM (często 16 KB w przestrzeni adresowej 64 KB) z systemem . Dostępne były inne języki, ale wiele z nich nie posiadało wszystkich ustrukturyzowanych funkcji, które uważamy za oczywiste. Miało to wiele wspólnego z faktem, że pamięci jest mało, * żadna z nich nie była wirtualna, z wyjątkiem bardzo zaawansowanych systemów i zwykle nie było jej wystarczająco dużo, aby pomieścić kompilator dla bardziej wyrafinowanego języka. Przy tak ograniczonych zasobach „poważny”

Twój argument, że twórcy wczesnych komputerów domowych powinni byli wiedzieć lepiej i zapewnić język strukturalny, po prostu nie działa w tym kontekście. Po prostu nie stało się tak z dostępną technologią w cenie, jaką ludzie mogliby znieść.

To, jak poradziliśmy sobie z niedociągnięciami językowymi, było proste: nie widzieliśmy ich w ten sposób i wykonaliśmy pracę z tego, co było dostępne. ANSI Minimal BASIC ma strukturę podobną do języka asemblerowego, ponieważ otrzymujesz większość tych samych smaków prostych wywołań rozgałęzień i podprogramów, ale to od Ciebie zależy, czy gwiazdy będą odpowiednio wyrównane. Jedynym wyjątkiem jest FOR..NEXTkonstrukcja używana do zapewnienia pętli. Zasadniczo, jeśli chcesz opracować coś w BASIC-ie i dobrze go wykonać, musisz zaplanować i zrozumieć strukturę swoich programów tak dokładnie, jak piszesz je w asemblerze. Dostępne narzędzia do debugowania były bardzo prymitywne, więc w gruncie rzeczy musiałeś działać razem, jeśli chcesz, aby programy działały i były łatwe w utrzymaniu.

Tak, wtedy było dużo spaghetti, ale jeszcze nie widziałem języka, w którym nie można napisać złego kodu.


* Na początku lat 80. pamięć działała około 750–1 000 USD na MB. Po skorygowaniu o inflację, to 1600-2200 USD w 2010 roku. W tym samym roku koszt za megabajt wynosił około 0,03 USD.

Blrfl
źródło
Pamiętam, jak zapłaciłem około 1000 USD za 2- megabajtową kartę pamięci EMS w latach 80-tych. Komputer, w którym wszedł, zestaw do klonowania oparty na NEC V20, kosztował około 2500 USD.
jfrankcarr
LOL, pamiętam, że pod koniec lat 80. musieliśmy uzyskać podpisaną przez prezesa PO umowę zakupu karty pamięci dla VAX o pojemności 64 MB. Szczerze mówiąc, była to dwuportowa pamięć ECC, ale kosztowała gdzieś po drugiej stronie 30 000 $ ...
TMN
Były aplikacje biznesowe napisane w języku BASIC, niektóre z nich sprzedawane za pieniądze, oraz aplikacja biznesowa napisana w języku BASIC dla APPLE] [lub CommodorePET, Atari, IBM lub mikrokomputerów TI z początku lat 80. XX wieku może sprzedać 100 500 kopii, w cenach jednostkowych około 100 USD. W tamtym czasie nie było nic takiego jak współczesne oprogramowanie, ponieważ wtedy komputery były małe, a oprogramowanie było małe. Ani podstawowy, ani C, asembler, ani żaden inny współczesny język nie zmieniłby tego.
Warren P
W latach 80-tych nasza lokalna komputerowa szkoła wyższa otrzymała aktualizację z 10 MB do 50 MB. To prawda, że ​​10 MB było tylko w połowie pełne, ale chcieli mieć wystarczająco dużo miejsca na dającą się przewidzieć przyszłość ... Wyobraź sobie, że dysk twardy o pojemności tylko 50 MB dla około 50-100 użytkowników ... jest nadmiernie zabity.
SoylentGray
22

Moje pierwsze 100-procentowe zadanie programistyczne, jeszcze w latach 80., pracowałem nad pionowym pakietem rachunkowości rynkowej, który pierwotnie został napisany w GW-BASIC . Został przeniesiony do QuickBASIC 3.0, ale zachował prawie wszystkie błędy związane z wczesnymi dialektami BASIC. Było mnóstwo GOTO i dużo złej struktury. Było około tuzina modułów (zapasów, księgi itp.), A program sprzedano za około 1000 USD - 2500 USD za moduł plus roczne umowy wsparcia. Przychody firmy mieściły się w przedziale 15–25 mln USD rocznie.

Co do sposobu radzenia sobie z niedociągnięciami, wiele ograniczeń można było obejść, używając języka maszynowego lub MASM . Powszechnie stosowano polecenia PEEK i POKE do wstawiania języka maszynowego w programach BASIC. Napisałem programy MASM (i późniejsze C), aby rozszerzyć program o takie elementy, jak podstawowa obsługa baz danych, komunikacja i tekstowa „grafika”.

Peter Mortensen
źródło
12
Żal mi ciebie, chyba że dostałeś 15 mil.
Spencer Rathbun
@SpencerRathbun - Niestety, otrzymałem raczej niskie wynagrodzenie, w przybliżeniu równe około 35 000 $ dzisiaj.
jfrankcarr
Tak, moje pierwsze zadanie programistyczne dotyczyło Quickbasic 3. To nie był port, ale nie było dużo lepsze. Główną część wykonał ktoś, kogo „szkolenie” polegało na czytaniu książki dołączonej do kompilatora. Misja krytyczna dla klientów, wysoki 4-cyfrowy cennik.
Loren Pechtel
5

Czy w tak dialekcie BASIC powstały większe projekty komercyjne?

Na starszych komputerach domowych, takich jak C64 lub jego poprzednicy, istniało wiele programów BASIC, a także niektóre komercyjne. Ale „duże” rzadko było możliwe, ponieważ przy <64kB pamięci RAM pisanie „dużych” programów BASIC nie jest naprawdę łatwe. Jeśli chciałeś ominąć ograniczenia maszyny, zwykle musiałeś porzucić BASIC, „język wysokiego poziomu” i użyć asemblera.

Odpowiedź na twoje pytanie brzmi: „prawdopodobnie nie wielu”, ale nie z powodów, o których myślisz (np. „Zbyt podatny na błędy / nieustrukturyzowany” itp.).

Nawiasem mówiąc: AFAIK słynny kompilator PETSpeed ​​BASIC został napisany w języku BASIC (oczywiście skompilowanym z samym sobą).

Doc Doc Brown
źródło
4
Chciałbym podkreślić, że to ważne! = Duże, szczególnie w tamtych czasach. Obecnie programy komercyjne mają wbudowane wszystkie możliwe funkcje, ale nie zawsze tak było.
Jeanne Pindar
@DocBrown Były sposoby na obejście limitu pamięci 64k i dużych aplikacji. Wiele dużych aplikacji istniało bardziej jak zestawy aplikacji z wieloma modułami.
wałek klonowy
Pamiętam kilka wczesnych komercyjnych gier C64 napisanych całkowicie lub częściowo w języku BASIC. „Rox 64” to jeden.
Alan B
„Telengard” Myślę, że tak się nazywała, gra RPG na C64, była jak 8k linii Basic. Fajnie było ulepszać źródło, by stać się postacią ubera.
Neil N
@maple_shaft: „Many?” Zwłaszcza „Wiele aplikacji BASIC?” Miałem wrażenie, że było ich tylko kilka.
Doc Brown
5

Cała linia księgowa Peachtree Software (należności, zobowiązania itp.) Została napisana (i nadal może być, o ile wiem) w języku BASIC. Kiedy IBM PC został po raz pierwszy wprowadzony na rynek, spędziłem wiele długiego wieczornego debugowania i naprawiania kodu dla klientów, którzy kupili komputer osobisty IBM i pakiety Peachtree, aby zrobić książki dla ich małej firmy.

jerhewet
źródło
5

Moją pierwszą pracą było w 1981 r. Programowanie Apple II w Basic w biurze Price Waterhouse (Pre Coopers) w ich firmie doradczej w Belfaście w Irlandii Północnej. Zespół dwóch / trzech z nas opracował i zainstalował systemy u klientów, w tym księgarnię i rzeźnię. Był to system modelowania finansowego, faktycznie bardzo złożony arkusz kalkulacyjny Visicalc (50 arkuszy, 3000 zmiennych) przekształcony w duży program podstawowy. Przetwarzanie tygodniowej przepustowości w rzeźni zajęło dwa dni w systemie Apple II z 4 dyskami. Nieco szybciej niż ich system ręczny, który zabierał dwa osobo-tygodnie na każdy tydzień.

Następnie przeszliśmy na maszyny Act Sirius, ponownie programując w Basicu (Microsoft 8KB Basic), które zostały zainstalowane na klientach.

Podstawowy miał numery linii, ale był zestaw narzędzi, który mógł przenumerować programy. Ponieważ byłem świeżo po Uni, gdzie nauczyłem się Pascala, starałem się pisać w możliwie najbardziej uporządkowanym stylu (jak najwięcej w Basicu), ale Gotos i Gosubs były oczywiście używane.

Później programowałem w 1983 r. W Dec Rainbow, w której wykorzystano CBasic, niezgrabną skompilowaną wersję podstawową.

David Bolton
źródło
4

Było wiele z komercyjnego oprogramowania pisemnej przy użyciu Basic-PLUS na PDP-11 systemów. Pamiętam, że widziałem pakiety analizy statystycznej i rachunkowości, a także sporo zaawansowanych sprzętów automatyki laboratoryjnej (nie jestem pewien, czy były to „komercyjne”. Zazwyczaj były one częścią pakietu instrumentów, więc nie wiem jeśli były sprzedawane osobno). ISTR BASIC był również jednym z głównych języków programowania aplikacji HP 2000 i był to podstawowy (prawdopodobnie jedyny) język obsługiwany przez ich wczesne stacje robocze z serii HP 9800 .

Peter Mortensen
źródło
Czy HP2000 wspierał rozwój w czymkolwiek innym? Mam wrażenie, że HP2000 był zakodowany na stałe do uruchamiania tylko programów dostarczonych przez użytkownika w HP Timeshare BASIC [część lub całość kodu systemu zarządzania plikami i zarządzania użytkownikami mogła być napisana w innych językach lub kodzie maszynowym].
supercat
3

Wczesne produkty baz danych DOS firmy Alpha Software (około 1985 r.) „Database Manager I”, „Database Manager II” (DMB2) i „Alpha Three” zostały napisane w języku BASIC i skompilowane za pomocą kompilatora IBM BASIC. Pracowałem nad „Alpha Three”. Cały interfejs użytkownika był w języku BASIC, ale miał podstawowy komponent TSR (zakończ i pozostań rezydentem) napisany w C i ASM, z którym BASIC komunikował się za pomocą przerwań. Numery linii i podziały linii zajmowały cenną przestrzeń segmentów, więc kod był okropnie spłaszczony i nieczytelny. Stale korzystaliśmy ze zmiennych dzielonych i wymienianych modułów. Ciężko było pracować. Wciąż staraliśmy się logicznie podchodzić do organizacji, więc nasza biblioteka ciągów zawierała niskie numery 60000 linii. Typowa operacja, taka jak przycinanie łańcucha, wyglądałaby następująco:

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

Przeszliśmy na wersję C wkrótce po wydaniu „Alpha Three”.

Pete Lyons
źródło
1
Ponieważ wszystkie zmienne były globalne, a ty musiałeś nadużywać ich do przekazywania parametrów, w jaki sposób zarządzałeś kodem, aby uniknąć przypadkowego zastąpienia już używanej zmiennej?
user281377
To było oparte na konwencji.
Pete Lyons
3

Na początku lat 80. siły powietrzne USA kupiły kilka komputerów autobusowych Cromemco S100 do użytku przez latające eskadry jako narzędzie planowania lotów.

Oprogramowanie do planowania lotów zostało opracowane przy użyciu BASIC przez pilotów i nawigatorów sił powietrznych w Tactical Air Warfare Center, zlokalizowanym w Eglin AFB na Florydzie .

Jeśli chodzi o obejście „oczywistych braków” BASIC, tak naprawdę nie wiedzieliśmy nic lepszego. Zapewnienie załodze lotniczej fizycznego dostępu do komputera wydawało się wówczas niesamowitym skokiem technologii.

Jim w Teksasie
źródło
2

Wierzę, że oryginalna Ultima na Apple] [została napisana w Applesoft Basic.

DEC używał swojej wersji BASIC dla większości RSTS i innych systemów operacyjnych, które opracował.

Scott Weisman
źródło
Był taki żart, że RSTS / E został napisany w języku BASIC, ale tak naprawdę nie był. Wiele programów narzędziowych sysadmin dostarczanych z systemem operacyjnym zostało napisanych w języku BASIC.
Don Roby
2

Jedyny strach, jaki miałem jako programista QuickBasic 20 lat temu, to komunikat „Brak pamięci”. Ale to tylko uczyniło mnie lepszym programistą! Nauczyłem się pisać zwarty i poważny kod.

Kiedyś używałem QuickBasic do programowania przemysłowego. W prawdziwym świecie (fabrykach) nie możesz powiedzieć swojemu szefowi, że napisanie w C zajmie pół roku; możesz tylko powiedzieć: „tak szefie, będzie gotowy w przyszłym tygodniu”. Tak, BASIC był praktycznym i szybkim rozwiązaniem w prawdziwym świecie. Nie C lub Pascal.

Jeden z programów, które napisałem w QuickBasic 4.5, unikalnej bazie danych, został sprzedany kilku firmom i faktycznie zastąpił komercyjną bazę danych, którą już miały (prawdopodobnie napisaną w C lub Pascal). Ta baza danych jest używana do dziś.

Jeden temat, o którym chcę wspomnieć:

wszyscy uważamy, że nowe metody programowania są bardzo przydatne . Ale w prawdziwym życiu (przemysł) większość maszyn jest obecnie obsługiwana przez nowoczesny PLC. Programy są zwykle pisane w języku drabinkowym, który jest milion razy bardziej prymitywny niż GW-BASIC. Jako programista sterowników PLC mogę powiedzieć jasno: chciałbym zastąpić to prymitywne programowanie drabinkowe językiem wysokiego poziomu, takim jak GW-BASIC, a nawet QuickBasic. (MEGA-BASIC to dialekt, który był używany do tego celu w przeszłości).

W końcu co robi większość maszyn? interpretacja wejść i ustawianie wyjść. Nie potrzebujesz do tego C / Assembly i nie potrzebujesz Java. Z pewnością potrzebujesz QuickBASIC, aby utworzyć możliwy do utrzymania kod.

Shian
źródło
1

Absolutnie tak.

Dawno temu pracowałem dla firmy, która sprzedała wiele milionów dolarów systemów, głównie dla branży dealerów samochodowych. W systemach tych uruchomiono oprogramowanie BASIC na niestandardowych 16-bitowych minikomputerach HP 21MX (przed erą udanych 16-bitowych mikroprocesorów). To była firma średniej wielkości z dziesiątkami programistów Basic. Używali staromodnego dialektu BASIC, który wymagał numerów linii i pozwalał tylko na 286 możliwych nazw zmiennych, a jednak rozwiązania zapewniały wszystkie rachunki biznesowe i inwentaryzację (itp.) Dla średnich przedsiębiorstw. Grupa R&D napisała również asemblery, kompilatory, a nawet emulatory sprzętowe w Basicu, aby pomóc w tworzeniu oprogramowania sprzętowego nowej generacji.

Próbując wyjaśnić mojemu staremu licznikowi korzyści, jakie przyniosły mi korzyści płynące z nowocześniejszych metod programowania i projektowania sprzętu, powiedział mi, że dobrzy projektanci odpowiednio podzielili, zmodularyzowali i ustrukturyzowali rozwiązania swoich problemów, nawet jeśli nie zbudowano bezpośredniego wyrażenia takiego problemu. na język lub narzędzia, podczas gdy, jak zauważył, źli projektanci mogą produkować śmieci, których nie można debugować, bez względu na to, jaki „fantazyjny” modny paradygmat programistyczny w nich działają.

hotpaw2
źródło
1

Faktem jest, że większość nowych dealerów samochodowych w USA korzysta obecnie z programów BASIC, aby zacytować opcje finansowania i utworzyć wyciąg z długiego rozliczenia, który otrzymujesz przy zakupie samochodu. Programy są napisane w archaicznych minikomputerach BASIC działających w trybie emulacji na nowoczesnym sprzęcie. Przeszczepione są sieciowe interfejsy użytkownika, ale jego BASIC mówi do tty poniżej.

Około 1980 roku powszechne ubezpieczenie na życie stało się natychmiastową modą w branży ubezpieczeń na życie. Każda firma chciała go natychmiast sprzedać i wymagała obliczania wartości kont dla każdej polisy każdego miesiąca przy użyciu bardzo skomplikowanej kombinacji odsetek i aktuarialnego mumbo-jumbo. Ponieważ duże projekty w działach przetwarzania danych zajęłyby wówczas około roku, wiele firm weszło do produkcji z taką ilością Apple, PC i / lub Tandy TRS-80, ile potrzeba, robiąc bardziej skomplikowaną wersję tego, co było na komputerach mainframe od około 20 lat. Praktycznie wszystkie z nich zostały zaprogramowane w języku BASIC. W większości BASIC stosował zmiennoprzecinkowe o krótkiej precyzji, więc miliony klientów gubiły się w zaokrąglaniu.

JPL miał wersję BASICa, z której korzystał również około 35 lat temu. Nazywał się MBASIC, a M oznaczał zarządzanie, ale był używany między innymi do programowania statku kosmicznego.

Lucas Membrane
źródło
1

Ogromnie popularny system punktów sprzedaży detalicznej 4680/4690 firmy IBM został napisany w dialekcie o nazwie IBM 4680 BASIC . Pracowałem nad tym systemem w latach 1998-2002 dla jednego z głównych detalistów w Wielkiej Brytanii.

System ten był bardzo popularny, zgodnie z artykułem wiki, który nadal posiadał 12% udziału w rynku w 2005 roku. System nadal się rozwija, szanse są duże, że większość ludzi na zachodzie świata pośrednio korzystała z tego systemu z zasilaniem BASIC w ostatnim tydzień.

Qwerky
źródło
0

Przejrzyj PICK lub dowolną inną bazę danych MultiValue. Wszystkie polegają na DataBasic jako głównym lub jedynym języku i mają znaczące wykorzystanie na rynku wertykalnym. Nadal prowadzimy system, który napisałem do testów porównawczych zamówień ponad 20 lat temu. Działa z około 50 000 linii kodu.

Kevin Thorpe
źródło
0

W latach 80. w Indiach istniała firma Softek, która stworzyła własne wersje Wordstar, dBase i Lotus 1-2-3. Kolejnym ich produktem był kompilator BASIC.

Korzystając z własnego CBASIC, stworzyli bardzo kompleksowy pakiet podwójnej księgowości o nazwie SIMS-FA (Softek Financial Accounting).

Tinkoo Sharma
źródło
0

Każdy? Tak. Wiele? Nie. Oprogramowanie edukacyjne i prowadzenie dokumentacji.

Era BASIC: ~ 1970-1990

Do około 1990 r. Ograniczenia przekraczały oczekiwania i ewoluowały wraz z potrzebami branży. W większości potrzeby większych firm były analizowane przez konsultantów i spotykane w każdym języku, który je zaspokajał.

Raczej jak dzisiaj, gdzie firmy mają mniej lub bardziej rozwinięte wyobrażenie o tym, czego potrzebują i mają jakieś rozwiązanie, które można zbudować za pomocą VBA, a następnie nauczyć się wystarczająco dużo, aby odkryć bardziej kompetentne rozwiązania klient-serwer, aplikacje internetowe i zoptymalizowane interfejsy z przygotowywaniem danych .

W latach siedemdziesiątych, gdyby zwykła firma mogła bilansować rachunki lub rejestrować dane produkcyjne na komputerze bez budżetu korporacji, byłby to wielki krok naprzód w stosunku do prowadzenia ksiąg rachunkowych, a gdyby można było uzyskać schemat, byłoby to fantastyczne.

W latach 80. migracja niektórych rysunków produktów na komputer w celu ich edycji byłaby fantastyczna.

Oba można zrobić w języku opartym na tłumaczu. Ponieważ komputery mogły pomieścić więcej danych, kompilatory wymagały kompilacji, ponieważ procesory pozostawały w tyle za prawem Moore'a w zakresie wydajności tasowania surowych danych od około 1977 do około 1987.

Ale do końca lat 80. XX wieku, kiedy oczekiwania wymagały więcej, języki ustanowione w latach 70. (uzupełnione w rzadkich przypadkach przez asembler i / lub niestandardowy sprzęt, taki jak płyty FPU), wykonały całą poważną, komercyjną pracę w firmach z nielicznymi wyjątkami. Cobol i Fortran były nadal biletem na komputery mainframe. Tylko korporacje mogły sobie na to pozwolić, a poważne firmy zrobiły, co w ich mocy, dzięki wewnętrznym programom BASIC, i przez chwilę to wystarczyło.

Mniej więcej w tym samym czasie pojawiły się samodzielne pakiety oprogramowania do ogólnego użytku, takie jak edytory tekstu lub plotery diagramów, gdy systemy operacyjne dojrzewały na niedrogich komputerach jako cele kompilatorów i pojawiła się pamięć masowa, która może przechowywać dokumenty i dane „wielkości firmy”.

Pascal był tutaj głównym pretendentem. Wcześniej prawie wszystkie z nich zostały napisane w asemblerze. W końcu C przyszedł z Uniksa i zaczął być używany na PC.

Henrik Erlandsson
źródło
0

W czasach Commmodore 64 część gry Gunship została napisana w języku BASIC. Możesz nawet edytować kod, aby Twój śmigłowiec mógł być wyposażony za każdym razem, gdy wylądowałeś.

Holli
źródło
Wiem, że niektóre (komercyjne) gry zostały w całości napisane w języku Basic, ale wykluczyłem je z jakiegoś powodu: Gry są tym, czym je stworzysz, o ile są zabawne. Łatwiej jest żyć z ograniczeniami, gdy „zestaw funkcji” zależy całkowicie od projektanta, a konserwacja nie stanowi problemu.
user281377
0

BBC BASIC powstał na BBC Micro , wydanej w Wielkiej Brytanii w 1981 roku. Do czasu osiągnięcia wersji piątej, zaimplementowanej na komputerach RISC opartych na ARM firmy Acorn, uznano go za najszybciej interpretowany BASIC na świecie. Jego składnia była zaawansowana jak na swój czas, w tym strukturalne słowa kluczowe takie jak CASE i WHILE oraz funkcje i procedury. (Zawierał nawet asembler, pierwotnie dla 6502 , a następnie dla ARM w wersjach RISC OS ).

Wiele komercyjnych aplikacji komputerowych zostało napisanych przy użyciu, być może głównie dlatego, że zapewnia wygodny dostęp do wywołań SWI używanych przez współpracujący system WIMP. Było na tyle szybkie, że napisano o nim nawet gry zręcznościowe - Nevryon , klon typu R, szczególnie pamiętam patrząc na źródło.

Peter Mortensen
źródło
Właściwie miałem zarówno Acorn Electron (mniejsza wersja BBC), jak i Acorn Archimedes (a także Cambridge Z88, który używał tego samego BASIC); i tak, BASIC na tych komputerach był nieco lepszy niż na większości innych komputerów domowych. Ponieważ jednak BASIC zawierał również możliwość użycia wbudowanego asemblera, może być trudno odróżnić czyste programy BASIC od programów mieszanych, jeśli spojrzysz na kod źródłowy.
user281377
Och, szybki rzut oka naprawdę wystarczy, aby rozróżnić te dwa elementy. Bardzo inaczej wygląda. I chociaż zawierał asembler, nie było powszechne rozpowszechnianie kodu źródłowego języka asemblera. Zwykle zamiast tego dołączany jest skompilowany kod binarny.
Dan Ellis
0

Stare języki skryptowe bazy danych xBase (jak w dBase II , dBase III + , Clipper itp.) Były dość ściśle powiązane z różnymi niestandardowymi językami BASIC w tamtych czasach.

Nie do końca używany w BASIC do prac komercyjnych, ale może wystarczająco blisko.

Peter Mortensen
źródło
Steve314: te języki xBase znacznie wyprzedziły BASIC komputera domowego. Napisałem dużo kodu w Clipper i pamiętam funkcje, zmienne lokalne, instrukcje pętli i wiele innych rzeczy, których brakuje w komputerze domowym BASIC z lat 80. Yannis: QuickBasic pojawił się w 1985 roku.
281377
@ user281377 - BBC Basic w 1981 r. miał strukturę i procedury, choć nadal potrzebował numerów linii. Standard ANSI Basic (1984) obejmował struktury bloków sub(funkcja / procedura z parametrami i zmiennymi lokalnymi) i więcej, a numery linii były opcjonalne. Borland Turbo Basic w 1985 roku miał większość standardowych funkcji podstawowych IIRC. Użyłem GFA Basic na Atari ST całkiem sporo - również strukturalne, proceduralne, bez numerów linii. W latach 80. istniało mnóstwo ustrukturyzowanych, proceduralnych podstaw.
Steve314
@ user281377 - xBase miał oczywiste zalety w zakresie obsługi baz danych i formularzy wprowadzania danych, robiąc rzeczy, których nie znało Basic, o których wiem, ale równie łatwo można zauważyć, że STOS miał oczywiste zalety w zakresie wyświetlania duszków i czytania joysticków.
Steve314
@ Steve314: Wiem, że istniały dialekty BASIC z dobrymi funkcjami, ale konkretnie pytam o inne języki BASIC. Te, w których GOTO i GOSUB były wszystkim, co miałeś. Gdzie każda zmienna była globalna, a jednowymiarowa tablica miała tyle struktur danych, ile tylko można było uzyskać. Clipper był naprawdę zaawansowanym dialektem xBASE; szczerze mówiąc, nie pamiętam, ile zaawansowanych funkcji Clippera było dostępnych również w dBASE III, ale przynajmniej miał odpowiednie pętle „do-while”.
user281377
1
@ user281377 Oryginalna wersja odpowiedzi wspomniała o języku Visual Basic (skąd masz QuickBasic?), o tym właśnie krzyczałam; P
yannis
-2

Większość micros miała tylko podstawowe (ROM) lub narzędzia programistyczne asemblera. W przypadku programów, które nie są krytyczne dla prędkości, BASIC był używany w wielu aplikacjach komercyjnych, a także w większości wewnętrznych projektów firmowych. Nawet gdy pojawił się CP / M, jedynymi prawdziwymi ulepszeniami były możliwość obsługi większych projektów i korzystania z podstawowego kompilatora Microsoft (BASCOM). Moje własne doświadczenia z wczesnym rozwojem mikro były następujące:

~ 1980 - Microsoft ROM podstawowy na Nascom 2 z małym asemblerem. Opracowywanie aplikacji komercyjnych obejmowało program zwrotu podatku VAT (podatek od sprzedaży) oraz program kontroli procesu (oba w języku BASIC).

198? - Nadal używam BASIC, ale teraz miałem także Pascala (BLS - prekursor Borlanda Pascala ).

Połowa lat osiemdziesiątych - komputery PC zaczynają dominować i pojawiają się pierwsze kompilatory C ( Hisoft i Mix). BASIC podupada (ożywiony później w postaci zombie oczywiście przez MS z Visual Basic ). GW-BASIC był bardzo popularny jako wewnętrzne narzędzie programistyczne. Wiele pakietów komercyjnych (rachunkowość, kontrola zapasów itp.) Wciąż było napisanych w języku BASIC.

Pod koniec lat 80. - C staje się głównym językiem programowania (po wydaniu MSC 5 w 1986 r.?). Microsoft i Borland dominują przez kilka następnych lat ...

11465
źródło
1
jak to odpowiada na pytanie?
komar
odpowiada na pytanie, mówiąc: „tak, podstawowy był szeroko stosowany w rozwoju komercyjnym w ostatnich latach 70. i na początku lat 80.”. Jeśli chodzi o pokonywanie oczywistych niedociągnięć, należy pamiętać, że programiści nie widzieli tych niedociągnięć w tym czasie. Podstawowy jest Turing zakończony, więc inteligentni programiści mogli zrobić wszystko, czego potrzebowali (główne ograniczenia to oczywiście szybkość, pamięć, pamięć itp., Ale ograniczenia te dotyczyły wszystkich prac programistycznych w tym czasie). Nie jestem pewien, dlaczego tak wiele głosów negatywnych próbowało jedynie odpowiedzieć na pytanie.
te dwa programy, o których wspomniałeś, zostały sprzedane kilku klientom (nie jest to program wewnętrzny) ? czy możesz podzielić się referencjami, aby dowiedzieć się więcej na ich temat?
komar
Niestety, wiele aplikacji (w tym również te, o których wspomniałem) zostało zagubionych w mgiełce czasu (brak interwebu, a nawet BBS do dystrybucji w tym czasie). Straciłem kasety, na których były zatrzymane, ale były to: 1) Nie gry, 2) nie wolne, 3) Nie trywialne i 4) Krytyczne dla misji. Nie mogę powiedzieć, że zostały sprzedane wielu klientom, aplikacja contoal była przeznaczona dla konkretnego klienta, aplikacja VAT została ponownie sprzedana kilka razy. Nadal wkurzał się na głosowanie w dół (zbieracze nitów lub shouda, mówię zbieraczy komarów :-)).