Programmiersprache lernen

IBISXI schrieb:
Python ist gut strukturiert und logisch.
Darüber kann man streiten. :-)
Apropos Struktur. Einrücken ... also quasi semantische Whitepsace ... halte ich eher für nervig. Man kann nicht mal irgendwo simpel was Copy-Pasten ohne Gefahr zu laufen, dass irgendwas schief läuft.

IBISXI schrieb:
Python hat eine einfache Syntax.
Nein. Hat es nicht.
Lisp hat ne einfache Syntax. Smalltalk hat ne einfache Syntax.
 
Python hat ne einfache Syntax. List hat eine einfachere Syntax. AVR-Assembler hat die einfachste Syntax ;)
 
Ich selber habe, als ich zwölf war, mit Python angefangen. Ich habe damals ein "Kinderbuch" gelesen. Das Lesen von Kinderbüchern in diesem Zusammenhang kann ich auch heute noch wärmstens empfehlen, da in Kinderbüchern die Programmierung wirklich meist idiotensicher erklärt wird.

Ich persönlich würde dir empfehlen, Codecademy (Website) zu besuchen, oder ein Anfängerbuch über Python durchzulesen.

Python wird, wenn du es wirklich ernst meinst, sowieso nicht deine letzte Sprache gewesen sein. Ich bin mit der Zeit ein großer Fan von Java geworden, da diese Sprache aus meiner Sicht die beste Standardbibliothek bietet, und die beste Syntax hat. Als Anfänger würde ich allerdings die Finger von Java lassen. Viele Konzepte, auf denen Java aufbaut, sind für einen Anfänger einfach unverständlich und damit erstmal unwichtig.
 
Technikfreund schrieb:
von Java geworden, da diese Sprache aus meiner Sicht die beste Standardbibliothek bietet,
Darüber kann man streiten. Ich erinnere mich nur daran, wie lange es gedauert hat, bis man eine brauchbare Datum/Zeit API hatte.

Technikfreund schrieb:
und die beste Syntax hat.
Die Syntax ist grausam. Wenn man der überhaupt etwas Positives abgewinnen wollte, dann ist es der Aspekt das sie C-ähnlich ist. Und da viele Sprachen eine C-ähnliche Syntax haben muss man sich nicht groß umgewöhnen.

Technikfreund schrieb:
Als Anfänger würde ich allerdings die Finger von Java lassen. Viele Konzepte, auf denen Java aufbaut, sind für einen Anfänger einfach unverständlich
Java ist eigentlich total simpel. Manchmal sogar zu simpel was dann eben aber auch zu Problemen führt, dass man bestimmte Dinge umständlich lösen muss. Und das endet manchmal in schwer verständlichen Konzepten.
 
andy_m4 schrieb:
Darüber kann man streiten. Ich erinnere mich nur daran, wie lange es gedauert hat, bis man eine brauchbare Datum/Zeit API hatte.


Die Syntax ist grausam. Wenn man der überhaupt etwas Positives abgewinnen wollte, dann ist es der Aspekt das sie C-ähnlich ist. Und da viele Sprachen eine C-ähnliche Syntax haben muss man sich nicht groß umgewöhnen.


Java ist eigentlich total simpel. Manchmal sogar zu simpel was dann eben aber auch zu Problemen führt, dass man bestimmte Dinge umständlich lösen muss.

Was bitteschön ist an der Java-Syntax grausam? Java ist die beste objektorientierte Sprache die ich kenne. Schau dir mal im Vergleich dazu C++ an. Ein wahres Syntaxmonster.

Java ist für einen Anfänger überhaupt nicht simpel. Das Konzept der Objektorientierung kann nicht tiefgehend verstanden werden, sofern man noch nicht einmal weiß, wie imperative Programmierung funtkioniert. Wenn du Unsinn schreibst, dann begründe diesen bitte.
 
Technikfreund schrieb:
Was bitteschön ist an der Java-Syntax grausam? Java ist die beste objektorientierte Sprache die ich kenne.
Dann kennst Du offenbar nicht Viele. :-)

Technikfreund schrieb:
Schau dir mal im Vergleich dazu C++ an. Ein wahres Syntaxmonster.
C++ ist weder eine gute objektorientierte Programmiersprache noch hat es eine schöne Syntax. Aber was beweist das? Es beweist nur, das es noch schlimmer als Java geht. Sonst nix.

Wenn Du Dir eine gut designte objektorientierte Sprache ansehen willst, guck Dir Smalltalk an. Gibt dazueine moderne Open Source Implementation namens Pharo.

Bei Java fängt es ja schon damit an, dass man unterscheidet zwischen primitiven Datentypen und objektorientierten Datentypen. Weil das natürlich doof ist und man bestimmte OOP-Techniken auf priimitive Datentypen gar nicht anwenden kann, gibt es dafür Wrapper-Klassen. Ist aber auch irgendwie wieder doof. Wegen viel Code schreiben und so also hat man überlegt, man macht solche Sachen wie Autoboxing. SO zieht allein diese falsche Designentscheidung ein ganzen Rattenschwanz hinter sich.
Wobei falsche Entscheidung nicht ganz korrekt ist. Man wusste von Anfang an, dass das keine gute Idee ist. Aber man musste es damals machen, weil man anders Performanceprobleme nicht in den Griff bekommen hat.
Pragmatische Entscheidung. Man kann die von mir aus auch befürworten. Aber machte halt die Sprache kaputt und man kann dann nicht mehr sagen: tolle OOP Sprache.

Das soll ja jetzt nicht bedeuten, dass man Java nicht nehmen kann oder das es generell schlecht ist. Aber solche Attribute wie "beste OOP Sprache" etc. haut einfach nicht hin.

Technikfreund schrieb:
Java ist für einen Anfänger überhaupt nicht simpel.
Ob es jetzt die optimale Anfängersprache ist, will ich gar nicht beurteilen. Ich bin da eher der Ansicht, dass die Sprache weitestgehend egal ist wenn man mit Programmierung anfängt.
Fakt ist aber auch, dass Java gern als Lehrsprache genommen wird und es auch sehr viele Java-Programmierer gibt. Sie scheint also zumindest nicht völlig ungeeignet zu sein.

Technikfreund schrieb:
Das Konzept der Objektorientierung kann nicht tiefgehend verstanden werden, sofern man noch nicht einmal weiß, wie imperative Programmierung funktioniert.
Gut. aber auch das kann man mit Java lernen. Man muss ja Java nicht objektorientiert programmieren. Sieht zwar nicht hübsch aus und man muss Sachen wie public static void main(String args[]) schreiben, obwohl man sie eigentlich nicht braucht. Aber geht.

Und ja. Das ist einfach. Weils halt Konsequent ist. Es muss eben alles als Objekt definiert werden. Bei Python ist das anders aber halt auch inkonsequent. Warum kann ich einfach so Code schreiben und muss nicht alles in ein Objekt?

Man kann vielleicht sagen, dass der Python-Weg für den Anfänger zumindest am Anfang einfacher zugänglich ist. Das bedeutet aber nicht, dass es simpler ist.

Meiner Ansicht nach ist Python sehr viel komplizierter als Java.
Klar. Bei Java muss man manchmal viel schreiben. Dafür gibts für bestimmte Problemstellungen genau einen Weg, wie man es in Java typischerweise löst. Python bietet mehr Möglichkeiten und damit hast Du auch mehr Ansätze bestimmte Dinge zu lösen. Das heißt aber auch, dass es schwieriger sein kann sich die passende Lösung herauszusuchen. Es macht es auch schwieriger anderen Code zu lesen.

Ein großes Pfund was Java ebenfalls hat ist der Compiler. Java deckt halt schon viele Probleme zur Compilezeit auf die in Python erst zur Laufzeit auffallen oder sich in nicht unbedingt einfach zu findenden Bugs äußern.
Und Fehler zur Laufzeit finden bedeuten halt auch, Du musst jeden möglichen Codepfad durchlaufen haben. Desto mehr der Compiler vorher aufdecken kann, desto besser.
 
Ich würde trotzdem C# präferieren, denn dort hat man durchgehende Objektorientierung und die Syntax ist noch einmal besser strukturiert als in Java. Ansonsten ist Java und C# ziemlich ähnlich. C# ist aber gerade auf Windows die erste Wahl.
 
Zurück
Oben