
Zitat von
Alexander:
Ich finde es eigentlich auch recht gut, dass z.B. Variablen fest im Methodenkopf deklariert werden müssen. Ist einfach übersichtlicher.
Das hört man von Chome newbies immer wieder. Dauert nicht lange und man sieht nur noch dann eine var section in ihren Codes, wenn sie sinnvoll oder notwendig ist.
Zum Bleistift wenn man die Variable auch in der "require" oder "ensure" Clause benutzen will.
Delphi-Quellcode:
var
mieps := iif(assigned(someParameter),
someParameter.GetMieps(),
nil);
require
assigned(someParameter);
assigned(mieps);
mieps.Count > 0;
begin
...
ensure
mieps.Count = old mieps.Count - 1;
end;
Ansonsten benutzt man eher using oder with-Blöcke, da kann man sofort sehen wo der Wert herkommt und die Variable lebt nur in diesem Block.
Delphi-Quellcode:
using dialog := new MyDialogForm(SomeProperty := 'miep') do
begin
if dialog.ShowDialog() = DialogResult.Ok then
blabla
end;
Variablen am Beginn einer Methode bringen IMO keineswegs mehr Übersichtlichkeit. Wenn ich hingegen den Methodenrumpf zusammenklappe und erst auf die Contracts schaue weiß ich viel mehr über das was in der Methode passiert und vor allem welche Zustände sie benötigt und welchen Endzustand sie garantiert.
Zitat:
Ein wenig Bedenken habe ich jedoch dabei, dass die Firma ja noch recht jung ist und evtl. schnell wieder vom Markt verschwinden kann.
Chrome ist nur ein kleines Produkt von RO, ihren Hauptumsatz machen sie anscheinend mit Delphikomponenten wie dem RO
SDK, Data abstract und Hydra.
btw: hinter Klaradingsens Link findest du auch warum es Chrome überhaupt gibt. RO hat nämlich seine .Net Versionen der Delphiprodukte in Chrome geschrieben. Solange es also das RO SDK un DA gibt, wird es zwangsläufig auch Chrome geben.
Zitat:
Oder Nachfolgeversionen nicht mehr abwärtskompatibel sind.
Sie haben selbst legacy switches eingebaut um
halbwegs kompatibel zu Delphi code zu sein[1] und da die Sprache von vornherein auf die CLR getrimmt ist, wüsste ich nicht was da an Problemen auftauchen sollte.
Sie sind auch ein wenig zurückhaltend was Features angeht, die komplett "unpascalish" wären: Ich habe sie z.Bsp. bis heute nicht von +=, -=, ++, -- überzeugen können. (habe es aber schon vor langem aufgegeben.

)
Wobei += und -= nur für Events vorhanden waren.
[1] das beschränkt sich aber eigentlich nur auf
- namespace->unit
- new X -> X.Create (aber auch NUR Create, keine anders benannten Kontruktoren sind erlaubt)
- aliaslose with-clauses
Zitat:
Was ich aber sehr fair finde ist das:
Zitat:
Chrome 1.5 is a free update for all existing users of Chrome 1.0.
Es heißt auch nur aus diesem Grund 1.5 und nicht 2.
Zitat:
Eine deutsche Version fände ich auch nicht schlecht

Wird so schnell nicht passieren, lohnt sich einfach nicht. Vor allem da du ohne Englischkenntnisse auch in ROs support NGs auf wenig (sprachl.) Verständis stoßen wirst.
@MrSpock
Viele von Delphis Einschränkungen sind IMO nur vermarktet als qualitätsfördernde Strenge.
Gäbe es den Zwang, Variablen nur in der Var section deklarieren zu können, wirklich nur um saubereren Code zu erzwingen, hätte es niemals ein with in dieser kranken Form gegeben.

Ich denke eher, dass die Investition in einen Compiler, der dazu in der Lage wäre, gescheut wurde.
Aber Chrome ist IMO keine Sprache für Anfänger, schlicht und ergreifend weil ich keine richtige (also mit Ausnahme von KPL

) .Net Sprache als anfängertauglich bezeichnen würde.