Habe durch Heise und iX von dieser Sprache erfahren. Hält sie das, was sie verspricht? Wird sie C++ ablösen? Verbindet sie Effizienz und Allroundfähigkeiten optimal? Was ist eure Einschätzung?
Wird sie C++ ablösen?
Nachdem Java und C# das angeblich schon sollten, nehme ich nicht an, daß D das wird. Aber da sich nach D so schlecht googlen läßt, könntest du bitte auch auf die entsprechenden Artikel oder Dokumentationen verlinken? Danke.
Wird sie C++ ablösen?
Nachdem Java und C# das angeblich schon sollten, nehme ich nicht an, daß D das wird. Aber da sich nach D so schlecht googlen läßt, könntest du bitte auch auf die entsprechenden Artikel oder Dokumentationen verlinken? Danke.
Das kann man doch gar nicht so recht vergleichen. D ist immer noch maschinennah und effizient ausgelegt. Es soll ohne Altlasten die Vorteile verschiedener Konzepte zusammenführen.
Nachdem Java und C# das angeblich schon sollten, nehme ich nicht an, daß D das wird. Aber da sich nach D so schlecht googlen läßt, könntest du bitte auch auf die entsprechenden Artikel oder Dokumentationen verlinken? Danke.
tip zum googlen von d: d-programming-language
als suchwort eingeben ;) … aber du hast soweit recht links sind immer gerne gesehen.
Ich hatte mal eine Zeit lang D Code geschrieben, bin dann aber mangels vernünftiger IDE und Debugging Tools wieder zu Java gewechselt. Die Runtime Library war damals auch noch nicht so weit, man musste sich also noch seine eigenen Linked Lists basteln :)
Rein sprachlich fand ich die Umsetzung des Vertragsmodells sehr interessant. Hier kann keine mir bekannte Sprache D das Wasser reichen. Ansonsten erinnere ich leider an nichts spektakuläres mehr, ist zu lange her :)
A: Eiffel ist Fred bekannt.
B: Eiffel kann D in der Umsetzung des Vertragsmodells das Wasser reichen.
Fred sagt A => ¬B
= ¬A v ¬B
Willst du damit sagen, dass dir Eiffel unbekannt ist oder dass Eiffel D in der Umsetzung des Vertragsmodells nicht das Wasser reichen kann (oder gar beides, was ich für unsinn halte)
A: Eiffel ist Fred bekannt.
B: Eiffel kann D in der Umsetzung des Vertragsmodells das Wasser reichen.
Fred sagt A => ¬B
= ¬A v ¬B
Willst du damit sagen, dass dir Eiffel unbekannt ist oder dass Eiffel D in der Umsetzung des Vertragsmodells nicht das Wasser reichen kann (oder gar beides, was ich für unsinn halte)
Eigentlich war ich der Meinung, dass Fred Eiffel kennt. Schließlich haben wir uns das mal zusammen in einem Seminar angesehen.
Äh… ok, ich habe 90 Minuten lang zugeguckt, wie Axel ein bischen Eiffel getippt hat. Kann ich jetzt deswegen Eiffel? Gleich mal meine Bewerbungsunterlagen entsprechend erweitern… [28]
Jetzt mal im Ernst, ich habe keinen blassen Schimmer von Eiffel. Ich kann über die Sprache gar nichts sagen. Vom Vertragsmodell ganz zu schweigen. Wie sieht das denn in Eiffel aus? In D ist das wirklich elegant:
invariant
{
// Invarianten
}
void foo()
in
{
// Vorbedingungen
}
body
{
// Eigentlicher Code
}
out
{
// Nachbedingungen
}
(oder so ähnlich)
Ich konnte mich auch nur noch daran erinnern, dass das Vertragsmodell gut eingebaut ist.
Laut dem
Eiffel-Standard wird das so gemacht:
[...]
deposit (sum: INTEGER)
-- Deposit sum into the account.
require
positive: sum > 0
do
add (sum)
ensure
deposited: balance = old balance + sum
[...]
invariant
sufficient_balance: balance >= minimum_balance
Das scheint mir genauso gut/schlecht wie in D zu sein.
Das scheint mir genauso gut/schlecht wie in D zu sein.
Semantisch ja, aber semantisch ist am Vertragsmodell auch nicht allzu viel zu drehen. Syntaktisch gefällt mir Eiffel besser, aber ich stehe mit der C/++-Syntax auch etwas auf Kriegsfuß.
Eiffel scheint noch Namen zu vergeben (positive, deposited), das sieht ganz nett aus.
Eiffel scheint noch Namen zu vergeben (positive, deposited), das sieht ganz nett aus.
Wobei das IIRC nur den Rang eines Kommentars hat… Das sollte in D also auch möglich sein.