Furgy
Banned
Hardwareluxx Programmierung Sammelthread
Fragen / Ideenaustausch / Weiterbildung / Labern
Fragen / Ideenaustausch / Weiterbildung / Labern
Einleitung
In diesem Sammelthread geht es nicht darum, was eine Programmiersprache ist oder wie diese funktionieren - dafür gibt es andere Quellen. Es geht auch nicht darum, sich zu streiten, welche Programmiersprache besser ist, da man dies allgemein nicht sagen kann. Es gibt keine "beste Sprache". Jede hat sein Anwendungsgebiet und jede Sprache hat Vor- und Nachteile.
In diesem Thread kann zum Beispiel diskutiert werden über Programmiertechniken und andere Dinge, die bestimmte Sprachen betreffen.
Natürlich können hier auch Informationen gesammelt und ausgetauscht werden. Natürlich können auch Probleme beschrieben werden, da 4 oder noch mehr Augen mehr sehen, als 2 (und wer den Code selber geschrieben hat, sieht die Fehler irgendwann sowieso nicht mehr).
Hier dürfen auch Fragen von Einsteigern und Umsteiger kommen, um simple Fragen wie "Welches ist die beste Programmiersprache um anzufangen?" zu beantworten.
Welche verbreiteten Programmiersprachen gibt es?
C
C eine sehr weit verbreitete Programmiersprache und ist auf fast allen System verfügbar und ist wohl die Programmiersprache. C wird für Anwendungs- und Systemprogrammierung verwendet. Viele Kerne und Standardprogramme von UNIX-Ähnlichen Betriebssysteme sind in C geschrieben. C hat etwas, was sonst nur C++ aufweist: Die Fähigkeit der Pointer. Pointer sind ein mächtiges, aber auch gefährliches "Werkzeug".
C wird für Hardwarenahe Dinge verwendet, z.B. Treiber. Grössere Projekte sind mit C extrem aufwendig, da C nicht Objektorientiert arbeitet.
Vorteile:
- Hardwarenah
- Strukturiert
Nachteile:
- Die Syntax ist nicht gerade Anfängerfreundlich
- Pointer (ein Fluch und ein Segen in einem)
- Für grössere Projekte ungeeignet
C++
C++ ist eine höhere Programmiersprache und wird sowohl in der Systemprogrammierung als auch in der Anwendungsprogrammierung eingesetzt. Sie ermöglicht zum einen eine effiziente, maschinennahe Programmierung, aber auch Programmierung auf hohem Abstraktionsneavau.
Typische Anwendungsgebiete in der Systemprogrammierung sind Betriebssysteme, eingebettete Systeme, virtuelle Maschinen, Treiber und Signalprozessoren.
C++ ist ähnlich Hardwarenah wie C, zusätzlich objektorientiert.
Vorteile:
- Sehr weit verbreitet, dadurch auch eine grosse Sammlung an Hilfen, Büchern und so weiter
- Aufbau auf C, für Umsteiger von C also relativ einfach zu erlernen
- gute Performance
Nachteile:
- Grosser Aufwand und grosse Codes für grössere Applikationen
C#
C# ist von Microsoft entwickelt worden im Rahmen der .NET-Strategie. Es wird auf Konzepte von Java, C++, SQL, C und Delphi zugegriffen und unterstützt die Entwicklung sprachunabhäniger .NET-Komponenten und COM-Komponenten für Win32-Applikationen.
Das Einsatzgebiet von C# ist etwa dem von Java gleichzusetzen, mit dem Unterschied, das nichts plattformunabhängiges erstellt werden kann. C# wird auch für die Spielentwicklung benutzt.
Vorteile:
- DirectX- und OpenGL-Unterstützung
- Aufbau auf C und C++, für Umsteiger von C/C++ also relativ einfach zu erlernen
Nachteile:
- Die Ausführung benötigt eine virtuelle Maschine, was zusätzliche Systemressourcen benötigt
Java
Java ist wohl neben C++ die Programmiersprache schlechthin. Java verfolgt mehrere Ziele, wie zum Beispiel Sicherheit, Schnelligkeit und Robushtheit. Java arbeitet ausschliesslich Objektorientiert.
Einsatzgebiete für Java gibt es genug. Es wird für Programme aller Art eingesetzt, die auf mehreren System arbeiten müssen, so zum Beispiel SAP oder Oracle. Systemnahe Sachen sowie 3D-Sachen werden mit Java eher weniger realisiert.
Vorteile:
- Sehr sichere Sprache
- Applets
- Programmieraufwand kleiner als bei C++, auch bei grösseren Projekten
- Plattformunabhängig
Nachteile:
- Die Ausführung benötigt eine virtuelle Maschine, was zusätzliche Systemressourcen benötigt
- Die Systemprogrammierung ist sehr eingeschränkt
PHP
PHP ist das Arbeitstier des Webs. Kleine Projekte lassen sich einfach umsetzen und trotzdem hat es genug Reserven um auch mit anspruchsvollen Projekten klarzukommen. PHP ist aufgrund seiner Einsteigerfreundlichkeit sehr weit verbreitet und es gibt unmengen Dokumentation und Software. Durch die weite Verbreitung ist es aber nicht immer einfach da die Perlen zu finden.
Vorteile:
- Einsteigerfreundlich
- Objektorientiert
- Aktive Community
- Grosse Standardbibliothek
Nachteile:
- Inkonsistente und wenig objektorientierte Standardbibliothek
Python
Python verfolgt das Ziel, übersichtlich und kurz zu sein. Zum einen wurde dies dadurch realisiert, das wenig Schlüsselwörter benötigt werden, und zum anderen durch wurde die Syntax verkürzt. Durch die Einbettung von anderen Sprachen eröffnen sich nahezu unendliche Möglichkeiten für den Entwickler.
Mit Python lassen sich auch grössere Anwendungen programmieren, ausgenommen Spiele.
Vorteile:
- Leistungsstark
- Die Python-Lizenz ist für Firmen sehr interessant
- Plattformunabhängig
Nachteile:
- Keine Strichpunkte (macht den Umstieg schwerer)
- Die Codeverkürzungen, die man hat, machen Code sehr schnell nahezu unlesbar
- Keine grosse Verbreitung
Visual Basic
Visual Basic wurde mit dem Ziel entwickelt, möglichst einfach zu sein, um Rapid Development zu ermöglichen. Mit Visual Basic lassen sich sehr schnell Programme entwickeln. Die Syntax wurde der Einfachheit halber stark an Englisch angelehnt.
Einfache Programme werden mit Visual Basic realisiert, wie zum Beispiel Zusätze für Word- und Excel-Dateien (Visual Basic for Application). Für kleinere Projekte sowie zum einsteigen in die Programmierung ist man mit Visual Basic bestens bedient.
Vorteile:
- Sehr Einstigsfreundlich
- Schnelle Erstellung von Programmen
- Grosse Nachschlagewerke
Nachteile:
- Nicht für den industriellen Einsatz gedacht
- Nicht so viel Möglichkeiten wie andere Programmiersprachen
Fortgeschrittene Programmierer im Hardwareluxx
C
- Vermillion
C++
-
C#
- TBird
Java
-
PHP
- Nascar
Python
- Vermillion
- Furgy
Visual Basic
- TBird
- Furgy
FAQ - Frequently Asked Questions
Welche Programmiersprache eignet sich für den Einstieg?
Alle hier aufgeführten Sprachen kann man für den Einstieg in die Progroammierung nutzen. Wegen der Syntax, den Pointern und der nicht vorhandenen Objekte ist aber der Einstieg über C sicherlich der schwierigste.
Um die Frage also genau zu beantworten, muss man sich die Frage stellen, was man entwickeln will.
Weiterführende Links & spezielles zum Thema
Allgemeines
- OpenBook: Objektorientierte Programmierung von Galileo Computing
C
- OpenBook: C von A bis Z von Galielo Computing
C++
-
C#
- OpenBook: Visual c# 2008 von Galileo Computing
- Guide to C#
- .NET BlogBook
Java
- OpenBook: Java ist auch eine Insel von Galileo Computing
PHP
- OpenBook: PHP PEAR von Galileo Computing
Python
- OpenBook: Python von Galileo Computing
Visual Basic
- OpenBook: VisualBasic 2008 von Galileo Computing
- OpenBook: Einstieg in Visual Basic 2008 von Galileo Computing
_________________________________________________
Quellenangaben
- Wikipedia
- Vermillion
- TBird
- Kasn
Danksagungen
- Kasn für eingebrachte Ideen
- Vermillion für eingebrachte Ideen
- Kasn für eingebrachte Ideen
- CORNHULIO für eingeschickte Links für C#
- Allen Usern unter den Fortgeschrittenen Programmierer im Hardwareluxx
changelog:
15.10.2009:
-Grundgerüst erstellt
17.10.2009:
-"Welche verbreiteten Programmiersprachen gibt es?" erstellt
-"Fortgeschrittene Programmierer im Hardwareluxx" mit Vermillion in C, Vermillion in Python und Furgy in Python ergänzt
18.10.2009
- Nachteile von C# und Java korrigiert
- Delphi aus der Liste gängiger Programmiersprachen entfernt
- Visual Basic der Liste gängiger Programmiersprachen hinzugefügt
- PHP der Liste gängiger Programmiersprachen hinzugefügt
- "Fortgeschrittene Programmierer im Hardwareluxx" mit TBird in C#, TBird in VB, Nascar in PHP und Furgy in VB ergänzt
- Weiterführende Links mit OpenBooks von Galileo Computing ergänzt
- FAQ-Frage "Welche Programmiersprache eignet sich für den Einstieg?" hinzugefügt
- Nachteil von C++ korrigiert
- PHP komplett überarbeitet
19.10.2009
- Schreibfehler korrigiert
20.10.2009
- Weiterführende Links von C# erweitert
Zuletzt bearbeitet: