PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welche Programmiersprache?



CoolJay
03.07.2004, 18:00
So nachdem sich das Problem mit meiner Festplatte erledigt hat (dank eurer Hilfe) und mein PC wieder läuft möchte ich eine Programiersprache lernen.

Welche Sprache ist sinnvoll und für den Einstieg nicht zu schwer. Hab mal in der Schlule mit Basic rumdoktern dürfen, ist aber auch schon eine Weile her.

Mfg
Erwin

Andy
03.07.2004, 18:37
Was Programmiersprachen für PC angeht, habe ich mit VisualBasic begonnen, und nutze es bis heute erfolgreich.
Merkmale von Visual Basic, die mir gerade auf Anhieb einfallen:

Der Compiler verzeiht viel
Groß-Kleinschreibung ist kein Problem,
Variablen, die im Kopf nicht deklariert (definiert) wurden, werden akzeptiert
Das alles verleitet zu schlampiger Programmierung, erleichtert es dem Anfänger jedoch direkt ziemlich erfolgreich einzusteigen.
Recht langsamer Code, auch wenn ich selber keinen echten Vergleich habe, Programme, die mit C++ geschrieben wurden, arbeiten viel schneller
Alles in Allem bin ich mit Visual Basic sehr zufrieden!

Grüßles
Andreas

PS: Wahrscheinlich wird jetzt hier eine Schlacht von C-/VB-Usern losgehen... mal sehen, bin auf Argumente gespannt...

neuling
03.07.2004, 20:59
also ich hab mit turbo pascal angefangen,..
die grundlagen sind ziehmlich einfach,...
und sehr viel weiter hab ich bis jetz erhlich gesagt auch nicht gemacht....*Ggg*
halt noch für DOS, und mit de schnellen rechner musst auch aufpassen, damit kommst du dann nur mit nem speziellen patch zurecht!

Elektrikser
03.07.2004, 21:47
Visual Basic ist relativ leicht.
Bei c++ musste ich feststellen, dass ich irgendwann ganz schöne Probleme bekam, es zu verstehen (Versuchte es damals alleine). Mittlerweile muß ich mich wieder damit rumschlagen, und ich glaube, langsam kapiere ich es.
C++ ist nicht die ideale Einstiegssprache, aber es ist vielseitig. Man kann Computer und Mikrocontroller damit programmieren. Bei den höheren Sachen (wie Zeiger verbiegen, mehrdimensionale Arrays, Funktionen usw.) ist es mit dem Selberlernen schwierig. Habe wenigstens noch kein Buch gefunden, das es gut erklärt. Vielleicht kennt hier einer eins?
Nachtrag: C++ wird in vielen weiterführenden Schulen als Programmiersprache verwendet.
C++ ist nicht so schlampert wie Visual Basic. Verzeiht nicht so viel. Man sollte sich an dem hier gewöhnen --> ;

Gruß Gerd G. (Elektrikser)

buz11
03.07.2004, 22:47
Ich finde BASIC lernt man am leichtesten .
Ob man damit lange glücklich bleibt , ist eine andere Frage ...

Für " alte Bastler " , also Leute im fortgeschrittenem Alter ( also für mich :D ) ,
die schon jahrelang mit TTL / CMOS -Gatter - IC's gespielt haben , finde ich Assembler sehr gut .
Weil sozusagen in Hardware ! ;)

Am liebsten würde ich C / C++ können .
Dafür bin ich aber leider zu blöd ...

leech
04.07.2004, 10:23
Nimm Java, es ist im Vergleich zu C++ einfacher gehalten (man muss sich nicht um jede Kleinigkeit kümmern), aber von der Syntax her schon sehr ähnlich.

http://www.javabuch.de Handbuch
http://java.sun.com/j2se/1.4.2/download.html Java Entwicklungspackung
http://eclipse.org/downloads/index.php Entwicklungsumgebung
(zeigt auch schon beim Programmieren an, wenn etwas im Code nicht stimmt)

Mit den entsprechenden Tools kann man auch mit Java auf Hardware zugreifen..

elmar
04.07.2004, 20:33
Hi,


Zum verstehen, was die Maschine macht, kannst Du auch mal mit Assembler was anstellen. Nim einfach einen At89c2051er und versuche einige Progs in Assembler zu schreiben. Programmer und Testboard ist leicht zu beschaffen (wenige klicks von hier entfernt) :D

Gruß
Elmar

MacSeck
05.07.2004, 13:30
Pascal oder C kann ich empfehlen; aber "nackiges" zum Lernen, sprich nix Visual++ oder Delphi.

Ein Borland Pascal 7 tut´s (aber aufpassen mit schnellen Rechnern!!! Bugfix gibt´s in CT; betrifft nur die DOS-Unit);

ansonsten wesentlich besser und Freeware!!!

FREE-Pascal. (oder FREE-C) beides 32bit Versionen der alten Borland Produkte, genauso zu handhaben; selbst BGI-Grafik unter Windows; feine Sache.
Was Assembler betrifft, das geht nätürlich auch, mittendrin...

procedure irgendwas;
begin
ASM
....und hier jetzt einfach
....MOV EAX,ECX
END; {Assembler input}
end; {procedure}

in C genauso
void irgendwas
{ wie bei C zum Anfang
und hierzwischen auch
ASM
...
END
} noch ne Klammer Am Ende

Eins sollte man wissen: FREE-Pascal unterstützt mehrere Assembler; also vorher noch eine Compilerdirektive:
{$ASMMODE INTEL}

und dann läuft das wunderherrlich...
übrigens auch auf LINUX...:)

Rüdiger
05.07.2004, 22:16
Hi,
ich liebe Visual Basic 6.0. Zu Visual Basic.Net kann ich noch nichts sagen.

Aber:
Man ist völlig auf Microsoft festgelegt. Visual Basic ist nicht portabel.

Mein Vorschlag ist C/C++ und zwar Hersteller unabhängig. Ich würde mit purem C++ beginnen. Das ist (fast) portabel und du erlangst Basiswissen, welches nicht auf einen Hersteller bezogen ist. Es gibt ein gutes Buch zum Einstieg, sonst brauchst du erstmal keine Invetitionen:
C++ in 21 Tagen
Jesse Liberty
ISBN 3-8272-5624-0
Wenn du embedded programmieren willst (also mit Mikrocontrollern) kannst du dich dann auch relativ schnell auf C umstellen.

elmar
05.07.2004, 22:39
Hi,


wenn Du vorsichtiger einsteigen willst, nimm blankes C. Erst wenn Du Programme schreiben und verstehen kannst, solltest Du Dich mit Objektorientierung befassen.

Gruß
Elmar

Unregistriert
06.07.2004, 12:16
Ein Hochschulprofessor hat mal die Meinung vertreten, das die erste erlernte Programmiersprache den späteren persönlichen Programmierstil prägt.

Das kann ich in gewisser Weise nachvollziehen, da man mit jeder dazugelernten Sprache erst mal versucht, unbekanntes auf bekanntes Wissen abzubilden.

Tipp: fang mit der Programmiersprache an, die Du später hauptsächlich verwenden willst und die eher in Richtung Hochsprachen geht. z.B. C, Pascal.... . Mit Basic geht das mittlerweile auch.

Assember (und davon gibt es für jeden Prozessor einen eigenen) ist gut, wenn man mal was von der Prozessor-Basis lernen will. Die bitweise Registermanipulation bei Microcontrollern ist m.E. in Assembler durchsichtiger als in C. Es kommt halt auch auf die Komplexität des Projekts an, ob man die Lösung in C oder Assembler macht. In Assembler verliert man schnell den Überblick bei größeren Projekten.

Visual-Basic ist gut für die ad Hoc Programmierung oder auch für grössere Projekte geeignet. Da wo Office-Programme mit eingebunden werden, bzw. mit verschiedenen Datenbanken programmiert wird, ist VB geeignet. Auch die Testmöglichkeiten sind recht gut. Da wo VB am Ende ist, können externe Komponenten (OCXe) eingebunden werden, oder man bindet API-Aufrufe ein.

Früher hat man Microcontroller immer in Assembler programmiert.
Heute würde ich persönlich dafür immer C nehmen (auch wenn das zunächst schwerer ist). Die Wiederverwendbarkeit eigener Programmroutinen ist einfacher. Der Assemblercode wird gegenüber C kaum kompakter. Allerdings kann der C-Code nicht ohne weiteres auf einen anderen Prozessortyp konvertiert werden. Hängt auch teilweise von der Programmierung ab, inwieweit die Programmlogik und Prozessoreigenheiten voneinander getrennt werden.

PCs wurden ganz früher ebenfalls in Assembler oder C programmiert. Die meisten heutigen Projekte werden wohl in C++, bzw. VB oder anderen Sprachen programmiert.

Siegfried

MacSeck
06.07.2004, 13:09
...aus der Erfahrung raus...

Thema Wiederverwenden: Nach ein paar Jahren und anderen Projekten ändert sich die Denke so derart, dass man es eh "nie mehr so machen würde".. Also nutzen auch ältere Routinen a´la "damals hab ich das so.." nix, die Dateien dazu sind eh weg, oder befinden sich auf einer 8" Diskette von der man nicht weiss, ob da überhaupt noch alles drauf ist, geschweige denn, wie man sie gelesen bekommt...
Die Wahl der Programmiersprache: Höhen und Tiefen des BASICs z.B.
Das war anfangs IN. Dann als Spaghetticode verpönt; besser noch, danach...
"mit dem Bastel-Touch" belegt: Nicht INGENIEURS-würdig; kann also nix taugen!
C musst Du!!! - UNIX musst Du!!! Sonst bist Du ein Bastelwicht!!!

Haben dann auch alle gemacht (Mengenlehre-Lernen; sorry, das auch "Musst Du").

Effekt: Alle wenden sich derzeit von UNIX ab, Windowsen und proggen V-Basic.

Also alles relativ... und wenn morgen die "Java-Beans" den "Teebeuteln" weichen und nix mehr "Web-fähig" läuft weil das Internet unter der "Porno-Download-Last" und dem "International-Business" P2P P4P hoffnungslos zusammengebrochen ist, Videokonferenzen over IP und das Telefonieren mit der Web-CAM "IN" ist, dann gibt´s wieder was Neues.
Virtuelle Programmierung z.B.:)
Programme wegen des Programmierens willen schreiben; einfach mal so.
"Eh, Alte, kann heut nicht, muss die Routine noch austesten, die nirgends läuft". --> "Macht nix, hab eh Migräne wegen den Virtuellen Pillen... Die helfen irgendwie nicht".

Rüdiger
06.07.2004, 14:44
Hi,
ja ich habe ja schon gesagt, dass ich VB6 sehr gut finde. Es gibt kaum eine schnellere Möglichkeit, eine Anwendung zu erstellen, die gut aussicht und auch funktioniert, auf Neuhochdeutsch, Rapid Prototyping. VB ist sicher auch kein Bastelkram, selbst das noch nicht objektorientierte VB6 nicht. Strukturierte Programmierung ist allemal möglich. Fehlerbehandlung, super Datenbankanbindung use. DLLs kann man aufrufen. Zu VB.NET kann ich (noch) nichts sagen, es soll voll objektorientiert sein. Zumindst bei VB6 sind die Lernerfolge viel schneller als bei C++. Man braucht nicht compilieren, es gibt einen fantastischen Debugger. Die Dokumentation und das Hilfesytem ist super. Das einzige was mich stört ist die Abhängigkeit von MS und das VB kein Standard ist. Das ist der Grund, warum ich nicht einfach von VB6 auf .NET umgestiegen bin.

Unregistriert
06.07.2004, 14:54
.... und was lernen wir daraus.

Lieber nix dazulernen und abwarten bis man Programmieren muss?

Privat rumprogrammieren, um die Birne geschmeidig zu halten ist auch nicht angesagt oder wie? Hobby ist eh nur Zeitverschwendung und kostet auch noch Geld.

Was die Wiederverwendbarkeit von Code betrifft, mag das wohl auf die Hobbyschmiede zutreffen. Im gewerblichen Bereich sehe ich das nicht so. Software kostet ein Schweinegeld. Bei größeren Projekten wird modularisiert. Einzelne Module bleiben im Sourcecode teils über Jahre unverändert. Verschiedene Firmen haben ihre entlassenen Cobol-Programmierer wieder eingestellt weil die jungen Java-Kollegen nichts mit dem Code anfangen konnten (oder wollten).

Siegfried

Rüdiger
06.07.2004, 16:29
Hi,
genau die Wiederverwendbarkeit ist es, die für C und C++ spricht und gegen VB. C++ ist in der Hinsicht sogar zu bevorzugen.
Der Umstieg von VB6 auf .Net bedeutet z.B eine Inkompatibilität.
Übrigens Programmierhobby kostet nicht, zumindest nichts extra. Nur einen einfachen PC muß man haben.
Jemand hat gesag, man findet den Code nicht wieder. Dafür gibt es CVS (Concurrent Versions System) als open source.

Gerd K.
07.07.2004, 23:52
Hi zusammen,
für Einsteiger ist CVS (Versionsverwaltung) und objektorientiertes Programmieren nicht zu empfehlen. Gerade beim Umsetzen der Klassenbildung und Vererbung ist deutlich mehr Hirnschmalz notwendig als beim herkömmlichen Programmaufbau. Da ist die Frustrationsgrenze schnell erreicht, insbesondere dann, wenn auch noch Windows Programme dabei entstehen sollen. BASIC als erstes Experimentieren erlaubt wahrscheinlich die schnellsten Erfolge (ich meine BASIC nicht VB von MS). Allerdings um den Preis, sich einen üblen Stil anzugewöhnen (lauter globale Variable etc). Ausserdem ist es eine Interpretersprache (wird Zeilenweise abgearbeitet) und somit lahm, obwohl es auch Applikationen gibt, die frei ablaufende Compilate und sogar GUI-Programme (Fenster mit Menüs etc) für Windows erzeugen können.

Als Windows noch von vielen Leuten als wackliger "Betriebssystemaufsatz" (auf MS-DOS) verhöhnt wurde, war PASCAL ein sehr guter Einstieg in eine strukturierte Programmiersprache. Borlands Turbo PASCAL (TP) war ein ausgezeichnetes Produkt. Schnelles Compilieren, schlanke Programme und gute Programm-Ausführungszeiten. Und vor allem ein sehr gutes Hilfesystem (meiner Ansicht nach mit das Wichtigste) mit kurzen Beispielen, an denen man sich orientieren konnte. Leider halt nur noch für DOS und 16-Bit Programme tauglich, dafür läuft TP von Borland aber halt auch noch gut auf bereits ausgemusterten Rechnern. Turbo PASCAL für Windows (hab da noch ne 1.0er Version) scheint mir völlig aus dem Rennen, aber es gibt ja noch den nachfolger Delphi, sogar in ner verschenkten Fassung (Delphi 6, Personal Edition) und in älteren c't Ausgaben gab es dazu sehr gute Artikel von Arne Schäpers.

Visual BASIC (VB) von MS und NUR FÜR MS gibt es nicht für lau (höchstens als Testversion). Der SW3-Online Counter als Beispiel ist die erste VB 6.0 Applikation, die mich positiv überrascht hat (auch wenn das Tool viele Ressourcen schluckt).
Java läuft zwar schön auf jedem BS, benötigt aber wieder eine Laufzeitumgebung für das jeweilige System. Da wird man irgendwie das Gefühl vom Interpreter nicht los :). Überhaupt scheint ja auch alles nach .NET (lies: DOT NET) zu streben. Borland macht da was, MS sowieso und für Linux wird es eine ebenfalls eine freie Implementierung (z.B. Mono oder DotGNU) geben. Zumindest vom Zeitpunkt her gesehen und mit etwas Programmiererfahrung kein schlechter Weg hier mal hineinzuschnuppern. Aber vom Umfang her wirkt das schnell erdrückend.

Mein Tipp für Einsteiger ist daher ganz klar C und nur C. Es ist (ANSIch) eine einfache Sprache, die es noch dazu für lau gibt und zwar samt guter Unterstützung im Netz. Linux, dessen Quelltexte komplett in C und etwas Assembler geschrieben sind, bringt hierfür den gcc Compiler mit. Windows hat den freien (!) lcc-win32 mit integrierter IDE, Debugger, Hilfesystem und gutem Tutorial. Damit kann der Anfänger einfache 32-Bit Konsolenprogramme schreiben (mit Hello World fängt man an). Wenn man sich dabei an den ANSI-C Standard hält, kann man den selben Quelltext nehmen und mit dem gcc unter Linux übersetzen und dort sein Progrämmchen ebenfalls testen. Wenn das Programm nur unter Windows (Win9x, NT, XP) laufen soll, kann man Funktionen der Win32 API einbauen, was (je nach Funktion) recht einfach ist und trotzdem vorerst beim Konsolenprogramm bleiben. Oder für echte GUI-Programme lassen sich dann halt auch Ressourcen hinzubinden (Hauptfenster als Window mit oder ohne Menü, oder ein einfacher Dialog als Hauptfenster). Beispiele, wie Win32 Funktionen anzuwenden sind, gibt es auf der Webseite von John Findlay und auch vereinzelt in der Online Hilfe win32hlp.exe. Das Standardwerk zur Windows Programmierung als Buch ist der Petzold. Die IDE von lcc-win32 ist bei der Projekterstellung etwas gewöhnungsbedürftig was Pfade anbetrifft. Der Compiler samt Hilfe wird sehr häufig geupdatet (teilweise alle 2 Tage), wobei reproduzierbare Bugs von Jacob Navia (dem Autor) entfernt oder auch Funktionen hinzugefügt werden. Wer Visual C von MS hat (v6.0 oder aber auch älter) kommt in den Genuss einer besseren Online-Hilfe. Ansonsten kann man mit VC ebenfalls gut beginnen, wenn man erst mal sich mit seinen Progrämmchen auf die Konsole beschränkt. Soll heißen, Finger weg von den Assistenten. Die können zwar schön aufwendige Codegerüste erstellen, aber was dann? Bevor man verstanden hat warum die Hauptnachrichtenschleife in viele kleinere Nachrichtenschleifen umgebaut wurde und das auf einmal ein MFC Klassengerüst hinzugekommen ist, ist man schon wieder nahe an der Frustrationsgrenze. Also Merke: Klassengerüste sind ein anderer Zugang zur Win32 API, übrigens ebenfalls wie .NET. Für größere Projekte sind sie eine tolle Sache, aber auf den ersten Blick wird's eher komplizierter.
Ebenfalls sehr interessant ist der OpenWatcom, den die c't vor kurzem auf einer seiner CDs mitgeliefert hat. Wirkt zwar von der Oberfläche her etwas altbacken (Win 3.1 like), erzeugt aber ebenfalls 32-Bit Programme. C++ übrigens kann der lcc-win32 nicht. Manche nutzen auch einfach C++ als erweitertes C, um den new Operator anwenden zu können (beschafft Speicher), lassen jedoch die Vererbungs-Mechanismen links liegen.
Ausserdem hat man mit C auch den schönen Vorteil mit Inline Assembler herum experimentieren zu können. Ein paar Intrinsic Funktionen bringt der lcc von Haus aus mit (z.B. CPUID). Die Syntax unterscheidet sich aber von der bei VC ein wenig.
Einen weiteren Vorteil in C sehe ich rund um die Mikrocontroller programmiererei. Obwohl da ASM wohl noch wichtiger ist, ist die Kombination Assembler + C ein gutes Gespann (auch mit PASCAL geht da was).
Ist ansonsten alles eine Sache der Übung. Wer selten was macht muss immer wieder elementares Nachschlagen (wie war nochmal die eine oder andere Schreibweise bei printf ;)). Oder man ist später erstaunt, welch wundersame Routine man selbst mal geschrieben hat und die man 6 Monate später nicht mal mehr im Ansatz versteht, weil man sie nur lausig oder gar nicht kommentiert hat. ;)

Also, sich "was integriertes mit nem schönen Debugger" saugen oder was aus den Zeitschriften/Büchern nehmen, mal ins Tutorial hineinschauen, ein Beispiel abkupfern, compilieren, Fehler entfernen weil falsch abgeschrieben (grins), nochmal kompilieren und sich freuen wenn's geht, Background Information anlesen und sich etwas mehr zutrauen usw.

Gruß
Gerd K.

Unregistriert
10.08.2004, 00:08
"Welche Sprache ist sinnvoll und für den Einstieg nicht zu schwer. Hab mal in der Schlule mit Basic rumdoktern dürfen, ist aber auch schon eine Weile her."

Nachdem man Dich hier mit "nimm dies...! nimm das!" Ratschlägen überschüttet hat, sollte man mal etwas differenzieren. So'n Quatsch wie "die beste Programmiersprache ist xyz" hat heute keinen Sinn mehr; die meisten Sprachen (bis auf Visual Basic, welches in syntaktischer und semantischer Hinsicht eine absolute Microsoft-Missgeburt ist) haben ihre Daseinsberechtigung. Die Frage ist also: WAS willst Du programmieren, und WOZU?

Willst Du hobbymäßig mal ein kleines Progrämmchen schreiben, mit graphischer Oberfläche usw, dann kann ich z.B. Delphi oder Java sehr empfehlen. Oder willst Du es richtig lernen, d.h. auch tiefgründig verstehen, dann fang mit dem guten alten C an und programmier erstmal Konsolenanwendungen, bist Du mit Funktionen,Arrays und Zeigern umgehen kannst. Oder willst Du später mal damit beruflich was anfangen können, dann solltest Du natürlich C++ oder Java einer Sprache wie Delphi bevorzugen, die kaum benutzt wird.

In jedem Fall: Hände weg von Basic! Das ist keine Programmiersprache im eigentlichen Sinne, und niemand der nur halbwegs professionell programmiert benutzt diesen Käse! Wenn Du graphische Oberflächen wie mit VisualBasic zaubern willst, nimm den Borland C++ Builder oder Borland Delphi, da hast Du anständige Hochsprachen mit dem gleichen Kompfort.