Ich würde gerne wissen, ob einige der wichtigsten Programmiersprachen überhaupt nicht zum Erstellen bestimmter Softwaretypen verwendet werden können.
Mit Hauptprogrammiersprache meine ich C ++, C #, Java, Ruby, Python. Mit "kann nicht entwickelt werden" meine ich, kann nicht entwickelt werden oder es ist unrealistisch, dies aufgrund der Leistung, der Schwierigkeit der Implementierung usw. zu tun.
Ich habe immer gedacht, dass jede Programmiersprache verwendet werden kann, um jedes Problem zu lösen, aber in letzter Zeit habe ich gedacht, dass einige Sprachen für einige Projekte ungeeignet sind.
Wenn Sie Beispiele für solche Anwendungen bereitstellen können, wäre dies wünschenswert. Vielen Dank.
programming-languages
mbillard
quelle
quelle
task
zuproject
. Hoffe es ist weniger verwirrend.Antworten:
Übergeordnete Sprachen, vor allem diejenigen , die nicht bieten keine Mittel mit Speichern direkt von Hantieren (aus der Liste: Java, Ruby, Python) sind nicht geeignet für die Systemprogrammierung. Um konkrete Beispiele zu nennen, würde ich in Python kein Betriebssystem (z. B. Treiber) oder eine virtuelle Maschine / einen virtuellen Interpreter implementieren.
Die Umkehrung ist bei weitem nicht so nah an "unmöglich", aber das Schreiben von z. B. Utility-Skripten oder eines Prototyps für komplexe und komplizierte Software wie einen Compiler in z. B. C ++ (doppelt so in C) kann so umständlich sein, dass es in Anbetracht dessen zu einem Motivationskiller wird Sie erhalten viele kleinere Belastungen auf dem eigentlichen Problem.
quelle
Absolut, alles hängt von der zugrunde liegenden Hardware ab
Wenn ich beispielsweise den Jaquard-Webstuhl programmieren würde , könnte ich C ++ nicht dazu verwenden, da für diese Hardware kein Compiler vorhanden ist. Ich würde davon ausgehen, dass kein Compiler möglich wäre, da die Hardware viele der Anforderungen, die C ++ benötigt, um als Sprache zu arbeiten, nicht unterstützt.
Eine Erweiterung davon betrifft die Welt der analogen Computer, die ganz anders arbeiten als die heute vorherrschenden digitalen.
Sie können jedoch davon ausgehen, dass Sie bei genügend Zeit einen Compiler / Assembler für jede von Neumann-Maschine (Eingabe-> Prozessor / Speicher-> Ausgabe) entwickeln können. Einige von Neumann-Maschinen wie die MU0 sind jedoch einfach zu einfach, um sie ausführen zu können. Weitere Infos zu MU0 für den interessierten Leser .
quelle
Ja, es gibt bestimmte Dinge, die mit verschiedenen Sprachen nicht möglich sind. Hier sind einige der wichtigsten Kriterien, die dies beeinflussen:
Das sind einige Dinge, an die ich denken könnte. Ich bin sicher, es gibt noch mehr. Aber der wichtige Punkt ist , dass ja gibt es Schlüsselbegrenzenden Anforderungen, die die Verwendung einer Sprache verhindern.
quelle
restrict
C-Implementierungen.Ja, das ist richtig und war es schon immer. "Unfähigkeit" und "Ungeeignet" sind sehr unterschiedlich.
Sie könnten mit dem Kolben eines Schraubenziehers einen Nagel in ein Brett schlagen. Sie könnten eine Schraube mit der Kante eines Klauenhammers einschlagen. Der Hammer ist jedoch weitaus besser geeignet und ein besseres Werkzeug zum Einschlagen von Nägeln, und ein Schraubendreher ist ein besseres Werkzeug für Gewindebefestigungen.
Programmiersprachen sind Werkzeuge. Bestimmte Tools sind bei bestimmten Aufgaben besser.
quelle
Das einzige, was ich als unrealistisch betrachten kann, ist die Entwicklung von Gerätetreibern auf niedriger Ebene in einer stark virtualisierten Sprache wie Java oder C # - wenn Sie versuchen, Hardware zu manipulieren, die beeindruckendste VM (die so viele Dinge so schön und schön macht einfach) wird dir in die Quere kommen. Ich bin sicher, es könnte getan werden, wenn Sie WIRKLICH wollten, aber es würde eine Menge VM-Anpassungen erfordern, damit es funktioniert.
Alles andere kann so ziemlich in jeder Sprache gemacht werden, die Sie mögen.
quelle
Eingebettetes System fällt mir ein. Es ist unrealistisch, beispielsweise einen Router oder eine Art Robotik mit einer Sprache wie C # zu programmieren. Obwohl es Projekte wie Netduin gibt, die das Mikro-Framework nutzen, habe ich möglicherweise meinen eigenen Standpunkt widerlegt.
quelle
Sogenannte 4GL-Sprachen werden durch die Programmierumgebung eingeschränkt, an die sie gebunden sind. Sie konnten beispielsweise keine GUI mit ABAP programmieren. Alles, was man tun kann, ist wie eine GUI in der eingeschränkten Umgebung eines SAP-Clients (und dies kann nur in Verbindung mit einer SAP-Instanz ausgeführt werden).
quelle