Als Programmiersprache bezeichnet man die Notationen, die nach bestimmten Regeln in menschenlesbaren Programmen für programmierbare Maschinen enden. Programmiersprachen bestehen aus Wörtern oder Wortteilen, meist aus dem Englischen, und Trennzeichen. Programmiersprachen müssen so konstruiert sein, dass ihre Extrakte durch automatische Übersetzung oder Interpretation in Maschinensprache gewandelt werden kann. Das schränkt natürlich die Möglichkeiten der Sprache ein. Eine Programmiersprache kann nicht wie menschliche Sprache funktionieren.
Sie muss in ganz anderer Weise eindeutig sein und sie hat keine sozial oder kulturell bedingten Ausformungen. Trotzdem bieten auch Programmiersprachen Freiheiten. Es gelingt immer wieder Programmierern, durch ihre individuellen Methoden und ihren ganz persönlichen Ausdruck einem Werk ihren Stempel aufzudrücken.
Das ist allerdings nicht das Ziel. Programmiersprachen sollen auf der einen Seite Programmierung in menschenlesbarer Form ermöglichen und auf der anderen Seite diese Arbeit soweit wie möglich vereinfachen. So entsteht in der Entwicklung aller Programmiersprachen das Spannungsfeld zwischen fehlerfreier Übersetzbarkeit und Bequemlichkeit für den Programmierer im Mittelpunkt. Lesbarkeit, Knappheit und Sicherheit sind nur einige Koordinaten dieses Spannungsfeldes.
Warum eigentlich Sprache, wenn niemand es sprechen kann?
Die meisten Menschen verstehen unter einer Sprache ein System von Wörtern und Zeichen, mit dem sich Menschen untereinander verständlich machen. Nicht nur, aber auch durch Lautbildung, durch Sprechen. Niemand aber spricht Programmiersprachen. Was ist denn nun eine Sprache? Darüber haben sich schon Generationen von Sprachwissenschaftlern Gedanken gemacht. Stellvertretend hier eine Definition des amerikanischen Linguisten Edward Sapir von 1921:
„Sprache ist eine ausschließlich dem Menschen eigene, nicht im Instinkt wurzelnde Methode zur Übermittlung von Gedanken, Gefühlen und Wünschen mittels eines Systems von frei geschaffenen Symbolen.“
Edward Sapir: zitiert nach John Lyons, 4. Auflage, 1992, S. 13
Mit etwas gutem Willen kann man danach tatsächlich Programmiersprachen als Sprachen bezeichnen, auch wenn die meisten Programmierer an der Übermittlung ihrer Gefühle und Wünsche in diesen Systemen scheitern würden. Programmiersprachen bilden jede für sich ein Kommunikationssystem, das durch Wörter und Zeichen Verständigung anstrebt – von Mensch zu Mensch und in der Übersetzung dann von Mensch zu Maschine.
Semiotik, Syntax und Semantik
Wie alle Sprachen dienen auch Programmiersprachen der Informationsverarbeitung. Die Grundeinheit jeglicher Information ist das Zeichen. Mit ihm, mit den Zeichensystemen und -prozessen beschäftigt sich die Semiotik. Sie analysiert, unter welchen Voraussetzungen eine codierte Nachricht zum Empfänger gesendet und von diesem decodiert, klassifiziert und interpretiert werden kann. Jedes Zeichen vereint verschiedene Aspekte in sich:
- Das Signifikat (das Bezeichnete) entspricht der inhaltlichen, der Bedeutungsseite des Zeichens.
- Der Signifikant (der Bezeichnende) entspricht der Ausdrucksseite des Zeichens.
- Valeur (Wert) entspricht der Position und dem Wert des Zeichens in Beziehung zu anderen Zeichen.
- Chose (außersprachliche Realität) entspricht dem Umfeld, auf das das Zeichen trifft. In der Programmiersprache ist es einmal der Programmierer in seinem sozialen und kulturellen Sein und auf der anderen Seite die Maschine mit ihren Funktionen.
Jede Sprache muss, damit Sie eine Chance hat, verstanden zu werden, über eine Struktur verfügen. Diese Struktur nennt man in der Programmiersprache wie in natürlichen Sprachen die Syntax, die äußere Erscheinungsform. Sie ist ein entscheidender Faktor für das Verständnis des Codes. Noch wichtiger ist in Programmiersprachen die Semantik der Zeichen, das ist ihre Bedeutung. Anders als in natürlichen Sprachen gibt es nicht sozial oder kulturell interpretierbare Bedeutungen. Die Bedeutung eines Zeichens muss in ihrem Zusammenhang eindeutig sein.
Das Schwierige an Programmiersprachen ist, dass sie von Sprache zu Sprache teilweise für das gleiche Zeichen eine vollkommen andere Bedeutung haben. Programmiersprachen kommen mit einem relativ geringen Wort- und Zeichenschatz aus. Ihre Zeichen sind in der Regel aus der Mathematik entlehnt, ihre Wörter oder Teilwörter aus dem Englischen. Deshalb ist es gut, wenn jede/r angehende Programmierer/in wenigstens über Grundkenntnisse der englischen Sprache verfügt.
Die Geschichte der Programmiersprachen
Die Anfänge von etwas wie einer Programmiersprache liegen 200 Jahre zurück. In der industriellen Revolution wurden immer mehr Maschinen entwickelt, die wiederkehrende Arbeiten erledigten. Um die teuren Maschinen auszulasten, wurde bald gefordert, auch wechselnde wiederkehrende Tätigkeiten von ein und derselben Maschine erledigen zu lassen. Vorreiter war die Textilindustrie mit ihren großen Webstühlen. Joseph-Marie Jacquard führte in seinen Werkstätten die ersten programmierbaren Webmaschinen ein.
Die wichtigste Verbesserung von Jacquards Musterwebstuhl gegenüber all seinen Vorläufern bestand darin, dass er die Nockenwalze der österreichischen Webstühle durch das Endlosprinzip der Lochkartensteuerung ersetzte. Dadurch konnten endlose Muster von beliebiger Komplexität mechanisch hergestellt werden. Auf den Lochstreifen waren allerlei Informationen über das zu webende Muster enthalten. Die Streifen wurden mit Nadeln abgetastet; ein Loch bedeutete Faden heben, kein Loch Faden senken. Diese beiden Informationen reichten aus, um großflächige Musterungen herzustellen.
Auf die erste im mathematischen Sinn logische Programmierung von Ada Lovelace in den Jahren 1842/43 sind wir schon eingegangen. Die Maschine wurde nie gebaut. So erstreckten sich alle Programmierversuche für mechanische Maschinen auf Lochkartensysteme. Erst in den 30er Jahren des 20. Jahrhunderts begann die Frühphase dessen, was wir heute unter Programmierung und Programmiersprachen verstehen: das universell einsetzbare Lambda-Kalkül. Damit hätte man schon mächtige Programme schreiben können, doch noch fehlte die Hardware. Erst mit den Entwicklungen von Konrad Zuse und John von Neumann zur Computerarchitektur fiel der Startschuss zum kometenhaften Aufstieg der Informatik und Programmierung.
Zwischen Null und Eins
Die ersten Computer-Programmierer waren echte Pioniere. Weil jede Central Process Unit (CPU = Hauptprozessor) nur mit den beiden Zuständen „Strom an“ und „Strom aus“ arbeitet, musste zunächst jede Anweisung an die Maschine mit Symbolen „0“ und „1“ als Synonym für diese Zustände auskommen. Daten und Befehle wurden also binär eingegeben, in langen Reihen von Nullen und Einsen. Das war und ist die Maschinensprache. Ihr Nachteil: Komplexe Aufgaben in Maschinensprache zu notieren ist nahezu unmöglich.
Nicht, dass die ersten Programmierer Dussel gewesen wären, die maximal bis Eins zählen konnten. Nein, sie waren hoch intelligent. Mussten sie doch Code schreiben, der außerordentlich lang und unübersichtlich war. Ein für mächtige Programme untaugliches Prinzip, da der Aufwand für die Fehlersuche den für die Programmierung übersteigt. So war es nicht verwunderlich, dass schnell die zweite Stufe der Programmiersprachenentwicklung erklommen wurde:
Assemblersprachen
Abgeleitet vom Englischen „assemble“ (montieren, zusammensetzen) entwickelten kluge Köpfe diese Sprache in vielen Varianten. Alle Dialekte hatten zwei Dinge gemeinsam: Erstens waren sie immer noch stark an der Maschine orientiert, das heißt, für jede Prozessorart musste ein Programm individuell umgeschrieben und angepasst werden. Und zweitens wurden die Befehle nun als Buchstabenkombinationen nach den Regeln der Mnemotechnik eingegeben. Zum Beispiel „mov“ für move (bewegen). Man konnte also mit „mov ax 10“ befehlen, dass in den Speicherplatz ax der CPU der Wert 10 geschrieben werden sollte.
Trotz der maschinennahen Programmierung musste natürlich erstmals ein Übersetzer eingeschaltet werden, der Assembler (ein spezieller Compiler). Neu war auch, dass neue Programmteile danach mit bereits vorhandenen Programmteilen automatisch verknüpft wurden und dann als ausführbare „exe“-Datei zur Verfügung standen.
Bis in die 90er-Jahre des 20. Jahrhunderts wurden Computerspiele, Betriebssysteme und zahlreiche Spezialanwendungen in Assemblersprache geschrieben. Noch heute werden manche Gerätetreiber und Routinen für Prozessoren in einer Variante dieser Sprache notiert. Das liegt an einem großen Vorteil: Assembler ist so maschinennah, dass die Übersetzung wesentlich weniger Zeit beansprucht als in entsprechenden Compilern einer Hochsprache. Auch sind manche Aufgaben präziser und schneller zu formulieren. Der generelle Nachteil eines in der Regel noch zu langen Codes und der beschränkten Einsatzmöglichkeit hat jedoch bereits in den 50er Jahren des letzten Jahrhunderts dazu geführt, dass Informatiker die dritte Generation der Programmiersprachen schufen.
Auch für Schwaben angenehmer: die Hochsprachen.
Es war klar, dass immer komplexere Aufgaben und viele unterschiedliche Maschinenarchitekturen neue Programmiersprachen erforderten, die folgenden Ansprüchen genügen mussten:
- maschinenunabhängigere Programmierung – Einsatz der Programme auf unterschiedlichen Rechnern.
- Projekte und Programme sollten besser strukturiert werden. Nicht zuletzt, um ihre Lesbarkeit zu verbessern.
- Der Programmierer sollte von Rechner-Spezialkenntnissen entlastet werden, damit er sich auf die Aufgabenstellung für die Programmierung und deren Lösung konzentrieren konnte.
Die erste dieser Hochsprachen war FORTRAN für technisch-wissenschaftliche Anwendungen (FORmula TRANslator). Es folgten LISP (LISt Prozessor) und COBOL (COmmon Business Oriented Language). Alle drei sind in weiterentwickelten Versionen noch in Gebrauch.
Ein Meilenstein in der Geschichte war die Entwicklung von ALGOL (ALGOrithmic Language), weil in ihrem Gefolge zum ersten Mal Gültigkeitsbereiche definiert wurden und die Bachus-Naur-Form (BNF) zur kontextfreien Beschreibung der Syntax jeder Programmiersprache als Standard festgeschrieben wurde. Auf Algol basieren etliche spätere Sprachen wie zum Beispiel Pascal, Basic oder C.
Neben den ersten Hochsprachen, zugeschnitten auf bestimmte Anwendungsbereiche, wurden mit dem ersten Boom der Computerindustrie in den 60er und vor allem 70er Jahren neue Sprachen für allgemeinere Einsatzgebiete geschaffen. Sie waren nicht so akademisch aufgebaut und begeisterten vor allem das Gros der Jungprogrammierer, die vielen Einsteiger. Von BASIC (Beginner´s All-purpose Symbolic Instruction Code) über C und Pascal (benannt nach dem Mathematiker Blaise Pascal) bis zur Weiterentwicklung Delphi. Mitte der 80er Jahre wurde die objektorientierte Programmierung populärer. C++ und C# boten in der Folge die entsprechenden Antworten auf der Basis von C. Der Start in das Internetzeitalter brachte dann wieder neue Sprachen hervor, allen voran Java, und die Auszeichnungssprachen HTML (HyperText Markup Language) und UML (Unified Modeling Language).
C++, C# oder Java lernen? Fangen Sie an – kostenlose Infos hier!
Die vierte Generation
Fourth Generation Language (4GL) vereint Programmiersprachen und Programmierumgebungen, die ganz unterschiedliche Zwecke verfolgen. Neben eigentlichen Programmiersprachen sind damit auch Programmierumgebungen für Datenbankabfragen, Datenmanipulation, Datenanalyse, Berichterstellung und Formularerstellung sowie Werkzeuge gemeint, mit denen grafische Benutzeroberflächen programmiert werden. Allen gemeinsam ist, dass sie fast schon für normale Nutzer gebaut sind und durch weniger Code kürzere, verständlichere, besser korrigierbare und erweiterbare Programme erlauben. Fast schon in Umgangssprache werden die Anweisungen gegeben. Auch ein Benutzer mit wenig Ahnung soll mit diesen Tools Programme schreiben können. Ein gutes Beispiel dafür ist SQL (Structured Query Language = Strukturierte Abfragesprache) für Datenbanken. Der Benutzer muss nur noch angeben, welche Daten er benötigt. Er muss nicht mehr Schritt für Schritt programmieren, wie der Computer die Daten suchen soll.
Das babylonische Sprachengewirr
Von den Anfängen der Programmierkunst bis heute ist trotz aller Versuche, einheitliche Standards zu vereinbaren und multifunktionale Sprachen zu entwickeln, die Anzahl der Programmiersprachen nicht gesunken, sondern gestiegen. Es gibt keinen Programmierer, der sich noch in allen Sprachen auskennen könnte. Beinahe jährlich kommen neue dazu. So ist ein fast babylonisches Sprachengewirr entstanden.
Nur warum? Frei nach biblischer Geschichte müsste diese Entfremdung der Programmierer untereinander die Strafe sein, dass der Mensch sich zur Herrschaft über die Maschine aufschwingt. Oder etwa, dass der Mensch in der Maschine ein fast schon göttliches Ebenbild schaffen will? Wie dem auch sei, die folgende Auflistung zeigt, obwohl sie nicht einmal vollständig ist, die große Verwirrung. Als Aufgabe für die Zukunft bleibt, verbindliche Standards zu schaffen und übergreifende Sicherheitsmechanismen zu definieren.
Das kleine ABC der Programmiersprachen
A
A#
A+
A-0
A-1
A-2
A-3
A9
AACC
AADL
AAIMS
aal
AAPL
Aardappel
AARDVARK
Abacus
ABACUS 10
ABACUS/X
AACC
ABAP
ActionScript
Ada
ADbasic
AGENT-0
AgentSpeak(L)
Agilent VEE
AHDL
Aleph
ALGOL (ALGOL 60, ALGOL 68)
Amber
AMPL
APL
AppleScript
AspectJ
Assemblersprache
Autocoder
Autohotkey
AutoIt
Avenue
awk (awk, gawk, mawk, nawk)
AWL
AXLE
AXIS
B
B
BASIC (und viele BASIC-Dialekte)
bash
BCPL
BeanShell
Beatnik
Befunge
Beta
BLOG
Boo
Brainfuck
Brainfuck2D
C
C
C++
C#
C/AL
Caml
C for graphics
Chapel
Charity
Chef
CHILL
CIP-LS
CL
Clarion
Clean
Clipper
CLIPS
CLU
Cluster
COBOL
Comal
Comega
Common LISP
Component Pascal
ConGolog
CONZEPT 16
COOL:GEN
Corn
CURL
Curry
D
D
DarkBASIC
Datalog
Datastage
Deadalus
Delphi
DMDScript
DTGolog
Dylan
E
E (Esperanto)
EASY
Eden
Eiffel
ELAN
ELF
Erlang
Esterel
Euphoria
EXEC
F
F
Factor
Faust
freeBASIC
FORTH
FORTRAN
Fortress
Fpii
G
Gambas
Gofer
Groovy
G
GML (Game Maker Language)
H
HAL
Haskell
HQ9+
HTML (Hypertext Markup Language)
Hypertalk
I
IBAL
ICI
Icon
IDL
Intercal
Io
J
J
Jasmin
Java
Java2K
JavaScript (JScript, ECMAScript, DHTML)
Joy
jProfan
JScript
Jython (JPython)
J#
J++
K
Kylix
KIX32
L
LabVIEW
LALO
Lingo
Limbo
Linda
LISP
Logo
Lolcode
LPC
Lua
Lush
Lustre
M
M4
Malbolge
Mantra
Mathematica
MDL
Mercury
Mesa
Miranda
ML
Modula (Modula-2, Modula-3)
Mumps
Mycin (E-Mycin)
MSL (mIRC Scripting Language)
N
NATURAL
NewtonScript
Nemerle
Nice
NQC
Nyquist
O
O#
Oberon
Object REXX
Objective-C
Objective-C++
OCaml
Object-Pascal
Occam
Octave
Opal
OPL
Ook!
Oz
P
Pacbase
Paradox
Pascal (Turbo Pascal)
Pawn
PEARL
Perl
Phalanger
Piet
Pike
PILOT
PL/0
PL/I
PL/M
PL/P
PL/SQL
PLACA
Plankalkül (Konrad Zuse um 1945)
Pocol
PowerBASIC
Processing
Progres (Andy Schürr)
Prolog (Arity Prolog, Turbo Prolog, Sicstus, CLP, CLPR)
Promela
Prosa
Prothon
Profan / XProfan
Puck
PureBasic
Pure Data
Python
R
R
RapidBATCH
REALbasic
REBOL
REFAL
REXX
RPG
RSL (RAISE Specification Language)
Ruby
S
S SAIL (Stanford AI Language)
Sather
Scala
Scheme
SCL
SCPI (Standard Commands for Programmable Instruments)
Scratch
Scriptol
Sculptor 4GL
SDL (Specification and Description Language)
Seed7
Self
Shakespeare
Shell (sh, ksh, bash, csh, zsh)
Simula
SIRON
Slate
Sleep
Smalltalk
SNOBOL4
Sonnyscript
SP/L
SQL
SR
Suneido
Standard ML (SML), eine ML-Variante.
StarOffice Basic (auch bekannt als StarBasic und OOoBasic)
Superx++
SWiSHscript
SML, eine LISP Variante.
T
TAL Transaction Application Language (TANDEM)
Tcl
TECO
Tipi
Transact SQL
TSL Tool Script Language (HSB-CAD)
Turing
U
Uniface
V
Vala
VEE
Visual Basic (VB, VB.NET)
Visual Basic for Applications (VBA)
Visual Basic Script (VBScript)
Visual Objects (VO)
VoiceFlux:Pro Script Sprache (VFs)
W
WEB
Whitespace
Winbatch
WMLScript
WLanguage (WinDev, WebDev, WinDev Mobile)
X
X10
X++
XBase
/> XBase++ Visual XBase++
XL
XOTcl
XProfan
XSLT
Z
Zer0 Tolerance
Objektorientierte Programmiersprachen
Bei diesen Programmiersprachen ist die allgemeine Organisationsstruktur auf das Objekt aufgebaut. Sie unterstützen dadurch die objektorientierte Programmierung und gehören zu den moderneren Sprachen der dritten Generation.
Actionscript (Flash)
ABAP Objects
Ada
Aleph
AppleScript Studio
Beta
BlitzMax
Boo
C++
C#
Cecil
Clarion
Cobol ISO 2002
CoDeSys
CFML (ColdFusion Markup Language)
Common Lisp Object System (CLOS)
Component Pascal
CorbaScript
D
Delphi
Eiffel
Fpii
Gambas
IDL
IDLscript
incr Tcl
Java
JavaScript / ECMAScript
Lexico
Lingo
Modula-3
Modelica
NewtonScript
Oberon
Objective-C
Objective CAML
Object Pascal
Perl
PHP5
PowerBuilder
Progress OpenEdge – ab Version 10.1A
Python
Ruby
R
Sather
Scala
Self
Simula
Smalltalk (die erste konsequent objektorientierte Sprache)
Superx++
STOOOP
Visual Basic („Classic“ / bis Version 6; keine Vererbung)
Visual Basic for Applications (VBA; keine Vererbung)
Visual Basic .NET (VB.NET)
Visual Basic Script
Visual Objects
XBase
XOTcl
Zonnon
Windows-Programmierung
Microsoft Windows – das Maß fast aller Dinge
Vor gut einem halben Jahrhundert wurde die Programmiersprache Basic entwickelt. Sie sollte Einsteigern die Möglichkeit bieten, auf einfacher Basis Programme für alle möglichen Zwecke zu programmieren. Die ersten 20 Jahre führte Basic das Dasein eines Mauerblümchens, denn für den Erfolg fehlten die entscheidenden Komponenten: Es gab weder massenhaft zur Programmierung strebende Einsteiger, noch die entsprechende Hardware, das Einsteigermodell. Das änderte sich erst ab Ende der Siebziger Jahre des letzten Jahrhunderts. Mit dem PC war die Basis für die Computerisierung der Bastelbuden, Jugendzimmer und Büros geschaffen, mit Basic die Sprache der neuen Entwickler, der Hobbyköche in der Programmierung.
Was sich dieser jungen Programmierer-Generation in der Maschine und auf dem Bildschirm zeigte, war noch einfachster Natur. 16-Bit, Schwarz-weiß oder Schwarz-gelb, 25 Zeilen mit je 80 Zeichen – das war die Welt der DOS-Rechner. Und die veränderte sich schon bald, denn ab 1985 gab es die ersten Microsoft Windows Betriebssysteme. Deren 16-Bit-Versionen basierten jedoch noch vollständig auf MS-DOS und benutzten es für alle Systemzugriffe. Microsoft Windows stellte lediglich eine Erweiterung in Form einer grafischen Benutzeroberfläche dar. Das war noch nicht der Hit, aber schon ein allgemein begrüßter Fortschritt. Microsoft Windows schaffte es, aus dem nackten Rechner einen Desktop, eine richtige Schreibtischoberfläche zu machen.
Ab Microsoft Windows 3.x beginnt die langsame Entfernung vom DOS-Prinzip. Und mit Windows NT hat Microsoft ein völlig eigenständiges, multifunktionales Betriebssystem geschaffen. Ursprünglich war schon Anfang der Neunziger Jahre eine Harmonisierung der PC-Betriebssysteme angestrebt. Microsoft entwickelte zunächst die Betriebssysteme NT abgestimmt auf IBM mit OS/2. Die ersten NT-Versionen liefen noch auf unterschiedlichen Rechnerarchitekturen, bis schließlich der Wettbewerb die Oberhand gewann. Microsoft setzte sich durch, Windows wurde mit geschätzten 90% Marktanteil das meistgenutzte Betriebssystem auf PCs. Das Hauptanwendungsgebiet ist der Desktop-Bereich, in der Windows-Palette gibt es aber auch Produkte für den Betrieb von Servern oder mobiler Hardware wie PDAs.
Vom Desktop zur Programmschmiede
Von Anfang an bot Microsoft Windows nie ein für alle Bedürfnisse perfektes Betriebssystem. Auch die Microsoft Software, allen voran das Office-Paket, befriedigte nicht alle Ansprüche. So ist es seit Jahren in der Programmierergemeinde Brauch, auf der Basis des Windows Betriebssystems munter zu programmieren.
Die gängigsten Sprachen, mit denen Windows-Funktionen von Programmierern erweitert, angepasst und ergänzt wurden, waren C++, J++ und Visual Basic. Alle drei waren jedoch nie vollständig kompatibel. Microsoft erkannte den Bedarf und die Marktpotenziale für eine spezielle Windows-Entwicklungsumgebung. Das Projekt Visual Studio war geboren. Der Meilenstein war dann aber erst mit der Version 7.0 fällig, Im Jahr 2000 stellte Bill Gates die erste Version von Visual Studio .NET vor. Diese Softwareplattform umfasst eine Laufzeitumgebung, eine für Programmierer bestimmte Sammlung von Klassenbibliotheken (API), und angeschlossene Dienstprogramme (Services). Seit dem Januar 2008 ist der Quelltext großer Teile des Frameworks zum Debugging für Entwickler verfügbar.
In der .NET-Plattform ist der Common-Language-Infrastructure-Standard (CLI) umgesetzt. Das bedeutet, es können Programme entwickelt und ausgeführt werden, die in unterschiedlichen Programmiersprachen notiert wurden. Grundlage dafür bietet die Übersetzung von Quellcode in .NET in eine Zwischensprache (Common Intermediate Language = CIL), die dann zur Laufzeit des Programms in Maschinensprache interpretiert wird. Die Laufzeitumgebung Common Language Runtime (CLR) verwaltet Speicher und andere Ressourcen.
Wesentliche Vorteile bietet die .Net-Plattform unter anderem in folgenden Bereichen:
- Sicherheit: Bisher konnten Programme jeder Art auf alle Betriebssystemfunktionen zurückgreifen. Der Zugriff kann nur erlaubt oder verweigert werden. Unter .NET kann der Programmierer entscheiden, ob nur Lesen oder Lesen und Schreiben erlaubt sein sollen.
- Zusammenarbeit: In den letzten Jahren hat sich das Zusammenspiel der in unterschiedlichen Sprachen programmierten Programmteile als immer fehleranfälliger herausgestellt. Das Problem ist im .NET Framework beseitigt. Denn alle Quellcodes werden automatisch in ein und dieselbe Zwischensprache übersetzt.
- Nachhaltigkeit: Bisher gab es ständig Probleme mit den Programmbibliotheken. Alte Bibliotheken wurden durch neue überschrieben, und plötzlich funktionierten viele Programmteile nicht mehr. Sie waren nicht auf die neuen Bibliotheken angepasst. Unter .NET ist die Totalanpassung der Programme nicht mehr wichtig. Denn Bibliotheken müssen nicht mehr übereinander, sondern können nebeneinander installiert werden. So können ältere Programmteile nach wie vor die Bibliotheken abrufen, die sie benötigen.
- Kapazitätsverbesserung: Bisher gab es häufig Probleme mit der Speicherverwaltung. „Nicht genügend Speicher!“ hieß es häufiger, wenn neue Programmversionen installiert und aktiviert wurden. Objekte benötigen Speicherplatz und holen sich den. Dass sie ihn nach Gebrauch zurückgeben, funktionierte bisher nicht immer. Unter .NET hat sich das geändert. Automatische Speicherverwaltung ist das Zauberwort. Das .NET Framework betreibt permanent eine Art „Müllsammlung“ (garbage collection) und gibt den nicht mehr benötigten Speicherplatz an das Betriebssystem zurück.
- Sprachenvielfalt: Neben C++, C# und Visual Basic hat sich Visual Studio in den neueren Versionen auch Sprachen anderer Anbieter geöffnet. So kann jeder Programmierer auf der Plattform auch in Delphi, Eiffel, F# und Prolog programmieren.
- 800 Millionen Computer (vom Laptop bis zum Rechenzentrum)
- 1,5 Milliarden Mobiltelefone und andere Handheld-Geräte (Quelle: Ovum)
- 2,2 Milliarden Smart Cards
- Set-Top-Boxen, Drucker, Web-Kameras, Spiele, Fahrzeug-Navigationssysteme, Lotterie-Terminals, medizinische Geräte, Parkgebührautomaten usw.
- Software schreiben auf einer Plattform und die Ausführung auf beinahe jeder anderen Plattform.
- Programme zu erstellen, die in einem Webbrowser und in Web-Services ausgeführt werden.
- Serverseitige Anwendungen für Online-Foren, Stores, Umfragen, HTML-Formularbearbeitung u. v. m. zu entwickeln.
- Anwendungen auf der Grundlage der Java Programmiersprache zu kombinieren, um daraus äußerst flexible Anwendungen oder Services zu schaffen.
- Leistungsfähige und effiziente Anwendungen für Mobiltelefone, Remote-Prozessoren und fast jedes digitale Gerät zu schreiben.
Visual Basic for Applications
VBA – die Wunderwaffe im Alltag mit MS Office
Word, Excel, Access, PowerPoint, Project, FrontPage, Visio, Outlook – das ist die Software, mit der sich 95% aller Unternehmen Tag für Tag herumschlagen. Nicht, dass diese Microsoft-Produkte schlecht wären! Doch das Office-Paket ist konzipiert für einen sehr allgemeinen Bedarf. Und täglich entdecken Anwender in fast jedem Unternehmen, dass sie diese oder jene Funktion anders bräuchten, eine Erweiterung der Menüs wünschen, eine andere Benutzeroberfläche für sinnvoll halten, und vieles mehr. Dafür gab es schon immer die Abteilung für Kreative im Office, die neue Makros programmieren konnten. Aber das ist die kleine Lösung.
Heute hilft Visual Basic for Applications (VBA) weiter. Diese Programmiersprache wurde aus dem von Microsoft entwickelten Basic-Dialekt Visual Basic (VB) abgeleitet und kann Abläufe innerhalb der Microsoft-Office-Programme individuell steuern. VBA ist eine Scriptsprache, die objektorientiert arbeitet. Mit ihr kann man Programme erstellen, die über einzelne Office-Programme übergreifend arbeiten. Wenn es zum Beispiel um Ausgaben von Access-Datenbanken in Word geht, lässt sich das mit VBA einfach programmieren.
Mit VBA kann jeder Programmierer den Funktionsumfang von Word, Excel oder Access durch eigene Programmmodule erweitern. Standardbüroanwendungen werden so an spezielle Aufgaben im Unternehmen angepasst. Egal, ob Abrechnungen automatisiert, Formularsysteme entworfen oder ein Bestellsystem entwickelt werden soll – mit VBA gelingen sowohl einfache als auch hochkomplexe Lösungen. Steuerelemente einsetzen, Programme tunen, neue Applikationen kreieren, Daten zwischen den Programmen austauschen, Menü- und Symbolleisten neu gestalten, das alles ist in VBA machbar.
VBA – in der Wirtschaft besonders gefragt.
Gerade in mittelständischen Unternehmen, die für teuere Software-Speziallösungen der Branchenriesen keine wirtschaftlich vernünftige Einsatzmöglichkeit sehen, sind VBA-Programmierer gut beschäftigte Mitarbeiter. Ob in der Lagerhaltung, im Adressbestand oder im Vertrieb – überall, wo es auf spezielle Datenbanklösungen ankommt, werden Excel und Access aufgemöbelt. Was hindert zum Beispiel zwei Vertriebsmitarbeiter, in einer Datenbank die gleichen Kundenadressen zu erfassen. Die Standardlösung in Access tut es nicht. Hier muss nachprogrammiert werden.
Kundenreportings, vertriebsunterstützende Programme, Projektsoftware, alles das gibt es zu Dutzenden als fertige Software zu kaufen. Das Drama: Jedes dieser Programme bietet wieder nur eine allgemeine Lösung. Es muss auf die spezifischen Anforderungen des Unternehmens angepasst werden. Schon deshalb liegt nichts näher, als die benötigten IT-Anwendungen im Unternehmen selber zu schaffen. Dies ist bei kleinen IT-Lösungen auch in großen Unternehmen der meist gewählte Weg.
Das große Missverständnis: VBA ist nichts für Stümper!
Viele Programmierer rümpfen bei VBA die Nase. Denn VBA wird oftmals als Einstieg in die Programmierung genutzt. Anfänger jedoch programmieren häufig nicht so sauber wie gestandene Profis. Das liegt aber nicht an VBA, sondern am Nutzer. Deshalb eine kleine Warnung: VBA sollte man nicht auf die leichte Schulter nehmen, sondern ordentlich lernen. Gerade bei VBA ist es notwendig, vor der Programmierung einen vernünftigen Softwareentwurf zu entwickeln. In der Programmierung sollte sehr strukturiert vorgegangen werden. Vor der bedenkenlosen Übernahme fertiger Makros, die allenthalben im Internet angeboten werden, ist nur zu warnen. Denn neben der Gefahr von Viren lauert ständig die Gefahr der Unübersichtlichkeit. Deshalb gibt es viele in VBA programmierte Systeme, die nicht mehr weiterentwickelt werden können, weil kein Programmierer die Struktur und die geschaffenen Zusammenhänge mehr entschlüsseln kann.
Visual Basic .NET
VB .NET – die meistgenutzte Programmiersprache der Welt
Basic (Beginners All Purpose Symbolic Instruction) wurde 1963 zum ersten Mal der Öffentlichkeit präsentiert. Mit dem Aufkommen der PCs wurde es die Programmiersprache schlechthin, da es häufig gleich zusammen mit dem Betriebssystem ausgeliefert wurde. Erst zu Beginn der Neunziger Jahre sank der Stern von Basic gegenüber anderen Hochsprachen wie C und C++, weil es in seiner Funktionalität und seiner Erweiterbarkeit diesen Sprachen unterlegen war. Die Situation änderte sich, als Microsoft und die grafischen Benutzeroberflächen ins Spiel kamen (Graphic User Interface = GUI).
Microsoft, deren erstes Produkt ein Basic-Interpreter war, hielt Basic die Treue und verband 1991 ihren QuickBasic-Compiler mit einer Umgebung zur Gestaltung von interaktiven Benutzeroberflächen. Das war der Startschuss zu Visual Basic, mit dem man schnell und einfach Anwendungen für Windows erstellen konnte. Da Windows zum führenden Betriebssystem für PCs wurde, blieb auch Visual Basic nichts anderes als ein Triumphzug vorbehalten. VB ist heute die am stärksten verbreitete Programmiersprache der Welt.
Was macht Visual Basic so beliebt?
Visual Basic ist eine proprietäre, objektorientierte Programmiersprache. Ihre neueren Versionen basieren komplett auf dem .Net Framework.
Der wichtigste Vorteil von Visual Basic ist, dass diese Programmiersprache relativ einfach zu lernen ist. VB ist bewusst an die englische Sprache angelehnt und benutzt sprechende Wörter anstelle von Symbolen. Von Anfang an wurde Visual Basic für den Einsatz in einer integrierten Entwicklungsumgebung konzipiert. Daraus resultiert ein weiterer Vorteil: VB-Programme sind schneller zu schreiben als Programme in den meisten anderen Sprachen. Ebenso vorteilhaft: VB und vor allem die dann folgenden VB .NET-Versionen gelten als sehr gut dokumentiert. Die entsprechende Bibliothek, die MSDN Library, ist eine der größten Dokumentationen einer Sprache, Architektur und Entwicklungsumgebung.
Zu der enormen Verbreitung von Visual Basic hat sicher auch beigetragen, dass den Programmierern der komplette Komfort von Windows zur Verfügung steht. Nicht jede Schaltfläche muss extra programmiert werden. Dafür gibt es die gut ausgestattete Werkzeugkiste.
Nun aber ran: Visual Basic 2010 lernen!
Gratis-Info hier
Von Anfang an
Visual Basic 1 wurde im Jahr 1991 noch neben einer parallel entwickelten Version für DOS-Rechner verkauft. Dadurch wollte Microsoft die vielen DOS-Nutzer anfüttern und zum Wechsel zu Windows animieren. Von Anfang an gab es zwei unterschiedliche Ausführungen, die Standard und die Professional Edition. Mit Visual 2 und 3 kam in den folgenden Jahren der schnelle Abschied von DOS. Visual Basic war jetzt nur noch auf Windows ausgerichtet. Die wichtigste Neuerung waren die Zusatzsteuerelemente (Controls), mit denen zum Beispiel auch C-Programmierer die Funktionalität von Visual Basic erweitern konnten.
In VB 4 gab es erstmals eine 32-Bit-Version, mit der man optimierte Programme für Windows NT und Windows 95 ausarbeiten konnte. VB 5-Programme wurden schon in nativem Code kompiliert, der Quelltext konnte nicht mehr wie bei den Vorgängerversionen direkt aus der ausführbaren Datei gezogen werden. Außerdem wurden in den Versionen 4-6 die ersten objektorientierten Elemente integriert, und die Performance wurde stark verbessert. Trotzdem waren Programme in VB immer noch langsamer als etwa C++-Programme.
Mit Visual Basic .NET wurde VB radikal verändert, um der .NET-Architektur zu entsprechen und den Vorsprung einiger anderer Programmiersprachen aufzuholen. Vollständige Objektorientierung, Codewechsel in der Zwischensprache und umfangreiche Funktionsbibliotheken waren einige der herausragenden Änderungen. Visual Basic .NET gehört zur neuen Generation der Programmiersprachen von Microsoft und zählt inzwischen zu den gefragtesten Entwicklertools. Nach wie vor ist Visual Basic als die Programmiersprache von Microsoft weltweit führend.
Java – die Sonne am Himmel der Programmierer
Im Jahr 1982 gründeten drei Männer das Unternehmen SUN (Stanford University Network). Alle drei trieb die Frage um, wie man die Bibliotheksrechner der Stanford University vernetzen könne. Bis heute ist daraus ein Unternehmen geworden, das mit Hardware, vor allem Servern, und Software jährlich über 3 Mrd. Dollar Umsatz macht. Die Geschichte wäre lange nicht so erfolgreich gewesen, wenn es Sun Microsystems nicht gelungen wäre, immer wieder vorwärts denkende Mitarbeiter/innen zu engagieren. Unter Ihnen James Gosling.
Diesem Mister Gosling ist der Anstoß zum erfolgreichsten Produkt der Sun Microsystems zu verdanken. Bereits 1992 dachte er über Software nach, mit der man ganz unterschiedliche Haushaltsgeräte wie Waschmaschine, Toaster, Kaffeeautomat etc. steuern könnte. Er sah, dass die ständige Modernisierung und damit Veränderung der Steuerchips in diesen Geräten die gängigen Programmiersprachen vor Probleme stellen würde. Dass man solche Programme in Fortran, Cobol oder C++ schreiben kann, war nicht der Knackpunkt. Das Problem taucht beim Kompilieren, beim Übersetzen auf. Denn die Übersetzung ergab in der Regel einen Code, der nur von einem Prozessor verstanden wurde. Um dieses Problem zu lösen, schlug James Gosling vor, eine Programmiersprache zu entwickeln, die nicht von bestimmten Prozessoren oder Betriebssystemen abhängig war. Das Projekt stand jedoch mehrfach auf der Kippe. Denn für die Hersteller von Haushaltsgeräten kam die Idee zu früh.
Mit der ersten Internet-Euphorie der folgenden Jahre ließ sich das Projekt in etwas anderer Richtung genial fortsetzen. Denn auch vernetzte Systeme hatten das Problem, dass sich an ihren Knoten und Enden vollkommen unterschiedliche Geräte und Softwareprodukte befanden. Die erste konkrete Anwendung in der neuen Programmiersprache waren die Java-Applets. Das waren kleine Programme zum Herunterladen aus dem Netz, die dann bestimmte Funktionen auf einem Endgerät erfüllen sollten. Damit diese kleinen Applets auch sicher waren und keinen Unfug auf Rechnern anrichten konnten, gab man ihnen eine Ablaufumgebung und einen extra Container: Hotjava. Dieser Container war für Dateninitialisierung, Start und Stopp, Produktion und Aktualisierung grafischer Darstellungen und für das Ende der Anwendung zuständig. Hotjava war von außen nicht zugänglich, so dass von den Applets keine Spionage- oder Virengefahr ausging.
Warum Java und nicht Fidschi?
Zunächst hatte James Gosling sein Software-Projekt nach dem Baum vor seinem Büro benannt, ganz einfach „Oak“ (Eiche). Doch wie es häufig läuft, wenn Juristen ins Spiel kommen, tauchten Bedenken auf. Der Name „Oak“ schien schon anderweitig reserviert zu sein. Also überlegten die Programmierer kurz und kamen dann auf etwas ganz Naheliegendes:
Das wichtigste Arbeitsmittel der bis tief in die Nacht arbeitenden Entwickler war der Kaffee. So war der ständige Spruch: „Give me a cup of java, please“ („Gib mir bitte eine Tasse vom Java“, denn ein Großteil des Kaffees kam von der indonesischen Insel Java). Dieses Wort hatte noch niemand im Zusammenhang mit Software gesetzt, und so ging der Name durch. Wenig später wurde das dazu passende Logo kreiert, eine stilisierte dampfende Kaffeetasse. Und so wurde der Java Programmierer geboren.
Die virtuelle Maschine
Der entscheidende Grund für die Verbreitung der Java Applets war nicht die große Idee oder die erstklassige Funktionalität, sondern eine Kooperation mit der Firma Netscape, deren Browser schnell zum weltweit meistgenutzten aufstieg. Doch mit den Java Applets hatte sich die Idee längst nicht erschöpft. Noch im gleichen Jahr brachte Sun die erste Version einer Java-Entwicklungsumgebung auf den Markt. Dieses „Java Development Kit“ JDK stand Entwicklern weltweit als freier Download im Internet zur Verfügung. Mit dem JDK konnte man nicht nur Applets programmieren, sondern ganze Programme, selbstständige Applikationen. Der Clou im JDK war jedoch der implantierte Computer, der plattformunabhängig arbeitet. Selbstverständlich ist diese Hardware rein virtuell in der Software vorhanden. Sun nennt diesen Computer JVM (Java Virtual Machine). Er ist das Element, das in einem zweifachen Übersetzungsvorgang in Java geschriebenen Code für die Maschine lesbar macht. Und das funktioniert in etwa so:
1. Ein Programmierer schreibt den Programmcode in der Programmiersprache Java. Der Code ist für Menschen gut lesbar.
2. Ein Compiler als Bestandteil des JDK übersetzt den Code in eine maschinennahe Form, die sich Java-Bytecode nennt. Der Java-Bytecode ist auf allen Maschinen einsetzbar, wenn dort JVM installiert ist.
3. Die virtuelle Maschine (JVM) führt den Java-Bytecode aus, nachdem ihn der integrierte Interpreter zunächst in die Sprache der jeweiligen Maschine übertragen hat.
Was macht den Erfolg von Java aus?
Sicher in erster Linie die nahezu universelle Einsetzbarkeit. Eine freie Entwicklergemeinde hat neben der Herstellerfirma für den hohen Verbreitungsgrad und immer neue Anwendungen gesorgt. Bis heute hat die Java Plattform mehr als 5 Millionen Software-Entwickler angezogen. Wie vielseitig, effizient, mobil und sicher Java ist, zeigt am einfachsten eine beeindruckende Übersicht der Geräte, die Java unterstützt:
Ihre Zahl liegt bei mehr als 4,5 Milliarden, darunter
Java ist die populärste Programmiersprache weltweit. Sie entspricht den Vorstellungen einer modernen Programmiersprache, ist objektorientiert und biete inzwischen eine wertvolle Palette an fertigen Klassenbibliotheken für alle möglichen Einsatzzwecke. Java ermöglicht:
C++, der Jumbo unter den Programmierwerkzeugen
Unter den modernen und viel genutzten Programmiersprachen ist C++ sicher die Anspruchsvollste. Sie gehört zu den mächtigsten Programmierwerkzeugen und macht effiziente, maschinennahe Programmierung auf hohem Abstraktionsniveau möglich. C++ legt einen Schwerpunkt auf die Sprachmittel zur Entwicklung von Bibliotheken. Sie favorisiert also verallgemeinerte Mechanismen gegenüber sprachlich integrierten Einzellösungen für typische Problemstellungen und erreicht damit eine hohe Flexibilität. Zum Beispiel im Fall der anpassbaren Speicherverwaltung, in die sich nahtlos eine automatische Speicherbereinigung integrieren lässt.
C++ ist eine Mehrzwecksprache, die mehreren Programmierparadigmen folgt: imperativ, strukturiert, objektorientiert, generisch und prozedural. Also quasi ein Tausendsassa, der aufgrund seiner Vielseitigkeit ähnlich stark angewendet wird wie die Programmiersprachen Java und C#. C++ wird sowohl in der Anwenderprogrammierung als auch in der Systemprogrammierung eingesetzt. Typische Bereiche sind hier Betriebssysteme, eingebettete Systeme, virtuelle Maschinen, Treiber und Signalprozessoren. Mit C++ wird heute häufig dort programmiert, wo früher ausschließlich Assemblersprachen und C zum Einsatz kamen. In der Anwendungsprogrammierung hat C++ gegenüber Java und C# etwas an Boden verloren. Es kommt jedoch immer dann zum Zuge, wenn maximale Forderungen an Effizienz gestellt werden.
Wichtige Sprachmerkmale von C++: Die Klassen haben das Merkmal der Mehrfachvererbung und virtuelle Funktionen, es sind Templates (Schablonen) und Namensräume eingerichtet. In C++ kann man Operatoren und Funktionsnamen überladen, mit Referenzen arbeiten, hat eine erweiterte Bibliothek und Operatoren für die Freispeicherverwaltung zur Verfügung. Das breite Leistungsspektrum und die Gestaltungsmöglichkeiten von C++ werden selten in vollem Umfang genutzt.
Der Name ist Programm
Im Anfang hieß C++ einfach „C with classes“, um die neue Objektorientierung gegenüber dem gebräuchlichen C zu verdeutlichen. Ende 1983 schuf dann Rick Macitti das „++“ als Ergänzung zum Herkunfts-C. Dieses „++“ bedeutet weder, dass man in C++ alles doppelt schreiben muss, noch, dass die Sprache doppelt so gut funktioniert wie andere. Das „++“ ist ein Inkrement-Operator, der den Wert einer Variablen um eins erhöht. Variabel und im Wert immer einen Schritt voraus, so soll C++ sein.
Die Geschichte von C++
Ausgangspunkt war das Laboratorium der Telefongesellschaft AT&T Bell. Dort brütete Bjarne Stroustrup ab 1979 über einer Programmiersprache, die geeignet war, große Software-Projekte effizient umzusetzen. Sein Vorbild war die Sprache Simula, die aber in ihrer Struktur zu schwierig und deshalb ungeeignet schien. Stroustrups Wahl fiel auf die Programmiersprache C, die schnellen Code produzierte und einfach auf andere Plattformen zu portieren war. Außerdem war sie stark verbreitet, denn sie wurde obligatorisch dem Betriebssystem UNIX beigefügt. Zunächst ergänzte Bjarne Stroustrup die Syntax von C um Klassen mit Datenkapselung, dann um abgeleitete Klassen, ein strengeres Typsystem, Inlinefunktionen und Standard-Argumente. Im Laufe der Jahre entwickelte er die Sprache so weiter, dass sie zu einem der umfangreichsten Programmierwerkzeuge wurde.
Anfänglich existierten unterschiedliche Dialekte von C++, die nicht einmal untereinander kompatibel waren. Es gab keine verbindlichen Standards und demzufolge immer wieder Ärger bei der Kompilierung, der Übersetzung. Deshalb erarbeitete ab 1990 die ANSI-Standardisierungsgruppe mit mehreren Komitees einen einheitlichen Standard für C++. Der erste Entwurf wurde 1995 verabschiedet, bereits ein Jahr später erschien eine nachgebesserte Version. 1998 beschäftigte sich dann auch die ISO mit C++ und gab einen eigenen Standard heraus. Dieser gilt in weiten Teilen noch heute. Wer sich nach diesem Standard richtet, kann sicher sein, dass unterschiedliche Compiler seinen C++-Code fehlerfrei übersetzen können. Im Dezember 2005 wurde dann der C++/CLI Standard von der ECMA verabschiedet. Er erweitert C++ um zusätzliche Sprachelemente.
C++ ist eine außerordentlich lebendige Sprache. Ein eigenes Komitee arbeitet permanent daran, C++ der sich schnell verändernden Computer-Technik anzupassen und bekannte Schwächen auszumerzen. Während die Version 2008 nur geringfügige Vorteile gegenüber 2005 brachte, bietet C++ 2010 deutliche Verbesserungen in der Systemprogrammierung, beim Erstellen von Bibliotheken und in der ganzen Systematik. So ist es auch für Anfänger leichter zu erlernen.
Was sagen uns diese Buchstaben?
ANSI = American National Standards Institute
Dahinter steht eine ganze Reihe von amerikanischen Ausschüssen, die sich genauso um Standardisierungen in vielen Bereichen bemühen wie es in Deutschland das DIN (Deutsches Institut für Normung) tut. Für den Bereich Computer, Datenverarbeitung und Informationstechnologie ist der Ausschuss ANSI-X3 zuständig.
ISO = International Standardization Organization
Die ISO gehört zu der Reihe übergeordneter „Weltinstitute“, die Standards für Produkte schaffen. Mitglieder der ISO sind unter anderem die ANSI und das DIN.
ECMA = European Computer Manufacturers Association
1961 als private Normungsorganisation der Industrie für Informations- und Kommunikationssysteme gegründet. Inzwischen hat sich die Organisation den Zusatz „international“ verliehen und bezeichnet sich als European Association for Standardizing Information and Communication Systems.
CLI = Common Language Infrastructure
Diese allgemeine Sprach-Infrastruktur schafft eine Basis für Computerprogramme, unabhängig von der Programmiersprache und der Plattform. Diese Sprachnorm funktioniert nur, wenn die nach der Norm in irgendeiner Programmiersprache geschriebenen Codes zunächst in eine Zwischensprache, die CIL (Common Intermediate Language) übersetzt wird und dann durch einen JIT (Just in time Compiler) in ein ausführbares Programm gewandelt wird. Der JIT ist Bestandteil einer Laufzeitumgebung, der CLR (Common Language Runtime), die auf dem Rechner installiert sein muss.
C++ für Windows
Kaum eine Programmiersprache passt zur anderen. Wenn Sie Teile eines Programms in C++ programmieren und Teile in Java, fangen normalerweise die Probleme schon an. Einen Ausweg aus dem Dilemma der fehlenden Kompatibilität bietet der Standard CIL (Common Language Infrastructure). Im .NET Framework von Microsoft Windows ist diese CIL integriert. Sie sorgt dafür, dass Sie Programmteile aus unterschiedlichen Sprachen zusammenfügen und sicher übersetzen lassen können. C++ ist nach der Standardisierung durch die ECMA voll kompatibel mit CIL. Das .NET Framework stellt darüber hinaus viele vorgefertigte Komponenten und Funktionen zur Verfügung, die jedem Programmierer die Arbeit in C++ erleichtern. Windows-Anwendungen können oft schon mit wenigen Mausklicks komfortabel programmiert werden.
Schon mit der Integrierten Entwicklungsumgebung Visual C++ 2005 Express Edition legt Microsoft allen Entwicklern das Instrument in den Rechner, das sowohl ISO C++ als auch C++/CLI und das .NET Framework unterstützt.
Das hohe C des Programmierens: C sharp
C# (gesprochen C sharp) ist eine von Microsoft entwickelte Programmiersprache, die glänzend auf die .NET-Plattform zugeschnitten und dort inzwischen zur Hauptsprache auserkoren wurde. Der Quellcode, den Programmierer mit C# erstellen, wird in die einheitlichen Zwischensprache MSIL (Microsoft Intermediate Language) übersetzt und dann zur Laufzeit durch den JIT-Compiler in Maschinensprache gewandelt. Die Ausführung des Codes ist an Microsoft-Plattformen gebunden.
Das ist bei einer inzwischen so weit verbreiteten Programmiersprache wie C# natürlich ein Problem. Deshalb gibt es inzwischen freie Entwicklungen wie das Mono-Project. Dieses unterstützt Linux, Solaris, Mac OS X, Windows und UNIX und stellt damit die Plattformunabhängigkeit der Sprache C# sicher.
Microsoft beschreibt C# als Weiterentwicklung von C und C++. Das ist richtig, aber nicht vollständig. Denn ohne die plattformunabhängige Sprache Java hätte Microsoft sicher keinen Druck verspürt, auf der .NET-Plattform neben der viel genutzten C++ eine weitere Hochsprache in den Wettbewerb zu schicken. Java war die erste Programmiersprache, die das objektorientierte Programmieren aus den Nischenrollen hervorholte und zum gefragten Standard machte. Java war relativ einfach zu handhaben und war durch seine Applets besonders in der Webprogrammierung nicht mehr wegzudenken. Demgegenüber hatte die nicht vollständig objektorientierte und sehr komplexe Sprache C++ Mühe, sich so erfolgreich zu halten wie zuvor.
C# greift Konzepte der Programmiersprachen Java, C++, SQL, C und Delphi auf. Der Schachzug von Microsoft mit C# war zeitlich gut gesetzt und strategisch bestens vorbereitet. Microsoft war klar, dass von Anfang an nur eine standardisierte Programmiersprache gegen Java ins Feld geführt werden konnte. Deshalb reichte Microsoft gemeinsam mit Hewlett-Packard und der Intel Corporation im Jahr 2000 C# bei der Europäischen Normungsorganisation ECMA ein. Die erste Normschrift erschien 2003, die nächste 2005. Sie umfasst nun schon 500 Seiten Spezifikation. 2003 wurde C# auch von der ISO genormt.
Der Griff nach den Höhen
Zugegeben, die Bezeichnung dieser C-Programmiersprache scheint schon etwas gewöhnungsbedürftig: C# = C sharp. Scharf ist diese Sprache weder im erotischen noch im intellektuellen Sinn. Wo also kommt die Bezeichnung her, was hat sie zu bedeuten?
C# ist eigentlich ein Symbol aus der Musik. Die Note C ist der Grundton der Basistonleiter. Bei jedem Ton, den man in der Musik um eine Halbtonstufe erhöhen will, fügt man ein Kreuz hinzu. C# ist also ein erhöhtes C, im Deutschen Cis genannt, im Englischen C sharp. Da das klassische Kreuzzeichen aus der Musik nicht direkt aus der Standardtastatur eingegeben werden kann, nimmt man das einfache Rautenzeichen als Ersatz.
Der musikalische Bezug ist selbstverständlich nicht direkt zu sehen. Symbolisch verweist er darauf, dass C# gegenüber den Vorgängersprachen erhöht im Sinne von verbessert und weiterentwickelt wurde. Nebenbei ist noch ganz neckisch, dass man dieses Rautenzeichen in 4 mal + zerlegen kann, womit die Potenzierung gegenüber C++ gegeben wäre.
Objektorientierte Programmierung schafft Übersicht
Wie ist es zu erklären, dass die meistgenutzten Programmiersprachen heute eine Objektorientierung als Paradigma haben?
Dadurch, dass Anforderungen an Programmierer in Bezug auf komplexe Abläufe, große Programmentwürfe und gut zu pflegende Programme ständig steigen, können Programmierer gar nicht mehr so verfahren wie vor zehn Jahren. Sie brauchen wesentlich mehr Hilfen und fertige Teile in der Programmierung. Und benötigen in ihren Entwicklungsumgebungen wie auch dann in ihren Programmen eine klare Übersicht. Und die schafft die Objektorientierung.
Was sind Objekte? Alles, was um uns herum ist, ob Ding oder Lebewesen, begreift die OOP (objektorientierte Programmierung) als Objekt. Objekte haben Eigenschaften und Fähigkeiten.
Die Eigenschaften verwaltet OOP in Variablen. Eine Variable ist dabei eine Art Behälter, der bei gleich bleibender Bezeichnung einen wechselnden Inhalt haben kann. Zum Beispiel die Variable „Blutdruck“, bezogen auf eine oder mehrere Personen: Mal 120:80, mal 200:160.
Fähigkeiten werden dagegen in der OOP immer durch Methoden repräsentiert. Eine Methode ist ein elementares Stück Software mit Anweisungen an den Computer. Diese Anweisungen werden ausgeführt, sobald die Methoden angesprochen werden.
Die Klassengesellschaft der OOP
Die Aufteilung in Variable und Methoden ist aber nicht der Clou der OOP. Das Besondere ist, dass kein Programmierer mehr Variable und Methoden über einen langen Programmquelltext unübersichtlich verteilen muss, sondern Stück für Stück zusammenfassen und einhüllen kann. Diese Hüllen sind die Klassen. Sie beschreiben die gemeinsamen Merkmale von Objekten. Klassen sind in der OOP wie in der Biologie hierarchisch aufgebaut, vom Allgemeinen herunter bis zum Speziellen. Die allgemeinste Klasse ist die Basis- oder Oberklasse. Ihre Eigenschaften und Fähigkeiten (die Mitglieder der Klasse), gefasst in den Variablen und Methoden, werden in den meisten OOP-Sprachen automatisch weiter vererbt. Das heißt, man muss sie in keiner der folgenden Unterklassen notieren – sie wirken trotzdem. Wenn ein Programmierer in der OOP sein Klassensystem gut und richtig entwickelt, müssen Variablen und Methoden nur einmal geschrieben werden.
Der Vorteil bei C# ist zudem, dass ausführliche Klassenbibliotheken bereits existieren. Dieses gut dokumentierte und geordnete Bibliothekssystem kann in jeder C#-Programmierung angesprochen werden. Wird ein Bezug auf die bereits vorhandene Bibliotheksklasse hergestellt, übernimmt das Programm die Inhalte und Vererbungsfähigkeit dieser Klasse. Ergänzt werden muss nur noch das, was zur speziellen Problemlösung notwendig ist.
Programmieren leicht gemacht. Der Bedarf an Programmen und Programm-Verbesserungen steigt, Programmierer sind gesucht.
Anbieter: