Programmiersprache, welche ist effizienter?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

C++ ist zeiteffizienter, Assembler ist leistungseffizienter.

C++ lohnt sich eher zu lernen, da man damit auch Projekte umsetzen kann, die nichts mit Microcontrollern zu tun haben.

Und der Leistungsunterschied ist im Regelfall absolut minimal, falls vorhanden.

Assembler lohnt sich eher um besser zu verstehen wie Computer intern arbeiten oder wenn du extrem genau wissen musst, wie lange die Ausführung deines Programms dauert.

Ich finde c++ und assembler ähnlich schwierig/leicht zu lernen im Kontext von Microcontrollern

High level Projekte sind nahezu unmöglich mit Assembler

c++ ist viel besser und für mich ersichtlich einfacher.

L.g. Jan

Manchmal frage ich mich wirklich wo die Leute das "Fachwissen" hier her nehmen.

Man kann Assembler nicht mit C++ vergleichen.

Assembler ist die Sprache die der Hardware am nächsten ist. "Quasi" die Maschinensprache.

C++ ist eine Objektorientierte Programmiersprache welche Ähnlichkeiten mit C hat. C99 bzw Basic C haben keine Objektorientierung oder Klassen welche verwendet werden können. Dafür lernt man mit C besser mit den Pointern (call by reference) umzugehen.

Die Sprachen bauen aufeinander auf und haben sich in unterschiedliche Spezialisierungen weiterentwickelt.

Der "harte Unterschied" ist eigentlich nur: Hardwarenahe Programmierung (Basis-SW) oder Applikations-SW.

Egal welche Sprache du wählst, am Ende wird ein Compiler verwendet der die Basis-SW dann in Maschinensprache umwandelt (quasi ein Assembler-Translator).

Die meisten Applikations- SW (APPS) Programmiersprachen kommen mit einem riesigen Berg an Libraries vollgepackt mit super vielen features und Funktionen die man ggf. gar nicht benötigt. Diese unnötigen Teile machen einen relativ großen "Rechenzeitaufwand" aus. Weshalb man in großen Projekten die cycle und zeitkritischen Funktionen nicht mit C/C++ oder JAVA schreibt, sondern diese werden kann in Assambler verfasst um somit zeitkritische Prozesse zu erfüllen. (Durchschnittliche Verbesserung 25-30%). Es gibt auch Programmierer die z.B. die Std.h dann so einkürzen, dass wirklich nur noch die benötigten Funktionen enthalten sind, die erhöht natürlich dann auch den Zeitfaktor bzw. Schnelligkeit.

Gewisse Sprachen sind auch an ein bestimmtes Level des OSI / ISO Schichten Models gekoppelt. Visual Basic z.B. wird man nie auf einem Micro direkt programmieren können. Denn Visual Basic benötigt eine Schnittstelle zur Hardware ... (SW-Treiber).

Auch innerhalb der Sprachen gibt es Unterschiede, es gibt z.B. Embedded C/C++ mit erweiterten Funktionen und weglassen von auf dem Micro "unnötigen" Funktionen. Hier wird z.B. mehr auf die parallel tasks Fokus gelegt und wie diese mit call by reference aufgerufen werden wobei das "C99" rein als sequentielle Sprache zu verstehen ist.

C#, Pyton, Java-Script, etc. sind dann Verbesserungen mit einem anderen Scope der Nutzung.

Die Verwandheit kann man leicht über versch. Diagramme in der Suche sich anzeigen lassen. In Summe ist es aber so, hat man einmal eine RICHTIG gelernt, sind die anderen Sprachen sehr einfach zu lernen, da die Grundsätze und Basisregeln für alle Sprachen gleichermaßen gilt.

Bild zum Beitrag

Quelle: https://www.google.com/search?client=firefox-b-d&sca_esv=f61bafd3095e347f&sxsrf=ACQVn0_O6BgTrM7q-lKEKf7ZIlvsBM322A:1707952903193&q=%C3%9Cbersicht+Programmiersprachen&tbm=isch&source=lnms&sa=X&ved=2ahUKEwjay9mw_KuEAxUa_bsIHcUbA4cQ0pQJegQIDBAB&biw=1587&bih=978&dpr=1.25#imgrc=b8oPhTF7oPbwwM

Woher ich das weiß:Berufserfahrung
 - (Programmiersprache, C (Programmiersprache), Mikrocontroller)

Keine von beiden ist einfach zu lernen.

Woher ich das weiß:Berufserfahrung – Ich bin Entwickler.

c++ ist mein persönlicher fav darum würde ich c++ sagen.

Ist halt einfach zu lernen und hat ne gute compile zeit. Man kann auch viele Bereiche programmieren ( AI, Spiele, Anwendungen )

Für ein Microcontroller weiß ich nicht