Kann mir jemand diese Programmiersprachen der Schwierigkeit ordnen?

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

"Allgemeine Schwierigkeit" kann man ganz schlecht einordnen, das kommt einfach darauf an, was man vorhat. "Schwierigkeit" für einen Anfänger ist auch etwas ganz anderes als für jemanden, der täglich mit Informatik und Programmieren zu tun hat.

Eigentlich müsste man da sehr viel dazu schreiben, aber vielleicht nur ein paar Anmerkungen:

Python ist am ehesten die einfachste Sprache, aber auch nicht für alles geeignet. Aber für sehr viel, würde ich sagen ;) Die Grundlagen sind sehr einfach, aber es gibt auch einige sehr fortgeschrittene Ideen, die nicht jeder gleich versteht...

C ist eigentlich relativ simpel in Sachen Syntax, aber durch die eher hardwarenahe Programmierung und die eher eingeschränkten Sprachfeatures ergeben sich schon so einige Probleme ;)

C++ ist wohl mit Abstand am komplexesten von den Sprachen, aber manche Probleme kann man damit auch einfacher lösen als mit den anderen Sprachen. Der Lernaufwand ist aber sicher hier am höchsten.

Java ist sicher einfacher aufgebaut als C++, aber stellenweise auch ein wenig umständlich für meinen Geschmack. Lernaufwand höher als bei Python.

Mit C# habe ich kaum Erfahrung und kann nicht viel dazu sagen, aber ich würde es in etwa bei Java einordnen.

grtgrt  26.02.2015, 13:29

Ja, das sehe ich ebenso.

Man sollte aber ergänzen: C# und .NET sind eigentlich entstanden in Anlehnung an Java (sozusagen als Java Clone). Da es Microsoft aus lizenzrechtlichen Gründen dann aber verboten wurde, seine Variante weiter als Java zu bezeichnen, hat man in Anlehnung an Suns Idee von Java das dazu konkurrierende .NET und C# entwickelt.

Frühe Versionen von C# sind deswegen frühen Versionen von Java sehr ähnlich. Genauer: Die zunächst entstandenen Teile von Java und C# sind einander sehr ähnlich: Es sind die Teile, die fast jeder verwendet, der mit einer dieser Programmiersprachen arbeitet.

Erst in später dazugekommenen Teilen begannen diese beiden Sprachen, sich deutlicher von einander zu unterscheiden.

Je mehr man auch noch die letzten zu ihnen hinzugekommenen Features nutzt, umso schwieriger wird man die Sprache empfinden. Es lässt sich deswegen keiner von beiden eines der Attribute "einfach" oder "nicht einfach" zuordnen.

Tatsache aber ist: Sie sind hinsichtlich objektorientierter Konzepte durchdachter als C++. Das ist gut, denn: C++ Code, den man nicht selbst geschrieben hat, kann beliebig schwer zu verstehen sein. Für Java und C# gilt das nicht mehr wirklich.

Auch haben Java und C# gewisse Fehler, die man in C und C++ machen kann -- und deren Ursache man dann lange suchen muss --, unmöglich gemacht. Insbesondere die Tatsache, dass Java und C# bei Absturz Stack-Trace liefern, war ein wirklich großer Fortschritt.

0

C# ist gleich C Sharp.

Java und C# sind mehr oder weniger Einsteigerfreundlich, allerdings fehlen dir wichtige Bausteine, wenn die Grundlagen der Programmeirung nicht gegeben sind.

C, C++ sind sehr mächtig, nicht ganz leicht zu handhaben, aber man lernt dabei ungemein viel.

Python ist eine Scriptsprache, mE nach sehr störisch, eher für, wer hätte es gedacht, Skripte geeignet.

Such dir ein Grundlagen der Programmierung Buch, fange mit C an, arbeite dich Stück für Stück durch. In 3-4 Jahren kannst du dann auf 100% Objektorientierung umsteigen. Ob Java oder C#, dass macht dann keinen Unterschied mehr. Früher oder später kann man sowieso jede Sprache schreiben, mit etwas Einarbeitungszeit. Aber dafür ist es nunmal notwendig, die Grundgedanken zu kennen.

tobistenzel  06.02.2012, 20:29

Was ist denn eine störische Programmiersprache?

Früher oder später kann man sowieso jede Sprache schreiben, mit etwas Einarbeitungszeit.

Für die "Mainstream-Sprachen" gilt das schon einigermaßen, aber versucht man sich mal an funktionalen Programmiersprachen, dann wäre es oft besser, den imperativen Kram nicht zu kennen ;)

0
Wutklumpen  07.02.2012, 09:30
@tobistenzel

Das ist wohl korrekt. Als Java-stämmiger hab ich mich mal kurzzeitig an Scala versucht... ohje^^. Mehr Funktion in weniger Code heißt zwar weniger schreibaufwand, aber dafür erhöhter Wartungs- und Verständnisbedarf.

Und mit störrisch mein ich mein ich...also...ich hab keien schöne IDE für gefunden, also keine Autocompletion und arghe Probleme gehabt, die Blocksyntax rauszubekommen^^

0
tobistenzel  10.02.2012, 13:36
@Wutklumpen

"Kurzzeitig" und Scala passt einfach nicht zusammen. Das bedeutet einfach Lernaufwand und das geht nicht in 2 Wochen und auch noch nicht in 2 Monaten. Danach zahlt es sich aber wirklich aus.

Weniger Schreibaufwand würde ich gar nicht sagen, ich finde es eher "mental anspruchsvoller" als Java Code zu schreiben, aber dafür kann ich meine Ideen und Konzepte viel besser ausdrücken und produziere weniger Code-Müll ;) Mir ist bei gut geschriebenen Scala-Code viel schneller klar, um was es da geht als bei entsprechendem Java-Code, der üblicherweise viel länger und für mich auch unübersichtlicher ist.

Ich finde vor allem funktionale Ausdrücke viel natürlicher als diesen Wust an Java-Code, den man dafür schreiben müsste und der alle möglichen Seiteneffekte hat, die man übersehen kann...

Pydev für Eclipse ist doch ganz gut für Python. Autocompletion geht zwangsläufig nicht so gut wie bei statisch typisierten Programmiersprachen aber mit etwas Übung ist der Nachteil nicht sehr groß, wenn ich das mit den Vorteilen vergleiche.

0

Und wie soll das eingeordnet werden?

Jeder einzelne Mensch begreift auf seine individuelle Art unterschiedliche Sachverhalte unterschiedlich schnell … :-)

Vorab: C# und C Sharp und CSharp sind einfach nur unterschiedliche Schreibweisen der gleichen Programmiersprache.

Alle Sprachen bis auf C sind objektorientierte Programmiersprachen, die nach gleichen objektorientierten Paradigmen aber im Detail auch unterschiedlichen Konzepten funktionieren … Das muß man sich einfach genauer ansehen … :-)

C gehört zu den prozeduralen Programmiersprachen. Wenn man die Bezeichner für Variablen und Funktionen clever wählt, kann man auch mit C durchaus objektorientiert Programmieren … :-)

Haha, so eine Frage ist immer sehr gefährlich. ^^

Das erzeugt aus irgendeinem Grund sehr leicht Spannungen zwischen den Programmierern. :)

Aber wie "fuchsi1970" schon sagt finde ich auch, dass dies auf das Einsatzgebiet ankommt. Wenn du Hardwarenahe-Programmierung machen willst, ist C/C++ besser geeignet als Java oder C#.

Wenn es jedoch um Oberflächenprogrammierung unter Windows geht, ist C# sehr gut gemacht.

Wenn du nur darauf aus bist, die Grundlagen einer Programmiersprache zu lernen, dann würde ich folgende Reihenfolge nehmen (Auf Konsolenanwendungen bezogen): C#, Java, C++, C (Python habe ich noch nie benutzt)

Aber am besten wäre es wohl, wenn du dir selbst ein Bild machst. Als Profi wird jede Programmiersprache sehr anspruchsvoll. Und mit ein wenig Glück, erwischt du gleich beim ersten Versuch die Sprache deines Lebens. :)

Ich programmiere in c, c++, java und c#, wobei c# und c sharp das gleiche ist, und kann sagen, dass zumindest von denen, Java das einfachste und komfortabelste ist, gleich gefolgt von c++. C ist heftiger und schwieriger zu debuggen.