Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

1

01.11.2014, 23:35

Ideas about a new programming language for games.

Ich weiß gar nicht, ob ich das hier im richtigen Forum poste, aber ich denke das sollte passen.
Jonathan Blow hat vor kurzen angefangen, über eine neue mögliche Sprache für die Spiele Entwicklung/Programmierung zu diskutieren. Bisher gibt es drei Teile und ich habe mir gerade den ersten Teil angesehen. Da sich ja einige hier (u.a. auch ich) mit dem Thema Compilerbau etc. auseinandersetzen, dürfte das besonders für diese Leute ansprechend sein.

Teil 1: https://www.youtube.com/watch?v=TH9VCN6UkyQ
Teil 2: https://www.youtube.com/watch?v=5Nc68IdNKdg
Teil 3: https://www.youtube.com/watch?v=UTqZNujQOlA
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

2

01.11.2014, 23:58

Jup bereits gesehen.

Ich finde viele Ideen zwar gut, aber ich denke er stellt sich das alles evt. auch etwas zu einfach vor. Er will ja keine abstraktere Sprache, sondern eine native die aber sehr ähnliche Eigenschaften erfüllen soll. Klar, vieles davon ginge und wäre sicher sinnvoll, aber ob das so einfach umzusetzen ist?
Außerdem vernachlässigt er dass man dann für alle möglichen Plattformen Compiler braucht, die dann ihre eigenen Probleme machen. Und bis das ganze etabliert wäre...

Naja auf jeden Fall spannend, mal sehen was daraus wird.

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

3

02.11.2014, 00:21

Er meinte ja (zumindest im ersten Video) dass er als Backend LLVM nehmen würde. Und meines Wissens kümmert sich LLVM doch dann um die Verarbeitung für verschiedene Betriebssysteme?
Ich finde seinen C++ Stil sehr fragwürdig (halt nur C mit einigen wenigen C++ Elementen) aber im Kern finde ich vieles von dem was er sagt äußerst zutreffend. Ich bin auch mal gespannt, was draus wird.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

4

02.11.2014, 11:51

Ich finde seine Sicht der Dinge sehr interessant, zweifel aber teilweise doch stark an der Umsetzbarkeit als auch Sinnhaftigkeit in der Praxis.

Speziell seinen Aussagen zu RAII, aber auch teilweise zu Ausnahmen finde ich sehr zweifelhaft.
Features wie "std::unique_ptr" mag er nicht und dann beschwert er sich, dass er manuell freigeben muss und unnötige Konstruktoren/Destruktoren schreiben muss. Warum ausgerechnet die Möglichkeit Konstruktoren/Destruktoren zu schreiben die Sprache verkompliziert, verstehe ich nicht. Auch ohne Ausnahmen ist es ein Vereinfachung, wenn diese beiden Dinge automatisch aufgerufen werden.

Wenn ich mir eine Sache für C++ wünschen dürfte um die tägliche Programmierung deutlich zu vereinfachen, dann wären dass der ganze Header und Include Code. Dort steckt wirklich eine Menge Redundanz und Fehleranfälligkeit.

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

5

02.11.2014, 12:09

Ich bin bisher noch nicht zum 2. Part gekommen, aber bezüglich std::unique_ptr: Er findet die Grundidee ja keinesfalls schlecht (wer würde das schon) er findet nur die Zugehörigkeit falsch.
std::unique_ptr<Vector3> Das Hauptaugenmerk liegt hierbei auf das unique und Vector3 ist ein Teil davon. Er findet jedoch (und ich muss ihm da schon irgendwie zustimmen), dass das genau umgekehrt sein sollte, also die uniqueness sollte Teil von Vector3 sein, nicht umgekehrt. Er repräsentiert das mit dem '!': Vector3*!
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

6

02.11.2014, 12:28

Also das Argument kann ich im Moment nicht nachvollziehen.
"uniqueness" ist ein Beschreibung des Pointers, nicht des "Vector3"s. Am "Vector3" ändert sich dadurch nichts.
Ich verstehe im Moment nicht ganz in wie fern sich die Zugehörigkeit überhaupt irgendwie ändert, wenn man den langen Begriff durch ein Ausrufezeichen austauscht und ans Ende verschiebt? Klar, bisschen weniger Tipparbeit und man muss keinen Header mehr dafür einbinden. Aber fügen solche Spezialfunktionen nicht mehr Komplexität in der Sprache hinzu, die er gerade kritisiert?

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

7

02.11.2014, 12:43

Also das Argument kann ich im Moment nicht nachvollziehen.
"uniqueness" ist ein Beschreibung des Pointers, nicht des "Vector3"s. Am "Vector3" ändert sich dadurch nichts.
Ich verstehe im Moment nicht ganz in wie fern sich die Zugehörigkeit überhaupt irgendwie ändert, wenn man den langen Begriff durch ein Ausrufezeichen austauscht und ans Ende verschiebt? Klar, bisschen weniger Tipparbeit und man muss keinen Header mehr dafür einbinden. Aber fügen solche Spezialfunktionen nicht mehr Komplexität in der Sprache hinzu, die er gerade kritisiert?

In C++ muss man folgendes schreiben: unique_ptr<int> zeiger_auf_int; Diese Syntax setzt die uniqueness in den Vordergrund, wobei der Datentyp int ja das wichtige ist. Folgendes wäre zB besser: int<unique_ptr> zeiger_auf_int. So eine Syntax funktiniert aber halt nicht mit mehreren Templateparametern und er schlägt auch keine konkrete Syntax vor. Ich stimme ihm durchaus zu, dass die aktuelle Syntax nicht so toll ist, aber ich wüsste auch keine Lösung für das Problem.

Das mit dem Ausrufezeichen als Spezialfall einzubauen macht die Sprache etwas komplizierter, allerdings ist das aber auch ein Spezialfall, der ziemlich oft genutzt wird. Der Debugger kann einen dann besser unterstützen, der Compiler kann das schneller verarbeiten (da keine templates), die Zeiger werden lesbarer und man könnte sowas auch über API Grenzen standardisieren. Die Vorteile sind nicht von der Hand zu weisen. Und für andere Sachen kann man ja immer noch Smartpointer nehmen.

Das Hauptproblem an seiner Sprache ist wohl die mangelnde Abwärtskompatibilität. Die Sprache kann noch so schön sein, wenn man vor der Entscheidung steht alles neu zu schreiben oder C++ zu nehmen und Zähne zuzubeißen weiß ich für was sich die meisten entscheiden werden.
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

8

02.11.2014, 13:04

Wieso muss es unbedingt eine native Sprache sein?

Wenn ihm die Komplexität von C++ stört, wieso sucht er sich keine einfachere Sprache, die er vereinfachen könnte?
Das ist so als würde ich mit viel Aufwand ein heißes Glas Wasser abkühlen anstatt direkt kaltes Wasser aus dem Wasserhahn zu entnehmen.

Nach dem was ich von euch gelesen habe glaube ich Jonathan Blow gehört zu den Programmierern die nicht verstanden haben wie man moderne Software, die auf modernen Rechnern läuft, optimiert.
Es ist Zeit und Geldverschwendung auf jedes Nanosekündchen zu achten. Optimiert wird nur da, wo es auch etwas bringt.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Lares

1x Contest-Sieger

  • Private Nachricht senden

9

02.11.2014, 16:24

Ich habe mir seine Präsentationen bereits angeguckt, war auch am überlegen ein Topic dazu zu öffnen.
Ich muss zugegeben, ich bin ziemlich begeistert von der Idee. Wenn die Sprache wirklich so schnell verständlich wird, wie er in bisher gezeigt hat, werde ich sehr wahrscheinlich zu dieser Sprache wechseln.
Seine Ansichten über Unique_Ptr und Exceptions kann ich nur unterschreiben. Auch sehe ich es kritisch, dass C++ zu viele Möglichkeiten hat, ein und die selbe Sache umzusetzen. Man ist Jahre (!) damit beschäftigt, die Best Practises einer (!) Programmiersprache zu lernen. Wozu? Sollte ein Programmierer nicht eher lernen wie man programmiert?
Vergleichen wir das mal mit einem Musiker: Wie viel Zeit wendet er auf, um zu lernen mit welcher Taste/Saite er welchen Ton macht? Wie viel Zeit wendet er auf um die entsprechenden Lieder zu lernen?
Oder mit einem Zeichner: Wie viel Zeit wendet er auf um zu lernen, wie man einen Stift hält, benutzt und anspitzt? Wie viel Zeit wendet er auf um zu lernen wie man Bilder zeichnet?

idontknow

unregistriert

10

02.11.2014, 17:13

Und wie soll das ! eigentlich bei nicht primitiven Typen funktionieren? Hab den ersten und dritten Vortrag nur kurz überflogen! Die Idee mit dem defered klingt allerdings wirklich gut! In C++ geht das zwar auch aber eine einzige Zeile hinzuschreiben um sowas umzusetzen ist defintiv ne schöne Sache!

Werbeanzeige