| |
|
|
- Seite 1 - |
|
Nico Madysa | OK, was Roland hier an der einen oder anderen Stelle erwähnt hat, was in Bälde alles wegfallen soll, das ließ mir einen kalten Schauer herunterlaufen. Daher hoffe ich, dass ich nicht der Einzige bin, der sich an der ein oder anderen Stelle wünscht, dass etwas Veraltetes weiter geduldet. wird. Daher bitte ich euch jetzt mal, die folgenden zwei Fragen zu beantworten: Was kann eurer Meinung nach weg? Was wollt ihr behalten?
Um es nicht ganz so schwer zu machen, fang ich jetzt einfach mal an.
Schützen: - wend - Parameterstack - Def-Funktionen (einzeilige, eigene Funktionen)
Verwerfen: - LET-Variablenzuweisung - @ vor Funktionen - $O, da ja wohl niemand Operatoren ausschalten möchte
Wie gesagt, das ist meine persönliche Meinung, daher hoffe ich, dass hier auch noch andere posten.
Gruß Nico |
|
|
| |
|
|
|
| |
|
- Seite 3 - |
|
Nico Madysa | Nun gut. Das Bilder Laden ist also geklärt.
Jetzt haue ich hier mal einfach so Fragen hinein, um zu sehen, was dann passiert:
- Wenn du den Anfängern ersparen willst, mehrere Möglichkeiten zu haben, warum gibt es WindowStyle? Du hast ein Listing über den Aufruf der API. Das ist viel universeller einsetzbar. Du willst den Anfängern API ersparen? Warum hast du das Listing überhaupt eingebaut?
- Du willst es den Anfängern leicht machen? Wieso planst du dann (ob jetzt oder später, ist wurscht) solch sagenhaft einfache Befehle wie LoadBMP(einfacher gehts nicht!) zu killen? Die ganze Sache mit Handles ist DEFinitiv komplizierter.
- Du willst es den Anfängern ersparen, zwei Wege für dasselbe zu lernen? Was sollen dann Create(Text) und DrawText? Was sollen dann %MouseKey und %MousePressed? Sicher, es gibt Unterschiede. Aber die sind so geringfügig, dass man beide Sachen in eins packen kann!
- Du betonst die Modernität von XProfan. Warum killst du Sachen, an denen die Leute hängen? Warum DEF-Funktionen weg, warum wend weg, warum &(1), %(2), $(%schiessmichtotwasnoch) weg? Hast du schonmal über LETend oder @end nachgedacht? Zugegeben, es gibt auch Verfechter des @, aber es wurde NIE vorgeschlagen, das LET zu killen? Und rem? Was, zum Geier nochmal, ist mit rem? Wer remt heutzutage noch?! Du hast doch so einen tollen Präprozessor für den Compiler, meinst du der arbeitet sich an Translate$(zeile$,wend,endwhile) tot? Meinst du der Parameterstack wird so häufig verwendet, dass der Wegfall dessen das Compilieren um 50% verringert?
Puh, jetzt hab ich mich wieder doller aufgeregt, als ich wollte(Nico tick aus 2) Ich hoffe ernsthaft, dass mir dafür niemand böse sein wird.
Gruß, Nico |
|
|
| |
|
|
|
| <offtopic>Zunächst würde ich Dich bitten Deinen Ton etwas zu überdenken.</offtopic> |
|
|
| |
|
|
|
GDL | Hallo Nico,
ist doch ganz einfach, wir bleiben halt dann bei Xprofan10.Ich finde es auch blöde, das geläufige Sachen wieder umgewurstelt werden.
Servus Georg |
|
|
| |
|
|
|
RGH | Einige Antworten:
[quote:28b1a698ec=Nico Madysa]- Wenn du den Anfängern ersparen willst, mehrere Möglichkeiten zu haben, warum gibt es WindowStyle? Du hast ein Listing über den Aufruf der API. Das ist viel universeller einsetzbar. Du willst den Anfängern API ersparen? Warum hast du das Listing überhaupt eingebaut?[/quote:28b1a698ec] Erstens habe nicht ich, sondern Stephan das Listing eingebaut und zweitens ist die Hilfedatei (und natürlich XProfan) nicht nur für Anfänger, sondern natürlich auch für Fortgeschrittene und Freaks. XProfan soll alle ansprechen. Es soll also weiterhin ohne API-Studium möglich sein, mit XProfan zu programmieren. Aber ein API-Kwenner soll auch nicht eingeschränkt sein, diese Kenntnis zu nutzen. Natürlich könnte man z.B. auch OpenGL nur über API programmieren. Trotzdem habe ich ich versucht, es auch für den Einsteiger einfacher (uznd schneller) zu ermöglichen! [quote:28b1a698ec] - Du willst es den Anfängern ersparen, zwei Wege für dasselbe zu lernen? Was sollen dann Create(Text) und DrawText?[/quote:28b1a698ec] Das sind zwei völlig verschiedene Sachen. Das eine ist ein Control und das andere malt den Text auf den Bildschirm. [quote:28b1a698ec] Was sollen dann %MouseKey und %MousePressed? Sicher, es gibt Unterschiede. Aber die sind so geringfügig, dass man beide Sachen in eins packen kann![/quote:28b1a698ec] Eben nicht. Für beide gibt es unterschiedliche Anwendungsfälle. [quote:28b1a698ec] - Du betonst die Modernität von XProfan. Warum killst du Sachen, an denen die Leute hängen?[/quote:28b1a698ec] Irgendwelche Leute hängen immer an irgendwelchen Sachen. Die Alternative wäre, gar nichts zu verändern. [quote:28b1a698ec]Hast du schonmal über LET end oder @end nachgedacht?[/quote:28b1a698ec] Auf das @ und auf das LET kann man schon seit etlichen Versionen verzichten.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 27.11.2006 ▲ |
|
|
|
|
Nico Madysa | OK, Entschuldigung, ich war wieder etwas doller aufgeregt, als ich sein dürfte, wenn ich was schreibe. ;( [box:942c5276f6] Wie sagte Horst Evers noch? Wenn ich früher betrunken nach Hause kam, hab ich noch ein wenig mit der Kaffeemaschine gesprochen, aber dann war Schluss. Wenn ich heute betrunken - da kann ich noch mit der ganzen Welt kommunizieren. Und das ist nicht gut... [/box:942c5276f6] [quote:942c5276f6]Auf das @ und auf das LET kann man schon seit etlichen Versionen verzichten.[/quote:942c5276f6] Aber du hast noch nie angekündigt, es komplett zu killen. Im Gegensatz zu wend.(ich geb nicht auf )
[quote:942c5276f6]Erstens habe nicht ich, sondern Stephan das Listing eingebaut und zweitens ist die Hilfedatei (und natürlich XProfan) nicht nur für Anfänger, sondern natürlich auch für Fortgeschrittene und Freaks. XProfan soll alle ansprechen. Es soll also weiterhin ohne API-Studium möglich sein, mit XProfan zu programmieren. Aber ein API-Kenner soll auch nicht eingeschränkt sein, diese Kenntnis zu nutzen. Natürlich könnte man z.B. auch OpenGL nur über API programmieren. Trotzdem habe ich ich versucht, es auch für den Einsteiger einfacher (uznd schneller) zu ermöglichen! [/quote:942c5276f6] OK, Punkt für dich.
[quote:942c5276f6]Das sind zwei völlig verschiedene Sachen.[/quote:942c5276f6] Mit dem selben Ergebnis. Beide zaubern Text auf den Bildschirm. Und da Create(Text) wesentlich universeller ist als DrawText(kein StartPaint nötig), müsste nach deiner Logik, DrawText bald wegfallen.
[quote:942c5276f6]Die Alternative wäre, gar nichts zu verändern.[/quote:942c5276f6] Nein, nur das beliebte Zeug drin lassen. Wenn ein Film am Ende des ersten Monats immer noch Geld ohne Ende einbringt, wird er doch bestimmt eine zweite Woche laufen.
[quote:942c5276f6]Zunächst würde ich Dich bitten Deinen Ton etwas zu überdenken[/quote:942c5276f6] Hab ich. Nochmals Entschuldigung. |
|
|
| |
|
|
|
RGH | [quote:7d66d92357=Nico Madysa]OK, Entschuldigung, ich war wieder etwas doller aufgeregt, als ich sein dürfte, wenn ich was schreibe. ;( [/quote:7d66d92357] Entschuldigung angenommen!
[quote:7d66d92357][quote:7d66d92357]Auf das @ und auf das LET kann man schon seit etlichen Versionen verzichten.[/quote:7d66d92357] Aber du hast noch nie angekündigt, es komplett zu killen. Im Gegensatz zu wend.[/quote:7d66d92357] Das ist richtig. Das hängt damit zusammen, daß beides intern immer noch gebraucht wird. LET: Eine Programmzeile besteht intern (auch im compilierten Bytecode) nun mal aus Befehl und Parametern (oder einer Funktion). Auch wenn im Programm in Anlehnung an BASIC das LET weggelassen werden kann, wird es beim Einlesen in den Interpreter bzw. Compiler automatisch wieder eingefügt, damit alle Zeilen von Interpreter und Compiler gleich behandelt werden können. Durch ein Verbot des LET könnte ich also nicht eine Zeile im Code einsparen. (Zudem erleichtert das LET die Übernahme von Basic-Quellcodes aus Dialekten, die nicht ohne LET auskamen ... aber das ist eher zweitrangig.) Allerdings wäre es sicher angebracht, das LET konsequent aus den Beispielen in der Hilfe zu entfernen. @: Hier ist es weiterhin so, daß Interpreter und Compiler schneller eine Funktion erkennen, Für das Tempo der fertigen EXE macht es allerdings keinen Unterschied, denn im compiliertzen Bytecode werden die Funktionen weiterhin durch ein @ gekennzeichnet. Hier wäre es sicher eine Diskussion wert, ob man es künftig aus den Beispielen in der Dokumentation hinausnimmt und nur noch darauf hinweist, daß man es verwenden kann. Ein gänzliches Verbot würde auch hier keinerlei technische Vorteile bringen. REM: Auch dieses wird intern verwandt, so daß ein Weglassen technisch auch nichts bringt. Im Quellcode benutze ich es allerdings auch nicht mehr. Man könnte es in der Hilfe meinetwegen auch weglassen.
[quote:7d66d92357][quote:7d66d92357]Das sind zwei völlig verschiedene Sachen.[/quote:7d66d92357] Mit dem selben Ergebnis. Beide zaubern Text auf den Bildschirm. Und da Create(Text) wesentlich universeller ist als DrawText(kein StartPaint nötig), müsste nach deiner Logik, DrawText bald wegfallen.[/quote:7d66d92357] Das stimmt leider nicht ganz. Technisch ist es ein himmelweiter Unterschied, ob ich Pixel male oder ein Control erstelle. Ein Control wird mit CLS nicht gelöscht, mit DrawText gemalte Pixel schon. Bei StartPaint -1 kann ich zwar mit Drawtext auf die Memorybitmap zeichnen, aber ein Control ist dort nicht möglich. Vielleicht sollte ich in der Hilfe deutlicher auf die Unterschiede eingegen.
[quote:7d66d92357][quote:7d66d92357]Die Alternative wäre, gar nichts zu verändern.[/quote:7d66d92357] Nein, nur das beliebte Zeug drin lassen.[/quote:7d66d92357] Aber das ist eben Geschmacksache. Da findet jeder was anderes, was er mag! Außerdem: Einige eher allgemein beliebte Sachen (wie auch z.B. WEND) werden ja vom internen Präcompiler umgewandelt und bleiben auf diese Weise ja erhalten, auch wenn sie in der Doku nicht mehr auftauchen. Derzeit gibt es keinen technischen Grund, dem Präcompiler das WEND abzugewöhnen, also wird es ausa Kompatibilitätsgründen für die alten Hasen erhalten bleiben, während in der Hilfe für die Neueinsteiger die logischere Syntax While-EndWhile / Proc-EndProc / Paint-EndPaint / Select-EndSelect / If-EndIf / etc. beschrieben wird. BTW: Das WEND würden wohl eh nur Leute vermissen, die vom BASIC her kommen. PASCAL-Fans würden eher bemängeln, dass nicht überall ein einfaches END ausreicht, ... ;)
Für alle: Ein Abschalten des internen Präcompilers ist derzeit nicht geplant! (Und in der Hilfe ist im Anhang Überholte Befehle und Funktionen auch aufgeführt, was der Präcompiler alles umsetzt.)
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 28.11.2006 ▲ |
|
|
|
|
Rolf Koch | [quote:54c0f18e47]Das WEND würden wohl eh nur Leute vermissen, die vom BASIC her kommen. PASCAL-Fans würden eher bemängeln, dass nicht überall ein einfaches END ausreicht[/quote:54c0f18e47] Nee Sorry Roland: Auch alte Profaner werden es vermissen. Ich hab mit Profan angefangen und da war es halt immer WEND bis vor kurzem |
|
|
| |
|
|
|
Nico Madysa | [quote:e04dac9db0]PASCAL-Fans würden eher bemängeln, dass nicht überall ein einfaches END ausreicht, ...[/quote:e04dac9db0] Ich Verfechter des wend habe ls erste Sprache Delphi gelernt.
Ich denke, wir haben hier nen guten Kompromiss gefudnen. Die alten Sachen bleiben drin, aber werden nicht mehr in der Hilfe erwähnt.
Und wenn dann irgendwann in 70 Jahren, alle, die wend verwenden, gestorben sind kannst du(eher dein Nachfolger) es rausnehmen. ...OK, eher ein langfristiger Vorschlag.
Ich hoffe, das wird auch für den Parameterstack gelten.
Damit wäre die Sache glücklicherweise geklärt, danke! |
|
|
| |
|
|
| |
|
- Seite 4 - |
|
|
| Zum Parameterstack: Roland soll ihn rausnehmen wenn er das XProfan lähmt! Schön wäre es aber wenn man den Parameterstack (wer hat das Wort eigendlich dafür benannt?? Ist doch eigendlich falsch oder??) aber dennoch verwenden könnte - weil Roland ihn emuliert. Ist dann zwar vielleicht etwas langsamer - aber rein von der Syntax ist der PStack ein nettes Feature! |
|
|
| |
|
|
|
RGH | [quote:122783130b=iF]Zum Parameterstack: Roland soll ihn rausnehmen wenn er das XProfan lähmt! Schön wäre es aber wenn man den Parameterstack (wer hat das Wort eigendlich dafür benannt?? Ist doch eigendlich falsch oder??) aber dennoch verwenden könnte - weil Roland ihn emuliert. Ist dann zwar vielleicht etwas langsamer - aber rein von der Syntax ist der PStack ein nettes Feature![/quote:122783130b] Was den Parameterstack betrifft: Hier bin ich noch am Experimentieren, wie es technisch gesehen damit weitergeht. Die Bezeichnung stammt übrigens von mir, weil intern tatsächlich ein Parameterstack existiert, auf den eben durch die Funktionen !(n), %(n), $(n) und &(n) zugegriffen wird. Und diese Funktionen wurden eben für die Definition von Funktionen mit DEF geschaffen. Aber keine Angst: In XProfan 11 wird das alles noch funktionieren, auch wenn es wahrscheinlich nicht mehr in der Hilfe auftauchen wird. (Naja, der Hinweis, dass es in vergangenen Profanversionen so war, wird natürlich drinstehen, damit der Leser auch noch alte Profancodes verstehen kann.)
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 28.11.2006 ▲ |
|
|
|
|
RGH | [quote:c822460566=Nico Madysa]Und wenn dann irgendwann in 70 Jahren, alle, die wend verwenden, gestorben sind kannst du(eher dein Nachfolger) es rausnehmen.[/quote:c822460566] Ich denke mal, in 70 Jahren (oder vermutlich schon deutlich früher) wird es fast keine der heutigen Programmiersprachen mehr geben, da bis dahin die Computer und deren Architektur so anders sein wird, dass heutige Technologien, Denkweisen und Vorgehensweisen einfach nicht mehr gültig sind ...
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 28.11.2006 ▲ |
|
|
|
|
Nico Madysa | Nunja, wenn der Parameterstack bleibt, bin ich ja erleichtert. |
|
|
| |
|
|