PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was hindert eine Sprache wie D daran sich durchzusetzen?


Gast
2007-09-24, 23:57:45
Was hindert eine Sprache wie D daran sich durchzulümmeln? Heute wird überwiegend mit alten Sprachen wie C++ programmiert, die nicht vollständig konsistent sind und enorm viele Möglichkeiten bieten ein Programm zu verhunzen. Wie oft hört man Meldungen von irgendwelchen Programmen, die mit Buffer-Überläufen das ganze System bedrohen, weil sich mal wieder beliebiger Code ausführen lässt? Wieso wird dieser unerträgliche Zustand weiter aufrechterhalten?

Was hindert also eine moderne und saubere Allround-Sprache wie D daran sich durchzusetzen? Das Henne-Ei-Problem ist klar. Aber was bräuchtet ihr denn als Programmierer, um ohne Bauchweh umsteigen zu können? Was ist euch wichtig? Eine IDE? Irgendwelche speziellen Libraries? Bestimmte Tools?

Kurzum, was wäre notwendig, um euch dazu zu bewegen eine andere Sprache als C++ und Konsorten bei leistungskritischen Anwendungen wie Spielen zu benutzen, wenn ihr ein neues Projekt starten würdet?

Gast
2007-09-25, 00:44:24
D ist einfach kein gut klingender Markenname. Der Buchstabe C hat irgendetwas für sich, und C++ mit den beiden + dran klingt so schön technisch.

Gast
2007-09-25, 00:53:14
D ist einfach kein gut klingender Markenname. Der Buchstabe C hat irgendetwas für sich, und C++ mit den beiden + dran klingt so schön technisch.
Ich glaube nicht, dass das der entscheidende Faktor ist.

Außerdem würde nichts dagegen sprechen, nach einigen Jahren anhand der Erfahrung mit der Sprache eine neue Version zu bringen und diese D++ zu nennen.

Spearhead
2007-09-25, 01:00:13
<snip>

Was hindert also eine moderne und saubere Allround-Sprache wie D daran sich durchzusetzen? Das Henne-Ei-Problem ist klar. Aber was bräuchtet ihr denn als Programmierer, um ohne Bauchweh umsteigen zu können? Was ist euch wichtig? Eine IDE? Irgendwelche speziellen Libraries? Bestimmte Tools?

Kurzum, was wäre notwendig, um euch dazu zu bewegen eine andere Sprache als C++ und Konsorten bei leistungskritischen Anwendungen wie Spielen zu benutzen, wenn ihr ein neues Projekt starten würdet?

Nun, ich denke neben den Sachen wie eine gute IDE und Libraries kommt noch hinzu das einfach verdammt viele Programme in C++ oder anderen Sprachen existieren, die sich nicht einfach von heute auf morgen umschreiben lassen.

Zum einen ist es ein großer Aufwand, auf den viele keine Lust haben, zum anderen auch eine Kostenfrage. Hat ein Programm mal einen fortgeschrittenen Entwicklungsgrad ist es günstiger die Bugs zu beheben als es komplett neu zu schreiben, selbst wenn die neue Sprache Vorteile bietet. Der Rewrite wiederum würde sicherlich auch wieder Bugs mit sich bringen, sei die Sprache noch so gut, das passiert immer.

Es ist einfach unrealistisch zu denken nur weil eine Sprache besser ist, werden plötzlich alle Sachen darauf umgeschrieben. Zumal dieses "besser" üblicherweise auch nicht auf jeden Bereich der neuen Sprache zutreffen dürfte.

Gast
2007-09-25, 01:42:23
Nun, ich denke neben den Sachen wie eine gute IDE und Libraries kommt noch hinzu das einfach verdammt viele Programme in C++ oder anderen Sprachen existieren, die sich nicht einfach von heute auf morgen umschreiben lassen.

Zum einen ist es ein großer Aufwand, auf den viele keine Lust haben, zum anderen auch eine Kostenfrage. Hat ein Programm mal einen fortgeschrittenen Entwicklungsgrad ist es günstiger die Bugs zu beheben als es komplett neu zu schreiben, selbst wenn die neue Sprache Vorteile bietet. Der Rewrite wiederum würde sicherlich auch wieder Bugs mit sich bringen, sei die Sprache noch so gut, das passiert immer.

Es ist einfach unrealistisch zu denken nur weil eine Sprache besser ist, werden plötzlich alle Sachen darauf umgeschrieben. Zumal dieses "besser" üblicherweise auch nicht auf jeden Bereich der neuen Sprache zutreffen dürfte.
Deswegen habe ich ja danach gefragt, wie es bei einem neuen Projekt wäre. Und neue Projekte werden auch am laufenden Band angefangen. Gerade bei Spielen wird oft sehr viel neu geschrieben. Trotzdem wäre mir nichts davon bekannt, dass es einen Abstieg in der Nutzung von C++ für neue Projekte gibt. Auch muss man nicht viel umlernen, da sich z.B. im Fall von D die Syntax an C++ anlehnt.

Spearhead
2007-09-25, 07:18:51
Deswegen habe ich ja danach gefragt, wie es bei einem neuen Projekt wäre. Und neue Projekte werden auch am laufenden Band angefangen. Gerade bei Spielen wird oft sehr viel neu geschrieben. Trotzdem wäre mir nichts davon bekannt, dass es einen Abstieg in der Nutzung von C++ für neue Projekte gibt. Auch muss man nicht viel umlernen, da sich z.B. im Fall von D die Syntax an C++ anlehnt.

Gerade bei Spielen denke ich das nicht unbedingt, man muß nur sehen wie oft da Grafikengines lizensiert werden, ich denke da werden sicher auch noch oft andere Sachen wiederverwendet. Und seien es nur irgendwelche vorhandenen Libraries.

Und eben die Sache mit den Libraries ist denke ich ein großer Punkt. Bei D müßte man sehr viel neu schreiben was einem bei C++ schon zur Verfügung steht.

medi
2007-09-25, 07:25:29
Gerade bei Spielen denke ich das nicht unbedingt, man muß nur sehen wie oft da Grafikengines lizensiert werden, ich denke da werden sicher auch noch oft andere Sachen wiederverwendet. Und seien es nur irgendwelche vorhandenen Libraries.

Und eben die Sache mit den Libraries ist denke ich ein großer Punkt. Bei D müßte man sehr viel neu schreiben was einem bei C++ schon zur Verfügung steht.

gerade bei der C&C Reihen konnte man schön sehen, dass entweder der KI-Code immer wieder übernommen wurde (+ leichte modifizierungen natürlich) oder immer der selbe Honk imer wieder das Sammlerproblem eingebaut hat (weils so ein schöner running gag war)... ;)

wäre ja auch blödsinn wenn etwas funktionierendes jedes mal neu geschrieben würde .... für was wurde denn sonst die OOP Technik erfunden wenn nicht dafür, dass Sourceteile mehr als nur einmal genutzt werden können.

Spearhead
2007-09-25, 07:27:04
gerade bei der C&C konnte man schön sehen, dass entweder der KI-Code immer wieder übernommen wurde (+ leichte modifizierungen natürlich) oder immer der selbe Honk imer wieder das Sammlerproblem eingebaut hat (weils so ein schöner running gag war)... ;)

japp, bei nem Gamestar Video meinte einer der Redakteuere ja so schön das der Sammler in C&C 3 immer noch genauso doof ist wie in Dune 2 *g*

lizardking
2007-09-25, 07:42:32
Es gibt durchaus neuere Sprachen, die sich in den letzten Jahren durchsetzen konnten.

Java hat sich von einer Studentensprache zu einer vollwertigen Entwicklungssprache gemausert. Auch C# hat den erhofften Erfolg in der IT-Branche, obwohl sie nur unter Windows vollständig einsetzbar ist.

Ob D den gleichen Erfolg haben wird, kann man nur durch abwarten herausfinden. Ich hab zwar nur die Kurzvorstellung in der c't darüber gelesen, aber die fand ich jetzt nicht überzeugend.

ScottManDeath
2007-09-25, 08:00:00
Solange kein Industrievertreter dahinter steht, ist und bleibt es eine esoterische Totgeburt.

Monger
2007-09-25, 08:20:53
Solange kein Industrievertreter dahinter steht, ist und bleibt es eine esoterische Totgeburt.

Exakt. Wer steht denn hinter D? Hinter all den anderen großen Sprachen stehen auch starke Vertreter, bei denen man sich sicher sein kann, dass sie auch für längere Zeiträume entsprechenden Support garantieren können.

C++ war nicht zuletzt deshalb so populär, weil es durch Microsoft und Intel entsprechend gefördert wurde. Hinter Java stehen Sun und ein bißchen IBM. Das sind starke Namen, was hat denn D vorzuweisen?

Gast
2007-09-25, 08:26:40
Gerade bei Spielen wird oft sehr viel neu geschrieben.Gerade bei Spielen wird selten viel neu geschrieben. Die Spielmechanik ändert sich ja in der Regel kaum. Es wird lediglich optimiert. Ein Spiel von Grund auf neu zu schreiben, würde Jahre dauern und das kann sich kaum ein Hersteller leisten.

Programmiersprachen werden selten ersetzt. So ist die etwa 50 Jahre alte Sprache COBOL in der Wirtschaft heute noch weit verbreitet. Die einzige Sprache, die sich in den letzten Jahren ein wenig verbreitet hat ist C#. Dies liegt zum einen daran, dass sie C ähnlich und die Entwicklungsumgebung frei verfügbar ist, zum anderen gibt es für die XBox 360 ein Entwicklerkit, mit dem praktisch jedermann Programme für die Konsole schreiben kann.

lizardking
2007-09-25, 08:48:06
Gerade bei Spielen wird selten viel neu geschrieben. Die Spielmechanik ändert sich ja in der Regel kaum. Es wird lediglich optimiert. Ein Spiel von Grund auf neu zu schreiben, würde Jahre dauern und das kann sich kaum ein Hersteller leisten.

Aktuelles Beispiel FIFA08 und NHL2008 ;)


Programmiersprachen werden selten ersetzt. So ist die etwa 50 Jahre alte Sprache COBOL in der Wirtschaft heute noch weit verbreitet. Die einzige Sprache, die sich in den letzten Jahren ein wenig verbreitet hat ist C#. Dies liegt zum einen daran, dass sie C ähnlich und die Entwicklungsumgebung frei verfügbar ist, zum anderen gibt es für die XBox 360 ein Entwicklerkit, mit dem praktisch jedermann Programme für die Konsole schreiben kann.

C# hat seine Wurzeln eher bei Java, das um manche Konstrukte aus der C-Welt, ergänzt wurde. Ein C#-Quelltext kann auf den ersten Blick oft locker als Java-Code durchgehen.

Daher war es meiner Meinung eine strategisch bemerkenswerte Entscheidung C# zu entwickeln, nachdem ihr erster Versuch mit der Java-Abart J++ derart in die Hose ging.

Die Stärke Javas, die Plattformabhängigkeit, ist meiner Meinung auch die größte Schwäche der Sprache. Sprich "Einfaches Starten per Doppelklick", wie es in der Windows-Welt nunmal üblich ist.
Und genau der Punkt Plattformabhängigkeit ist Microsoft jetzt nicht so dramatisch wichtig ;)

Ectoplasma
2007-09-25, 09:36:58
Java ist viel häufiger bei Server-Anwendungen anzutreffen, als auf einem Desktop-System. Java als Ersatz für C++ ist für mich aussen vor. Wer will z.B. die vielen kleinen Programme wie 'ls', 'make' oder die größeren wie 'gcc' in Java schreiben? Alleine der Speicher-Overhead den Java mit sich schleppt, spricht dagegen.

Kennt jemand noch Eiffel. Ich würde sagen Eiffel ist die beste statisch typisiert OO Sprache überhaupt. Sie gibt es nun seit 1988, aber niemand zeigt wirkliches Interesse, weil es wie schon vorher erwähnt, keine starke Lobby dafür gibt.

Gast
2007-09-25, 13:38:25
Verstehe ich nicht.

Also eure Beispiele mit Spielen kann ich ja noch akzeptieren. Auch wenn ich finde, dass ihr euch zu sehr an EA Neuaufgüssen aufhaltet. Es gibt auch viele neue Spiele. OK, Engines werden gerne lizensiert. Aber nichtsdestotrotz gibt es doch auch viele neuentwicklungen.

Was ich aber gar nicht verstanden habe ist der Support. Was interessiert es mich als Entwickler, wer hinter einer Sprache "steht"? Wenn die Sprache in einer finalen Version vorhanden ist und ein Compiler veröffentlicht wird, dann kann ich damit programmieren. Was für Support erwartet ihr jetzt? Die ganzen Libraries werden doch nicht nur von dem Hersteller der Sprache geschrieben. Das ist etwas, das mit der wachsenden Community um eine Sprache auch mit wächst. Finde ich seltsam, eure Einstellung.

Gast
2007-09-25, 13:47:49
Verstehe ich nicht.Ich auch nicht. Du reduzierst das ganze Problem alleine auf die Sprache an sich. Hinter der Sprache stecken aber auch noch andere Dinge wie z. B. die Entwicklung und die Entwickler.

Welche Softwareschmiede wirft schon seinen Code weg und schreibt ihn in einer anderen Sprache nochmal komplett neu. Selbst ganz neue Projekte basieren auf dem Wissen der Mitarbeiter, den bisher entwickelten Bibliotheken und den angesammelten Erfahrungen. Auch ein Spiel, das scheinbar völlig neu entwickelt wurde, nutzt die bereits vorhandenen Ressourcen. Warum sollte ein Entwickler das Risiko von Fehlern, die sich bei einer neuen Programmiersprache unweigerlich einstellen, eingehen, wenn er bereits bewährte fehlerfreie Module hat?

Spearhead
2007-09-25, 13:48:04
Versteifen auf EA? Dir ist schon bewußt das die C&C Serie lange Zeit unabhängig von EA bei Westwood war?

Abgesehen davon passiert das bei sehr vielen Fortsetzungen, das eben die vorhandene Engine genommen wird und halt daran weitergebastelt wird, ebenso was den restlichen vorhandenen Code angeht.

Was den Support angeht, ganz einfach. Wenn größere Namen hinter den Sprachen stehen kann man davon ausgehen das mit der Zeit die Sprache eben weiterentwickelt wird und immer besser wird. Das die Libraries nicht nur vom Hersteller geschrieben werden ist klar, aber wenn ein Spieleentwickler eben eine große Sammlung an Libs in einer Sprache hat, sieht er den Sinn mal eben auf eine neue Sprache zu wechseln nicht. Das ganze neu schreiben ist ein ziemlicher Aufwand der am Ende möglicherweise nicht mal groß was bringt, da der alte Code meist schon gut geprüft ist was Bugs und Probleme angeht.

Deine Erwartung ist auch etwas seltsam, finde ich.

Mr.Magic
2007-09-25, 14:29:55
Verstehe ich nicht.

Also eure Beispiele mit Spielen kann ich ja noch akzeptieren. Auch wenn ich finde, dass ihr euch zu sehr an EA Neuaufgüssen aufhaltet. Es gibt auch viele neue Spiele. OK, Engines werden gerne lizensiert. Aber nichtsdestotrotz gibt es doch auch viele neuentwicklungen.

Praktisch alle modernen Spieleentwicklungen sind Multiplatform. Wieviele Entwicklerkits (v.a. die Compiler) für Konsolen sind *D-optimiert?

*& Co.

Kabelsalat
2007-09-25, 15:11:59
Reduzieren wir D auf eine Neuerung. Diese Neuerung mag gewissen Vorteile und technische Anreize bieten, die etwa einen Entwickler dazu verleiten seinem Vorgesetzten / einer verantwortlichen Person die Verwendung eben dieser für seine momentane Tätigkeit nahezulegen. Diese verantwortliche Persönlichkeit wird womöglich folgende Punkte näher anschauen:

1) Bisherige Verbreitung und Akzeptanz der Neuerung
2) Wenn die Neuerung Floppt, ist dennoch mit Unterstützung / Weiterentwicklung der Technologie zu rechnen
3) Finde ich andere Entwickler, die damit umgehen können
4) Verfügbare Toolsets
5) ...

Dummerweise sieht es in den meisten Punkten schlecht für D aus. Wenn jedoch eine große Firma hinter der Neuerung steht (so geschehen bei .Net), fallen die Antworten deutlich besser aus. Um konkreter auf das Beispiel .Net einzugehen:

o Es gab von Anfang an ein umfangreiches Toolset (SDK + VS)
o Fertiges Framework mit gewaltigem Funktionsumfang
o VB Entwickler wie Sand am Meer vorhanden
o C# an Java angelehnt
o Microsoft hat gezeigt, dass sie bei einem anfänglichen Flop nicht klein beigeben (Beispiel IE)
o ...

Pinoccio
2007-09-25, 16:10:18
Was hindert eine Sprache wie D daran sich durchzulümmeln? Heute wird überwiegend mit alten Sprachen wie C++ programmiert, die nicht vollständig konsistent sind und enorm viele Möglichkeiten bieten ein Programm zu verhunzen.Wenn D keine Möglichkeiten bietet, ein Programm zu verhunzen, ist D nicht perfekt. >< (http://de.wikipedia.org/wiki/Allm%C3%A4chtigkeitsparadoxon)

mfg

tokugawa
2007-09-26, 00:25:05
Deswegen habe ich ja danach gefragt, wie es bei einem neuen Projekt wäre. Und neue Projekte werden auch am laufenden Band angefangen. Gerade bei Spielen wird oft sehr viel neu geschrieben.

Hast du da direkt Erfahrung?

Eigentlich hab ich genau die umgekehrte Erfahrung gemacht: es ist günstiger wenn man eine gute wiederverwendbare Codebase hat. Vor allem für Dinge die man immer wieder braucht (Parser, Config-File-Handling, Serialisierung, File-I/O, usw).

Klar, der Grafikteil (bzw generell der Plattformteil) wird oft spezifisch neu geschrieben, aber der ist ja nur ein Teil des ganzen.

MadMan2k
2007-09-26, 00:35:49
das gcc frontend für D ist erst seit kurzem breitflächig verfügbar und noch in einem frühen stadium. Dies ist wohl der Hauptgrund. Denn da D ABI kompatibel zu C ist, stehen schon alle C libs zur Verfügung.

Im übrigen muss kein großer Name hinter einer Sprache stehen - wenn die Sprache überzeugen kann kommen die Namen von Selbst; siehe Python und Google.

Mstrmnd
2007-09-26, 02:11:44
Wenn D keine Möglichkeiten bietet, ein Programm zu verhunzen, ist D nicht perfekt. >< (http://de.wikipedia.org/wiki/Allm%C3%A4chtigkeitsparadoxon)

mfg
Was für eine krude Logik. :D

1. Ich habe nie behauptet, dass D perfekt ist.
2. D ist eine Programmiersprache und unterliegt anderen Anforderungen als eine Gottheit.
3. "Allmächtigkeit" ist gewiss keine primäre Anforderung an eine Programmiersprache. Im Gegenteil, Einschränkungen darin etwas zu verhunzen werden immer gern gesehen. Außerdem ist D jetzt wirklich nicht besonders restriktiv. Man kann z.B. den Garbage Collector nur selektiv aktivieren oder ganz abschalten.

Gast
2007-09-30, 18:53:15
Außerdem würde nichts dagegen sprechen, nach einigen Jahren anhand der Erfahrung mit der Sprache eine neue Version zu bringen und diese D++ zu nennen.


Doch, den ein großer Sprung in der Weiterentwicklung würde bedeuten, daß das ursprüngliche Design schlecht ist.


Die besten Sprachen sind daher die, die so gut Designed sind, daß gar keine Änderung mehr notwendig ist.

Gast
2007-09-30, 18:56:26
Kurzum, was wäre notwendig, um euch dazu zu bewegen eine andere Sprache als C++ und Konsorten bei leistungskritischen Anwendungen wie Spielen zu benutzen, wenn ihr ein neues Projekt starten würdet?

Ich hätte gerne D Bindings für Gtk 2.x die auch offiziell in GTK
enthalten sind und untersützt werden.

Und dieses Projekt ist leider noch nicht so weit:
http://www.dsource.org/projects/dui

Gast
2007-09-30, 19:03:54
Gibt es in D eigentlich auch den Punktoperator wie in Java?

Also z.B.

System.out.println("Hallo Welt!");


Den finde ich nämlich bei Java richtig klasse.
Ich mag diese Art von Strukturiertem Baum nämlich.


Bei C und C++ merkt man davon ja leider nicht viel.

Coda
2007-09-30, 19:13:56
Bei C und C++ merkt man davon ja leider nicht viel.
Ich glaube du hast noch nie gescheiten C++-Code gesehen.

The_Invisible
2007-09-30, 20:15:47
Gibt es in D eigentlich auch den Punktoperator wie in Java?

Also z.B.

System.out.println("Hallo Welt!");


Den finde ich nämlich bei Java richtig klasse.
Ich mag diese Art von Strukturiertem Baum nämlich.


Bei C und C++ merkt man davon ja leider nicht viel.

klar, da gibt es sogar -> ;)

mfg

Xmas
2007-09-30, 20:40:08
klar, da gibt es sogar -> ;)
In D zum Glück nicht (genausowenig wie :: ).

Gast
2007-09-30, 21:35:28
klar, da gibt es sogar -> ;)

mfg
Da gibt es Smilies? :|

Gast
2007-09-30, 22:39:17
Da gibt es Smilies? :|

Ja, gie kann man z.b. so anwenden:

bool = :); // Das entspricht einem true
und
bool = :( // Das entspricht einem false.


Damit wollte man die Sprache für Einsteiger und Kinder vereinfachen.
Fazit: C++ bietet viele Möglichkeiten der Programmierung. :)

MadMan2k
2007-10-01, 18:33:35
Ich hätte gerne D Bindings für Gtk 2.x die auch offiziell in GTK
enthalten sind und untersützt werden.
ja da wär ich auch für. Damit könnten die gleich ihren ganzen Gobject/ Vala Mist ablösen.

micki
2007-10-01, 19:40:58
also seitdem es "Baseballschlaeger" gibt, nutzt ich auch kein "Messer" mehr. damit schneidet man sich nur und piekt andere, oder das sortiment faellt aus dem regal und es gibt blut. "Baseballschlaeger" ist da viel konsequenter in der philosophie, man kann durch genug druckausueben auch ein steak damit zertrennen, trotzdem ist es wohl ausgeschlossen dass sich damit jemand schneidet, ich meine, das ist doch der hauptgrund fuer Verletzungen/Bugs, die Werkzeuge die man nutzt.

Ich empfehle euch daher "Baseballschlaeger", denn auch "Ax#t" wird euch nicht gluecklich machen, geschweige denn der inseldegen der euch nicht schneidet, aber trotzdem ne blut-exception wirft.

Ich weiss garnicht weshalb noch irgendjemand 'Messer' verwendet.

Nachher kommt noch jemand auf die bekloppte idee dass man etwas bestehendes gutes noch verbesser koennte statt das rad neu zu erfinden und verteilt plastikbesteck an kinder damit sie sich nicht verletzen... also wirklich, wer will das?

Gast
2007-10-01, 20:16:32
IMHO nicht wirklich passende Analogie. Gerade D ist ausgesprochen Vielseitig und als potentielle Systemsprache wohl kein stumpfer Baseballschläger.

Gast
2007-10-01, 21:30:14
IMHO nicht wirklich passende Analogie. Gerade D ist ausgesprochen Vielseitig und als potentielle Systemsprache wohl kein stumpfer Baseballschläger.
Gratuliere, du hast die Kernaussage nicht verstandne.

Gast
2007-10-01, 22:59:18
Gratuliere, du hast die Kernaussage nicht verstandne.


Die Kernaussage von micki war:

Ich will den Thread kaputt machen, also trolle ich mal rum und erzähl irgendeinen Blödsinn.




Wo bleiben eigentlich die Mods, ne Verwarnung wegen Schwachsinn wäre durchaus angebracht.

Monger
2007-10-01, 23:05:00
Nachher kommt noch jemand auf die bekloppte idee dass man etwas bestehendes gutes noch verbesser koennte statt das rad neu zu erfinden und verteilt plastikbesteck an kinder damit sie sich nicht verletzen... also wirklich, wer will das?

Klar, für jede Aufgabe das richtige Werkzeug. Die Frage ist nur: inwiefern machen Features die daraus resultierenden Architekturprobleme wett?

Leider ist "Robustheit" keine Größe die sich so einfach messen lässt. Das zu entscheiden, ist momentan wohl wirklich mehr Glaubensfrage als Fakt.

Trap
2007-10-02, 00:39:46
Klar, für jede Aufgabe das richtige Werkzeug.
C ist das richtige Werkzeug für 25% der Programme auf freshmeat.net? Und Smalltalk das richtige für 0,08%?

Der Satz hat mit der Wirklichkeit doch nichts zu tun. Außer in dem Sinn, dass man eine Programmiersprache lernt um damit einen Job zu bekommen und dafür ist C/C++/Java/PHP tatsächlich besser geeignet als die Alternativen.

Mstrmnd
2007-10-02, 03:26:23
C ist das richtige Werkzeug für 25% der Programme auf freshmeat.net? Und Smalltalk das richtige für 0,08%?

Der Satz hat mit der Wirklichkeit doch nichts zu tun. Außer in dem Sinn, dass man eine Programmiersprache lernt um damit einen Job zu bekommen und dafür ist C/C++/Java/PHP tatsächlich besser geeignet als die Alternativen.
Wie meinst Du das? Würdest Du ein Betriebssystem mit Prolog oder gar Java programmieren? Oder ein Computerspiel vollständig in Assembler? Ich sehe nicht, wo Mongers Aussage falsch ist.

Gast
2007-10-02, 09:19:53
Die Kernaussage von micki war:

Ich will den Thread kaputt machen, also trolle ich mal rum und erzähl irgendeinen Blödsinn.




Wo bleiben eigentlich die Mods, ne Verwarnung wegen Schwachsinn wäre durchaus angebracht.
Wenn er trollen würde, wäre er feige als Gast wie du und würde dumm rumflamen, gegen dich ist kein Mod gewachsen.

Gast
2007-10-02, 09:44:03
Wenn er trollen würde, wäre er feige als Gast wie du und würde dumm rumflamen, gegen dich ist kein Mod gewachsen.

D ist C mehr als ebenbürtig!


Das was du in C realisieren kannst, geht auch problemlos in D.

Daher ist der Vergleich Messer (C) gegen Baseballschläger (D) mehr als dämlich.


Eigentlich ist es eher geschmiedetes Messer (C) gegen geschmiedetes und 10 mal gefaltetes Messer (D).
Und 10 mal gefaltet steht hier für Fortgeschritten, höhere Technologie, besser.

Gast
2007-10-02, 09:44:58
Man könnte auch sagen, C ist ein Schwert der Kreuzfahrer, während D ein Schwert eines Samuraikriegerst ist.

Monger
2007-10-02, 10:17:28
Wie meinst Du das? Würdest Du ein Betriebssystem mit Prolog oder gar Java programmieren? Oder ein Computerspiel vollständig in Assembler? Ich sehe nicht, wo Mongers Aussage falsch ist.
Trap meint, dass die Wahl der Sprache selten eine Frage der Funktionalität ist, und da hat er wohl recht.
Sonst würden ja nicht viele Firmen mit alten Gurken wie Fortran o.ä. arbeiten.

Kann ich sogar aus der Arbeit bestätigen: wir haben eine ganze Reihe von Sprachen in der Automatisierungswelt, und die modernste und flexibelste ist mitnichten die beliebteste.

Gast
2007-10-02, 10:20:05
D ist C mehr als ebenbürtig!


Das was du in C realisieren kannst, geht auch problemlos in D.

Daher ist der Vergleich Messer (C) gegen Baseballschläger (D) mehr als dämlich.


Eigentlich ist es eher geschmiedetes Messer (C) gegen geschmiedetes und 10 mal gefaltetes Messer (D).
Und 10 mal gefaltet steht hier für Fortgeschritten, höhere Technologie, besser.
Gratuliere, du hast die Kernaussage nicht verstandne.

Ich gehe aber nicht davon aus, dass du wirklich so Dumm bist, wozu also trollst du rum? Monger und Trap haben es doch auch auf Anhieb verstanden.

The_Invisible
2007-10-02, 10:32:34
Wie meinst Du das? Würdest Du ein Betriebssystem mit Prolog oder gar Java programmieren? Oder ein Computerspiel vollständig in Assembler? Ich sehe nicht, wo Mongers Aussage falsch ist.

wenn man sich die vielen buffer-overflow "bugs" in den betriebssystemen ansieht wäre es gar keine so schlechte idee. :)

mfg

micki
2007-10-02, 11:04:07
wenn man sich die vielen buffer-overflow "bugs" in den betriebssystemen ansieht wäre es gar keine so schlechte idee. :)

mfg
MS hat glaube ich auch ein experimentelles OS auf c# basis gemacht, ScottManDeath kann da glaube ich mehr zu sagen (oder hat es mir jemand anderes erzaehlt?hmhmh).

Aber das loest ja die Probleme nicht, nur weil eine VM die Buffer-overflows findet, heisst es nicht, dass dadurch irgendwas besser ist. Statt dass man ein bluescreen bekommt und neu startet, arbeitet man weiter, weil das OS z.b. nen HDD treiber weggeschossen und dann neu gestartet hat. Das kann aber dazu fuehren, dass man seine Daten garnicht auf platte geschrieben hat an denen man Stundenlang arbeitete.

zum eigentlichen thema: Ich glaube es ist ne Berufskrankheit der Programmierer, dass jeder meint immer alles von Grund auf neu machen zu muessen weil er es 'besser' kann. Da wundert es nicht, dass immer komplett neue sprachen entstehen die detailverbesserungen gegenueber vorhandenen sprachen haben.
Ich denke mir, dass c++ deswegen so gut die c nachfolge als meistgenutzte programmiersprache angetreten hat, weil es eben nicht komplett neu gemacht wurde, sondern schlechtes aufbessert, gutes hinzufuegt und weiterhin c bleibt mit allen moeglichkeiten die man hat.
Ich wuerde mir erhoffen, dass die leute die zumeist ohne c++ richtig zu kennen, sich mehr damit befassen, bevor sie mit der ueberlegenheit von delphi/c#/java/VB/Python/Perl daherkommen.

@Flamegast, mir war nicht im Sinne ne analogie zwischen Baseballschlaeger und D zu finden, sondern nur darum,
1. dass viele krankhaft versuchen etwas wofuer sie seit kurzem begeistert wurden gegen etwas anderes aufzubringen ohne es zu kennen (daher die behauptung man kann mit so ner keule auch schnitzel teilen).
2. man nicht immer das Rad neu erfinden muss, alles was in D enthalten ist, koennte man auch in c+++ einbringen, natuerlich wuerde man dann nicht auf eigene faust arbeiten koennen, sondern muesste sich mit vielen auseinander setzen die ebenfalls so ein ziel verfolgen. gemeinsam koennte man dann etwas finden was mehr dingen gerecht wird als es mit den neuerfindungen der fall ist.

<ironie>andererseits, das Alphabet ist ja noch lang, ich koennte E erfinden </ironie>

Trap
2007-10-02, 11:25:58
<ironie>andererseits, das Alphabet ist ja noch lang, ich koennte E erfinden </ironie>
E gibt es schon: http://en.wikipedia.org/wiki/E_programming_language

Ich kann auch nicht ganz verstehen wie man einerseits meint man sollte das richtige Werkzeug verwenden und andererseits ziemlich pauchal gegen neu entwickelte Sprachen argumentiert. Ich finde meist nur schade, dass sich die Entwickler darum bemühen ein besseres C++ zu entwickeln anstatt zu versuchen eine gute Programmiersprache zu schaffen.

Coda
2007-10-02, 12:02:10
Was eine "gute Programmiersprache" ist, ist aber höchst subjektiv. Ich wäre mit jeglicher funktionalen Sprachen längen unproduktiver, weil das einfach nicht meinem seit jeher angelernten Denkmuster entspricht.

micki
2007-10-02, 12:23:31
E gibt es schon: http://en.wikipedia.org/wiki/E_programming_languageDamn, ich meine natuerlich F.. nein beweis es mir nicht dass es das schon gibt*hehe*


Ich kann auch nicht ganz verstehen wie man einerseits meint man sollte das richtige Werkzeug verwenden und andererseits ziemlich pauchal gegen neu entwickelte Sprachen argumentiert. Ich finde meist nur schade, dass sich die Entwickler darum bemühen ein besseres C++ zu entwickeln anstatt zu versuchen eine gute Programmiersprache zu schaffen.
du darfst mich ruhig dutzen.
Ich argumentiere deswegen dagegen, weil die neuen sprachen nichts grundlegend neues bringen. Ich programmiere gerne in Assembler, in c++ und auch Lua/java script. weil all diese Sprachen sich gegenseitig kaum ueberschneiden, da sehe ich es als ganz legitim dass sie existieren. ich sehe wie nuetzlich JS/css das blanke html erweitert, ich hab mich auch mit dem ++ an c recht einfach anfreunden koennen und ich freue mich schon auf C++0x.
Aber einfach nur ne sprache zu entwickeln, fuer das selbe anwendungsgebiet, 90% selber funktionalitaet, ein paar libraries und villeicht mal ne VM dazu, was man alles als spracherweiterung zu c++ haette machen koennen, empfinde ich als 'rad neu erfinden' und dagegen bin, pauschal (vor allem wenn den sprachen grundlegende features jahrelang fehlen wie z.b. templates).
Ich sehe in VB vs JAVA vs C# vs D keinen grossartigen unterschied.
wenn ich auf http://www.digitalmars.com/d/comparison.html gehe, fehlen dort die anderen sprachen, bug? frueher gab es da jedenfalls ne recht lange liste die zeigte wie wenig sich die sprachen unterscheiden.

Monger
2007-10-02, 12:29:32
MS hat glaube ich auch ein experimentelles OS auf c# basis gemacht, ScottManDeath kann da glaube ich mehr zu sagen (oder hat es mir jemand anderes erzaehlt?hmhmh).

Das Projekt hieß "Singularity" (http://de.wikipedia.org/wiki/Singularity)

Unfug
2007-10-02, 12:37:32
Das Projekt hieß "Singularity" (http://de.wikipedia.org/wiki/Singularity)
Vista sollte auch schon aus .Net bestehen, wurde aber doch verworfen. Zuviel Zeilen Code die konvertiert werden mussten.
Das nächste Windows soll aber definitiv größtenteils aus .NET sein. (<< Aussage eines Microsoft Student Partners)

Gast
2007-10-02, 13:15:05
Vista sollte auch schon aus .Net bestehen, wurde aber doch verworfen. Zuviel Zeilen Code die konvertiert werden mussten.
Das nächste Windows soll aber definitiv größtenteils aus .NET sein. (<< Aussage eines Microsoft Student Partners)

Das ist aber etwas anderes als das Ziel von Singularity. Bei Singularity wurde ja der Kernel in managed Code geschrieben. Wobei, wenn ich mich recht erinnere, keine VM zum Einsatz kommt, sondern der Sinn nur darin bestand, den Kernel Code mit einer typsicheren Sprache zu schreiben. Kompiliert wurde das ganze trotzdem dann direkt in Maschinencode.

Trap
2007-10-02, 13:26:11
Was eine "gute Programmiersprache" ist, ist aber höchst subjektiv. Ich wäre mit jeglicher funktionalen Sprachen längen unproduktiver, weil das einfach nicht meinem seit jeher angelernten Denkmuster entspricht.
Eine funktionale Programmiersprache muss nicht immer eine Uni-Elfenbeinturm Sprache mit völlig unverständlicher Doku sein. Die meistverbreitete Anwendungsentwicklungssoftware ist funktional aufgebaut: Excel.

Aber es geht mir garnicht so sehr um das Programmierparadigma und schon garnicht darum, dass eine gute Sprache funktional sein muss. Viel mehr darum, dass die Einschränkung auf ein "besseres C++" alles wegfallen lässt, was mit C++ nicht üblich ist.

Was ich interessant fände sind Änderungen darin wie man mit der Programmiersprache umgehen kann. Man könnte zum Beispiel eine viel weitgehendere Unterstützung für Codeoptimierung einbauen, bei der die Optimierungen für sehr kleine Codeteile wählbar sind, man Zugriff auf verschiedene Optimierungspasses hat (wie auf refactorings) und diese dann als reine Annotation zum Code gespeichert werden. Natürlich mit sofort aktualisierter Anzeige der Performance des Code.
Oder eine Integration einer Programmiersprache mit Design by Contract und einem automatischen Beweiser (ein bisschen davon benutzt MS ja für Singularity).
Aber einfach nur ne sprache zu entwickeln, fuer das selbe anwendungsgebiet, 90% selber funktionalitaet, ein paar libraries und villeicht mal ne VM dazu, was man alles als spracherweiterung zu c++ haette machen koennen, empfinde ich als 'rad neu erfinden' und dagegen bin, pauschal (vor allem wenn den sprachen grundlegende features jahrelang fehlen wie z.b. templates).
Die Vergleichstabelle gibt es noch bei archive.org: http://web.archive.org/web/20061230142841/http://digitalmars.com/d/comparison.html, hab beim Googlen noch eine Version mit mehr Sprachen gefunden: http://www.prowiki.org/wiki4d/wiki.cgi?LanguagesVersusD

Java und C# wurden explizit für die VM als Feature eingeführt (dass es 2 gibt liegt nur an politischen Gründen), D hat echt mehr Features als C++. Bis auf Java vs. C# kann ich das mit dem Rad neu erfinden nicht nachvollziehen. Ok, man könnte behaupten D wär Common Lisp mit C++-Syntax, aber so ganz stimmt das auch nicht.

Coda
2007-10-02, 14:39:09
Trap findest du D jetzt gut oder nicht? Das konnte ich noch nicht so ganz rauslesen. Ich bin gegenüber der Sprache inzwischen eigentlich recht positiv eingestellt. Ich würde mir nur noch Unterstützung in Visual Studio wünschen, aber das kann sicher dauern.

Die Vergleichstabelle ist übrigens an vielen Punkten nicht ganz fair bzw. geschönt.

Wozu brauch ich z.B. einen eingebauten String-Datentyp wenn es std::string gibt?
Es gibt sehr wohl Inner Classes in C++
Unit Testing kann ich mit einer Lib auch in C++ haben
finally ist in C++ unnötig
"Support all C types" - Komplexe Zahlen kann ich über std::complex haben
Independent of macro preprocessor - Ist C++ theoretisch auch. Aber okay, lass ich gelten.
Array bounds checking - Das kann der Compiler trotzdem machen (macht Visual C++ auch), oder man benützt at() statt [] bei Containern.

Trap
2007-10-02, 15:50:54
Ein paar Negativepunkte werden auch nicht erwähnt:
Es gibt nur eine Implementierung, sie ist nicht open source und es gibt keine Sprachdefinition für D.

Ich find D ganz gut, wüsste aber nicht wofür ich es verwenden sollte. Bei den Sachen die ich in C++ schreiben würde bringen die Features wenig, im Vergleich zu Python/Common Lisp ist es mir zu statisch.

micki
2007-10-02, 17:01:59
Independent of macro preprocessor - Ist C++ theoretisch auch. Aber okay, lass ich gelten.auf der anderen seite steht da aber dass conditional compiling moeglich ist, also muss D irgend ne art pre-pass haben.
[quote]

Gast
2007-10-02, 17:23:36
Das ist aber etwas anderes als das Ziel von Singularity. Bei Singularity wurde ja der Kernel in managed Code geschrieben. Wobei, wenn ich mich recht erinnere, keine VM zum Einsatz kommt, sondern der Sinn nur darin bestand, den Kernel Code mit einer typsicheren Sprache zu schreiben. Kompiliert wurde das ganze trotzdem dann direkt in Maschinencode.
Der eigentliche Trick dabei ist aber, das man eine VM im Kernel eingebaut hat, und alle User Space Programme somit managed Code sein müssen. (Das wurde übrigens auch schon in anderen OSs gemacht, z.B. Inferno)

MadMan2k
2007-10-02, 18:16:48
Ein paar Negativepunkte werden auch nicht erwähnt:
Es gibt nur eine Implementierung, sie ist nicht open source und es gibt keine Sprachdefinition für D.
http://dgcc.sourceforge.net/

@micki:
man erfindet das Rad ja nicht neu; man erweitert bestehendes und dabei ist es manchmal nötig hinterher aufzuräumen. Nichts anderes macht D - weil C++ nur evolutionär entstanden ist sind die features nicht optimal implementiert um die Abwärtskompabilität wahren zu können. Hier räumt D auf und hält wieder das POLS (http://de.wikipedia.org/wiki/Principle_Of_Least_Surprise) ein.
Damit wird der Programmcode benutzerfreundlicher sprich besser wartbar. Und alten PRogrammcode muss man auch nicht direkt wegschmeisse da D ABI kompatibel zu C ist.

Gast
2007-10-03, 00:32:09
Ich argumentiere deswegen dagegen, weil die neuen sprachen nichts grundlegend neues bringen.



Die neuen Sprachen sind eine Bereinigung.

Sie schmeißen den alten Ballast raus, behalten das gute alte und fügen eventuell noch eine Neuerung dazu. (im Fall von D gegnüber C/C++ z.b. den GC)

In der Praxis führt das dann dazu, daß man viel weniger Zeit investieren muß,
um so eine Sprache zu beherrschen und damit produktiv arbeiten zu können.

Wer C++ beherrschen will, der braucht in der Tat Jahre und C++ bietet mehr als genug Fallstricken in die man selbst als fortgeschrittener Progammierer noch reintreten kann.

del_4901
2007-10-03, 01:18:44
Wer C++ beherrschen will, der braucht in der Tat Jahre und C++ bietet mehr als genug Fallstricken in die man selbst als fortgeschrittener Progammierer noch reintreten kann.
Das ist kein generalles Problem von C++, das liegt zu 80% an der Faulheit dessen der das implementiert. In Java oder C# wurden diese Schlupflöcher größtenteils gestopft. Und mit den richtigen C++ Plugings/Libraries hat man diese Schlupflöcher auch gut unter Kontrolle.

Monger
2007-10-03, 11:30:32
Das ist kein generalles Problem von C++, das liegt zu 80% an der Faulheit dessen der das implementiert.
Da man davon ausgehen muss dass der normale Entwickler dumm und faul ist, ist das selbstverständlich ein Problem von C++.

Das ist in etwa so, als würdest du bei einem Auto ohne Airbag sagen: "Das ist kein Problem dieses Autos, sondern nur von denen die unvorsichtig fahren."

Wobei man jetzt natürlich argumentieren kann, dass es beim Auto durchaus Sinn macht, bestimmte Sicherheitsfeatures (wie z.B. ASR) umgehen zu können, aber das sollte man vielleicht getrennt diskutieren...

Kabelsalat
2007-10-03, 12:51:06
Wobei man jetzt natürlich argumentieren kann, dass es beim Auto durchaus Sinn macht, bestimmte Sicherheitsfeatures (wie z.B. ASR) umgehen zu können, aber das sollte man vielleicht getrennt diskutieren...

Ich kann jetzt bloß über das Beispiel .Net sprechen. Dort gibt es sehr wohl die Möglichkeit Sicherheitsmaßnahmen zu umgehen. In C# kann man unsafe Code schreiben, der etwa auch Pointer-Arithmetik zulässt. Wichtig hierbei ist jedoch, dass man betroffene Methoden explizit als unsafe markieren muss. Der Entwickler ist sich somit Bewusst, dass nun besondere Vorsicht geboten ist. Auch ist nun die SkipVerification-CAS-Permission zur Ausführung des Codes notwendig.

Coda
2007-10-03, 16:05:56
Da man davon ausgehen muss dass der normale Entwickler dumm und faul ist, ist das selbstverständlich ein Problem von C++.
C++ war auch nie für den dummen und faulen Entwickler konzipiert. Das Problem ist, dass es nur alle verwenden, was ja durch Java und C# zum Glück anders geworden ist.

Aber versucht einfach mal von der Tour runterzukommen C++ für absolut schlimm oder sowas zu halten. Das Biest ist bissig, aber auch sehr mächtig wenn man es gezähmt hat.

(del)
2007-10-03, 16:19:37
Jou Coda. Ich hab den Thread noch nicht ganz verstanden. Ich meine von der technischen Seite schon, nur...

Irgendwie so als wenn es in irgendeinem Handwerkerforum paar Schloßer darüber meckern würden, daß es immernoch nicht für wirklich alles Steckverbindungen gibt und man sich immernoch mit Schrauben und Muttern abmühen muß. Also das ewige aufdrehen und wieder abdrehen, das kann doch nicht sein oder? Und dann auch noch immer an diese Unterlegsscheiben denken. Das geht ja garnicht... :|

MadMan2k
2007-10-03, 18:10:09
C++ war auch nie für den dummen und faulen Entwickler konzipiert.
du sprichst so als ob bei Profi-Rennfahrern ein Airbag weniger Sinnvoll wäre...

(del)
2007-10-03, 18:15:15
du sprichst so als ob bei Profi-Rennfahrern ein Airbag weniger Sinnvoll wäre...Im Profirennsport sind die Gurte wie auch die Sitze wesentlich anders konzipiert. Der Airbag hätte da kaum eine Relevanz. Nicht nur alleine wegen der Helmpflicht...

Coda
2007-10-03, 18:34:43
du sprichst so als ob bei Profi-Rennfahrern ein Airbag weniger Sinnvoll wäre...
Fast alles was beim Rennsport Leistung kostet wird weggelassen. Der Airbag wird das Gewicht aber kaum erhöhen. Jeden Arrayzugriff auf Bounds überprüfen wird die Leistung aber zwangsläufig verringern.

MadMan2k
2007-10-03, 18:36:18
Im Profirennsport sind die Gurte wie auch die Sitze wesentlich anders konzipiert. Der Airbag hätte da kaum eine Relevanz. Nicht nur alleine wegen der Helmpflicht...
hab jetzt nicht wirklich kapiert was du mir damit sagen wolltest.

weils halb passt: das hab ich grad zufällig auf PlanetGNOME gelesen:
<Text über OpenOffice> (footnote: and this applies to Mozilla as well — C++ is really good at making people think that you can turn it into a real language, while in fact you do nothing but put crutches to clutter the code into simulating the features of real languages).
link (http://www.gnome.org/~federico/news-2007-10.html#03)

Coda
2007-10-03, 18:45:40
Der Mozilla-Code ist auch nicht gerade ein Paradebeispiel von vorbildlichem C++. KDE dürfte da schon besser dastehen. OpenOffice hab ich nicht angeschaut.

Gast
2007-10-03, 18:47:22
hab jetzt nicht wirklich kapiert was du mir damit sagen wolltestNicht schlimm. Das mit den Bounds past eh besser ;)

weils halb passt: das hab ich grad zufällig auf PlanetGNOME gelesen:Wer soll das gesagt haben? Oder ist das irrelevant, weils halbwegs passt? ;)

MadMan2k
2007-10-03, 18:50:12
Fast alles was beim Rennsport Leistung kostet wird weggelassen. Der Airbag wird das Gewicht aber kaum erhöhen. Jeden Arrayzugriff auf Bounds überprüfen wird die Leistung aber zwangsläufig verringern.
bounds checking ist in D optional. Genauso wie der Garbage collector.
Klar kannst du bei C++ fast alle Features mit irgendwelchen externen libs nachrüsten. (das meisten ist in boost)

Aber es ist halt nur ein nachrüsten, während bei D das alles schon im Sprachstandard drin ist und entsprechend von der Syntax unterstützt wird.

Wenn also jemand in D einen Garbage Collector verwendet, dann den Mitgelieferten.
Eben das macht das Aufräumen aus: die ganzen variablen Faktoren werden festgelegt.

Xmas
2007-10-03, 21:20:47
C++ war auch nie für den dummen und faulen Entwickler konzipiert. Das Problem ist, dass es nur alle verwenden, was ja durch Java und C# zum Glück anders geworden ist.
Das Problem ist dass C++ immer noch viel zu oft in Bereichen verwendet wird, wo es eigenlich nicht sinnvoll ist.

Aber versucht einfach mal von der Tour runterzukommen C++ für absolut schlimm oder sowas zu halten. Das Biest ist bissig, aber auch sehr mächtig wenn man es gezähmt hat.
C++ ist nicht absolut schlimm. Nur wenn man ebenso mächtige Sprachen mit weniger Bissigkeit haben kann, fällt es eben schwer sich für C++ zu erwärmen. ;)

(del)
2007-10-03, 21:41:05
C++ ist nicht absolut schlimm. Nur wenn man ebenso mächtige Sprachen mit weniger Bissigkeit haben kann, fällt es eben schwer sich für C++ zu erwärmen. ;)Was bedeutet "mächtig"?

Davon ab würde ich sagen, daß vielleicht der Kompiler es daran hindert. GDC, VisualD und IDC :D könnten innerhalb eines Jahres die Landschaft verändern. Gibts aber nicht. Dafür gibt es .net :|

Gast
2007-10-03, 22:01:33
Dafür gibt es .net :|

.NET ist aber keine Sprache und es gibt keinen Grund warum man dafür nicht auch ein D.NET bringen könnte.

Gast
2007-10-03, 22:04:21
GDC, VisualD und IDC :D könnten innerhalb eines Jahres die Landschaft verändern.

Eben gerade hast du dich doch noch darüber beschwert als du von deinen Schrauben und Steckverbindungen gesprochen hast. Verstehe ich nicht, was hier deine Aussage sein soll.

Gast
2007-10-03, 22:08:47
C++ ist nicht absolut schlimm. Nur wenn man ebenso mächtige Sprachen mit weniger Bissigkeit haben kann, fällt es eben schwer sich für C++ zu erwärmen. ;)

Genau so ist es und D ist so eine mächtige Sprache.

The_Invisible
2007-10-03, 22:43:50
Das Problem ist dass C++ immer noch viel zu oft in Bereichen verwendet wird, wo es eigenlich nicht sinnvoll ist.

manche wollen eben auch bei simplen "lese datei, parse inhalt und mach was" einen buffer-overflow haben :D

mfg

Ganon
2007-10-03, 23:20:00
In vielen Köpfen schwirrt halt herum das C++ == Performance ist und darum nutzen es wohl so viele. Nur merken diese eben nicht das man mit C++ auch langsame Anwendungen schreiben kann. :D

Meine Meinung zu C++:
Kann viel und über Bibliotheken wie Boost noch mehr, aber hat dann eine ziemlich grauenhafte Syntax und erzeugt weniger "lesbaren" Code. Der reine Sprachstandard ist momentan noch ziemlich eingeschränkt und das verleitet eben dazu Boost (o.ä.) zu nutzen. Qt usw. bringen teils dann wieder eigene Konstrukte mit. Das macht die Sache für mich etwas "unsauber".

Ich will damit aber nicht sagen C++ ist scheiße, nur ich nutze es äußerst ungerne. Afaik soll ja 2009 der neue C++-Standard C++-09 verabschiedet werden, welcher mal wieder ein bisschen aufräumt.

Meine Meinung zu D:
Sry, aber Just another C(++)-like programming language. Wie oben schon mal gesagt wurde muss man nicht schon wieder irgendwelche Funktionen aus mehreren Sprachen vereinen und hier und da etwas schrauben und dann mit irgendetwas "Neuem" kommen.

Ich meine, löst D irgendwelche Probleme? Es vereinfacht ein paar Sachen ein bisschen, aber grundlegend? Kann man damit endlich debug-freundlich und übersichtlich multithreaded programmieren? Kann ich damit umfassender Datenbanken (in welcher Form auch immer) ansprechen (z.B. eingebautes ORM)? Kann ich SIMD-mäßig programmieren? usw. etc. pp.

Ich meine, solange D nur ein C++ mit einer priese Java/C# ist, dann bringt mir das so ziemlich wenig.

Wenn mich eine Sprache hinter dem Ofen hervorlocken soll, dann soll sie konkrete Anwendungsprobleme lösen und nicht irgendwelche Sprachen mixen.

Meine Meinung dazu ^_^

Gast
2007-10-03, 23:28:12
Genau so ist es und D ist so eine mächtige Sprache.Dabei ging es nicht um D, sondern um die "Kritik" an C++ und damit eh mehr oder weniger auch an D. Wie Ganon schon meinte, ist das nicht gerade die Revolution. Nur das Gewinde ist kleinwenig kürzer...

Gemeint war C#, nicht .net. Ich machte da gerade 3 Sachen auf einmal am Rechner :frown:

BH

Gast
2007-10-04, 03:45:46
I
Wenn mich eine Sprache hinter dem Ofen hervorlocken soll, dann soll sie konkrete Anwendungsprobleme lösen und nicht irgendwelche Sprachen mixen.




Eine Sprache wie D ist aber so, weil sie auch universell einsetzbar sein soll.

Du aber willst eine Sprache die auf etwas ganz spezifisches zugeschnitten ist,
das kann und will D aber nicht erfüllen, denn D will ja ein aufgeräumtes C++ sein.

Gast
2007-10-04, 04:34:11
Ich glaube du hast noch nie gescheiten C++-Code gesehen.

Wenn ich in Eclipse bei Java
den Namen eines Objekts eingebe und danach den Punktoperator eingebe, dann bekomme ich die komplette Liste der Methoden die für dieses Objekt verwendbar sind.


Versuche ich das gleiche in Visual C++ 2005 bei C++ Code, dann kommt gar nichts.

Gast
2007-10-04, 08:21:19
Wenn ich in Eclipse bei Java
den Namen eines Objekts eingebe und danach den Punktoperator eingebe, dann bekomme ich die komplette Liste der Methoden die für dieses Objekt verwendbar sind.

Versuche ich das gleiche in Visual C++ 2005 bei C++ Code, dann kommt gar nichts. Guck mal was in der Statuszeile steht :)

Ganon
2007-10-04, 08:25:14
Eine Sprache wie D ist aber so, weil sie auch universell einsetzbar sein soll.

Kann sie ja auch. Deswegen sagte ich ja das es auch "nur" wieder eine C-ähnliche Sprache ist wo irgendwo etwas gedreht und optimiert wurde... deswegen sehe ich recht wenig Sinn in der Sprache momentan.

D wirkt wie "ich will alle glücklich machen", was aber bei mir nicht der Fall ist. Altes optimiert.

Du aber willst eine Sprache die auf etwas ganz spezifisches zugeschnitten ist

Und was am optimierten Multithreading, oder an SIMD jetzt "speziell" sein soll weiß ich nicht. Das sind Probleme die jeder in jeder Sprache momentan hat und es macht dort momentan keiner besser... auch D nicht.

das kann und will D aber nicht erfüllen, denn D will ja ein aufgeräumtes C++ sein.

Toll, brauch ich nicht, bzw. hilft mir nicht... ;)

Gast
2007-10-04, 08:49:13
oder an SIMD jetzt "speziell" sein soll weiß ich nicht. Das wäre wirklich interessant, also SIMD Datentypen und (mathematische Funktionen dafür erweitern) etwas direkter und konsister in die Sprache zu integrieren, als über Intrinsics. Die Herausforderung sollte eigentlich auch überaschaubar sein...

Coda
2007-10-04, 12:17:03
Wenn ich in Eclipse bei Java
den Namen eines Objekts eingebe und danach den Punktoperator eingebe, dann bekomme ich die komplette Liste der Methoden die für dieses Objekt verwendbar sind.

Versuche ich das gleiche in Visual C++ 2005 bei C++ Code, dann kommt gar nichts.
Visual Assist installieren und gut ist. Und Intellisense funktioniert auch so manchmal ;)

Gast
2007-10-06, 06:25:49
In D zum Glück nicht (genausowenig wie :: ).


Sehe ich genauso.

->, (*bla).mach und :: sind doch wirklich scheiß Konstrukte, bei dem man sich durch lauter Tippereiarbeit nur die Finger bricht.


Bei Java ist das unglaublich elegant, ohne Klammern und * mit dem Punktoperator auf die Elemente und Methoden eines Objekts zuzugreifen.
Das ist in C++ wirklich besch****.


Wie ist es denn in D?

Xmas
2007-10-06, 17:45:14
Wie ist es denn in D?
So wie in Java, es gibt nur den Punkt.

Mstrmnd
2007-10-06, 18:11:50
Man darf nicht vergessen, dass die Sprachentwerfer normalerweise die Englische Tastaturbelegung im Kopf haben werden.

Gast
2007-10-06, 21:28:21
Sehe ich genauso.

->, (*bla).mach und :: sind doch wirklich scheiß Konstrukte, bei dem man sich durch lauter Tippereiarbeit nur die Finger bricht.


Bei Java ist das unglaublich elegant, ohne Klammern und * mit dem Punktoperator auf die Elemente und Methoden eines Objekts zuzugreifen.
Das ist in C++ wirklich besch****.


Wie ist es denn in D?
was soll an -> so scheiße sein?

Kabelsalat
2007-10-06, 21:56:00
Bei einem Punkt muss nur eine Taste gedrückt werden. "->" erfordert drei Anschläge. Außerdem vertippt man sich bei ">" häufiger.

Trap
2007-10-06, 22:08:32
Bei einem Punkt muss nur eine Taste gedrückt werden. "->" erfordert drei Anschläge.
Falsche Tastaturbelegung, mit QWERTY braucht man nur 2.

Gast
2007-10-06, 22:09:41
ui das is ja ein killerargument.

Xmas
2007-10-06, 22:19:34
was soll an -> so scheiße sein?
Nicht unbedingt Scheiße, aber unnötig. Es kann links immer nur entweder ein Pointer, eine Instanz oder ein Scope stehen, somit braucht man keine drei verschiedene Operatoren: ->, ., ::.

Kabelsalat
2007-10-06, 22:34:46
Falsche Tastaturbelegung, mit QWERTY braucht man nur 2.

Ich habe die Shift-Taste mitgezählt: 1) -/_ 2) Shift + </>/|

ui das is ja ein killerargument.


Mit 10 Fingern zwar nicht besonders tragisch, aber allemal lästig. Wenn keine Englische Tastatur verwendet wird, ist in C-ähnlichen Sprachen jedoch besonders "}" lästig: Beim Schreiben mit 10-Fingern, wird immer eine kleine Verrenkung notwendig.

Gast
2007-10-07, 01:06:18
So wie in Java, es gibt nur den Punkt.

Damit dürfte dann D den Siegeszug gegenüber C++ einnehmen.


C++ ist zwar performant, aber zum Software Entwickeln ist es wie ein Auto mit Handkurbel und ohne ESP, also so ziemlich das umständlichste und lästigste was es so auf dem Markt gibt.


Wenn D die Vorteile von C++ mit sich bringt, ohne aber die Nachteile wie die ganzen Fallstricke, Gruben und den unübersichtlichen Code, der viel Tipparbeit verlangt, mitzubringen, dann dürfte D innerhalb von wenigen Jahren den Siegeszug gegenüber C++ einfahren.

tokugawa
2007-10-07, 14:23:44
Damit dürfte dann D den Siegeszug gegenüber C++ einnehmen.


C++ ist zwar performant, aber zum Software Entwickeln ist es wie ein Auto mit Handkurbel und ohne ESP, also so ziemlich das umständlichste und lästigste was es so auf dem Markt gibt.


Wenn D die Vorteile von C++ mit sich bringt, ohne aber die Nachteile wie die ganzen Fallstricke, Gruben und den unübersichtlichen Code, der viel Tipparbeit verlangt, mitzubringen, dann dürfte D innerhalb von wenigen Jahren den Siegeszug gegenüber C++ einfahren.

Und, bist du auch gewillt darauf zu wetten? Geld?

Zumindest für die Spieleentwicklung seh ich auf absehbare Zeit keinen Siegeszug von D. Wobei das nicht unbedingt auf rationalen Gründen beruht.

eimer
2007-10-08, 02:37:35
Was hindert eine Sprache wie D daran sich durchzulümmeln? Heute wird überwiegend mit alten Sprachen wie C++ programmiert, die nicht vollständig konsistent sind und enorm viele Möglichkeiten bieten ein Programm zu verhunzen. Wie oft hört man Meldungen von irgendwelchen Programmen, die mit Buffer-Überläufen das ganze System bedrohen, weil sich mal wieder beliebiger Code ausführen lässt? Wieso wird dieser unerträgliche Zustand weiter aufrechterhalten?

Was hindert also eine moderne und saubere Allround-Sprache wie D daran sich durchzusetzen? Das Henne-Ei-Problem ist klar. Aber was bräuchtet ihr denn als Programmierer, um ohne Bauchweh umsteigen zu können? Was ist euch wichtig? Eine IDE? Irgendwelche speziellen Libraries? Bestimmte Tools?

Kurzum, was wäre notwendig, um euch dazu zu bewegen eine andere Sprache als C++ und Konsorten bei leistungskritischen Anwendungen wie Spielen zu benutzen, wenn ihr ein neues Projekt starten würdet?

Man programmiert in der Sprache welche auch in der Branche eingesetzt wird. Der Einsatz einer anderen Sprache würde die Möglichkeiten bei der Entwicklung nur unnötig einschränken.

Laz-Y
2007-10-21, 02:46:19
...

Die Stärke Javas, die Plattformabhängigkeit, ist meiner Meinung auch die größte Schwäche der Sprache. Sprich "Einfaches Starten per Doppelklick", wie es in der Windows-Welt nunmal üblich ist.
...

Geht auch mir Java. JAR-Dateien kann man auch durch Doppelklicken ausführen. Der einzige unterscheid ist, dass es halt nicht exe sondern jar heißt.