Mit welcher Programmiersprache bezwecke ich was?

...komplette Frage anzeigen

6 Antworten

HTML (und CSS)  ist eine Beschreibungssprache für Webseiten. Das ist in dem Sinne keine Programmiersprache, damit kannst Du nur festlegen, wie Deine Webseite in einem HTML-fähigen Browser aussehen soll.

"Richtige" Programmiersprachen erzeugen, bzw. stellen lauffähige Programme dar, mit denen man praktisch jeden Aspekt des Verhaltens eines Computers steuern kann.

Der Browser z.B. ist ein ausführbares Programm, das eben in der Lage ist HTML zu interpretieren.

Bei Programmiersprachen unterscheidet man u.a. zwischen Skriptsprachen und Compiler-Sprachen. Python, Perl, Windows-Batchfiles usw. sind Skriptsprachen. Die werden direkt als Code von einem Interpreterprogramm  ausgeführt, wenn man sie startet. Das ist meist langsamer als ein "echtes" kompiliertes Programm. C, C++, C#, Pascal, Fortran usw. müssen aus dem Quellcode zuerst kompiliert werden. D.h. es wird ein ausführbares binäres Programm erzeugt, das dann sehr schnell läuft und mehr Möglichkeiten hat als ein Skript. Java ist ein wenig von beidem. Javascript (was mit Java nichts zu tun hat) ist dagegen eine Skriptsprache, die Webbrowser interpretieren können.

Sprachen wie C++ und Java sind objektorientiert und vergleichsweise komplex. Bei C arbeitet man sehr hardware-nah am Speicher. Das ist alles nicht ganz trivial. Wenn Du anfangen willst Programmieren zu lernen, würde ich Dir raten mit einfachen Skriptsprachen anzufangen. Vielleicht möchtest Du zuerst lernen Batch-Dateien in Windos zu schreiben, die einfache Aufgaben automatisieren. Die wichtigsten Elemente von Programmiersprachen wie Schleifen Variablen und Entscheidungsstrukturen kann man da leicht kennenlernen. Danach kann man sich langsam an die Komplexeren Sprachen heranwagen.

Anstatt einzelne Sprachen zu vergleichen, konzentriere dich lieber auf hauptsächliche Sprachfeatures:

  • Kompiliert vs. Interpretiert
  • Maschinencode vs. Bytecode
  • Statisch vs. dynamisch typisiert
  • GC vs. manuelles Speicheraufräumen
  • Single-Thread vs. Nebenläufigkeit
  • Plattformabhängig vs. Portabilität
  • High- vs. Lowlevel
  • rudimentäre vs. gut ausgebaute Standardlib
  • wenige vs. große Laufzeitabhängigkeiten
  • einfacher vs. komplexer Build-Prozess
  • veraltete vs. moderne Konzepte

Zu diesen Punkten bitte noch Folgendes beachten:

  1. Die Übergänge von der linken zur rechten Seite sind bei vielen Punkten oft fließend und verschwimmen.
  2. In vielen Sprachen kann man auch mit Ansätzen programmieren, die nicht offensichtlich sind, bzw. für die solche Sprachen nicht in erster Linie geschaffen wurden.

Da es dir ja um C# und C++ in deiner Frage geht, hier nochmal eine Kurzkategorisierung anhand einiger der obigen Punkte ...

C++: Maschinencode, manuelles Speicheraufräumen, Lowlevel, rudimentäre STL, wenige Runtime-Dependencies

C#: Bytecode, GC, Highlevel, große Runtime-Dependencies

Achtung / Disclaimer: Bei beiden Sprachen kann man jeden einzelnen Punkt auch negieren! So kann man z. B. C# mit aktuellen Visual Studio Versionen auch in nativen Maschinencode anstelle von MSIL kompilieren oder bei C++ kann man problemlos GC einsetzen. Also nicht alles so heiß essen, wie es gekocht wird! ;)

Grundsätzlich kann man mit jeder Programmiersprache (fast) alles machen, wobei sich oft nur die Fragen der Effizienz, Wirtschaftlichkeit oder der Wartbarkeit stellen. Man sollte also die Sprache anhand der vorliegenden Anforderungen wählen, und nicht umgekehrt.

Schönen Tag noch! :)

Im Grunde genommen kannst du mit allen Programmier-Sprachen das selbe bezwecken (auf dem Gebiet der SpieleEntwicklung und Software-Programmierung). Der Unterschied liegt jedoch in der Anwendung und Leistung. C++ ist sehr schnell jedoch aber nicht so verständlich und "einfach" wie Java.

Kurzgesagt: (Links: kompliziert, umständlich, schwer aber schnell. Rechts: einfach gut gegliedert und sehr einfach aber etwas langsamer):

Assembler  -  C -  C#  - JavaScript - Python -  C++  -  Java

Man merkt aber kaum einen Unterschied von der Leistung her (Außer bei sehr schweren und großen Programmen wie Minecraft)

Wenn du aber eher Spiele entwickeln willst solltest du auf eine Game Engine zurückgreifen (vorallem bei 3D ) wie Unity oder die Unreal Engine...

Für einen Einsteiger ist Java wohl am einfachsten!

Jedoch musst du wissen ob du eher Roboter, DesktopAnwendungen oder Websides programmieren willst.

Bei Deiner Reihenfolge finde ich C++ nicht ganz richtig eingeordnet, ein C++ Binary läuft sicher schneller als Python. Und persönlich finde ich JS und Python auch deutlich leichter als Java. Aber das mag Geschmackssache sein.

1
@pythonpups

Ich empfinde die Reihenfolge auch als sehr durcheinander gewürfelt, aber das ist vermutlich sowieso viel zu stark Ansichtssache, als dass man das formal festlegen könnte. :)

1

Also wenn man grob unterscheiden müsste welche Stärken bzw wofür man welche Sprachen am meisten verwendet würde ich es so aufstellen: (Man beachte dass vieles nur halb stimmt da z.B. HTML in dem Sinne keine Programmiersprache ist, ich es aber für diesen Zweck trotzdem dazu zähle.

  • HTML - Webseite
  • CSS - Webseite
  • Javascript - Webseite / Apps / Server
  • PHP - Webseite / Apps / Server
  • SQL - Datenbanken
  • C# - Anwendungen (Desktopanwendungen, Apps, Spiele etc.) / Server
  • Java - Anwendungen / Server (bitte vermeiden!)
  • C++ - Betriebsysteme / Anwendungen
  • Prolog - Künstliche Intelligenz
  • Python - Anwendungen / Server
  • Actionscript - Webseiten / Minispiele
  • Visual Basic - Anwendungen 
  • Objective C - IOS Apps
  • Swift - IOS Apps 
  • etc...

Also, selbstverständlich gibt es noch viele viele weitere Programmiersprachen  die man noch auflisten könnte und auch kann man viele der oben genannten auch natürlich für andere Zwecke einsetzen, dies waren nur so in meinem Kopf die typischen Anwendungsfälle der jeweiligen Sprachen. 

Wieso sollte man Java vermeiden? Als Applet im Browser ist klar und wird wie Flash inzwischen deaktiviert. Aber ansonsten?

0

Mit welcher Programmiersprache bezwecke ich was?

Leider ist die Fragestellung mehr als ungeschickt.

Computer berechnen mehr oder weniger nach zuvor mit Programmiersprachen erstellten Algorithmen Problemstellungen, für die wir Menschen zuviel Zeit bräuchten.

Da Programmiersprachen in den meisten Fällen sehr allgemein gehalten sind, bezwecken alle Programmiersprachen alles und lösen die gestellten Probleme auch mehr oder weniger gleich. Dies zeigt sich u.a. daran, dass beispielsweise beim Vergleich zweier Werte das Schlüsselwort schlicht und ergreifend „if“ ist.

Hier muss also jeder selbst seine Erfahrungen machen. Man kann mit beinahe allen Programmiersprachen jedes Problem mit mehr oder weniger Aufwand lösen. Java nimmt insofern eine Sonderstellung ein, dass es einen sogenannten Byte-Code erzeugt, der von einem „Interpreter“ auf jedem System etwas anders ausgeführt wird. Dafür bietet Java auch eine erhöhte Sicherheit bei der Ausführung seiner Programme, die u.U. ohne genauere Prüfung eigene Speicherbereiche überschreiben, weil diese Sicherheit eines „Interpreters“ nicht gegeben ist.

Das kannst mit allen Sprachen so ziemlich das gleiche erreichen. Es gibt einige Vorteile die diese Sprachen vereinzelt bieten. Es kommt ganz drauf an, was genau du mit der Sprache machen willst.
Java ist die meist genutzte Sprache von den dreien und in meinen Augen auch die einfachste. Danach kommt C#, welches Java in der Syntax sehr ähnelt und C++ ist dann doch schon ne Stufe härter.. da du dort deutlich mehr "falsch" machen kannst.

C++ wird meist in Spielen oder sehr großen Anwendungen benutzt, da es die schnellste Sprache der dreien ist. Da kommts dann auch auf die Perfomance an.

Java wird so ziemlich überall benutzt. Guter und starker Allrounder mit einer riesen Bibliothek.

C# ist immer noch Top Notch wenn's um Windows Applications geht. Da ist C# ganz vorne dabei.

Das ist so mein derzeitiges Wissen über diese 3 Sprachen. Am Anfängerfreundlichsten ist jedoch Java.. dazu würde ich dir raten falls du in's programmieren einsteigen willst.

Und sind alle drei Sprachen mit Windows und IOS kompatibel?

0
@emtonsitaht

Alle drei sind auf Windows Kompatibel, ja. Ich weiß das du in C# auch Apps schreiben kannst in iOS, Android sowie Windows Phone. Wie das mit Java und C++ aussieht weiß ich nicht, jedoch gehe ich davon aus, dass Java das eigentlich auch können müsste.. . Da musst du dich eventuell nochmal selbst informieren.

0
@Graphitiboy

Auf iOS sind meines Wissens Swift und Objective-C am verbreitetsten. Ob's Oracle da ein Java für anbietet weiß ich leider auch nicht. Muß Apple ja auch absegnen.

0

Assembler ist ja die schnellste geläufige ProgrammierSprache, ist jedoch ziemlich schwer. Kein Vorteil ohne Nachteil. Je schneller desto "umständlicher" und komplizierter. Außerdem merkt man bei kleinen Projekten eh keinen Unterschied! Man muss sich ja nicht mit Minecraft messen ;)

0

Was möchtest Du wissen?