Welche Programmiersprache für Anfänger?

Ich bitte dich. Mit Scheme anfangen. Das ist jawohl ein schlechter Scherz. Prolog ist auch nicht gerade besser.
 
Meine persönlichen Erfahrungen:
Irgendwann vor geraumer Zeit mal mit Java angefangen, habe dann aber irgendwann aufgegeben (mittels "Java ist auch eine Insel"). Irgendwann danach kam dann mal C ("C von A bis Z"), die Grundsätze hatte ich durch, auf den Rest keine Lust mehr. Letztens habe ich noch einmal ein Programm mit etwa 500 Zeilen (Konsolenanwendung) mit C geschrieben, vor ein paar Wochen habe ich dann mit Visual C# angefangen ("Visual C# 2008") und das Programm nach C# portiert. Mittlerweile habe ich ein 2500 Zeilen Programm (900 gehen davon rein für die GUI Eigenschaften drauf) darin geschrieben und noch ein paar Kleinigkeiten. Ach ja, COBOL85 habe ich auch mal während einem Praktikum ein paar Tage sehen dürfen.

Meine Meinung:
C - Man macht wirklich jede Kleinigkeit selbst und braucht elendig viel Code, mein 500 Zeilen Programm in C erforderte deutlich mehr Nachdenken als die portierte Version in C#. Als kompletter Anfänger ist C vermutlich wenig zu empfehlen, da wird man einfach erschlagen bevor man wirklich was erreichen kann
C# - Bietet sich für den Einstieg sehr an. Auch wenn man viele Sachen nicht versteht als Anfänger muss man nur die Zähne ein bisschen zusammenbeißen und ein wenig durchhalten, dann kann man schon überzeugende Ergebnisse erzielen. GUI-Programmierung mit dem Visual C# Studio Express ist unglaublich einfach, außerdem ist die Entwicklungsumgebung sowieso sehr hilfreich.
Java - Lange her, wohl sehr ähnlich wie C#, aber wenn man sowieso nur auf Windows programmieren will würde ich zu C# raten
COBOL85 - War mal was anderes, aber eine Alternative zu den genannten Sprachen ist sowas defintiv nicht

->Für den Anfänger würde ich C# empfehlen
 
Also ich bin auch (mal wieder ;) ) für´s Würfeln. Das ist eine sehr elegante Methode und: du kannst sie immer machen, bist nicht vom Mondschein etc. abhängig.

Gruß,

badday
 
@s4ms3milia:

Kein Scherz sondern Realität! Hat wunderbar funktioniert und denjenigen nicht gleich in die Tutorial und Copy&Paste Falle gezwängt. Aber egal, ist halt jedermanns Geschmack.

Ich gehe eh mal davon aus das der TE nicht mehr aktiv an dieser Diskussion teilnimmt und nun wieder jeder Leser anfängt seine ach so liebe "Programmiersprache" als die non-plus-ultra-super-dupper-einsteigerfreundliche-eierlegendewollmilchsau zu präsentieren. Dabei erfährt man auch gleich womit er angefangen hat und bekommt quasi den halben Lebenslauf aufs Auge gedrückt. Also ist es somit völlig wurscht. Viel Informatives wird hier nicht mehr bei rumkommen. Die weniger überraschenden Favoriten von August 2010 im Bereich "Geschmack des Monats" sind genannt. Eine Diskussion über c = c + 1 und c++ wurde auch schon geführt und mit vielen Fachbegriffen wie GUI, IDE etc. um sich geworfen, sodaß der TE gefrustet im Internet surft und sich dann für irgendeine Sprache wahllos entscheidet.

Herzlichen Glückwunsch, allgemeine Verwirrung erreicht, der TE wird jetzt trotz aufmerksamen Lesens genauso viel wissen, wie zuvor. Nur wird er ein paar neue Buzzwords dazu gelernt haben ohne dabei zu verstehen wofür sie stehen ...

Also schönen Abend noch...
Rossibaer

PS: Ich schließe mich badday an. ;)
 
Zuletzt bearbeitet:
Rossibaer schrieb:
Herzlichen Glückwunsch, allgemeine Verwirrung erreicht, der TE wird jetzt trotz aufmerksamen Lesens genauso viel wissen, wie zuvor. Nur wird er ein paar neue Buzzwords dazu gelernt haben ohne dabei zu verstehen wofür sie stehen ...

Ich meine was erwartest du? Es gibt soviel Auswahl da wird es nie eine Meinungsübereinkunft geben, das wäre genauso, wie wenn er fragt in welches Bundesland er ziehen soll.
Es wurden ihm einige Sprachen genannt, einige wurden öfter genannt, dann ist es seine Aufgabe sich z.B. mal Codebeispiele in Wikipedia oder anderen Seiten (99 Bottles of Beer :D) anzusehen, seine Favoriten herauszusuchen, was für ihn am intuitivsten erscheint und die Würfel zu werfen.
 
Was ich las, waren:
- TOP 5 der Geschmacksrichtung "himmelblau mit Nüssen"
- Fachchinesisch der Eingeweihten: GUI, IDE, OOP, MFC, If, VM ...
- Spezifika der Sprache C (rvalue, lvalue ...)
- Gebashe ala "Mit XYZ anfangen. Das ist jawohl ein schlechter Scherz. EFG ist auch nicht gerade besser. ", "JKL ist für mich kein Programmieren"

Bin da vielleicht ein wenig Purist. Warum also 65 Beiträge um dann am Ende vom Anfänger die TOP 5 der Programmiersprachen aus diesem Wust extrahieren zu lassen. Denke er wird schon bei Beitrag 13 aufgegeben haben und laut schreien "Die spinnen die Römer." Spätestens bei Beitrag 22 wärs dann soweit gewesen...

ABER an alle Teilnehmer des Threads, mir hat es gefallen! War recht lustig zu lesen und freue mich auf den nächsten "Welche Programmiersprache sollte ich als Anfänger nehmen?" Thread.

Viele Grüße
Rossibaer
 
Ich würde Dir auch zu Java raten. Das hat nix mit persönlicher Überzeugung zu tun; auch andere Sprachen sind auf ihre Weise "schön" (ich für meinen Teil bin ein großer C#-Fan und weiß auch den Charme von JavaScript zu schätzen).

Ich würde allerdings vorher abstecken, was du machen willst. Es gibt grundsätzlich heutzutage mehrere wesentliche Arten von Programmiersprachen und Anwendungsbereichen:

1. Es gibt "klassische" Anwendungen
Wenn Du "normale" Windows/Linux/etc.-Programme mit GUI schreiben willst, wo am Ende eine .exe rauskommen soll, suchst Du wahrscheinlich sowas (Java, C# / .NET, C/C++, ...)
2. Es gibt "Webanwendungen"
Hier muss man nochmals unterscheiden, wie sehr man das ausreizen will. Von "einfacheren" Websites, die sowas wie eine Benutzerverwaltung, Foren, etc. haben (PHP u.ä.), bis hin zu riesigen Webanwendungen wie Cloud Computing, Enterprise-Anwendungen, usw. (Java, C# und .NET, Ruby on Rails).
Anders formuliert ist in diesem Bereich die Frage, ob man "kompilierte" Sprachen oder "Skriptsprachen" haben möchte. Dieser Bereich ist zweifelsohne etwas komplexer, und erfordert zudem noch Kenntnisse in vielen verschiedenen Sprachen (HTML, CSS, JavaScript, XML, ...). Hier würde ich auf http://de.wikipedia.org/wiki/Webanwendung verweisen.
3. "Richtige" Spiele
Zum Einstieg kannst Du das pauschal vergessen, denn hier geht es um Performance und 3D inklusive höherer Mathematik (Matrizen, etc.). Klar könntest Du mit C++ direkt einsteigen, mit der Hoffnung, dann irgendwann in die DirectX-Programmierung einzusteigen, aber bis Du das erreichst, werden einige Jahre ins Land ziehen. Allein aus Motivationsgründen würde ich an der Stelle dringend von sowas abraten. Und nebenbei: man könnte theoretisch auch in Java ganz nette Sachen mit OpenGL etc. machen, nur so. Wie groß der Performance-Vorteil von C++ ist, ist nämlich nach wie vor schwer umstritten.

Sonstige Dinge wie Applet/Flash/...-Entwicklung lass ich mal außen vor, wenn man sowas machen will, weiß man das auch.

Ganz Abstrakt gesehen stellt sich dann noch die Frage, wie "akademisch" du da ran gehen willst. Viele Universitäten haben die Praxis, ihre Neulinge in eine Nischensprache wie Scheme, ADA, SETL, etc. hineinzuwerfen. Diese Sprachen haben gerne einen relativ kleinen Sprachumfang, und der Hintergedanke ist, dass da niemand Vorkenntnisse hat, und man dort die "abstrakten" Grundkenntnisse einer Sprache gut lernen kann. Rückblickend kann ich für meinen Teil aber guten gewissens sagen, dass diese Praxis bei mir nicht funktioniert hat, ich habe erst mit höheren (insbesondere objektorientierten) Programmiersprachen meinen Zugang gefunden. Im Gegenteil, dieser Mist hätte mich beinahe von meinem Beruf abgebracht. In sofern kann ich jetzt auch nicht direkt sowas wie Scheme oder Lisp zum Einstieg empfehlen, nur weil es "puristisch" ist, oder die "Essenz" der Informatik besonders gut einfängt.

Java hat nun hierbei einfach folgende unschlagbaren Vorteile:
- Die möglichen Anwendungsbereiche der Sprache (normale Programme, Webanwendungen, Spiele, Forschung, etc.) sind enorm, und werden eigentlich nur von C++ überboten
- Eigentlich alles, von Hello-World, bis hin zu Enterprise-Anwendungen geht einigermaßen gut völlig kostenlos
- Die Chance, genau diese Sprache später mal brauchen zu können, ist EXTREM hoch
- Der Sprachumfang (Schlüsselwörter etc.) ist relativ gering, also einsteigerfreundlich
- Es gibt Unmengen an Ressourcen/Tutorials/Dokumentation im Internet
- Die Syntax ist C-artig, erleichtert also den Einstieg in vieles andere, was sonst noch so auf dem Markt ist (C, C++, C#, PHP, etc.)
- Mit Eclipse gibt's eine der besten Entwicklungsumgebungen/Debugger auf diesem Planeten, und das kostenlos.

Man kann Java einiges vorwerfen, von "konservativ" (von der C#-Fraktion) über "umständlich" (von der Smalltalk oder auch C++-Fraktion), aber der Punkt ist einfach, man kann diese Sprache in vergleichsweise kurzer Zeit vollständig verstehen. Mit anderen Worten, diese Sprache "legt einen nicht aufs Kreuz" (wie insbesondere JavaScript, oder auch C) - wenn man einmal 2-3 Jahre Java programmiert hat, wird man kaum mehr auf große Überraschungen stoßen, sondern sich eher manchmal wünschen, es hätte ein paar Tricks und Kniffe mehr ;)

Hinzu kommt, dass man im Java-Umfeld - sofern man interessiert genug ist - fast zwangsläufig mit anderen wichtigen und interessanten Technologien in Berührung kommt: XML, Webserver, Build-Scripting wie ANT, automatisiertes Testen mit JUnit, usw.
 
Zuletzt bearbeitet:
Das Problem bei Java ist aber auch, dass man ein gewisse Abhängigkeit von einer Firma hat, was bei C++ nicht der Fall ist. Ich weiß, dass Java unter der GNU GPL/ Java Community Process steht, aber dennoch ist es eben wie nicht wie bei C++ ein Standardkommitee, das den Standard festlegt.
Zur Performance-Diskussion: Java kann wohl kaum schneller als optimierter C++ Code sein, da die Java VM in C und C++ geschrieben ist.


wenn man einmal 2-3 Jahre Java programmiert hat, wird man kaum mehr auf große Überraschungen stoßen
Das kann dir bei C++ kaum passieren ;)

Einige Infos über C++ für unterwegs findest du hier: http://chaosradio.ccc.de/cre063.html

Ich denke, alles, was man als "normaler" Programmierer machen kann, kann man wohl mit Java machen.
Andererseits ist C++ natürlich sehr mächtig und interessant, wie ich finde, da man immer wieder interesannte Sachen entdeckt.


Gruß,

badday
 
@Rossibaer
Jup, zu Zeiten Einsteins war es die höchste Kür
komplex, schwierige Situationen so einfach wie nur irgend möglich zu erklären.
Heute ist es leider "IN" mit Marketing-Gebluber zu prollen.

knoxyz
 
badday schrieb:
Zur Performance-Diskussion: Java kann wohl kaum schneller als optimierter C++ Code sein, da die Java VM in C und C++ geschrieben ist.
sehr interessant, in welcher Sprache etwas geschrieben ist, entscheidet also vornehmlich über die Geschwindigkeit (interpretierte Sprachen außen vorgelassen), sehr interessante Behauptung.
Und leider genauso falsch :rolleyes: Die Konzepte hinter etwas sind viel wichtiger, und ohne ein Pro oder Contra von der Effizienz von Java oder C# zu C(++) anstoßen zu wollen, ja beide können schneller sein.
Ermöglicht wird dies durch einen JIT-Compiler (der englische Beitrag ist auch sehr interessant ;)), besonderer Augenmerk beim Lesen sollte auf Closed-World-Annahmen (z.B. optimieren auf einen ganz speziellen Prozessor) und dynamische Optimierung gerichtet werden.
 
Da das Thema je eh erledigt ist ... ;-)

Das Argument von badday war "Wenn Java erst nach C übersetzt und das dann ausführt isses langsamer, als wenn ichs direkt in c optimal programmiere" und nicht "C ist pauschal schneller als JAVA"
Aber wie du schon gesagt hast.. durch JIT kann Java schneller sein


ps: Ich würd auch zu Java raten. Vor allem wegen der guten Dokumentation, der Konsistenz, da man sich anfangs nicht um Speicher-Management Gedanken machen muss (Pointer & Garbage Collection) und weil es sehr ähnlich zu vielen anderen wichtigen Sprachen ist. Außerdem ist imperativ (und oop) nunmal am meisten verbreitet.
 
Zuletzt bearbeitet:
@ice-breaker: Gut, meintwegen. Ich ging bisher davon aus, dass Java eine rein interpretierte Sprache ist - I was wrong.

Gruß,

badday
 
Als Anfänger kann ich dir nur zu Visual Basic raten, ist in der Express Edition auch kostenlos von Microsoft.

Sehr einfach, man kann sogut wie alles damit machen, und vor allem ist die Syntax und die Parameter sehr logisch, was einem gerade am Anfang zugute kommt.
 
Hallo FreeZer_,
schreibst du das aufgrund eigener Erfahrung?
Falls ja, wäre es interessant zu wissen, ob du auch eine andere Programmiersprache gut beherrscht.

Für mich war Visual Basic 6.0 nämlich die Erste. Da die recht eigenwillige Syntax
aber nur wenig Gemeinsamkeiten mit denen von populäreren Sprachen hat,
war die Umgewöhnung nicht immer leicht.
Deshalb, und weil VB keine große Rolle mehr spielt, würde ich davon abraten dies als Einstiegssprache zu empfehlen.

knoxyz
 
ich denke aus genau den oben genannten gründen: C# macht unter .NET VB obsolet.
und pro würfel bin ich auch!
andere mütter haben nämlich auch schöne töchter!;)
 
knoxyz schrieb:
Hallo FreeZer_,
schreibst du das aufgrund eigener Erfahrung?
Falls ja, wäre es interessant zu wissen, ob du auch eine andere Programmiersprache gut beherrscht.

knoxyz


Ja, schreibe das aus eigener Erfahrung, mein Post sollte auch nur meine eigene Erfahrung und Meinung represäntieren und keinesfalls aussagen, dass VB.NET das Einsteiger-Nonplusultra wäre ;)

Meine erste richtige "Programmiersprache" war in der tat Visual Basic, davor hatte ich viel mit HTML, etwas PHP, viel Pawno, und ganz ganz wenig Delphi zu schaffen.

Also man könnte schon sagen, dass die erste Programmiersprache bei der ich ernsthaft eingestiegen bin, wirklich VB war.

VB.NET und C-Sharp.NET unterscheiden sich ja in dem was sie können so gut wie gar nicht, doch denke ich dass die Visual C# Version eventuell leichter/besser für die Leute wäre, die schon Java/C++ kennen oder später darauf umsteigen wollen.
 
@Backslash: <sign> :)

EDIT: Witzig ist auch, dass VB noch vor C# auf der Liste steht ;)
 
Zuletzt bearbeitet:
Auch wenn jeder was anderes sagt, letztendlich zeigt sich trotzdem ein Trend hin zu einzelnen Sprachen, vor allem Java, vielleicht noch C# (was ja letztendlich sehr ähnlich ist) oder Visual Basic.
 
ice-breaker schrieb:
sehr interessant, in welcher Sprache etwas geschrieben ist, entscheidet also vornehmlich über die Geschwindigkeit (interpretierte Sprachen außen vorgelassen), sehr interessante Behauptung.
Die auch die auch ganz gut paßt.
http://shootout.alioth.debian.org/u32q/which-programming-languages-are-fastest.php
Egal welcher Benchmark mit welchem System, Java zieht nie an C vorbei.
Und dabei handelt es sich immer um den besten Code für die jewalige Sprache. ;)
(Hier zählt nur das Ergebnis)
 
Zurück
Oben