Empfehlung für eine Programmiersprache?
-
naja die ganzen esotherischen(heisst doch so oder so ähnlich, oder???) programmiersprachen sind eh nur spasses halber da
es geht hier um richtige sprachen
c, c++, java, delphi, c#, php und so weiter
-
Skym0sh0 schrieb:
naja die ganzen esotherischen(heisst doch so oder so ähnlich, oder???) programmiersprachen sind eh nur spasses halber da
es geht hier um richtige sprachen
c, c++, java, delphi, c#, php und so weiterPHP ist keine richtige Sprache.
-
asc schrieb:
Aus der Erfahrung das sich einige die vorwiegend mit Prozeduraler Programmierung beschäftigt haben sich mit OO schwer tuen. Oder die mit C angefangen haben anschließend nur C mit Klassen programmieren... Eher nicht.
Man soll ja nicht jahrelang prozedural programmieren, sondern nur um die Basics zu lernen. Ein Semester oder so. Das Grundwissen das man da mit bekommt, ist immer sinnvoll, auch wenn man es später von Libs abgenommen bekommt und nicht alles selber tippen muss. Man sieht hier einfach zuviele "Copy&Paste-Programmierer" die alle möglichen Libs zusammenstecken und dann solange rumprobieren, bis was rauskommt was so aussieht wie das was sie wollen, aber Ahnung was sie wirklich im Detail machen haben sie nicht und darum machen sie oft viel Müll. Außerdem finde ich auch, dass man was neues viel schneller lernt, wenn man ein gutes Grundwissen hat.
Und C++ ist nur so komplex wie man es sich selbst macht (Von einer Multiparadigmensprache muss man ja nicht unbedingt gleich alle Paradigmen verinnerlichen...)
Bei C++ musst du zusätzlich an sowas wie Speicherverwaltung, Stack oder Heap, Pointer oder Reference, Constcorrectness usw. denken, wenn man es halbwegs vernünftig machen will. Wenn man OOP mit Java lernt, dann ist halt viel mehr Platz für OPP, als bei C++. Java Frameworks sind auch meistens viel sauberer OO als bei C++, da sieht man einfach schneller wie saubere OOP geht. Danach kann man immer noch C++ lernen. Klar wird man dann am Anfang Java mit C++ programmieren und später erst merken, dass es nicht immer streng OO sein muss. Aber ich denke so herum ist es besser, als mit ner Mischung aus OOP und prozedural zu beginnen und dann ewig nicht zu durchschauen, was OOP ist.
-
sich grundwissen anzueignen ist gut und wichtig. aber warum sollte man das in einer anderen sprache tun? ich unterstütze die meinung, dass ein guter entwickler sich diverse sprachen unterschiedlicher paradigmen mal angesehen haben sollte. aber als einstieg in die entwicklung spricht absolut nichts dagegen, sich ersteinmal ein jahr lang mit nur einer sprache zu beschäftigen. und da sollte man zu einer sprache greifen, die einen hohen verbreitungsgrad hat. denn dann ist es sehr einfach, sich tipps und hilfestellungen zu besorgen.
was ein absoluter einsteiger erstmal lernen muss sind die basalen dinge. was sind variablen und kontrollstrukturen, wie setzt man einen algorithmus um, wie sehen sinnvolle datenstrukturen aus, usw.
danach kann man anfangen, sich mit dem konzept von libraries bekannt zu machen. was ist das, warum benutzt man code anderer leute, wie setzt man sowas ein, wie ist dokumentation zu verstehen.
und irgendwann, wenn man versteht, was programmierung ist, darf man sich durchaus auch mal konzepte wie speicherverwaltung und die damit zusammenhängenden probleme wie memory leaks und garbage collection beschäftigen. aber nicht gleich am anfang.und deshalb ist meine empfehlung java. die sprache unterstützt OO, man kann aber auch prozedural entwickeln. allerdings nicht, ohne die OO konzepte vollständig aus den augen zu verlieren. man muss sich um speicherverwaltung keine gedanken machen, sieht aber sehr schnell die auswirkung von exzessiver speicherverschwendung.
und ein nicht zu unterschätzender vorteil von java: es ist sehr einfach, auch mal ein wenig grafikausgabe hinzuzufügen. das macht die ganze sache spannender und die erfolgserlebnisse sind interessanter.
-
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 = Cund
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 EinstiegIch 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.