aktuellste Programmiersprache



  • Jester schrieb:

    Noodles schrieb:

    Geil wenn man sich auf Statistiken berufen kann. 🙄

    Ja, gell? Da merkt man, ob man irgendwelchen Hypes hinterherrennt, oder ob die Sachen auch tatsächlich eingesetzt werden. 👍

    Vor allem wenn man absolute Zahlen für alle möglichen Projekte hat und manche Projekte aber besser in Spezialsprachen geschrieben werden. Also echt, die Statistik bringt ja echt gar nichts 👎

    MfG SideWinder



  • Mit C++ kann man genauso schnell zu Ergebnissen kommen. Nur wenn man natürlich bei Lowlevel anfängt, wie von vielen "Profis" propagiert, dann wird das natürlich nichts. Warum z.B. bei C++ erstmal groß beibringen was C-Strings sind? Warum nicht gleich std::string benutzen? Warum groß mit new und delete eigene dynamische Arrays implementieren anstatt einfach std::vector zu benutzen? Würde man genauso schnell ans Ziel kommen.

    Fenster nach ein paar Stunden anzeigen? Dann einfach FOX-Toolkit installieren und schon kanns losgehen. "Profis" würden erstmal sagen "Hey, du mußt erst mit Win32-API die Messages lernen." Soooo dauert es natürlich ewig bis man in C++ zu ergebnissen kommt.

    Aber Java tut es natürlich auch, wenn man dazu sagt, das C++ mächtiger ist. 😃



  • Nach inzwischen fast 1 Jahr AIT (3 stündig) dürfte ich gerade mal wissen was eine Klasse ist. Ist eben total trocken am Anfang (vor allem wenn es keiner versteht.....)



  • Das Problem an C++ ist das es keine vernünftigen Libraries gibt.



  • problem... schrieb:

    Das Problem an C++ ist das es keine vernünftigen Libraries gibt.

    Quark!

    Artchi schrieb:

    Warum groß mit new und delete eigene dynamische Arrays implementieren anstatt einfach std::vector zu benutzen? Würde man genauso schnell ans Ziel kommen.

    Ja, ganz toll. Man kann noch nicht mit dem Hammer umgehen, aber hauptsache man weiß wie man die Hilti anschaltet. Ein paar wenige Grundlagen sollte man sich aneignen, denn irgendwann braucht man sie sowieso. C++ ist keine 21-Tage-Sprache, auch wenn manche Bücher das gerne behaupten.



  • alles nur mittelmaß oder schrott.

    kann aber sein das das auch für andere sprachen gilt.



  • Walli schrieb:

    Ja, ganz toll. Man kann noch nicht mit dem Hammer umgehen, aber hauptsache man weiß wie man die Hilti anschaltet. Ein paar wenige Grundlagen sollte man sich aneignen, denn irgendwann braucht man sie sowieso.

    Genau, und wenn man sie dann braucht, dann kann man sie lernen. Aber ehrlich gesagt: Ich fahre schon seit einigen Jahren Auto und weißt Du was: ich kann immer noch keins bauen. Warum soll man also std::vector nicht benutzen?

    Es geht doch darum Probleme zu lösen und nicht sich künstlich neue zu schaffen.
    Benutzt wird, was einfach ist und funktioniert.

    MfG Jester



  • Eine Library zu verwenden hat aber nichts mit der Sprache zu tun.
    Wenn ich mir mal die WinAPI als Beispiel nehme, dann ist diese zwar in C geschrieben, aber ich kann sie in C/C++, VB oder Pascal verwenden. Die Art der Funktionsaufrufe ist wiederum sprachabhängig. Aber ich kann nicht sagen, dass ich eine Programmiersprache lehre/lerne, wenn ich lehre/lerne, wie man eine Bibliothek verwendet. 🙄

    Sprachliche Elemente wären da eher Syntax (wieso gehört hier oder da ein Semikolon hin?), Basistypen (int, char, ...), Objektorientierte Ansätze (Klassen, Vererbung, Interfaces, etc.), Generische Ansätze (Templates). In C++ kämen da noch Zeiger und Referenzen hinzu, welche es afaik in Java so nicht gibt.

    Da kommt es dann auf das Vorwissen und die Motivation der Schüler an, denke ich. C++ ist halt etwas low-level-mäßiger, als Java, aber dafür auch mächtiger (meine Meinung). Wenn man aber C++ kann fällt es einem leichter, denke ich, später mal etwas in Java zu machen, als umgekehrt. Wenn man nie so hart mit den Problemen, wie Zeiger, Referenzen, deren Unterschiede, und/oder Templates konfrontiert wurde, dann kann das schon ein ziemlicher Hammer werden, könnte ich mir vorstellen.

    Auf der anderen Seite gibt es in Java Interfaces, die es in C++ nicht gibt, man aber mit abstrakten Klassen relativ gut nachbilden kann. Weiter kann ich da nichts zu sagen, weil meine Erfahrung bes. mit Java nicht so groß ist, aber ich denke mein Standpunkt ist klar geworden. 🙂



  • Jester schrieb:

    Walli schrieb:

    Ja, ganz toll. Man kann noch nicht mit dem Hammer umgehen, aber hauptsache man weiß wie man die Hilti anschaltet. Ein paar wenige Grundlagen sollte man sich aneignen, denn irgendwann braucht man sie sowieso.

    Genau, und wenn man sie dann braucht, dann kann man sie lernen. Aber ehrlich gesagt: Ich fahre schon seit einigen Jahren Auto und weißt Du was: ich kann immer noch keins bauen. Warum soll man also std::vector nicht benutzen?

    Man soll std::vector benutzen! Aber ich finde, dass ein Anfänger zumindest ein paar grundlegende Sachen verstanden haben sollte. Wer nicht versteht wie ein vector funktioniert, der benutzt ihn an den unmöglichsten Stellen, auch wenn vielleicht eine deque oder etwas anderes viel angebrachter wäre.



  • Das ist aber am Anfang völlig wurst. Es geht doch um echte Anfänger. Beliebte Übungsaufgabe: Lies Zahlen von der Tastatur ein, bis ne -1 kommt und gib danach aus welche Zahl wie oft angegeben wurde oder gib die Zahlen sortiert wieder aus etc.

    Jetzt kann man entweder anfangen mit new rumzuschachteln um sich den Speicher für die Zahlen anzulegen, oder man benutzt den std::vector erstmal als Blackbox und hat nen ordentlichen Erfolg. Man kommt voran. Wer das ernsthaft lernen will, der wird früher oder später diese Blackbox auch aufmachen wollen um zu sehen was da drin ist.

    Imho sollte beim Lehren von C++ die STL aber eine zentrale Rolle spielen, weil sie viele Probleme beseitigt oder zumindest verringert. Auch der Untschied zwischen deque und vector läßt sich erläutern und verstehen, ohne genau zu wissen wie das implementiert ist.
    Natürlich sollte man dabei nicht verschweigen, daß es sich nicht um ein eingebautes Sprachfeature sondern um die Standardbibliothek handelt.

    Ich glaube, daß sich viele Leute mit C++ sehr schwer tun, weil sie "alles selber machen" wollen und nicht die Library benutzen. Gerade wenn es um Programmieranfänger geht ist es aber wichtiger, daß die if,for etc. verstehen, als sich um Probleme des Speichermanagments zu kümmern.



  • Walli schrieb:

    Jester schrieb:

    Walli schrieb:

    Ja, ganz toll. Man kann noch nicht mit dem Hammer umgehen, aber hauptsache man weiß wie man die Hilti anschaltet. Ein paar wenige Grundlagen sollte man sich aneignen, denn irgendwann braucht man sie sowieso.

    Genau, und wenn man sie dann braucht, dann kann man sie lernen. Aber ehrlich gesagt: Ich fahre schon seit einigen Jahren Auto und weißt Du was: ich kann immer noch keins bauen. Warum soll man also std::vector nicht benutzen?

    Man soll std::vector benutzen! Aber ich finde, dass ein Anfänger zumindest ein paar grundlegende Sachen verstanden haben sollte. Wer nicht versteht wie ein vector funktioniert, der benutzt ihn an den unmöglichsten Stellen, auch wenn vielleicht eine deque oder etwas anderes viel angebrachter wäre.

    Du kannst den Leuten beibringen, wann sie vector oder deque verwenden sollen, ohne dass sie lernen, wie diese implementiert werden. Ausserdem werden Arrays oft sehr früh eingeführt. Wenn man da std::vector für nimmt ist es auf jeden Fall besser und man macht nichts grundlegend anders.



  • Artchi schrieb:

    Warum z.B. bei C++ erstmal groß beibringen was C-Strings sind? Warum nicht gleich std::string benutzen?

    Nun, ich sehe das etwas differenzierter. Das Problem hierbei ist, dass C++ keinen echten builtin Stringtyp hat. Dh, Literale werden über nullterminierte Zeichen Arrays dargestellt, also C-Strings. Und solange das so ist, sollte man schon den Aufbau von C-Strings kennen. Es wäre reine Ressourcenverschwendung für ein Literal Alias std::string zu nehmen. Klar, einem Anfänger ist das relativ egal. Aber für Leute, die professionell Software vermarkten möchten, nicht. Da zählen neben der eigenen Bequemlichkeit (oder sollte ich sagen Entwicklungsgeschwindigkeit 🙂 ) auch andere Dinge.
    Die andere Frage ist, ob

    "Hallo, Welt!".length()
    

    dem Look&Feel eines builtin Typs entspricht.
    Dass man für das String Handling selbst, std::string und nicht die str... Funktionen verwenden sollte, versteht sich von selbst.



  • Jester: Ich gestehe ja ein, dass dieses Top-Down-Lernen etwas für sich hat, aber auf der anderen Seite sehe ich viel zu viele Leute, die später große Programme schreiben und sich nicht wirklich mit der Wahl der geeigneten Datenstruktur auseinander setzen, weil der vector ja immer so schön funktioniert hat.



  • Es ist auch so, dass das meiner Meinung nach beste C++ Buch für Anfänger "Accelerated C++" den Weg der STL geht und mit std::string, std::vector von Anfang an arbeitet.



  • Ponto schrieb:

    Es ist auch so, dass das meiner Meinung nach beste C++ Buch für Anfänger "Accelerated C++" den Weg der STL geht und mit std::string, std::vector von Anfang an arbeitet.

    Wenn es dann auch vernünftig erklärt wo die Vor- und Nachteile der jeweiligen Datenstrukturen liegen bin ich ja zufrieden 😉 .



  • Artchi schrieb:

    Ganz davon abgesehen, das jeder Depp auf sourceforge ein Projekt anlegen kann. 😉

    das hat gesessen 🙂



  • kidfakenewold? schrieb:

    Artchi schrieb:

    Ganz davon abgesehen, das jeder Depp auf sourceforge ein Projekt anlegen kann. 😉

    das hat gesessen 🙂

    Und? Gibt es mehr C++ und weniger C# Deppen? Glaub ihr bei >15.000 Projekten spielen solche Leute eine gewichtige Rolle? Das glaube ich nicht, bevor ich eine andere Statistik gesehen habe die in der Relation deutlich anders sieht.



  • Jester schrieb:

    Noodles schrieb:

    Geil wenn man sich auf Statistiken berufen kann. 🙄

    Ja, gell? Da merkt man, ob man irgendwelchen Hypes hinterherrennt, oder ob die Sachen auch tatsächlich eingesetzt werden. 👍

    Also macht man an einer Statistik fest ob eine Sprache gut ist?
    Was ist denn wenn ein (groß?)Teil der Projekte schon etwickelt wurden bzw. in Entwicklung waren bevor eine neuere Sprache auf den Markt kam?

    Man kann natürlich z.B. ASP.NET (2.0) als Hype bezeichnen, oder damit komfortabel eine Webanwendung erstellen.



  • Noodles schrieb:

    Jester schrieb:

    Noodles schrieb:

    Geil wenn man sich auf Statistiken berufen kann. 🙄

    Ja, gell? Da merkt man, ob man irgendwelchen Hypes hinterherrennt, oder ob die Sachen auch tatsächlich eingesetzt werden. 👍

    Also macht man an einer Statistik fest ob eine Sprache gut ist?

    Nein, wie gesagt macht man daran fest ob die Sprache auch tatsächlich eingesetzt wird. Da bei sourceforge hauptsächlich Hobbyprogrammierer unterwegs sind stellt sich natürlich die Frage, wie repräsentativ das ganze ist. Ausserdem spielt natürlich auch ne Rolle wie alt die Sprache ist.



  • Hmm.... was fuer eine Schule ist das? Wie lang soll der Kurs gehen? Und welcher Jahrgang?

    Ich bin nach wie vor der Meinung, dass sowohl Java als auch C++ zu komplex sind, um sie in 1 Jahr einem nur halbinteressiertem Publikum beizubringen. Da bin ich immer noch fuer Python. Damit bringt man IMO die Basics leichter bei als bei komplexeren Sprachen. Und wer die beherrscht, tut sich auch spaeter leichter, wenn er maechtigere Sprachen (eben C++ oder Java z. B.) lernen will. Aber auch die anderen haben vielleicht was davon.
    Wenn ich jetzt an 'ner IT-Berufsschule oder einer HTL einen Kurs ueber mehrere Jahre machen wuerde, waer C++ / Java die Ueberlegung wert. Wobei ich in dem Fall zu Java tendieren wuerd, weils eben einfacher ist. Aber ich denk das haengt vom Zielpublikum ab...


Anmelden zum Antworten