Frage

Ich begann mit dem Programmieren in Basic auf der ZX81, dann Basica, GW-Basic, und Qbasic. Ich ging weiter zu C (Ah, Turbo C 3.1, ich wusste kaum ...)

Als ich mit Mikrocontrollern anfing, habe ich mich mit dem zurückgezogen Grundstempel Aus Parallaxe. Basic ist jedoch großartig, weil es so leicht zu verstehen war und so schwer zu machen war, einen Fehler zu machen. Ich wechselte schließlich zur Montage und C, weil ich die zusätzliche Leistung (Geschwindigkeit, Kapazität, Ressourcen usw.) brauchte, aber ich weiß, dass wenn die Messlatte viel höher wäre, viele Menschen niemals in die Programmierung von Mikrocontrollern eingehen würden.

Ich bekomme immer wieder einen Juckreiz, um meinen eigenen On-Chip-Basic-Interpretor zu machen, aber ich frage mich, ob es nach Basis erforderlich ist, da Lua und Python leicht einbettbar sind und genauso zugänglich wie Basic.

  • Was, wenn überhaupt, sind die Vorteile, die Grundlagen gegenüber anderen Sprachen haben?
  • Warum ist es noch da?
  • Wenn ich mich entscheide, mit einem Dolmetscher ein Microcontroller -Board für allgemeine Zwecke zu erstellen, gibt es einen Grund, eine Version von Basic zu erstellen?

Viele andere Sprachen werden als tot angesehen, aber Basic hängt einfach weiter.

War es hilfreich?

Lösung

Als Architektur ist der Hauptanspruch auf den Ruhm der Basis, dass Sie grundlegende Dolmetscher sehr klein machen können - nur ein paar KB. In den Tagen eines DG Nova war dies ein Sieg, da Sie Systeme wie Business Basic verwenden konnten, um eine Multiuser -Anwendung auf einer Maschine mit 64.000 RAM (oder noch weniger) zu erstellen.

Basic (insbesondere VB) ist ein Legacy-System und verfügt über eine große vorhandene Code-Basis. VB ist wohl wirklich eine Sprache (einige würden einen dünnen Wrapper über COM) mit einer grundlegenden Syntax haben. Heutzutage sehe ich wenig Grund, die Sprache von der Vertrautheit der Menschen mit ihr zu halten und die vorhandene Codebasis aufrechtzuerhalten. Ich würde sicherlich keine neue Entwicklung darin einsetzen (beachten Sie, dass VB.NET nicht wirklich einfach ist, sondern nur eine VB-ähnliche Syntax hat. Das Typsystem ist nicht so unterbrochen, wie VBs war.)

Was ist In der Computerwelt fehlen ist a relevant Die Sprache, die leicht zu lernen und zu basteln ist und mit dem Denkmal in der Mainstream-Anwendungsentwicklung verfügt. Ich bin in den Tagen von 8-Bit-Maschinen aufgewachsen, und die Eintrittsbarriere für das Programmieren auf diesen Systemen war sehr niedrig. Die Architektur der Maschinen war sehr einfach, und Sie konnten lernen, mehr oder weniger relevante Anwendungen auf diesen Maschinen zu programmieren und zu schreiben.

Moderne Architekturen sind viel komplexer und haben einen größeren Buckel zu lernen. Sie können sehen, dass die Leute pontifikatieren, wie Kinder nicht lernen können, wie sie in den Tagen von grundlegenden und 8-Bit-Computern so einfach zu programmieren können, und ich denke, dieses Argument hat einige Verdienste. Es gibt so etwas wie ein Loch, das das Programmieren nur so schwieriger macht. Spielzeugsprachen werden hier nicht viel verwendet - damit das Programmieren attraktiv ist, muss es möglich sein, etwas zu streben, um etwas Relevantes mit der Sprache aufzubauen, die Sie lernen.

Dies führt zu dem Problem einer Sprache, die für Kinder leicht lernen kann, es ihnen jedoch dennoch ermöglicht, relevante Programme (oder sogar Spiele) zu schreiben, die sie tatsächlich wollen. Es muss auch weithin als relevant angesehen werden.

Das Nächste, was ich daran denken kann, ist Python. Es ist nicht das einzige Beispiel für eine Sprache dieses Typs, aber es ist das mit dem mindhaltigsten - und (IMO) ist eine Wahrnehmung der Relevanz erforderlich, um in dieser Nische zu spielen. Es ist auch eine der einfachsten Sprachen zu erfahren, die ich erlebt habe (von den 30 oder so, die ich im Laufe der Jahre verwendet habe).

Andere Tipps

Dies kann negativer klingen als es wirklich ist. Ich sage nicht, dass grundlegend die Wurzel aller Bösen ist, Andere haben das gesagt. Ich sage, es ist ein Vermächtnis, das wir uns leisten können, zurückzulassen.

"Weil es so leicht zu verstehen und so schwer zu machen war, einen Fehler zu machen" Das ist sicherlich fraglich. Ich habe einige schlechte Erfahrungen mit äußerst undurchsichtiger Basic gemacht. Professionelle Dinge - kommerzielle Produkte - vollkommen schrecklicher Code. Musste aufgeben und die Arbeit ablehnen.

"Was, wenn überhaupt, sind die Vorteile, die Grundlagen gegenüber anderen Sprachen haben?" Keine, wirklich.

"Warum ist es noch da?" Zwei Gründe: (1) Microsoft, (2) Alle IT -Abteilungen, die mit VB begonnen haben und jetzt Millionen von VB -Legacy -Code haben.

"Viele andere Sprachen gelten als tot ..." Ja. Basic befindet sich neben Side Cobol, PL/I und RPG als Vermächtnis, die manchmal mehr Kosten als Wert haben. Aber weil es "Wenn es nicht kaputt ist, nicht zu reparieren", sitzen sie dort und saugen Ressourcen auf, die es leicht durch etwas kleineres, einfacheres und billigeres Ersetzen ersetzen könnten. Außer es ist nicht "gescheitert" - es ist nur unverhältnismäßig teuer.

Der 30-jährige COBOL ist eine schreckliche Situation zu überarbeiten. Ab 2016 werden wir uns mit einer 30-jährigen MS Basic ansehen, die wir einfach nicht herausfinden, ohne ohne leben möchten, und können nicht entscheiden, wie er ersetzen soll.

"Aber Basic hängt einfach weiter" Es scheint, dass einige Leute die Grundlagen lieben. Andere sehen es als eine weitere schlecht gestaltete Sprache; Die Vorteile sind früh auf dem Markt und werden von riesigen Anbietern (IBM) unterstützt. Schlechtes Design, früh zu Markt, hinterlässt uns nur ein Vermächtnis, mit dem wir jahrzehntelang leiden werden.

Ich habe immer noch mein Dartmouth Basic-Handbuch von 1965. Ich sehne mich nicht nach den guten alten Zeiten.

Probieren Sie Jumentum nicht aus und sehen Sie, wie es für Sie funktioniert?

http://jumentum.sourceforge.net/

Es ist ein Open -Source -Grund für Mikroreter

Das ELUA -Projekt ist auch Lua für Mikrocontroller

http://elua.berlios.de/

Grundlegende Vorstände, insbesondere bei der Stempelimplementierung, da es niedriger ist als die meisten anderen Programmiersprachen mit sehr einfach zu larn. Für die meisten eingebetteten Grundimplementierungen sind die grundlegenden Anweisungen direkt an einzelne oder Gruppen von Maschinenanweisungen zugeordnet, wobei nur sehr wenig Overhead. Die gleichen Programme, die in Sprachen "höherer Ebene" wie Lua oder Python geschrieben wurden, würden auf denselben Mikrocontrollern weitaus langsamer laufen.

PS: Grundlegende Varianten wie PBASIC haben trotz der Namensähnlichkeit beispielsweise Visual Basic sehr wenig gemeinsam. Sie haben sich auf sehr unterschiedliche Weise auseinandergesetzt.

Gute Frage...

Grundsätzlich (sic!) Habe ich keine Antwort. Ich würde sagen, dass Lua sehr leicht zu lernen ist, wahrscheinlich so einfach wie grundlegend (was auch eine meiner ersten Sprachen war, ich habe Dialekte für viele 8-Bit oder funktionale Stile und sogar mischen) und irgendwie strenger (nein goto ...).

Ich kenne Python nicht gut, aber nach dem, was ich gelesen habe, ist es so einfach, mächtig und streng als Lua.

Außerdem sind beide "standardisiert" de facto, dh. Es gibt keine Dialekte (neben den verschiedenen Versionen), im Gegensatz zu Basic mit vielen Varianten.

Auch beide haben sorgfältig gefertigte VM, effizient, (meistens) fehlerfrei. Wenn Sie Ihren eigenen Interpretor machen, sollten Sie entweder eine vorhandene VM nehmen und Bytecode für ihn aus der grundlegenden Quelle generieren oder Ihre eigene machen. Sicher lustiges Zeug, aber zeitaufwändig und anfällig für Fehler ...

Also würde ich einfach einen schönen Ruhestand haben lassen ... :-P

Ps.: Warum hängt es an? Vielleicht ist Microsoft dem nicht fremd ... (VB, VBA, VBScript ...)
Es gibt auch viele Dialekte (realbasic, darkbasic usw.) mit einigen Publikum.

Lassen Sie mich mürrisch sagen, dass "Kinder heute nicht grundlegend schätzen" und dann paradoxerweise sagen: "Sie wissen nicht, wie gut sie es haben."

Die größte Stärke der Grundlagen war die größte Stärke stets seine Verständlichkeit. Es war etwas, was die Leute konnten erhalten. Das wurde von Akademikern und Sprachentwicklern lange ignoriert.

Wenn Sie darüber sprechen, dass Sie Basic implementieren möchten, gehen Sie davon aus, dass Sie nicht über Linienbasis, sondern über eine strukturierte Form sprechen. Das Problem dabei ist, dass sobald Sie sich in strukturierte Programmierung bewegen - Funktionen, warum kippen Ich bin gerade an diesen Punkt gekommen? 'Usw. - Es wird wirklich unklar, welche Vorteile, wenn überhaupt, Basic über Python übersät.

Ein Grund, warum Basic "so einfach richtig zu machen" war, war, dass in jenen Tagen Bibliotheken nicht annähernd so wichtig waren wie heute. Bibliotheken implizieren strukturiert, wenn nicht objektorientierte Programmierung, sodass Sie wieder in einer Situation sind, in der eine modernere dynamische Skriptsprache in die Realität dessen, was Menschen heute machen, "passt".

Wenn die eigentliche Frage lautet: "Nun, ich möchte einen Dolmetscher implementieren und daher kommt es auf die Kapitalrendite", dann wird es zu einem Problem einer Grammatik, die tatsächlich einfach zu implementieren ist. Ich würde vorschlagen, dass Basic in dieser Hinsicht auch nicht so viele Vorteile hat (es sei denn, Sie wirklich tun Kehren Sie zu Liniennummern und einer sehr begrenzten Grammatik zurück).

Kurz gesagt, ich nicht Denken Sie, Sie sollten Ihre Bemühungen in einen grundlegenden Dolmetscher investieren.

Nun, diese Leute scheinen zu glauben, dass nicht nur Basic noch einen Platz im mobilen Raum hat, sondern auch, dass sie Geld damit verdienen können:

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

Ich habe auch mit einem ZX81 angefangen. Aber Tony Hoare Das Programmieren in Basic ist wie der Versuch, lange Division mit römischen Ziffern durchzuführen.

Viele andere Sprachen werden als tot angesehen, aber Basic hängt einfach weiter.

Leider schon. Ich beschuldige Bill Gates für diese ... Basic war auf einer Trage mit einem Priester, der die letzten Riten dafür sagte, und dann brachte MS es wie Pocken zurück.

Ich habe in den QBasic -Tagen in Basic programmiert. QBasic hatte Unterprogramme, Funktionen, Strukturen (sie wurden früher als Typen bezeichnet), und ich denke, das war's. Dies scheint im Vergleich zu allen Merkmalen, die Python hat, begrenzt zu sein - OO, Lambdas, Metaklasse, Generatoren, Listenverständnisse, um nur einige von oben auf dem Kopf zu nennen. Aber diese Einfachheit, denke ich, ist eine Stärke der Grundlagen. Wenn Sie sich eine einfache eingebettbare Sprache ansehen, würde ich wetten, dass QBasic schneller und einfacher zu verstehen ist. Und eine prozedurale Langauge ist wahrscheinlich mehr als ausreichend für die meisten Anwendungen, die die meisten Einbettungs-/Skripttypen haben.

Ich würde sagen, der wichtigste Grund, warum Basic noch gibt, ist visuell grundlegend. In den 90ern war VB lange Zeit die einzige Möglichkeit, GUIs, COM- und DB -Code für Windows zu schreiben, ohne in eine der C ++ - Turing -Planen zu fallen. [Vielleicht war Delphi auch eine gute Option, aber leider wurde es nie so beliebt wie VB]. Ich denke, es liegt an all diesem VB- und VBA -Code, der immer noch verwendet wird und behauptet, dass Basic noch nicht tot ist.

Trotzdem würde ich sagen, dass es heute eine gute Begründung gibt, grundlegende Interpreter (vielleicht sogar Compiler mit LLVM oder ähnlichem) für Basic zu schreiben. Sie erhalten eine saubere, einfache und schnelle Sprache, wenn Sie etwas implementieren, das QBasic ähnelt. Sie müssen keine Probleme mit Sprachdesign lösen und das Beste daran ist, dass Menschen Ihre Sprache bereits kennen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top