Empfehlung für eine Programmiersprache?



  • Ich denke, C/C++ ist schon optimal. Es sei denn man hat besonderes vor, wofür man dann überlegen kann, ob es lohnt. Ist aber eine akademische Frage, denn jeder benutzt die Programmiersprache mit der er am besten klar kommt. Für mich waren das der Reihe nach ALGOL, FORTRAN, PASCAL, C/C++.



  • berniebutt schrieb:

    Ich denke, C/C++ ist schon optimal.

    Was denn nun, C oder C++?



  • Christoph schrieb:

    berniebutt schrieb:

    Ich denke, C/C++ ist schon optimal.

    Was denn nun, C oder C++?

    Ich denke, dass sagt alles



  • Christoph schrieb:

    berniebutt schrieb:

    Ich denke, C/C++ ist schon optimal.

    Was denn nun, C oder C++?

    Hat er doch eindeutig gesagt.

    C durch C++ = x

    bzw.
    C++ * x = C

    und

    c / x = C++

    Er muß also x nehmen.



  • Die Sprache die man benutzt ist immer nur ein Werkzeug um etwas zu tun. Als viel wichtiger sehe ich es an, das man sich mit den Konzepten auskennt, die hinter einem Paradigma stecken und das wichtigste zur Zeit ist eben wahrscheinlich die Objektorientierung. Und um sich die anzueignen bedarf es dann einer Sprache. Dann ist auch egal ob das Java, C#, C++ oder was auch immer ist. Allerdings bin ich auch der Meinung das man eine dieser Sprachen wenn dann intensiv lernen sollte und nicht alle auf einmal. Die Umgewöhnung ist meines Erachtens deutlich einfacher, wenn man eine Sprache sicher beherrscht. Danach kommt es dann nur noch darauf an, was eben gebraucht wird und welche Sprache dort ihre jeweiligen Stärken ausspielen kann.

    MfG

    Jasc



  • Dieser hält C++ ja für weniger geeignet als Lernsprache.
    http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht79Ht/c++_lernsprache_de
    Er empfiehlt Java. Ich selber würde wohl in der Schule eher Ruby empfehlen.



  • C++_in_der_Schule schrieb:

    Dieser hält C++ ja für weniger geeignet als Lernsprache.
    http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht79Ht/c++_lernsprache_de
    Er empfiehlt Java. Ich selber würde wohl in der Schule eher Ruby empfehlen.

    Ich würde zum Lernen auch Java empfehlen, denn es ist eine getypte Sprache und man tut sich leichter von getypt auf ungetypt zu wechseln als anders herum. Insbesondere bei Sprachen wie Ruby bei denen Variablen sehr oft den Typ ändern dürfen. Wenn dann eher Python, wo eine Variable einmal einen Typ erhält und diesen behält.
    Aber am besten finde ich wenn die Leute sich klar machen welchen Typ sie benötigen und diesen explizit angeben, der Umstieg auf ungetypt ist deutlich leichter.

    Java aus dem Grund da es zum einen sehr verbreitet ist und dementsprechend viel Unterstützung gibt, das ist für einen Anfänger auch sehr wichtig, insbesondere Lehrbücher, und dann hat die VM einfach den Vorteil, dass sie alles überprüft und die Exceptions sehr ausführlich den Fehler lokalisieren.
    Es gibt viel weniger Feinheiten in der Sprache auf die man als Anfänger rücksicht nehmen muss.
    Java ist eine einfache Sprache die dennoch getypt ist und in der Praxis großen Zuspruch findet, also ideal für den Einstieg 👍

    Ich hab mit Perl angefangen, dann C und dann C++ und erst als ich programmieren konnte Java mal angefangen, ich weiß also durchaus wovon ich spreche, vor allem, da ich viele Leute kenne die mit Java ihre ersten Gehversuche unternommen haben.



  • ..



  • Erhard Henkes schrieb:

    http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht79Ht/c++_lernsprache_de

    Schüler können solche Fehler auch finden und verstehen, es kostet sie aber mehr Zeit als in Sprachen, die weniger Freiheiten erlauben und daher bei solch einer Formulierung sofort eine Fehlermeldung erzeugen würden. Diese Zeit fehlt dann wieder, um sich mit der Methodik des Programmierens zu beschäftigen. Schüler lernen unter Umständen dabei viele Details einer speziellen Programmiersprache aber weniger allgemein nützliches Programmierwissen.

    Bezüglich Einsatz in der Schule ist das vermutlich richtig, aber bei einer Programmiersprache geht es nicht um die ersten 100 Stunden, sondern um den langfristigen Einsatz. Es geht auch nicht um den allgemeinen Schüler, sondern um Personen, die sich für Programmierung interessieren. Eines ist auf jeden Fall klar: C/C++ und Java haben eine gewaltige Community, und man findet, wenn man sucht, und man erhält eine Antwort, wenn man fragt. Das zählt.

    Hier findet man die Vorteile von C++ sehr kompakt dargestellt, leider falsch betont, nämlich abschreckend anstelle attraktiv:

    Die Speicherverwaltung fehlt in C++ vor allem, weil sie Laufzeit kostete. Viele andere Mühen nimmt ein C++ -Programmierer nur aus einem Grund auf sich: Um die Laufzeiteffizienz des geschriebenen Programms zu steigern. Dieser Gedanke durchdringt die Gestaltung der gesamten Sprache bis hin zur generischen Programmierung. Das Ziel ist die Erzeugung möglichst schneller Programme.
    Um dieses Zieles willen, werden dem Programmierer auch noch viele Techniken maschinennaher Programmierung ermöglicht. Auf die meisten Tests zur Absicherung des Programms und zur Fehlerdiagnose während Laufzeit wird verzichtet, weil diese ja Zeit kosten könnte.

    Dast ist doch blödsinn 👎

    In der Schule müssen viele Leute das Programmieren lernen die sich oftmals gar nicht dafür interressieren, oder man hat es nur ein Jahr, also ist C++ wohl das dümmste was man nehmen kann.
    Wer sich dafür interressiert kann sich C++ ja gerne selbst beibringen.

    Aber in einer großen Lehrveranstaltung die nur bedingt freiwillig ist sollte man eine einfache Sprache wie Java benutzen, da ist C++ einfach fehl am Platz.

    Jeder der C++ als Lehrsprache progagieren will outet sich automatisch als Sprachfanatiker.
    C++ ist eine ultra komplexe Sprache mit einer sehr sehr flachen Lernkurve, sowas zu nehmen ist didaktiv einfach quatsch!



  • C++ würde ich auch nicht in der Schule als Lernsprache einsetzen, aus den von dir genannten Gründen bezüglich der Komplexität, weil eben doch einige in den Informatikkursen sitzen, die sich weniger dafür interessieren und es auch später nie wieder brauchen können.
    Allerdings sehe ich in der Uni C++ nicht als falsche Wahl zum Erlernen der Programmierung an. Wenn sich jemand für ein informatiklastiges Studium einschreibt, gehe ich davon aus das er die Leistungsbereitschaft zum Erlernen einer solchen Sprache mitbringt. C++ ist hier imho deswegen interessant, da man eine Sprache an die Hand bekommt, die die Programmierung mit vielen Paradigmen erlaubt, von prozedual über objektorientiert bis hin zur funktionalen Programmierung.

    MfG



  • Ich kann Jasc nur zustimmen. dazu gibts ja noch das zitat von Bjarne Stroustrup, der sagt, dass seine Elektrotechniker die bei ihm C++ gelernt haben besser Programmieren konnten als die Informatiker, die bei einem anderen Dozenten an der Uni Java gelernt haben. Inzwischen dürfen die Informatiker auch die C++ Vorlesung anhören 😉



  • Sprachfanatiker schrieb:

    In der Schule müssen viele Leute das Programmieren lernen die sich oftmals gar nicht dafür interressieren, oder man hat es nur ein Jahr, also ist C++ wohl das dümmste was man nehmen kann.
    Wer sich dafür interressiert kann sich C++ ja gerne selbst beibringen.

    Aber in einer großen Lehrveranstaltung die nur bedingt freiwillig ist sollte man eine einfache Sprache wie Java benutzen, da ist C++ einfach fehl am Platz.

    Genau, wer nicht wirklich richtig Programmieren lernen will, der soll Java lernen.



  • so ist es schrieb:

    Sprachfanatiker schrieb:

    In der Schule müssen viele Leute das Programmieren lernen die sich oftmals gar nicht dafür interressieren, oder man hat es nur ein Jahr, also ist C++ wohl das dümmste was man nehmen kann.
    Wer sich dafür interressiert kann sich C++ ja gerne selbst beibringen.

    Aber in einer großen Lehrveranstaltung die nur bedingt freiwillig ist sollte man eine einfache Sprache wie Java benutzen, da ist C++ einfach fehl am Platz.

    Genau, wer nicht wirklich richtig Programmieren lernen will, der soll Java lernen.

    Warum glaubt ihr Menschen denn immer, dass einfach=schlecht und kompliziert=gut?



  • Erhard Henkes schrieb:

    Denkt z.B. an diesen kleinen Jungen, dem sein Vater Java empfiehlt, der aber C++ vieeeel mächtiger findet: 😉
    http://www.c-plusplus.net/forum/viewtopic-var-p-is-1537300.html#1537300
    Schlussendlich schlägt jemand C# mit .NET vor, weil da alles so schön "windows-mäßig" resultiert.

    Da ich derjenige war der C#/.NET vorgeschlagen hat, fühl ich mich nun auch irgendwie angesprochen. Der Junge hat eindeutig klar gemacht, dass er sich sehr für GUI-Programmierung interessiert, und so wie es schien, ging es ihm damit auch ausschließlich um native Windows-Oberflächen. Und da empfinde ich nach wie vor C#/.NET als eine sehr gute Wahl. Soll heißen, dass es doch letztlich immer darauf ankommt was man machen will, und das sich das sowieso nicht pauschalisieren lässt (was ja auch letztlich immer das Resultat von solchen Threads ist, weswegen solche Threads auch immer stinken).
    So und dazu auch noch meine pauschalisierte Meinung: Wie auch mal in nem hier verlinkten Artikel von so ner US-Uni bin ich auch der Ansicht, dass es z.B. im Studium bestimmt nicht verkehrt ist sich mit folgendem auseinanderzusetzen:
    - C/C++ (man versteht nun mal einfach die ganzen Dinge die so im System ablaufen viel besser, auch wenn man evtl. später nie damit in Berührung kommen wird; zudem ist es ja immer noch sehr verbreitet)
    - Java/C# (eine der zur Zeit modernen Hochsprachen halt, welche einem viel Arbeit abnehmen und insbesondere in der Anwendungsentwicklung nicht mehr wegzudenken sind)
    - Prolog, oder eine andere funktionale Sprache, um einfach auch mal ein anderes Programmierkonzept kennen zu lernen.



  • Philosof schrieb:

    so ist es schrieb:

    Sprachfanatiker schrieb:

    In der Schule müssen viele Leute das Programmieren lernen die sich oftmals gar nicht dafür interressieren, oder man hat es nur ein Jahr, also ist C++ wohl das dümmste was man nehmen kann.
    Wer sich dafür interressiert kann sich C++ ja gerne selbst beibringen.

    Aber in einer großen Lehrveranstaltung die nur bedingt freiwillig ist sollte man eine einfache Sprache wie Java benutzen, da ist C++ einfach fehl am Platz.

    Genau, wer nicht wirklich richtig Programmieren lernen will, der soll Java lernen.

    Warum glaubt ihr Menschen denn immer, dass einfach=schlecht und kompliziert=gut?

    Mit Java lernt man keine Grundlagen. Man lernt noch nicht mal wirklich Pointer von wirklichem Objekt zu unterscheiden, das kapiert man bei Java erst ganz spät (manche nie). Wer die Maschine verstehen und richtig Programmieren lernen will der sollte mit C anfangen, was man da lernt hilft einem für den Rest seines Programmiererlebens.



  • Vor einigen Jahrem hätte ich allgemein im PC-Bereich die Reihenfolge C -> C++ -> C/C++/WinAPI -> C++/MFC vorgeschlagen, heute muss man hier noch C#.NET hinzufügen, um im Strom der Zeit mit zu schwimmen. Im µP-Bereich Assembler -> C. Im MS Office-Bereich VBA und plattformübergreifend eher Java.

    Ob man heute eher mit Java anstelle C beginnen sollte? Vielleicht sollte man mit beiden beginnen und sich dann mutig bei C++ treffen. 😉



  • Das wäre schön. Dummerweise gibt es da immer die Fanatiker der einen oder anderen Sprache, die einen kritisieren an der "Waschmaschinensprache" Java rum, die andern haben was gegen C++ weil man damit nur "rumfrickeln kann" und C ist ja "eh veraltet". Ich wäre ja dafür, das jeder akzeptiert das die eine oder andere Sprache auf ihrem jeweiligen Gebiet Vorteile und auf einem anderen Nachteile hat und danach ausgewählt werden sollte. Ich gebe nep recht das C# mit .NET oder Mono ganz gut geeignet ist für jemanden der schnell mal seine eigene GUI-Oberfläche zusammenbasteln will, das geht unter .NET wahrscheinlich sogar noch einfacher als in Java, weil bei .NET ja alles aus einer Hand kommt, dafür ist Java ein wenig flexibler, was die Verwendung und die Auswahl an Frameworks angeht. Dafür muss man sich dann aber eben auch die Frameworks zusammensuchen.

    In diesem Sinne

    MfG



  • Jasc schrieb:

    Das wäre schön. Dummerweise gibt es da immer die Fanatiker der einen oder anderen Sprache, die einen kritisieren an der "Waschmaschinensprache" Java rum, die andern haben was gegen C++ weil man damit nur "rumfrickeln kann" und C ist ja "eh veraltet". Ich wäre ja dafür, das jeder akzeptiert das die eine oder andere Sprache auf ihrem jeweiligen Gebiet Vorteile und auf einem anderen Nachteile hat und danach ausgewählt werden sollte. Ich gebe nep recht das C# mit .NET oder Mono ganz gut geeignet ist für jemanden der schnell mal seine eigene GUI-Oberfläche zusammenbasteln will, das geht unter .NET wahrscheinlich sogar noch einfacher als in Java, weil bei .NET ja alles aus einer Hand kommt, dafür ist Java ein wenig flexibler, was die Verwendung und die Auswahl an Frameworks angeht. Dafür muss man sich dann aber eben auch die Frameworks zusammensuchen.

    In diesem Sinne

    MfG

    Das ist ja alles schön und gut und so sieht die reale Welt auch aus.

    Aber mit einer Sprache wirst du nun einmal anfangen müssen. Bzw. es ist auch möglich mit mehreren gleichzeitig anzufangen, aber man muss es dann wie bei Kindern die bilingual aufwachsen strikt trennen. Im Falle einer Programmiersprache wäre es also sehr ungeschickt C und Java zu nehmen da sie sich einfach zu sehr ähneln. Dabei sind Java und Lisp so verschieden, dass der Einsteiger gar nicht durcheinander kommen kann.

    Außerdem muss man Unterscheiden zwischen Leuten die motiviert sind und sich das privat beibringen und Leute die es mehr oder weniger müssen und bei letzterem ist der harte Weg über C und C++ (und die Zeit die man braucht wirklich C++ zu programmieren und nicht C mit Klassen) einfach nicht ratsam. Ich selbst habe C vor C++ gelernt und es dauert einfach eine recht lange Zeit bis man wirklich mit C++ und all seinen Paradigmen arbeiten kann. Wobei durch dieses Wissen auch der C-Skill steigt, das muss man klar sagen, ebenso was Sprachen wie Java angeht die fallen einem dann sehr leicht (wobei das jetzt nur auf die Sprache bezogen ist, die best practises muss man sich in jeder Sprache mit der Zeit aneignen, ebenso was die Standard-Bibliothek bietet und wie sie designed wurde).



  • ich hab mit qbasic angefangen 🙂



  • @Sprachfanatiker: Was willst Du damit sagen? Dass man immer mit Java anfangen soll?


Anmelden zum Antworten