| Autor |
Beitrag |
Wolle92
      
Beiträge: 1296
Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
|
Verfasst: Do 21.06.07 09:58
also als ich mit Delphi angefangen habe, dachte ich erstmal:
| Zitat: | | Also bei PHP ist die Variablenzuweisung wesentlich einfacher... |
1. Bei PHP müssen Variablen nicht deklariert werden, wenn du sie brauchst schreibst du sie einfach hin...
2. PHP hat ein verlässliche automatische Typenumwandlung
OK, da hab ich micht jetzt dran gewöhnt, aber es wäre schon schön, wenn diese beiden Features in Delphi enthalten wären...
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Do 21.06.07 10:09
Hallo, Stefan.Buchholtz hat folgendes geschrieben: | | Na ja, da ist ja eine TBigSet-Klasse relativ schnell gebaut - wenn es nicht ohnehin schon irgendwo eine gibt. Würde mich wundern, wenn nicht... |
Das ist aber unnötig umständlich wenn man bedenkt das Pascal (und somit Delphi) Mengen als Sprachbestandteil kennt. Wie gesagt ich nutze es selten aber finde diese Einschränkung unnötig. Wolle92 hat folgendes geschrieben: | also als ich mit Delphi angefangen habe, dachte ich erstmal:
| Zitat: | | Also bei PHP ist die Variablenzuweisung wesentlich einfacher... |
1. Bei PHP müssen Variablen nicht deklariert werden, wenn du sie brauchst schreibst du sie einfach hin... 2. PHP hat ein verlässliche automatische Typenumwandlung OK, da hab ich micht jetzt dran gewöhnt, aber es wäre schon schön, wenn diese beiden Features in Delphi enthalten wären... |
Ja und bei PHP sucht man ständig nach Fehlern weil man sich bei einen Variablennamen vertippt hat und somit eine neue deklariert hat (wobei eine gute Eingabehilfe in der IDE da hilft) deshalb schalte ich in Perl immer ein das Deklarationen verlangt werden, leider bietet PHP diese funktion nicht  . Zu Punkt 2 solltest du dir mal den Datentyp Variant angucken, da hast du dann ein ähnliches verhalten wie in Pearl allerdings zu lasten der Performance. Gruß Klabautermann
Zuletzt bearbeitet von Klabautermann am Do 21.06.07 12:11, insgesamt 1-mal bearbeitet
|
|
Stefan.Buchholtz
      
Beiträge: 612
WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
|
Verfasst: Do 21.06.07 11:03
Klabautermann hat folgendes geschrieben: | Das ist aber unnötig umständlich wenn man bedenkt das Pascal (und somit Delphi) Mengen als Sprachbestandteil kennt. Wie gesagt ich nutze es selten aber finde diese Einschränkung unnötig.
|
Die normalen Pascal-Mengentypen sind ja als Bitfelder implementiert, was bei kleinen Mengen ja auch prima ist - die Mengenoperatoren lassen sich effizient über bitweise logische Operatoren implementieren. Bei grossen Mengen geht das aber nicht mehr - das Bitfeld für ein set of Integer wäre 512 MB gross. Eine zusätzliche Implementation für grosse Mengen war den Delphi-Entwicklern wohl angesichts des eher geringen Bedarfs zu aufwendig.
Stefan
_________________ Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
|
|
Wolle92
      
Beiträge: 1296
Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
|
Verfasst: Do 21.06.07 11:48
| Zitat: | Ja und bei PHP sucht man ständig nach Fehlern weil man sich bei einen Variablennamen vertippt hat und somit eine neue deklariert hat (wobei eine gute Eingabehilfe in der IDE da hilft) deshalb schalte ich in Pearl immer ein das Deklarationen verlangt werden, leider bietet PHP diese funktion nicht . |
Stimmt, das kommt mir auch des öfteren vor, das irgendwas nicht funktioniert, dann suche ich... sehr lange, wohlgemerkt, und finde dann irgendwo das 'e' zuviel... okay, hast recht...
Ich schätze, irgendwie ginge das aber auch, dass man ne funktion in PHP schreibt, die Variablendefinitionen verlangt...
Lasst mich in Ruhe drüber nachdenken, dann hab ich die bald
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Do 21.06.07 12:13
Was ich in Java lieben gelernt habe und mir in Delphi fehlt, ist die Möglichkeit, bei ner Exception den Stack Trace wegschreiben zu können. Ich kann den zwar über die IDE abrufen, aber oftmals suche ich Fehler per Logfile, nicht per Debugger (aus diversen Gründen).
Auch nett wäre ein IDE-Feature, welches mir zeigt, von welchen Units eine bestimmte Unit eingebunden wird. Der Compiler wirft mir bisweilen in Units Fehler, von denen ich dann nur zu gern wüsste, wer die überhaupt einbindet 
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Do 21.06.07 12:22
Hi,
Wolle92 hat folgendes geschrieben: | Ich schätze, irgendwie ginge das aber auch, dass man ne funktion in PHP schreibt, die Variablendefinitionen verlangt...
Lasst mich in Ruhe drüber nachdenken, dann hab ich die bald |
möglich aber das währe nicht das selbe.
In Perl kann man wie in PHP mit $Wert = 4711; eine neue Variable deklarieren und einen Wert zuweisen. Wenn du aber das Versehentliche erzeugen von Variablen verhindern willst dann gibst du einfach den Befehl use strict; und von nun an Führt $Wert = 4711; zu einer Fehlermeldung da die Variable noch nciht bekannt ist. Eine neue Variable legst du denn mit dem Kommando my bei der ersten Verwendung an. Also my $Wert = 4711;.
Das vermisse ich in PHP aber wir kommen vom Thema ab  .
Gruß
Klabautermann
|
|
Wolle92
      
Beiträge: 1296
Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
|
Verfasst: Do 21.06.07 14:55
OKAY, wollen wir ein Thema "Was fehlt PHP?" machen?
Nein, aber lass mich noch einen Satz dazu schreiben (acuh als Überleitung zurück zu Delphi):
Man kann aber eine Funktion schreiben, mit der man Variablen ähnlich wie bei Delphi deklarieren kann...
Quelltext 1:
| $dec_vars[] = declare(variablenname); |
und ganz am ende der Datei:
Quelltext 1:
| $dec_err = check_dec(dokument-name); |
|
|
arj
      
Beiträge: 378
Win XP/Vista, Debian, (K)Ubuntu
Delphi 5 Prof, Delphi 7 Prof, C# (#Develop, VS 2005), Java (Eclipse), C++, QT, PHP, Python
|
Verfasst: Do 21.06.07 16:06
Also was mir etwas in Delphi fehlt im Vergleich zu C++ ist das implementieren der Operatoren bei Klassen.
Also das ich bestimmen kann, was bei einem "+" oder so passiert.
Ist gerade bei mathematischen Klassen sehr sinnvoll.
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 21.06.07 16:11
Class operators sind teilweise schon implemnetiert. In .Net sowieso in Win32 bisher nur für records soll aber auch für Klassen kommen.
_________________ Markus Kinzler.
|
|
arj
      
Beiträge: 378
Win XP/Vista, Debian, (K)Ubuntu
Delphi 5 Prof, Delphi 7 Prof, C# (#Develop, VS 2005), Java (Eclipse), C++, QT, PHP, Python
|
Verfasst: Do 21.06.07 16:17
Oh, da ist wohl was an mir vorbeigegangen. Seit welcher Version?
Hast du ein Codebeispiel?
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 21.06.07 16:27
arj hat folgendes geschrieben: | | Oh, da ist wohl was an mir vorbeigegangen. Seit welcher Version? |
D8(.Net) bzw D10(Win32)
Hast du ein Codebeispiel?[/quote]
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| Type TVektor = Record x, y: Extended; class operator Add(a, b: TVektor): TVektor; class operator subtract(a, b: TVektor): TVektor; class operator multiply(a: TVektor; s: Double): TVektor; class operator multiply(s: Double; a: TVektor): TVektor; class operator divide(a: TVektor; s: Double): TVektor; class operator multiply(a, b: TVektor): TVektor; class operator negative(a: TVektor): TVektor; class operator implicit(a: TVektor): string; end; ... class operator TVektor.add(a, b: TVektor): TVektor; begin Result.x:= a.x + b.x; Result.y:= a.y + b.y; end; ... |
_________________ Markus Kinzler.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Do 21.06.07 17:46
Das Einzige, aber auch wirklich das Einzige, was ich vermisse, sind die kurzen und knappen '#define' Dinger. Nicht, das man das in Delphu irgendwie hinfrickeln könnte, aber dabei geht der deskriptive Charakter dere #define-Dinger (hö) verloren. C ist imho eine kranke Sprache (keine Diskussion jetzt), aber die #define-Dinger am Anfang des Codes sind -gut gemacht- selbsterklärend. Damit kann man dann die schrägsten Codeoptimierungen hinter einem leicht verständlichen Konstrukt verstecken.
Hach ja ...
@mkinzler: Blöd an den class operatores ist doch aber, das man 'add' schreiben muss, um '+' zu meinen. Was ist, wenn ich eine '*^*' Operation machen will, die zwei Zahlen hintenrum verschnudelt und die Nycbrscynsky-Feinbein-Dillateration bildet. Na, kommt sicher auch bald.
_________________ Na denn, dann. Bis dann, denn.
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 21.06.07 18:07
| Zitat: | | @mkinzler: Blöd an den class operatores ist doch aber, das man 'add' schreiben muss, um '+' zu meinen. |
Bei der Deklaration schon, später aber nicht.
_________________ Markus Kinzler.
|
|
COMMANDER86
      
Beiträge: 167
Win XP, Win Vista
D3 Prof., D7 Pers., Lazarus
|
Verfasst: Do 21.06.07 19:18
Wolle92 hat folgendes geschrieben: | also als ich mit Delphi angefangen habe, dachte ich erstmal:
| Zitat: | | Also bei PHP ist die Variablenzuweisung wesentlich einfacher... |
1. Bei PHP müssen Variablen nicht deklariert werden, wenn du sie brauchst schreibst du sie einfach hin...
2. PHP hat ein verlässliche automatische Typenumwandlung
OK, da hab ich micht jetzt dran gewöhnt, aber es wäre schon schön, wenn diese beiden Features in Delphi enthalten wären... |
Ich will ehrlich sein. Ich schreibe auch PHP und genau das oben Stehende ist es, was mich unter PHP nervt. ^^ Ich bin, wie hoffentlich noch einige andere Menschen, auf Pascal/Delphi hängen geblieben, weil:
- es eine logische Sprache ist:
:= Zuweisung
= Vergleich
Das ist mathematisch logisch... eine Stammvoraussetzung, lt. meines damaligen Lehrers, und meinen Gedanken, für logische Programmierung.
Des Weiteren bin ich der Meinung, dass eine Programmiersprache, die nur funktioniert, wenn ensprechende Software vorhanden ist, oder nur startbar ist über eine Netzwerkverbindung, wo die Software (like XAMPP) installiert ist, nicht sonderlich effektiv ist, in der heutigen Zeit, der einfachen Informatik, die jeder verstehen soll...
Sorry, für diesen Satz, der vermutlich falsch geschrieben wurde. 
_________________ Streichen Sie bitte sämtlichen Sarkasmus aus vorhergehender Nachricht. Dann wissen Sie, was ich sagen möchte. Meine Lösungen sind die vermutlich Umständlichsten, aber sie funktionieren (bei mir).
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Do 21.06.07 21:21
alzaimar hat folgendes geschrieben: | | Das Einzige, aber auch wirklich das Einzige, was ich vermisse, sind die kurzen und knappen '#define' Dinger. Nicht, das man das in Delphu irgendwie hinfrickeln könnte, aber dabei geht der deskriptive Charakter dere #define-Dinger (hö) verloren. C ist imho eine kranke Sprache (keine Diskussion jetzt), aber die #define-Dinger am Anfang des Codes sind -gut gemacht- selbsterklärend. Damit kann man dann die schrägsten Codeoptimierungen hinter einem leicht verständlichen Konstrukt verstecken. |
Was für Codeoptimierungen meinst du bzw. was fehlt dir an Delphis {$define Irgenwas} funktionalität? COMMANDER86 hat folgendes geschrieben: | | Ich will ehrlich sein. Ich schreibe auch PHP und genau das oben Stehende ist es, was mich unter PHP nervt. |
Das kann ich (wie oben erwähnt) gut nachvollziehen. COMMANDER86 hat folgendes geschrieben: | | Des Weiteren bin ich der Meinung, dass eine Programmiersprache, die nur funktioniert, wenn ensprechende Software vorhanden ist, oder nur startbar ist über eine Netzwerkverbindung, wo die Software (like XAMPP) installiert ist, nicht sonderlich effektiv ist, in der heutigen Zeit, der einfachen Informatik, die jeder verstehen soll... |
Du meinst eine Software die verlangt das eine andere Software wie sagen wir beispielsweise Windows, läuft währe nicht effektiv? Dann gibt es aber extrem wenig Effektive Software. Heutzutage basiert doch alles auf verschiedenen APIs Framewoks oder DBM-Systemen. Das Argument finde ich daher nicht wirklich schlüssig. Aber sicherlich ist PHP keine Sprache für jeden Einsatzzweck (was aber auf jede andere Sprache auch zutrifft) ich würde in dieser ebensowenig eine Textverarbeitung programmieren wollen wie ich mit Delphi dieses Forum implementieren wollen würde. Gruß Klabautermann
|
|
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Fr 22.06.07 06:43
Ich hätte gerne eine vernünftige Fehlerbehandlung, variable Schrittweiten und Case mit Strings...den hochtrabenden Kram brauch ich nicht
Auch wenns nicht schick ist, aber ein
On Error Goto abc
abc:
If Err = 123 Then Resume Next
ist einfach göttlich 
_________________ Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 22.06.07 06:47
Ma bEsten wir kopieren allen Müll von anderen Sprachen. Der Vorteil von Delphi ist nun mal die Typsicherheit und die nicht Notwendigkeit von Gotos und ähnlichem Horrorkonstrukten.
_________________ Markus Kinzler.
|
|
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Fr 22.06.07 06:57
Aufgeregt? Was hat Typsicherheit mit GoTo's zu tun? Vor- und Nachteile hat jede Sprache, und wie man sie empfindet liegt im Auge des Betrachters.
_________________ Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 22.06.07 07:02
Das war nicht nur auf deine Wünsche, sondern allgemein gemeint. Die Abtrennung der Typprüfung vom Compiler war auch ein Wunsch hier.
Der sogenannte Spagetti-Code hat vor langer Zeit zu einer großen Krise in der Softwareentwicklung geführt. Abhilfe schaffte damals die Einführung der strukturierten Programmierung. dadurch kann man auf Gotos verzichten. Wir sollten aus den fehlern der Vergangenhiet lernen und auf Goto und co verzichten.
_________________ Markus Kinzler.
|
|
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Fr 22.06.07 07:13
Da geb ich dir gerne generell recht und verwende die Gotos auch nur für die Fehlerbehandlung und gerade da erscheinen sie mir sinnvoll. Ein Try...Except...Finally zu machen wäre auch eine Möglichkeit.
_________________ Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
|
|
|