Seite 3 von 5

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 18:12
von Josh
ts-soft hat geschrieben:Solange ich kein Declare nutze, kann ich bei auftreten eines Fehlers sicher sein, das ich im Source
nach Oben suchen muß. Dies ist bei MultiPass nicht mehr gegeben.
fällt genau so in die kategorie der schönrederei um mankos zu kaschieren
ts-soft hat geschrieben:Ausserdem wenn aus allen Single-Pass Compilern Multi-Pass Compiler gemacht werden, gibt es
keine Multi-Pass Compiler mehr :twisted:
hä?

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 18:20
von Nino
KPA hat geschrieben:Hi nino

hilf mir zu verstehen. Der Vorteil eines Singlepass Compiler soll die Garantie der besseren Lesbarkeit von Quelltexten sein ?? Weil man die Procedure in der richtigen Reihenfolge schreibt ??

Was soll das heißen. Schreibst du die Procedures mitten in den Quelltext ?
Nein, wie kommst Du darauf?
KPA hat geschrieben:Aber selbst wenn, wohin genau wenn es mehrere Aufrufe der gleichen Procedure an versch. Stellen des Quelltextes gibt?
Ich schreibe die Prozeduren jeweils an eine Stelle, so dass sie vor jeder Stelle stehen, von wo aus sie aufgerufen werden. Sorry, ich weiß jetzt nicht was daran unverständlich ist.
KPA hat geschrieben: Und wie soll das die lesbarkeit erhöhen ??
Hatte ich ja schon geschrieben.
KPA hat geschrieben:Ich glaube hier wird lediglich der Nachteil das PureBasic kein Multipass Compiler ist versucht wegzudiskutieren.
Es offensichtlich so, dass hier einfach nicht jeder derselben Meinung ist wie Du. Entscheide Dich bitte, ob Du das akzeptieren und ernsthaft diskutieren, oder ob Du herumpolemisieren willst.

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 18:33
von ts-soft
Josh hat geschrieben:
ts-soft hat geschrieben:Ausserdem wenn aus allen Single-Pass Compilern Multi-Pass Compiler gemacht werden, gibt es keine Multi-Pass Compiler mehr :twisted:
hä?
Logisches Denke ist beim programmieren vorrauszusetzen :mrgreen:
Wenn alles Multi-Pass Compiler sind, gibt es die Unterscheidung Multi-Pass Single-Pass nicht mehr,
demzufolge gibt es nur noch Compiler :bounce:

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 18:33
von Thorium
Das PB keinen Multipasscompiler hat kann ein Vorteil und auch ein Nachteil sein, jenachdem was man braucht. In jedem Fall ist es aber eine Designentscheidung der PB Devs und hat nichts mit einem generellen Nachteil zutun. Es ist ein Singlepasscompiler, weil der Compiler schnell sein soll und damit wird ja auch geworben.

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 18:40
von ts-soft
Ein Beispiel:
Wenn der PB Compiler alles vorher referenziert, werden auch zwangsläufig alle Prozeduren mitkompiliert,
unabhängig davon, ob genutzt oder nicht. Compilerdirektiven lassen sich vorher nicht referenzieren,
bzw. würden ein vielfaches an Passes erfordern, um ungenutzte Prozeduren sicher zu finden, das
wiederum würde sehr lange dauern.

Wer kleine schnelle Exen möchte nimmt PB, weil dies eben nur bei einem Single-Pass Compiler gegeben ist.

Sourcecode, der Prozeduren an jeder Stelle des Codes erlaubt ist ausserdem wesentlich schwerer zu lesen.
Und das wichtigste: Ich hasse solche Sourcen wo der Mainloop ganz oben steht und dann die Prozeduren folgen.

Wer das ändern möchte soll sich doch bitte eine andere Sprache suchen.

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 19:44
von Josh
ts-soft hat geschrieben:Wenn der PB Compiler alles vorher referenziert, werden auch zwangsläufig alle Prozeduren mitkompiliert, unabhängig davon, ob genutzt oder nicht.
auch wenn du diese mär noch so oft verbreitest, wird sie auch nicht wahrer. das ist ein blödsinn und bleibt ein ausgemachter blödsinn den du dir selber ausgedacht hast. diese theorie hast du schon mal in den raum gestellt und ich habe dir schon das gegenteil bewiesen.
ts-soft hat geschrieben:Wer kleine schnelle Exen möchte nimmt PB, weil dies eben nur bei einem Single-Pass Compiler gegeben ist.
das sehe ich jetzt auch mal als eine deiner theorien an. ich lasse mich aber gerne überzeugen, wenn du mir erklären kannst, warum eine exe schneller sein soll, wenn z.b. eine prozedur nicht vordeklariert ist.
ts-soft hat geschrieben:Sourcecode, der Prozeduren an jeder Stelle des Codes erlaubt ist ausserdem wesentlich schwerer zu lesen.
Und das wichtigste: Ich hasse solche Sourcen wo der Mainloop ganz oben steht und dann die Prozeduren folgen.
das ist deine ansicht. auch ein multipass würde dich nicht davon abhalten, deinen source so zu schreiben wie du willst. das du dich für das wichtigste hältst, ist mir schon öfter aufgefallen. aber ob du es glaubst oder nicht, es gibt leute, die das überhaupt nicht interessiert, für wie wichtig du dich hältst.
ts-soft hat geschrieben:Wer das ändern möchte soll sich doch bitte eine andere Sprache suchen.
JAAAAA!!! genau auf dieses argument hab ich wieder mal gewartet. ich habe für jedes ordentliche argument und für jede entscheidung der entwickler verständnis, aber auf diese andauernde an den haaren, noch dazu mit falschen argumenten herbeigezogenen begründungen, da kann ich einfach nicht ab.

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 19:54
von ts-soft
http://www.purebasic.fr/english/viewtop ... 25#p307825

SinglePass ist eines der Vorteile von PB, deshalb hat meine aussage:
Wer das ändern möchte soll sich doch bitte eine andere Sprache suchen.
auch seine Berechtigung.

Wer Multi-Pass möchte, soll eben Multi-Pass nehmen und nicht PB.

Multi-Pass um Module zu ermöglichen, würde ich ja akzeptieren, aber nicht wegen
der Declares.

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 20:11
von Josh
ich kenne diesen link, habe es auch aktzeptiert. es ist und bleibt eine entwicklerentscheidung. aber das ist für mich noch immer kein grund, dass mankos die dadurch entstehen als vorteile schöngeredet werden.

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 20:40
von TomS
Mankos?
Die einzige Beschwerde hier lautet: "in PowerBasic konnte ich meine Prozeduren irgendwo hinklatschen ohne Declare zu benutzen".

Das SinglePass in vielen Fällen sehr viel schneller zu sein scheint, hat Freak ja erläutert.
Lesbarerer Code ist nur ein netter Nebeneffekt.
So ziemlich jede Sprache bringt solche "Einschränkungen" mit, die dazu dienen den Code sauber zu halten.
.h-Dateien bei C und Konsorten, oder Tabs bei Python.

Wem nicht passt, dass man in Python korrekt einrücken muss, der kann diese Sprache nunmal nicht benutzen.

Dabei gibt es Tools (wenn nicht kann man sie sich leicht selber schreiben), die diese unglaubliche Mehrarbeit übernehmen.

Re: undokumentierte Konstanten

Verfasst: 27.06.2010 22:05
von Vera
Hallo Ihr da,

dieser Thread und seine Links sind wirklich sehr aufschlußreich, schade nur, dass dafür eine unglückliche Vermischung von persönlicher Philosopie und technischen Gegebenheiten die Basis bildet.

Mir ist vieles klar geworden. Es gab eine grundsätzliche Entscheidung, eine, für Menschen leicht nachzuvollziehende Programmiersprache zu entwickeln und dies nicht nur rein semantisch. Dazu gehört auch die strenge Logik: was unbekannt ist, kann auch nicht verwendet werden.

Dies wiederum führt unweigerlich zu der Notwendigkeit, die Reihenfolge der Abläufe zu beachten. (also nicht schlampig coden ;) )
Das führt automatisch zu einem bestimmten strukturierten Aufbau des Codes und gewährleistet eine leichtere Orientierung und Nachvollziehbarkeit. Ebenso ist auch die chronologische Zuortenbarkeit von Fehler und Ursache der menschlichen Realität sehr entgegenkommend (entsprechend).

Genau dazu, ist dann auch ein SinglepassCompiler die stimmige Wahl, da er nur damit arbeitet, was er an gegebener Stelle kennt. Wie halt auch der Mensch an jedem Lebensort nur einmal vorbeikommt, und sich seine Handlungen ausschließlich daraus ergeben, was er bis zu diesem Zeitpunkt gelernt (erlebt) hatte.

Das scheint mir eine elementare Basis von PureBasic zu sein, die, an dieser Stelle geändert, PureBasic auflösen würde.
Multipass zu fordern, kann also nur auf Gegenwehr stoßen.

Ich empfehle sich eher darüber zu freuen, dass
- Vorwärtsdeklarationen erlaubt sind (dies entspräche der menschlichen Vorsehung)
- 'Tricksereien' möglich sind - also, sich eins der Tools oder anderer Lösungen zu bedienen, die die PureBasicGemeinschaft freizügig anbietet.

Grüße ~ Vera