![]() |
Befindet sich Delphi noch auf der Höhe der Zeit?
Hallo Delphiexperten!
Die obige Frage ist nicht auf perfide Weise polemisch und sarkastisch, sondern ernstgemeint, weil ich es als Programmieramateur nicht besser weiß. Unter ![]() finden sich zwei heutige Diskussionsbeiträge, die mir zu denken geben, ich kopiere sie der Einfachheit halber mal hier hinein: 1. "Die Sprache Delphi hängt der Konkurrenz eh gut 10 Jahre hinterher Und jetzt wo seit Versionen alles auf Mobile gesetzt wird und der Rest hinten runterfällt eh. Und dann der Rest, der so halb fertig ist. wie z.B. Class helper oder Stacktrace Sachen die völlig kaputt sind wie z.B. Interfaces. Grundlegende Sachen, die komplett fehlen, wie z.B. lokale (Block)Variablen Und dann als krönender Abschluss die Random-Speicherfehler (bei eigenen Programmierfehlern) in einer sonst von Grund auf strengen und auf Sicherheit designten Sprache. Von modernen Sachen wie Mixins, einer Querysprache u.s.w. braucht man in Delphi nicht mal träumen." 2. "Re: Die Sprache Delphi hängt der Konkurrenz eh gut 10 Jahre hinterher einige sachen die mich an delphi nerven (wir nutzen in der firma d2010, aber ich glaub kaum dass die dinge in neueren delphi versionen anders sind....): - kein auto format beim einfügen oder tippen. visual studio z.b. rückt automatisch alles richtig ein ohne explizit zu formatieren. weiss nicht wieviel zeit ich dadurch schon vergeudet habe. das explizierte formatieren verwend ich schon gar nicht mehr weils so langsam ist (haben in der firma für jedes kunden projekt jeweils immer so riesige dateien, weil wir entweder nicht programmieren können oder zu faul dazu sind (frames zu nutzen)). delphis formatter ist aber so langsam dass es nicht mit so großen dateien zügig zurecht kommt - keine möglichkeit mal schnell eine methode aus lust der freude schnell zu programmieren. selbst wenn man CTRL-SHIFT-V shortcut kennt, nervt das herumgespringen und "im-var-block"-navigieren so ungemeint, dass man einfach die freude daran verliert irgendwas zu programmieren. beim methoden definieren ist das ja genauso aber da ist es nicht so schlimm weil man seltener methoden als lokale variablen definiert und seltener auch mal unüberlegt - keine lambdas, nur diese blöde "procedure begin end" closures. hab mal gegugelt wie man eine LINQ bibliothek mit delphi programieren könnte. HOHO macht das mal.. (nicht dass ich schon durch diese verbose art des closure-schreibens abgeschreckt wäre). man bekommt probleme mit speicherfreigabe usw - delphi hat mir schon mehrmals eine dfm zerschossen (der punkt reicht schon alleine). passierte beim herumschieben von vielen dfm componenten in der objekt struktur ansicht. großes kino. zu glück verwende ich git und kann so beliebig oft committen, aber ich WILL DAS NICHT. die delphi ide ist wie ne kist mit rohen eiern, die man bloß nicht fordern darf. das kenn ich von keiner anderen großen software die ich benutze sei es visual studio, intellij, chrome, firefox, windows, etc. - last but not least: es gibt einen GRUND warum jeder der etwas besseres erfahren hat als X [irgendwas einfügen anstelle von X], kein X mehr verwenden will" Was meint Ihr - sind das die Ergebnisse fanatischen Delphi-Hasses, oder hat die Kritk Substanz? |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Auf der "Höhe der Zeit sein" ...
Es gibt jüngere Sprachen, das ist eine unwiderlegbare Tatsache. Ich wüsste nicht zwingend, was es konkret brächte, "auf der Höhe der Zeit" zu sein. Dazu müssten wir erst mal definieren, was wir darunter verstehen. Klar gibt es beispielsweise mit C# mächtige Sprachen mit gigantischem Öko-System darum herum. Auch ObjectiveC oder Swing sind clevere Umgebungen. Seitdem ich mehr mit dem Thema "Anlagensteuerung" zutun habe, weiß ich, was ich an einem der Hardware sehr nahestehenden Compiler habe. Der Bestandsschutz, den wir mit Delphi genießen, ist auch nicht zu verachten. Für mich läuft es am Ende auf die Frage hinaus, ob ich mit Delphi meinen Job effizient und zuverlässig erledigen kann. Noch kann ich beide Fragen mit einem klaren "Ja" beantworten. Das mit der Höhe der Zeit ist in meinen Augen müßig und das dürfen dann andere beantworten. ... und dass Interfaces "komplett kaputt seien", ist eine typische Stilblüte aus dem Internet. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Sogar 100 Jahre. :mrgreen:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
In Kommentaren, egal ob auf Heise, Youtube, oder sonst wo, wird so viel Mist geschrieben, dass man die am besten erst gar nicht liest.
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Ich habe Artikel und Diskussionsbeiträge auch gelesen. Insbesonders letztere bewegen sich auf dem Niveau von Wirtshausbenzinstammtischen. Gruß K-H |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Manchmal ist es auch gut das man nicht auf der "höhe der Zeit ist".
Wenn ich sehe wie viele Trends es gab die nach 2-3 Jahren wieder eingeschlafen sind )(oder bei MS als DIE ZUKUNFTSTECHNIK) nach 2-3 Jahren durch die nächste ULTIMATIVE ZUKUNFTSTECHNIK abgelöst wurde) ist man manchmal froh das man in dieser Zeit für den Kunden Lösungen entwickeln konnte statt alles wieder neu entwickeln zu müssen. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Delphi-Quellcode:
reinschreiben können ? Uff, hoffentlich werden wir davon verschont. Mir ist Delphi jetzt schon eigentlich zu liberal, siehe procedure/function quasi-Äquivalenz. Hat mich schon wegen eines dummen Schreibfehlers 1 Woche Arbeit gekostet. Für den Rest gilt ähnliches. 10 Jahre hinterherhinken ? Nun, da hat sich einer wieder eine dumme Sau erfunden, die er durchs Internet-Dorf treibt. :mrgreen: Mir wäre am liebsten, es käme eine Zeitlang gar nichts oder kaum was neues dazu und die würden erst mal Bugs endlich zu Ende fixen etc. Sprich : am Detail feilen. Wäre jedenfalls wohl besser, als dauernd Delphi aufzublähen mit Sachen für 5% Delphi-User und keiner kommt mehr nach.
var i : integer;
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Mit "lokalen (Block)Variablen" konnte aber auch ich nichts anfangen, aber da diese ja als fehlend moniert werden und ich nur Delphi näher kenne...was man nicht weiß, macht einen eben nicht heiß. Danke jedenfalls für Eure Meinungen, und Delphi wird hoffentlich noch recht lange existieren - ich programmiere auf recht bescheidenem Niveau jedenfalls nach wie vorn gern damit. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Die Sprache an sich holt doch Version für Version auf. Was viel mehr nervt ist, dass die IDE nicht auf der Höhe ist. Aber vielleicht wird das ja auch noch.
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Zitat:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
In C und verwandten Programmiersprachen kann man in jedem Block lokale Variablen deklarieren. Ursprünglich in C nur am Anfang des Blocks, später dann auch überall. In Pascal/Delphi sähe das ungefähr so aus:
Delphi-Quellcode:
Schrecklich, oder? Pascal/Delphi hat eben seit jeher Variablen im "var" Abschnitt deklariert und nicht mitten im Code. Wer denkt, das wäre ein großes Problem, der ist nicht mehr auf der Höhe der Zeit, denn die Delphi-IDE hat schon länger Live Templates. Einfach mal irgendwo mitten im Code "var" eingeben, gefolgt von Tab (oder Strg+J).
if SomeFunc() then
begin var s: string; var n: Integer; s := 'foo'; n := 10; for var i: Integer := 0 to 9 do begin var sum: Integer; sum := n + i; WriteLn(s + IntToStr(sum)); end; end; Außerdem gibt es auch "Declare Variable" - man schreibe z.B. "foo := 'bar'", setze den Cursor auf das "foo" und drücke Strg+Shift+V. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Und die Blockvariablen sind tatsächlich das von mir vermutete ? :shock: Entsetzlich. Ich würde mal sagen : GW-Basic von 1980 lässt langsam grüssen. Aber warum nicht ? Win8 erinnert mich auch eher standardmässig an DOS als an WIN7. :wall: |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Zitat:
Code:
for (auto& car : pool) {
auto& engine = car.getEngine(); if (car.manufacturer() == VW && engine.type() == DIESEL) { service.schedule(car); } } Meine persönliche Einschätzung: Für Entwickler von CRUD-Anwendungen gibt es mittlerweile viele bequeme Alternativen (GC, Reflection, größeres Ökosystem, ...); ansonsten ist modernes C++ sehr benutzbar und bietet mächtige Abstraktionen mit wenig Overhead (z.B. RAII). Was bleibt ist die Sprache selbst und VLC/FMX sowie die bestehender Code und Komponenten: Delphi-Language/Object-Pascal ist angenehm, aber nicht so gut durch-standardisiert/dokumentiert wie andere Sprachen. Die VCL ist für Windows super, aber halt nicht wirklich portabel; FMX hebt sich für mich nicht sonderlich von anderen modernen Frameworks ab. Ich würde mich nicht sonderlich sträuben, Delphi-Entwickler zu werden; aber es muss auch nicht sein. tl;dr: Meh. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Nun ja, mit ein bisschen Generics und Closures bekommt man so etwas hin
Delphi-Quellcode:
oder
&With.Block<string, Integer>(
'foo', 10, procedure( const s: string; const n: Integer ) var i: Integer; sum: Integer; begin for i := 0 to 9 do begin sum := n + i; WriteLn( s + IntToStr( sum ) ); end; end );
Delphi-Quellcode:
TArray.ForEach<TCar>(
pool, procedure ( const car: TCar ) begin &With.Block<TEngine>( car.GetEngine, procedure ( const engine: TEngine ) begin if (car.Manufacturer = TManufacturer.VW) and (engine.&Type = TEngineType.DIESEL ) then service.Schedule( car ); end ); end ); |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Ich wollte eigentlich demonstrieren, dass man Blockvariablen durchaus einsetzen kann, um die Lesbarkeit zu verbessern (imho). Es wäre ja es nicht sonderlich schlimm gewesen die Variablen im Funktionskopf zu deklarieren, aber einen sinnvollen Wert haben die Variablen im Beispiel eh nur innerhalb des Blocks. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Ich bin allerdings faul, und möchte auch nicht ständig irgendwo Variablen deklarieren nur weil ich durch ein Array laufen muss. Dann schreibe ich mir eben einen
Delphi-Quellcode:
und kann mir diese Hilfsvariablen sparen.
TArray.ForEach<T>(Action:TAction<T>)
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Ich bin voll auf Hansas Schiene: Bugfixing! Bugfixing! Bugfixing! Das ist es was Delphi fehlt.
Diese Features, mit denen man die paar halbwegs wechselwilligen Java oder C# Coder versucht anzulocken, braucht keine Sau. Ehrlich. Dann lieber auf die zwei Leute verzichten und endlich mal Stabilität in die Sprache bringen, und mal ausnahmsweise versuchen eben nicht ein Release zu verkaufen, das nichtmal zuverlässigen 64Bit Code erzeugt. Das ist doch sowas von peinlich. Wenn man dann noch bedenkt, daß da vermutlich einer stundenlang drüber gebrütet hat, ob man dieses Bugfix allen oder nur den Subscribern zur Verfügung stellt, müssen einem doch die Haare zu Berge stehen. Sherlock |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Mit mehr habe ich es nicht getestet, weil die Records so fett waren, dass der verfügbare Speicher nicht mehr ausreichte ;) Aber mit einem
Delphi-Quellcode:
habe ich das auch getestet - das hat mir aber zu lange gedauert (>>1 Sekunde)
for in
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Für ein eigentlich sehr brauchbares Feature brauchte sie aber aufgrund dieser Architektur 500mal länger, als eine leicht optimierte Version dieses Features. :stupid: Zitat:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Man muss die "Höhe der Zeit" erst definieren. VW war das auch mal. Lieber etwas älter aber dafür stabil. :thumb:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
So ist es maximal langsam (ohne Sleep zu verwenden):
Delphi-Quellcode:
und so ist es eben fix
procedure Slow<T>( values: array of T; Action: TProc<T> );
var v: T; begin for v in values do // eine Kopie wird in v geschoben Action( v ); // v wird nochmal kopiert und dann erfolgt der Aufruf end;
Delphi-Quellcode:
TAction<T> = reference to procedure( const Arg: T );
procedure Fast<T>( const values: array of T; const Action: TAction<T> ); var i: Integer; begin // wir sind kein Copy-Shop als sparen wir uns jegliche Kopie for i := low(values) to high(values) do Action( values[i] ); end; |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Na ja. Delphi hinkt der Zeit hinterher, soviel ist schon mal klar. C auch, soweit ich mich erinnere. Und Java ist nun nicht so die neueste Sprache mit den allercoolsten Features.
Nur: Wer mit Delphi programmiert ist häufig den anderen Sprachen gegenüber gerade eben *nicht* aufgeschlossen, wie man an vielen Beiträgen hier sieht. Vielleicht sind es also eher einige Programmierer, die nicht auf der Höhe der Zeit sind. Klar ist doch aber, das Delphi erstens ein Nischenprodukt ist und es auch bleibt. Wer will denn diesen ellenlangen PROCEDURE BEGIN END DO Blödsinn schreiben, wenn man auch mit weniger auskommt? Wer will denn noch seine Variablen nicht da deklarieren, wo sie gebraucht werden, sondern wie in Großmutters Rezept? Und wer will sich denn heutzutage noch mit Memoryleaks rumschlagen? Und zwar als Standardbeschäftigugn? Wieso soll ich Schleifen verwenden, wenn ich doch LINQ habe? Ohne mich dumm zu tippen? Usw. Usw. Wenn es nicht muss? Eine etwas größere Hardwarenähe ist wirklich praktisch, aber wenn ich das mit C# machen will, dann nehme oder schreibe ich mir eine DLL, die das macht und binde die in meinen schön aufgeräumten Code. Mich erinnert diese Diskussion immer wieder an meinen Kumpel, der Mini-Fan ist (die alten, originalen) und auch meinte: "Mit meinem Mini kann ich ALLES machen. Neulich war ich in Italien damit!!! und habe einen neuen Motor auf dem Rücksitz nach hause transportiert!!1!!EINS" Man kann wirklich ALLES damit machen, was man mit einem richtigen Auto auch kann. Stimmt. Fragt sich nur, wie bequem das ist... Aber selbst wenn Delphi vielleicht etwas in die Jahre gekommen ist: Eins haben die anderen Sprachen nicht. Und das ist so ein Forum wie dieses hier. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Zitat:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Wenn schon, trifft das aber eher auf Delphi zu: Wenn ich in der 300.ten Zeile meiner Prozedur eine Variable verwende, die 300 Zeilen zuvor deklariert wurde... ist das dann wirklich leichter aufzufinden, als eine Deklaration, die unmittelbar dort vorzufinden ist, wo die Variable dann verwendet wird? Hmm... Nochmal nachdenken. Nebenbei: Wer 300 Zeilen lange Methoden schreibt und überhaupt (egal in welcher Sprache) in Verlegenheit kommt, sich Gedanken über erschwertes Wiederauffinden zu machen, sollte vielleicht einfach seine Methoden verkürzen. ;-) Oder die Shortcuts lernen, mit denen die IDE einem hilft, die Deklaration aufzufinden. Aber lassen wir das: Jeder soll mit der Sprache arbeiten, die er am besten kann und in der er sich am wohlsten fühlt. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Eben nicht! Man weiß bei Delphi, wo die Deklaration zu finden ist. Dorthin schnell zu springen, ist "nur" eine Herausforderung für die IDE-Designer bzw. -Ergonomen.
Ansonsten ist Suchmehraufwand vonnöten. Ich kenne C & Co. soweit und gut genug, daß ich mich davon nie eingeladen fühlte, sondern mich in Pascal und Delphi weiterhin wohlfühle. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Eigentlich wollte ich zu Themen wie diesem nichts schreiben, aber irgendwie rutscht man da automatisch immer rein. Ich mus deshalb hier doch einiges zerpflücken. Fangen wir mal an :
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Und dennoch: Das sind Tools in der IDE. Selbst so was wie WebAPI wäre mit der Sprache Delphi auch umsetzbar. Ich wüsste nicht was nicht gehen sollte. Die Frage ist lediglich: Wer bezahlt es? Oder wer investiert seine Freizeit um das umsonst her zu stellen. Und das ist das eigentliche Problem: Der Markt ist nicht mehr so da wie noch vor Jahren. Und ohne Markt kein (weniger) Geld und weniger Geld = weniger Möglichkeiten = weniger Kunden die bezahlen.... |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Die Diskussion mit den Klammer und den Blockvariablen ist doch müßig. Klar kann man das eine oder das andere mehr mögen ... aber was soll's.
Die vorhandenen Bibliotheken und das Tooling machen den Unterschied aus. Mich z.B. auf die Java-Syntax einzustellen dauert nicht lange. Die Tools (Eclipse vs. Netbeans), die benutzten Frameworks (JCL, SWING vs. JavaFX, Hibernate) und die üblichen Konventionen (z.B. idiomatische Implementierung von Pattern) ordentlich zu beherrschen dauert meiner beschränkten Erfahrung nach viel länger. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Gut gesagt. :thumb:
Mit Eclipse hatte ich auch schon zu tun: Das ging wirklich schnell und man schnalzt mit der Zunge, wenn man sieht, was man für lau bekommt. Da fragt man sich wirklich, wieso man Geld für eine IDE ausgeben soll. |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Warum ich gerne OP einsetze ist ja sogar messbar. Delphi ist eine Level-11 language mit 29 Anweisungen pro FP. C=2,5(128), C++=6(53), Java 6(53). Ich muss also relativ gesehen viel weniger Code schreiben um ans Ziel zu kommen. Natürliche, gesprochene oder geschriebene Sprache hat übrigens 0,1 (3200).
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
Zitat:
Die Zahl in der Klammer - evtl. die Anzahl der Anweisungen pro FP? |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
![]() |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
WOW das ist ja wieder ein Thread mit viel "Zündstoff"...
- Ätsch meine Sprache ist aber besser als Deine - Bei meiner brauche ich aber weniger tippen - Dafür ist meine aber schneller - Meine kann aber mehr... - Deine kann aber xy nicht... Was für ein Kindergarten... Dabei weiß doch jeder der hier schreibt, dass Delphi die beste Sprache ist... Oder? :twisted: Mavarik :coder: |
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
|
AW: Befindet sich Delphi noch auf der Höhe der Zeit?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz