welches framework/welche sprache???



  • hallo an alle, ich habe vor kurzem mit c++ angefangen, und will nun mal was größeres probieren. In meinem ersten projekt will ich dateien aus dem internet laden. ein freund von mir riet mir, dass ich lieber java oder c# nehmen soll, anstatt mich mit wxwidgets, boost, sockets rumzuquälen. ich will auch kein c++/cli verwenden, weils leicht zu portieren sein soll, welchen tip gebt ihr mir? c++ mit boost und wxwidgets, oder doch lieber was anderes? ich weiß, dass java auch nicht 100%ig plattformunabhängig ist, und bei mono noch ganze namespaces fehlen.



  • python

    (Du wirst von jedem was anderes hören, die meisten werden dir hier zu C++ raten, ein paar zu java, ich zu python, einer zu ruby und noch paar geeks zu lisp/scheme)



  • Ich rate dir zu keiner Sprache - lerne die, die dir am besten gefällt. Das Wichtige ist, dass du nach und nach (im Laufe der Jahre, also nichts überstürzen) auch andere Programmiersprachen kennen lernst. Ein schlauer Mod sprach einst: Lerne programmieren, keine Programmiersprache.
    Ich denke, das bringt es auf den Punkt. Hauptsache ist, dass es dir Spaß macht und du nicht aufgibst 🙂



  • python ist ein guter einstieg 👍



  • wie portabel is denn C#? Doch nur stark eingeschränkt?

    EDIT://
    Python ist echt ne tolle Sprache 🙂



  • darthdespotism schrieb:

    wie portabel is denn C#? Doch nur stark eingeschränkt?

    läuft nur unter windows vernünftig. mono etc. kann man total knicken.



  • Wenn dir die Plattformunabhängigkeit wichtig ist, dann solltest du dich zwischen C++ oder Java entscheiden. C# läuft bisher nur auf einigen Windowssystemen vernünftig (ich schätze mal das es für Win95 kein .Net Framework gibt).

    Ansonsten musst du eigentlich nur das hier beachten:

    Badestrand schrieb:

    Ein schlauer Mod sprach einst: Lerne programmieren, keine Programmiersprache.



  • ... Lerne programmieren, keine Programmiersprache

    Jemand der "nur" programmieren kann kann aber noch lange kein C++, und lernt das auch nicht in ein paar Wochen 😉

    Die Entscheidung ist also IMHO nicht so einfach. Sprachen wie C, C++, Pascal oder XYZ-Assembler sind eine ganz andere Kategorie als Sprachen wie Java, Python, PHP, Ruby etc.
    C# liegt wohl irgendwo mittendrin. Und Lisp + Derivate ist wohl eine ganz eigene Sache.

    Der wichtigste Unterschied ist IMO dass man bei der ersten Gruppe mit Dingen konfrontiert ist die man bei der 2. Gruppe nicht "sieht" und um die man sich nicht kümmern muss. Ein Beispiel wäre die Speicherverwaltung (manuell vs. automatisch), ein anderes Beispiel wären Zeiger und Casts.

    Ein weiterer grosser Unterschied ist dass man bei der zweiten Gruppe Dinge "out of the box" zur Verfügung hat die man bei ersten Gruppe nur schwer oder garnicht "nachstricken" kann. Beispiele wären Reflection, das dynamische Erzeugen von Code oder auch "relativ einfach zu erreichende" Portierbarkeit.

    Die Frage die man (sich) stellen sollte wäre also (wenn ich es mal auf die populärsten Vertreter reduziere): soll man C++ oder Java lernen?

    ----

    Wenns nur darum geht rumzuspielen ist wohl Java bzw. "die 2. Gruppe" die bessere Wahl, da man schneller zu Ergebnissen kommt und überhaupt alles ein Eck unkomplizierter ist.



  • hustbaer schrieb:

    Jemand der "nur" programmieren kann kann aber noch lange kein C++, und lernt das auch nicht in ein paar Wochen 😉

    es gibt natürlich fallstricke, aber wenn jemand objekt orientiert programmieren kann, dann hat er mit C++ erstmal keine probleme.

    das schwere beim programmieren ist das neue konzepte lernen, nicht die syntax.



  • als ich damals auf c++ umgestiegen bin (lisp und java background), waren memory leaks mein hauptproblem 😉 die programme waren auch nicht sonderlich optimiert, aber sie funktionierten.

    wenn man programmieren kann, kann man eigentlich mit jeder sprache umgehen. man muss sich nur die syntax angucken und nach wenigen tagen kann man lauffähige programme abliefern. wenn man sich dann länger mit einer sprache beschäftigt, versteht man irgendwann auch das konzept, verwendet für diese sprache übliche pattern und fängt an, in auf die sprache optimierten strukturen zu denken, sprich: der code wird besser.

    aber grundsätzlich ist das wichtigste als anfänger erstmal programmieren zu lernen. die sprache ist nebensächlich.
    wobei ich eine bekannte, aktuelle sprache wählen würde, einfach weil es einfacher ist, zu diesen hilfestellungen zu finden.



  • @Shade: ich spreche nicht von der Syntax, sondern ... naja, ich will mich nicht wiederholen, hab's eh schon geschrieben.

    Und C++ ist natürlich das Extrembeispiel.

    Dinge wie Slicing, Mehrfachvererbung, Zeiger, "implementation defined" an jeder 2. Ecke (wie gross ist ein int?), unions, Makros, Templates, compilergenerierter copy-ctor und "operator =", "Kopieren ist ok" beim Binden an const Referenzen, ADL, ... das sind alles Dinge die man in anderen Sprachen nicht findet, und die man erstmal behirnen muss (bzw. überhaupt erstmal kennen/davon wissen).

    Bloss die Syntax abgucken reicht IMHO lange nicht um in C++ fehlerfreie und "gute" Programme zu schreiben.


Anmelden zum Antworten