Was ist die grundlegendste Programmiersprache in der IT?

10 Antworten

Nein

Sobald eine Programmiersprache Turing-Vollständigkeit besitzt, kannst du damit im Prinzip alles machen.

Manche Programmiersprachen sind aber langsamer in der Ausführung als andere, sodass diese für zeitkritische Probleme nicht benutzt werden.

Manche Programmiersprachen sind auch bequemer zu programmieren als andere.

Nein, die Programmierer müssen i.d.R. nur die Sprachen beherrschen, die sie benutzen wollen. Man sollte sich das ggf. auch nicht grundsätzlich als etwas Unterschiedliches vorstellen.

Unsere heutigen Programmiersprachen bzw. alle außer die direkten Befehlsätze, mit denen der Computer arbeitet sind Abstraktionen. Dabei werden Sachen, Konzepte und co. zu bestimmten Begriffen zusammengefasst, so dass der Programmierer nicht mehr wissen muss was passiert. Ansonsten müsste man das Rad immer neu erfinden und würde niemals voran kommen.

Alles über die Maschinensprache hinaus ist aber letztlich nicht da um mehr Funktionalitäten zu schaffen, sondern nur eine Übersetzung für uns Menschen, so dass wir die Befehle für den Computer besser verstehen, sie strukturieren können, sie erweitern können usw.

Nehmen wir das Getränk Spezi, eine Mischung aus Cola und Fanta. Aber ist das wirklich so? Am Ende besteht Cola aus vielen Sachen und Fanta auch aus vielen Sachen. Wir könnten die Zutaten sicher auch alle einzeln zusammenmischen und würden Spezi herauskriegen.

Nur wie viele Barkeeper tun das? Tun sie Zucker ins Glas? Tun sie Phosphorsäure ins Glas oder Koffein? Tun sie Farbstoff ins Glas? Nein das hat alles schon wer in die Cola oder in die Fanta getan, er muss nur noch wissen, dass er Cola und Fanta mischen muss.

Aber selbst die Beispiele wären noch eine Abstraktion, denn letztlich bestehen die Sachen wieder aus chemischen Elementen und diese chemischen Elemente wieder rum bestehen aus Atomen. Das heißt aber nicht, dass der Barkeeper wissen muss welche Kombination aus Atomen zu Spezi wird. Trotzdem tut er am Ende genau das.

Ähnlich verhält es sich bei Programmiersprachen. Unsere Hochsprachen haben Befehle und Konstrukte, die die dem Programmierer einen einfachen Zugang dazu ermöglichen, die viele, viele Sachen unter der Haube machen, und da runter sind meist auch noch weitere Schichten.

Genauso ist dein fertiges Programm am Ende eine Abstraktion, die den Zugang zu seinem Code ermöglicht. Du benutzt auch nur den Code und alle Schichten darunter. Während das bei dir nur ein Signal im Hirn ist, dass dem Finger auf der Maus sagt, es soll die Maustaste runterdrücken, während der Mauscursor auf dem Button ist. Mehr musst du in dem Moment auch nicht wissen. Genauso wie der Programmierer i.d.R. nicht wissen muss, was bei ihm weiter drunter liegt.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012
Pythonissam 
Fragesteller
 04.05.2021, 09:03

Das bedeutet, dass wer auf der Atom Ebene mischt, ''Gott'' im Programmieren ist?

Was ist der Name von der Technik, Konzept, Fach, Ausrichtung, Schule, Stoff usw. was auf der Atom Ebene spielt?

0
apachy  04.05.2021, 09:21
@Pythonissam

Das bedeutet, dass wer auf der Atom Ebene mischt, nix Großes vollbringen kann, da er weder große Applikationen innerhalb mehrere Lebzeiten tippen könnte, noch könnte er sie verstehen und auch nie wieder eine andere Person.

Am Ende spricht man von Low Level, wenn etwas näher an diesen "Atomen" ist und High Level, wenn Sachen stärker abstrahiert sind.

Ganz unten haben wir da Assembler, was noch vereinzelnd genutzt wird. Das sind dann i.d.R. Stellen im Code, die sehr, sehr, sehr zeitkritisch sind oder wo man genau bestimmen will, was wirklich passiert oder der Speicherplatz sehr begrenzt ist z.B. teilweise im Embedded Bereich. Aber auch das sind dann eher kleine Bereiche.

Ich hab z.B. ein wenig Assembler während meiner Ausbildung gelernt und kann damit sicher kleine Programme schreiben. Aber was ich in Hochsprachen an einen Tag schreibe, das könnte ich in Assembler vermutlich nicht in 100 Jahren schreiben.

Wenn dir ein Barkeeper nun eine 0,5L Spezi aus Atomen mischt, dann werdet ihr vermutlich beide an Altersschwäche sterben, bevor du was zu trinken hast. Und eine Spezi ist noch etwas sehr simples, wenn wir es mal mit komplexeren Programmen vergleichen.

An einem GTA saßen z.B. teilweise bis zu 1.000 Mitarbeiter über 5 Jahre. Also 5.000 Mannjahre, die bereits die besten ihres Faches waren und die besten Tools zur Verfügung hatten. Sprich Hochsprachen und selbst noch Abstraktionen da drüber wie Level Designer, Engines und co. Wenn wir uns das in Assembler vorstellen, da gehen vermutlich viele Millionen Jahre rein und das Problem wird bleiben, das keiner größere Teile verstehen kann, ändern kann etc. pp.

Ich mein am Ende ist auch jede Textur wieder nur eine Ansammlung von Daten, für die du dann wieder verstehen müsstest, wie eine Grafikkarte arbeitet, die umwandelt usw. Dafür nutzen wir eben dann ein Grafikprogramm wie Photoshop, was letztlich ja auch nur Code generiert, die der Computer wieder interpretieren kann. Oh und natürlich reden wir da von Raw Grafiken, da drüber haben wir natürlich auch wieder Abstraktionen mit den einzelnen Datentypen und Kompressionen und co. Das Gleiche gilt für Sound und alles weitere. Am Ende ist es wieder Code.

0
apachy  04.05.2021, 09:33
@apachy

Mal davon ab, wir reden jetzt nur von Anwendersoftware. Das ist letztlich auch nur eine Abstraktion für die Hardware, die wieder rum Mikrochips hat mit Milliarden von Transistoren. Sprich wir haben fertigen Funktionseinheiten wie Addieren, die auch wieder aus vielen einzelnen Logikgattern bestehen was in letzter Instanz einfach nur Abermilliarden von einzelnen Schaltern sind, die entscheiden ob Strom fließt oder nicht. Wobei wir wieder bei Atomen wären. Also aufhören tut das alles auch mit Assembler nicht.

0

Am Ende ist alles Maschinensprache. Aber das ist, wie der Name schon sagt, eine Sprache, die eine Maschine versteht und nicht eine Sprache, die sich an den Bedürfnissen des Programmierers oder gar des Anwenders orientiert.

Dennoch sei es jedem fortgeschrittenen Programmierer empfohlen, sich damit zu befassen, was der Computer eigentlich so macht, wenn man ihm Befehle in einer Hochsprache erteilt. Nicht notwendigerweise auf Prozessorebene, sondern dort, wo die Flaschenhälse sitzen: Bei Zugriffen auf Datenbanken, bei Zugriffen auf das Dateisystem und vor allem bei Datentransfer über das Netzwerk. Da geht die meiste Zeit verloren, wenn eine Anwendung langsam reagiert und Optimierung ist notwendig.

Woher ich das weiß:Berufserfahrung – Langjährige Berufserfahrung als IT-Berater
Pythonissam 
Fragesteller
 04.05.2021, 08:47

Danke für deine Antwort und dafür dass ich wieder einmal merke, dass ich genau Nüsse weis! Genau sowie dieser eines Franzose schon meinte, erst wenn du merkst dass du nichts weist, tja dann bist am Ar###!

Maschinensprache

Was ist das?

Auf was für einer Mathematik basiert das alles?

0
zalto  04.05.2021, 09:07
@Pythonissam

Maschinensprache ist die Sprache, die ein Prozessor direkt ausführen kann. Man ist damit auf Ebene der Einsen und Nullen angekommen.

Um sich nicht einzelne Bitfolgen merken zu müssen, werden sprechende Abkürzungen verwendet, die sog. Mnemonics. So könnte der Befehl "Addiere", der in einem Maschinencode beispielsweise "11011010" geschrieben wird und mathematisch einer Addition entspricht, durch den symbolischen Ausdruck "ADD" ersetzt werden. Außerdem kommt es dem Programmierer entgegen, statt Binärzahlen auch andere Zahlenformate oder Text verwenden zu können. Damit ist man auf der Ebene von Assembler angekommen.

0
Pythonissam 
Fragesteller
 04.05.2021, 09:16
@zalto

Also bei all dem was ich da so als Antwort kriege, stelle ich mir eine Frage welche ich mich nicht groß fragen traue. Wie ist das so wenn man so als Programmierer auf „diese“ sogenannten normalen Menschen schaut (Sind wir gewöhnlichen Menschen eigentlich noch Menschen in euren Augen? Nennt ihr uns überhaupt Menschen? Oder sind wir eher so was wie Würmer?) 🙈🙉🙊

0
zalto  04.05.2021, 10:00
@Pythonissam

Wir sind alle Zwerge, die auf den Schultern von Riesen stehen.

Programmierer profitieren enorm davon, was in den letzten Jahrzehnten an Vorarbeit geleistet wurde. Es gibt leistungsfähige Frameworks und mit relativ wenigen, gut erlernbaren Befehlen lassen sich umfangreiche, komplexe Anwendungen erstellen.

1
Pythonissam 
Fragesteller
 04.05.2021, 10:21
@zalto
Wir sind alle Zwerge, die auf den Schultern von Riesen stehen.

Wie leicht das Leben ist, wenn das eine Metapher ist.

0
Erzesel  05.05.2021, 08:14
@Pythonissam
Wie ist das so wenn man so als Programmierer auf „diese“ sogenannten normalen Menschen schaut ... Nennt ihr uns überhaupt Menschen? Oder sind wir eher so was wie Würmer?)

Wie kommst Du auf die Idee ... beleidige bitte nicht die Würmer... 🤣

Mal im Ernst, mir ist schon aufgefallen, das Du mit Deinem Unwissen kokettierst. Vielleicht solltest Du Dich bemühen Dir ein kreativeres Hobby zu suchen, als Deine Mitmenschen mit haltlosen Thesen zu überschütten...

...und nein Programmierer sind nichts besonderes. Sie sind Experten auf einem speziellen Gebiet. Sie können weder Kranke heilen, noch Brot backen.

1

im Prinzip kann man mit jeder turingvollständigen Programmiersprache alles realisieren. Der Unterschied liegt lediglich beim Aufwand, welchen man dafür betreiben muss.

C#

using System; 
class test { 
    static void Main(string[] args) 
    { 
        Console.WriteLine("Hallo Welt");
    }
} 

Das gleiche in Powershell:

'Hallo Welt'

Je nach Anwendungsgebiet hat jede Sprache gewisse Vorzüge und Nachteile.

Das Mutterschiff ist einfach die Fähigkeit des Programmierers Abläufe abstrakt als logische Zusammenhänge zu formulieren, völlig unabhängig von einer Sprache.

Ich programmiere seit 36 Jahren. Mir ist es ziemlich egal in welcher Sprache ich dem Rechenknecht sage was er tun soll. Meine persönlichen Kriterien sind in der Hauptsache so wenig Schreibkram wie möglich.

...und so hat auch jeder Programmierer so seine eigenen Präferenzen...

Ich kann mich mit einem Pythonprogrammierer und einem C++Proger über die Lösung eines Problems unterhalten, ohne auch nur ein eine Zeile speziellen Code zu rezitieren. Einfach indem ich eine abstrakte Logische Abfolge erkläre.

Pythonissam 
Fragesteller
 04.05.2021, 09:19
Das Mutterschiff ist einfach die Fähigkeit des Programmierers Abläufe abstrakt als logische Zusammenhänge zu formulieren, völlig unabhängig von einer Sprache.

Das meint, dass Mathematik der Gott des ganzen ist? Und wenn, welche genau?

Ich programmiere seit 36 Jahren.

Das werde ich auch mal sein. Also so alt.

Wenn dich wer um einen Lehrplan fragen würde um da Programmieren zu erlernen von 0 Wissen bist Grundwissen und sogar bist Bachelor Fähigkeit. Wie würde der aussehen?

0
Erzesel  04.05.2021, 09:59
@Pythonissam
Das meint, dass Mathematik der Gott des ganzen ist? Und wenn, welche genau?

Nö... das Grips und Kreativität entscheidend sind.

...um einen Lehrplan fragen ...

Ich bin Programmierer und kein Pädagoge/Lehrer.

Ich kann Algorithmen programmieren , die Steuersoftware für eine komplette Industrieanlage entwerfen.

Ich habe jedoch keine Ahnung wie man jemanden Programmieren lehrt.

Oft ist es nervlich billiger einfach ein komplettes Script zu schreiben, welches tut was es soll, statt jemanden dazu zu befähigen selbst zu denken.

Kann man überhaupt jemandem kreatives Denken lehren? ...oder ist das doch eher eine Anlage, welche man in die Wiege gelegt bekommt?

Ich kann in ein paar Stunden eine neue Programmiesprache lernen, das ist, für mich, total simpel. Denn die zugrundeliegende Logik ist universell. aber wie bitte soll ich jemandem erklären, was in meinem Kopf abläuft, wenn ich vor einer Blackbox hocke, in welche man etwas reinwirft und und etwas anderes kommt hinten raus? Bei mir füllt sich das dazwischen einfach mit den nötigen Abläufen, welche das Ergebnis hervorbringen.

Wie erklärt man Radfahren? Draufsetzen , Pedale treten, mit dem Lenke minimale Ausgleichskorrekturen vornehmen, welche der Gravitation entgegenwirken?

...Ne... ich habe meine Kinder aufs Rad gesetzt, "Mache mal" und nach ner halben Stunde und ein paar Stürtzen und Tränen konnten sie's.

1

Nein, das Werkzeug muss dem Problem angepasst sein.
Aber wenn du mal eine Sprache gelernt hast, lernst du auch
ziemlich schnell andere.