Welche Programmiersprache als naechstes!
-
naja schrieb:
C++ verleitet zu unnsinnigem Code. Das ist das Problem. Komplex, aufgebläht und unelegant.
Das ändert sich zum Glück, wenn man C++ lernt. Was Anfänger mit C++ anstellen, ist nicht mein Maß.
-
naja schrieb:
C++ verleitet zu unnsinnigem Code. Das ist das Problem. Komplex, aufgebläht und unelegant.
-
Hmm, Assembler würde ich auch gerne mal lernen. Aber das Problem das ich dabei ist irgendwie immer habe : Es gibt irgendwie soviele Varianten, zumindestens habe ich das Gefühl. 8bit, 16bit, ... dann benutzen die einen mov src, dest die anderen mov dest, src, dort taucht aufeinmal eine variablendeklaration ala .ascii "HELLO WORLD" oder ähnlich auf, der eine callt MessageBox dadurch, dass er parameter in die register movt und dann nen interuptcall INT 80h macht (ist glaube ich linux ), der andere callt auf einmal einfach "MessageBox", ... .
Kurz um : Gibt es gute Bücher oder auch gerne online tutorials zu Assembler, die Ihr empfehlen würdet ?
-
<Platzhalter>*, ehr muß man nicht sagen und der Mod hier flippt grundlos aus, wie dieses Kind im Video:
http://www.youtube.com/watch?v=RKSj0Z0spqoWen ich respektieren soll, den muß ich ernst nehmen können, aber hier sag ich einfach LOL
Weihwasser = <Platzhalter>
-
AsmTuts? schrieb:
Hmm, Assembler würde ich auch gerne mal lernen. Aber das Problem das ich dabei ist irgendwie immer habe : Es gibt irgendwie soviele Varianten, zumindestens habe ich das Gefühl. 8bit, 16bit, ... dann benutzen die einen mov src, dest die anderen mov dest, src, dort taucht aufeinmal eine variablendeklaration ala .ascii "HELLO WORLD" oder ähnlich auf, der eine callt MessageBox dadurch, dass er parameter in die register movt und dann nen interuptcall INT 80h macht (ist glaube ich linux ), der andere callt auf einmal einfach "MessageBox", ... .
Das ist einfach nur die Frage welche Libraries man verwendet. Selbes Problem hast du in C++ wenn du zB von wxWidgets auf Qt wechselst oder ähnliches.
Kurz um : Gibt es gute Bücher oder auch gerne online tutorials zu Assembler, die Ihr empfehlen würdet ?
Ich habe mich früher mal mit http://win32assembly.online.fr/tutorials.html rumgespielt. Win32 Assembler - da die WinAPI eigentlich ganz Assembler freundlich ist habe ich damit rumgebastelt. Das Hauptproblem an Assembler ist einfach, dass die Libraries eklig zu benutzen sind
Das killt den Spaß.
-
Also, ich lass mal den n+1ten sinnfreien Flame pro/contra Sprache X außen vor. Ebenso irgendwelche abgedrehten Vergleiche mit Nasen und Ohren, die nichts mit dem Thema zu tun haben.
Zur Frage des OP:
Du bist dabei, eine imperative, unter Anderem auch objektorientierte, compilierte Sprache zu lernen. Du könntest jetzt folgende Richtugnen einschlagen:a) Eine weitere "höhere" Sprache lernen, primär wären da die C++-Nachkommen Java und C# oder auch die Interpretersprache Ruby zu nennen. Je nach Branche sind alle auch inder Industrie relevant.
b) Wie von anderen angesprochen Richtung "low level" gehen, um Verständnis für die Vorgänge hinter den Kulissen der höheren Sprachen zu bekommen. Das kann der angesprochene Assembler sein, oder als Kompromiss C, was von vielen als "Quasi-Assembler" benutzt wird.
c) Eine Scriptsprache, wie z.B. Perl, Bash oder auch Javascript. Vor allem perl wird häufig benutzt, um kleinere automatisch zu erledigende Aufgaben bei der Programmierung zu erledigen
d) Funktionale Sprachen wie das angesprochene Haskell oder einen der Lisp-Dialekte, z.B. Scheme. Auch wenn die eine oder andere funktionale Sprache durchaus auch im "Real Life" anzutreffen ist (z.B. eLisp im emacs), sind sie in der Industrie nicht so häufig anzutreffen und eher von akademischem Interesse (aber deshalb durchaus nicht uninteressant)In welche Richtung du gehen willst, hängt davon ab, was der Grund für deinen Wunsch ist, noch eine Sprache zu lernen. Wenn der Grund allerdings einfach nur ist, dass du gelesen hast, mehr als eine Sprache zu kennen (oder können? Ist ein riesen Unterschied...) sei cool, dann würd ichs an deiner Stelle erstmal lassen. Wenn man keinen wirklichen Grund hat, die zweite Sprache auch anzuwenden, dann lernt man sie auch nicht wirklich gut.
-
Hi,hi, ganz schön lange Online. :xmas1: :xmas2:
-
1:0 der Punkt geht an dich, s...
-
AsmTuts? schrieb:
Kurz um : Gibt es gute Bücher oder auch gerne online tutorials zu Assembler, die Ihr empfehlen würdet ?
Will nicht vom Threadthema abweichen aber trotzdem eine Buchempfehlung an dieser Stelle :
Und da ich direkt mit c++ angefangen hab wollte ich fragen welche Sprache ich als naechstes lernen soll.
Orientiere dich nach dem was dich interessiert und was du machen willst, informiere dich im Internet oder sonst wo darüber mit welcher Programmiersprache du am besten deine Ideen umsetzen kannst.
Wenn ich dann mal so frage darf welche Sprache kann man gut mit c++ verknüpfen?
Also so das man dann gute Vorteile hat?In erster Linie wahrscheinlich alle Programmiersprachen die eine ähnliche Syntax aufweisen, z.B. Java
-
314159265358979 schrieb:
Dass du C++ beherrscht, bezweifle ich mal. Erkläre mir
- Type Erasure
- Reference Collapsing
- Type Traitskeine Ahnung und kann trotzdem einen Hauch c++.
Musst mal bedenken, es ist schon ein unterschied ob man mal in der Fachliteratur technische Begriffe nachgelesen hat, oder das ding einfach mal viele jahre benutzt und weiß was man damit macht.
-
Kontrasubjekt schrieb:
314159265358979 schrieb:
Dass du C++ beherrscht, bezweifle ich mal. Erkläre mir
- Type Erasure
- Reference Collapsing
- Type Traitskeine Ahnung und kann trotzdem einen Hauch c++.
Musst mal bedenken, es ist schon ein unterschied ob man mal in der Fachliteratur technische Begriffe nachgelesen hat, oder das ding einfach mal viele jahre benutzt und weiß was man damit macht.Type Erasure hab ich auch noch nie gehört, stammt wohl eher aus der Java Welt. Reference Collapsing Zeugs aus dem neuen Standard, muss man nicht kennen, um C++ zu können, wird doch immer noch nicht vollständig unterstüzt. Type Traits: is_pointer usw.
-
Kontrasubjekt schrieb:
Musst mal bedenken, es ist schon ein unterschied ob man mal in der Fachliteratur technische Begriffe nachgelesen hat, oder das ding einfach mal viele jahre benutzt und weiß was man damit macht.
Beides ist nicht dasselbe wie "beherrschen". Ich kenn Leute, die haben 10 Jahre professionell C++ programmiert und wissen nicht, wann man einen Destruktor braucht und wie man diesen korrekt implementiert.
-
Stimmt, aber nicht wissen wann man einen Destruktor braucht ist schon was anderes als Fachbegriffe nicht kennen. Wenn sich das jetzt echt aus dem c++ Standard und Java-Trendwörtern zusammensetzt, und dann einer hergeht und sagt wer das nicht gehört hat hat keinen plan, dann sitzt der schon auf nem hohen ross. Mit der coolness kann ich nicht mithalten, brb fortran.
-
314159265358979 schrieb:
Dass du C++ beherrscht, bezweifle ich mal. Erkläre mir die folgenden Begriffe, möglichst ohne zu Googeln oder gar zu kopieren:
- Template Meta-Programmierung
- Type Erasure
- Reference Collapsing
- Allokator
- Smartpointer
- RAII
- Type TraitsFalls dir kein einziger davon etwas sagen sollte, kannst du nicht einen Hauch C++.
Wenn er in C++ Programme schreiben kann, die seinen Erwartungen gerecht werden, dann kann er C++.
-
Kann 314159265358979 mal Type Erasure erklären?
-
War so klar, dass ihr wieder alle auf mich geht. Fickt euch doch. Ich brauche euch nicht.
-
Naja, bis auf Reference Collapsing und vielleicht Type Erasure sollte man aber schon die von PI genannten Begriffe kennen und (halbwegs) verstehen.
Da der OP nach eigener Aussage keinen dieser Begriffe kennt, sind seine C++ Kenntnisse wohl auch nicht sonderlich gut, weswegen es unsinnig ist sich jetzt schon mit einer neuen Sprache zu beschäftigen. Am Ende kann er von allem etwas, aber nichts richtig.
Wenn er in C++ Programme schreiben kann, die seinen Erwartungen gerecht werden, dann kann er C++.
Nein, dann kann er C++ Programme schreiben, die seinen Erwartungen gerecht werden. Niemand würde behaupten man könne Englisch sprechen, wenn man gerade mal nach dem Weg fragen kann.
Was es braucht um C++ zu können ist zwar undefiniert, aber Smartpointer nicht zu kennen schließt (modernes) C++ zu können aus.
-
Z schrieb:
Wenn er in C++ Programme schreiben kann, die seinen Erwartungen gerecht werden, dann kann er C++.
Oder hat sehr schlichte Erwartungen.
-
comonad schrieb:
Nein, dann kann er C++ Programme schreiben, die seinen Erwartungen gerecht werden. Niemand würde behaupten man könne Englisch sprechen, wenn man gerade mal nach dem Weg fragen kann.
Programmierer (oder Pseudoprogrammierer?) machen das aber gelegentlich.
http://www.c-plusplus.net/forum/274939-47 (Minispiri beobachten)Wie unglaublich wenig muß man können, um in der Schule für seine Programmierkenntnisse eine 1 zu bekommen oder gar besser als der Lehrer zu sein? Da muß man doch größenwahnsinnig werden.
-
Hi,
Ziel einer Programmiersprache ist es nicht, alle Features dieser Sprache anzuwenden, ja nicht mal sie alle genau zu kennen (einen Überblick sollte man aber schon haben).
Gerade C++ ist eine sehr umfangreiche Sprache, die wohl die meisten, wenn nicht sogar fast alle C++-Programmierer nicht in allen Einzelheiten vollständig beherrschen. Ist aber auch nicht nötig.
Die Programmiersprache ist nicht Selbstzweck, sondern nur Mittel zum Zweck (auch wenn das hier einige anders sehen).
So unterschiedlich wie die Aufgaben sind, so unterschiedlich sind auch die dazu zu verwendenden Mittel. Früher hat man dazu unterschiedliche Programmiersprachen genommen, heute nimmt man dazu unterschiedliche Teilmengen von C++.
Sowenig wie man früher einem guten Fortran-Programmierer seine Kenntnisse absprechen konnte, nur weil er kein Cobol konnte, so wenig kann man einem C++Programmierer seine Kenntnisse abprechen, nur wei er Teilmengen davon nicht braucht.
C++ ist in einer ständigen Weiterentwicklung begriffen, aber selbst mit den ersten Versionen die damals noch mit Precompilern liefen haben damalige Programmierer funtkionierende Programme geschrieben, die zum Teil heute ncoh laufen und vieofach auch mit aktuellen Compilern noch übersetzbar wären. Waren das jettz alles Nichtskönner? Wohl kaum!
Sicher gibt es viele, die auf bestimmte Möglichkeiten der neuesten Versionen händeringend warten, aber den meisten gehen sie sicher am Kreuz vorbei. Einige
verstehen sie vielleicht gar nicht. Müssen sie auch nicht. Ihr Arbeitgeber bezahlt sie nicht dafür, dass sie die Sprache C++ perfekt komplett beherrschen, sondern dass sie die gestellten Aufgaben erfüllen.
Viele Sachen sid heute vielleicht eleganter möglich, aber zum Ziel führen immer mehrere Wege. Heute multipliziert man zwei Zahlen und weiß, dass das Programm ne Ausnahme wirft, wenn das Ergebnis zu groß wird. Das gabs vorher nicht. Trotzdem sind die Programme nicht zwangsläufig abgestürzt. Ea hat man eben an kritischen Stellen geguckt ob die Summe der Logarithmen beider Faktoren einen bestimmten Wert nicht überschritt. Und so ist es mit vielem.
Wirklich darauf ankommen, die gesamte Sprache zu können tut es nur dann, wenn man sie unterrichtet, Lehrbücher schreibt oder Compiler baut.
Ansonste kommt es darauf an, die Grundzüge für die zu erfüllenden aufgaben zu kennen, das was man kann gut und sicher zu können und bereit und in der Lage zu sein, sich in neue Aufgabengebiete schnell und effizient einzuarbeiten.Gruß Mümmel