N
Scorcher24 schrieb:
Falls du aber deinen Studenten C++ beibringen willst, ist dein Ansatz total daneben imho. Bring denen das Programmieren gescheit bei und nicht mit irgendwelchen erfunden Wrapper Klassen. Erfinde das Rad nicht neu.
Ich denke hier stoßen einfach grund verschiedene Philosophien aufeinander Wenn es dich wirklich Interessiert erläutere ich gerne meine Gedanken zu dem Thema:
Meine persönliche Meinung zu C++
Ich halte C++ für eine Sehr effiziente Sprache für die eine Vielzahl guter Kompiler für eine breite Palette verschiedener Plattformen zur Verfügung stehen. Mit dem Kern der Sprache fühle ich mich als Entwickler sehr wohl. Was die STL angeht, die ist technisch gut durchdacht und in der Regel auch gut und zuverlässig implementiert. Auf der anderen Seite wirkt der verwendete Wortschatz ziemlich angestaubt, aufgrund der langen Geschichte und der Abwärtskompatibilität gibt es viel zu viele Wege bestimmte Dinge zu erreichen und die Handhabung vieler Klassen ist wesentlich umständlicher als nötig.
Wrapper Klassen versus mitgelieferter Bibliotheken
Klassen zu Wrappen heißt nicht wirklich das Rad neu zu erfinden, man streicht es nur neu an Für den jeweiligen Verwendungszweck gut umgesetzt kann man sein eigentliches Programm oder Spiel mit wesentlich weniger und übersichtlicherem Code gestalten. Für ein Unternehmen hieße das zwar das neue Mitarbeiter diese Bibliothek erst lernen müssen, wäre aber langfristig effizienter.
Dazu kommt das sich die STL mit der Zeit weiter entwickelt. Neue Klassen werden bessere alternativen für bereits vorhandenes. Es kann einen großen unterschied machen ob ich, um von dem neuen zu profitieren, nur die Implementierung einer Wrapper Klasse ändern muss, oder den Code all meiner Programme.
Und dann wäre da die Portierbarkeit. Wer weiß schon wie sich die Informatik Welt oder auch nur die eigenen Anwendungen entwickeln. Heute soll ein Spiel auf dem Computer laufen, morgen auf Smartphones und übermorgen im Browser. Sich und seinen Code an die Bibliothek einer Sprache (oder noch schlimmer eines Frameworks oder einer Game Engine von drittanbietern) zu binden kann auch eine Fessel sein. Ein Programme in eine andere Objekt Orientierte Sprache zu portieren, kann durchaus ein überschaubares unterfangen sein, würde sich in vielen Fällen sogar weitestgehend automatisieren lassen, wenn man sein eigenes Kleines Framework in der neuen Sprache nachbaut.
Das mag alles etwas esoterisch klingen, aber schau dir an wie viel arbeit heute teilweise investiert wird um ältere Spiele auf mobile Plattformen zu portieren.
Interessante Beispiele
Google's GWT wird unter anderem von dem Java Spiele Framework LibGDX werwendet. Wofür? Um in Java geschriebene Spiele automatisch in HTML5/JavaScript kompatible Webbrowser Spiele zu konvertieren.
Es gibt haufenweise Frameworks / Bibliotheken mit bindungen zu verschiedenen Sprachen. Cocos2d ist ein interessantes Beispiel.
Ich fand in Richtung Vereinfachung und Wrappen die Video Aufzeichnung eines Kurses an der Stanford University mit dem Titel "Programming Methodology" großartig. Dort wird die Sprache Java als Werkzeug verwendet, die Grundlegenden Konzepte und Ideen sind aber auf jede Objekt Orientierte Sprache anwendbar. Die Videos sind von der Uni selbst auf Youtube veröffentlicht worden, wer Interesse hat: https://www.youtube.com/view_play_list?p=84A56BC7F4A1F852