Hallo
Dann will ich auch mal meinen Senf dazugeben:
Programmiersprachen lassen sich - einfach ausgedrückt - in einige wenige Konzepte aufteilen: Maschinensprache, Assembler, prozedurale,
OOP, .NET(gehört zu
OOP), deklarativ, funktional, logisch.
Maschinensprache
Benutzt heute so gut wie keiner mehr: 00110010111101101110101101100111100101011001(<-- seeehr übersichtlich
)
Vorteil:
-Sofort lauffähig
Nachteil:
- Läuft nur auf gaanz bestimmten Systemen ohne Änderung
- seeehr fehleranfällig, da unübersichtlich
- sehr langwierig
Assembler-Sprachen
Die einzelnen CPU-Befehle werden durch sogenannte Memnicons(hat Olli schon angesprochen). repräsentiert. Is also sehr kleinschrittig, da du *alles* selbst machen musst. Kann sinnvoll sein, wenns um Geschwindigkeit geht.
Vorteile:
- (so gut wie) kein Overhead
- inline-Assembler
- so lernt man, wie das ganze intern funktioniert
Nachteile:
- langwierig
- fehlerträchtig, da unübersichtlich
Prozedurale Sprachen
Einzelne Programmteile werden in Funktionen(Subroutinen) ausgelagert.
BASIC
Von BASIC gibts ne unmenge an Dialekten(is bei vielen Sprachen so). Ich hab meinerzeit mit QBASIC angefangen. Nicht sehr schön, funktioniert aber. QBASIC arbeitet viel mit Varients und wird schnell unübersichtlich.
QBASIC is AFAIK auf der Win95(vielleicht auch noch bei anderen Versionen) auf der CD drauf, bei DOS aber auf jeden Fall.
Pascal
Auch hier gibts viele Dialekte. Der bekannteste ist TurboPascal.
TurboPascal 5.5 gibts kostenlos im Museum beim Borland. FreePascal is OpenSource.
C
Sehr Pointer-Lastig. Wenn du C kannst, weißt du mit Pointern umzugehen.
Is aber mühsam, andauernd, auch für n String(in C char*) Pointer vor der Nase zu haben.
TurboC gibts kostenlos im Museum beim Borland.
...
Prozedurale Sprachen bibts wie Sand am Meer. Siehe Google, Wikipedia.
OOP
Einzelne Programmteile werden in Klassen gekapselt und als Opjekte instanziert. Das ganze erzeugt n nicht zu verachtenden Overhead, is aber weitaus übersichtlicher und einzelne Programmteile sind einfach wiederverwendbar.
C++
Basiert auf C und hantiert damit auch viel mit Pointern rum. C++ ist AFAIK die meistgenutzte Sprache überhaupt. Wenn du C++ kannst, bist du voll im Mainstream. Bei C++ gibts aber noch unterschiedliche Möglichkeiten/IDEs/Dialekte/Bibliotheken:
C++Builder:
C++ -
IDE von Borland. Verwendet ebenfalls die
VCL der "Umstieg" sollte also relativ leicht sein.
Den C++ Buildeer 1.0 gibts in dem Buch C++ for Kids(ca. 25€). Aktuelle Versionen sind Teuer, preise gibts beim Borland.
C++BuilderX:
X-Plattform-
IDE von Borland. Auf einen tollen Formulardesigner musst du hier verzichten. sozusagen:
NonVCL. C++BuilerX is in der Foundation-Version kostenlos beim Borland downzuloaden.
MS VisualStudio:
Auch hier gibts keinen Formulardesigner wie bei Delphi. VS is aber wahrschenlich am verbreitetseten. Hierzu gibts ne Kostenlose Autorenversion, die aber Exen erzeugt, die nur laufen, wenn die
IDE gestartet ist.
Bibliotheken:
[da gibts was von MS, mir fällt der Name nur nicht mehr ein
hat sich erledigt: MFC], QT(X-Palttform; KDE), GTK+(X-Plattform; Gnome)
Java
Bei Java gibts n Zwang zum
OOP. OOPer gehts nicht. Mittlerweile relativ weit verbreitet. Erstellt einen ObjectCode, der von einer VM(VirtualMaschine) interpretiert wird(-->Plattformunabhängig). Für Java gibts mehrere IDEs und Komponentensammlungen: Eclipse, JavaOneStudio(vierher Forte for Java), NetBeans, JBuilder.
Eclipse is OpenSource, JavaOneStudio und NetBeand INHO auch. JBuilder is von Borland und gibts dort in der Foundation Version kostenlos zum Download. Komponentensammlungen sind AWT, Swing und NetBeans.
ObjectPascal/Delphi
Das sollte dir bekannt sein.
Delphi ist seehr übersichtlich und hat auch nen sehr guten Formulardesigner. Das gantze dasiert - wer hätts gedacht - auf Pascal. Und stellt euch vor es gibt auch gute Delphi-Foren
.
VisualBASCIC
Basiert auf BASIC. Is immer noch relativ unübersichtlich, mittlerweile aber objektorientiert. "Abarten" von VB sind VBA und VBS. Dazzu wurde schon was gesagt. Dem kann ich auch nur zustimmen: VBA und VBS sind für kleine Sachen ganz praktisch, VB....Ne, nich wirklich. Auch kleinere Sachen gehen mit Delphi besser.
.NET
Microsoft hat mit .NET sozusagen die gesammte
WinAPI(und noch viel mehr) gekapselt. .NET ist konsequent
OOP und Sprachunabhängig. Die "ursprüngliche" .NET-Sprache ist C#. .NET-Dialekte gibts mittlerweile aber für sehr viele Sprachen: Delphi.NET, VB.NET, C++.NET, J#.NET, ...
Die Spache ist mehr oder weniger Nebensache. Du kannst prinzipiell ein Projekt teilweise in Delphi, C++ ubnd C# schreiben. Nur die Syntax unterscheidet sich halt. Mit Longhorn wird .NET zum Standard erhoben und verdrängt die
WinAPI. .NET ist die Zukunft(das hat M$ so bestimmt).
für C# gibts SharpDevelop(
OS), Delphi2005(natürlich auch für Delphi.NET in der
PE-Version kostenlos auf CDs) und VS.NET.
deklarativ
Das Problem wird nur noch beschrieben, nicht mehr die Lösung. Rein deklarative Sprachen gibts nicht!
funktional
Ein Problem ist eine Mathematische Funktion!
Hierzu zählen Lisp und LOGO
logisch
Das Programm ist auf logischer Schlussfolgerung aufgebaut. wenn A, dann B.
Prolog
Fazit:
Wenn du Mainstream willst C++, wenn du Zukunft willst .NET(oder Java), wenn du interna kennen lernen willst
ASM. Ansonsten Delphi.
So, ich hoffe ich bin nicht zu spät; das schreiben hat ne ganze Zeit lang gedauert.
mfg
Christian