 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
alter Hase
Anmeldungsdatum: 18.02.2009 Beiträge: 2
|
Verfasst am: 18.02.2009, 02:26 Titel: Was habt ihr mit FreeBASIC gemacht? |
|
|
Hallo allerseits
Seit vielen Jahren programmiere ich in Qbasic und seit einigen Jahren auch in FreeBASIC. Jetzt bin ich auf einen Rechner, P4 3GHz (dreimal so schnell wie mein alter) umgestiegen und habe die neue Version von FreeBASIC installiert.
Das einfache Testprogramm: "for i=0 to 100:print i:next", läuft nicht mehr!
Finde dann nach umständlichem Suchen, dass jetzt Datentypen deklariert werden müssen und nicht mehr in der einfachen alten Form: "defint i", sondern aufwändig: "dim i as integer".
Dann läuft das Programm, aber braucht für diese primitive Aufgabe mehrere Sekunden.
Auf meinem alten Rechner, mit der alten Version von FreeBASIC, ist das Progrämmchen im Bruchteil einer Sekunde durch!
So hat FreeBASIC keine Zukunft mehr. |
|
Nach oben |
|
 |
isiprimax
Anmeldungsdatum: 02.01.2009 Beiträge: 77
|
Verfasst am: 18.02.2009, 05:22 Titel: |
|
|
Hättest du weiter gesucht hättest du die option -lang qb gefunden
Code: | -lang <name> Select language compatibility: deprecated, fblite, qb |
Und ich finde die Ausführungsgeschwindigkeit, keineswegs lahm.
Finde diese Neuerungen sogar mehr als gut. Der Programmierstil wurde verbessert.
mfg |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
Verfasst am: 18.02.2009, 08:52 Titel: |
|
|
Für eine Schleife lässt sich eine Variable auch schnell mal lokal definieren:
Code: | FOR i AS INTEGER = 0 TO 100 : PRINT i : NEXT |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 18.02.2009, 09:03 Titel: |
|
|
Nur mal nebenbei: QBasic hat aus unerfindlichen Gründen das Arbeiten mit Registern fast schon manisch vermieden - effektiveres Registerhandling hätte QBasic deutlich beschleunigt. Das plus die Tatsache, dass FreeBasic von Prozessorerweiterungen wie MMX usw. gebraucht macht, macht FreeBasic insgesamt "schneller" als QBasic.
Der Effekt, dass 100 Zeilen Ausgabe auf der Standardkonsole evlt. sogar länger brauchen als unter QBasic liegt daran, dass FreeBasic auf die Windows- (bzw. Linux-) Konsole schreibt, und nicht in das emulierte "Vollbildfenster" von QB/QBasic.
Kurz:
Print = Langsamer Befehl,
FreeBasic = schneller als QBasic. _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
alter Hase
Anmeldungsdatum: 18.02.2009 Beiträge: 2
|
Verfasst am: 18.02.2009, 11:53 Titel: |
|
|
Danke für die Antworten.
@isiprimax
Den Hinweis auf "-lang" hatte ich auch gefunden, aber die Sache ist dadruch auch nicht unbedingt besser verständlich. Der "Frustfaktor" für den Einsteiger, der nur schnell mal etwas programmieren will, ist deutlich höher. Wenn du anführst, dass der Programmierstil verbessert wird, dann mag das stimmen, aber der Versuch, Menschen zu ihrem Glück zu zwingen, wird so scheitern.
@nemored
Danke für den Tip, aber komplizierter ist die Sache schon. Es ist auch gut, dass die Hilfe jetzt in deutsch vorliegt, aber leider in diesem umständlichen "Windowsgeschwafel". Die Hilfe unter Qbasic mit den praktischen Beispielen, ist dagegen unübertroffen.
@Lutz Ifer
Dass der Printbefehl die Programmausführung ausbremst, ist mir auch bekannt, aber eine so deutliche Verlangsammung ist inakzeptabel, insbesondere weil auf Bildschirmausgaben praktisch in fast keinem Programm verzichtet werden kann. Das FreeBASIC schneller sein müßte als Qbasic ergibt sich alleine schon daraus, dass das eine compiliert und das andere interpretiert ist.
Es ist sicher richtig Ergänzungen und neue Möglichkeiten in Programmiersprachen einzuführen. Es ist aber darauf zu achten, dass diese optional sind und nicht zu Lasten der Kompatiblität gehen.
MfG |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 18.02.2009, 12:13 Titel: |
|
|
alter Hase hat Folgendes geschrieben: | @Lutz Ifer
Dass der Printbefehl die Programmausführung ausbremst, ist mir auch bekannt, aber eine so deutliche Verlangsammung ist inakzeptabel |
Was ich versucht habe, Dir klar zu machen ist, dass nicht FreeBasic, sondern das Betriebssystem respektive dessen Konsolenemulation an der "langsamen" Ausgabe schuld ist. QB/QuickBasic verwendet Bios-Calls, weil QB (ich spar' mir mal langsam die Doppelnennung) von Vollbild + Single Thread Umgebung ausgeht - was dann in Vollbild und Single Thread Umgebung tatsächlich die schnellst/best-mögliche Lösung darstellt. In einer emulierten Konsole wie unter Windows / Linux ebenfalls ist das nicht drin, und auch da wird QB genauso schnell/langsam sein, wie alle Anderen auch.
alter Hase hat Folgendes geschrieben: | Das FreeBASIC schneller sein müßte als Qbasic ergibt sich alleine schon daraus, dass das eine compiliert und das andere interpretiert ist. |
Jain. Hier ist zwischen QBasic und QuickBasic zu unterscheiden - das Eine ist tatsächlich eine reine Interpretersprache, das Andere kann vor"compilierten" Bytecode verwenden. Es ist in dem Sinne kein echtes "Compilieren", als dass nur dieser Intermediate Code an den Interpreter angehängt wird, ist aber an sich schon eine Abstraktionsstufe vom Sourcecode weg.
alter Hase hat Folgendes geschrieben: | Es ist sicher richtig Ergänzungen und neue Möglichkeiten in Programmiersprachen einzuführen. Es ist aber darauf zu achten, dass diese optional sind und nicht zu Lasten der Kompatiblität gehen. |
Auch Jain. Über die Ziele, die mit FreeBasic verfolgt werden, gibt es auch im englischen Forum eine rege Diskussion, ob FB als reines "32Bit Qbasic" oder eben "moderne, Objekt orientierte Programmiersprache auf der Basis der QBasic-Syntax" gesehen werden will.
Deshalb gibt es ja diese FreeBasic-"Zweige", -lang qb, -lang fblite usw., um genau diesen Ansprüchen gerecht zu werden, die da heissen: Der Eine möchte seine QB-Programme möglichst unverändert in FB compiliert bekommen, der Andere möchte externe Bibliotheken wie die WinApi, OpenGL o.Ä. verwenden.
Davon abgesehen, dass die Verwendung von undeklarierten Variablen echt unterste Schublade an Programmierstil ist - wo ist denn jetzt genau das Problem, bei der Verwendung von "fbc -lang qb"? _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 18.02.2009, 12:39 Titel: |
|
|
alter Hase hat Folgendes geschrieben: | Danke für die Antworten.
@isiprimax
Den Hinweis auf "-lang" hatte ich auch gefunden, aber die Sache ist dadruch auch nicht unbedingt besser verständlich. Der "Frustfaktor" für den Einsteiger, der nur schnell mal etwas programmieren will, ist deutlich höher. Wenn du anführst, dass der Programmierstil verbessert wird, dann mag das stimmen, aber der Versuch, Menschen zu ihrem Glück zu zwingen, wird so scheitern.
|
Das finde ich nun gerade nicht, und ich spreche aus eigener Erfahrung. Der Umstieg von QB auf FB ist mir sehr leicht gefallen. Sich die Vordeklaration von Variablen anzugewöhnen, sollte ja nicht all zu schwierig sein. Es ist aber auch klar, daß man ein Programm aus einer Programmsprache nicht einfach so ein eine andere portieren kann, das sollte jedem klar sein. Schließlich versteht auch nicht jeder Deutsche automatisch einen Holländer.
Übrigens ist die Vordeklaration in allen anderen gängigen Sprachen seit langem Pflicht. Wer neu einsteigt, tut gut daran, sich das von Anfang an anzugewöhnen.
Zitat: |
@nemored
Danke für den Tip, aber komplizierter ist die Sache schon. Es ist auch gut, dass die Hilfe jetzt in deutsch vorliegt, aber leider in diesem umständlichen "Windowsgeschwafel". Die Hilfe unter Qbasic mit den praktischen Beispielen, ist dagegen unübertroffen.
|
Was nennst Du denn Windows-Geschwafel? Ein bißchen abstrakt muß man die Beispiele schon machen, damit sie nicht zu eng eingegrenzt sind.
Zitat: |
@Lutz Ifer
Dass der Printbefehl die Programmausführung ausbremst, ist mir auch bekannt, aber eine so deutliche Verlangsammung ist inakzeptabel, insbesondere weil auf Bildschirmausgaben praktisch in fast keinem Programm verzichtet werden kann. Das FreeBASIC schneller sein müßte als Qbasic ergibt sich alleine schon daraus, dass das eine compiliert und das andere interpretiert ist.
|
Dafür kann FreeBasic nix. Ich habe mal zum Vergleich ein Programm mit dem FB-DOS-Compiler und mit dem Windows-Compiler umgesetzt und unter Win98 getestet. Der Geschwindigkeitsunterschied ist enorm (DOS-Compilierte Programme sind im Win98-DOS-Fenster weit schneller, weil da noch echtes DOS genutzt wird). Unter neueren Systemen ohne DOS-Basis (Win2k, XP, Vista) macht das aber keinen Unterschied, da die Console ohnehin auf die Console-API zugreift.
Abgesehen davon muß man einplanen, daß sich die DOS-Console in Zukunft immer weiter verändern wird, was die Kompatibilität mit "echten" DOS-Programmen zunehmend erschwert. Manche alten DOS-Spiele laufen auf WinXP heute schon nicht mehr (dann werden Virtual Machines verwendet). Da ist es schon gut, wenn die Progs gleich für die Console-API übersetzt werden. In diesem Sinn wird QB über kurz oder lang mangels "Lebensraum" aussterben, weil es nicht mehr angepaßt wird. FreeBasic prophezei ich da eine weit bessere Zukunft (Evolution der Programmsprachen ) _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 18.02.2009, 14:20 Titel: Was hast du mit FreeBASIC gemacht? |
|
|
Was hast du mit FreeBASIC gemacht?
[Satire]
Hallo allerseits
Seit vielen Jahren fahre ich Käfer und seit einigen Jahren auch einen Golf. Jetzt bin ich auf einen Porsche 3Liter Turbo (dreimal so schnell wie mein alter) umgestiegen.
Eine einfache Testfahrt: "20km quer durch die Stadt", da läuft nichts mehr!
Finde dann nach umständlichem Suchen, dass jetzt 6 Gänge geschaltet werden müssen und nicht mehr in der einfachen alten Form: "Gang rein und Gas", sondern aufwändig: "erst immer kuppeln".
Dann läuft das Auto, aber braucht für diese kurze Strecke fast eine Stunde.
Früher mit meinem alten Renner, ohne diese vielen Ampeln und Geschwindigkeitsbegrenzungen, war ich in wenigen Minuten da!
So hat Porsche keine Zukunft mehr.
[/Satire] _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 18.02.2009, 14:41 Titel: Re: Was hast du mit FreeBASIC gemacht? |
|
|
volta hat Folgendes geschrieben: |
Finde dann nach umständlichem Suchen, dass jetzt 6 Gänge geschaltet werden müssen und nicht mehr in der einfachen alten Form: "Gang rein und Gas", sondern aufwändig: "erst immer kuppeln". |
Der Käfer hatte 4 Gänge. Da mußte man auch kuppeln!  _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 18.02.2009, 15:06 Titel: Re: Was hast du mit FreeBASIC gemacht? |
|
|
Elektronix hat Folgendes geschrieben: |
Der Käfer hatte 4 Gänge. Da mußte man auch kuppeln!  | nur die ersten 10 Jahre, dann ging es mit etwas Übung auch ohne kuppeln
/Fundstück zu FreeBASIC:
http://www.youtube.com/watch?v=PFyMM-XPzX8&f _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.02.2009, 16:06 Titel: |
|
|
alter Hase hat Folgendes geschrieben: | (...)ist inakzeptabel, insbesondere weil auf Bildschirmausgaben praktisch in fast keinem Programm verzichtet werden kann. |
Da hast du allerdings recht. In meinen Spielen kann ich in der tat nicht auf Bildschirmausgaben verzichten, aber OpenGL ist doch erfrischend schnell.
Hast du schon mal versucht, deine Konsolenanwendung im Vollbild laufen zu lassen? Ist wesentlich schneller als im Teilfenster - auch bei QBasic-Programmen. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 18.02.2009, 17:13 Titel: |
|
|
@volta:
@alter Hase:
Wenn dir an FB so viel widerstrebt, dann hau dir halt wieder QB auf die Platte. oO _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
isiprimax
Anmeldungsdatum: 02.01.2009 Beiträge: 77
|
Verfasst am: 18.02.2009, 22:16 Titel: |
|
|
ICH SCHREI MICH WEG Volta ftw |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 18.02.2009, 22:34 Titel: Re: Was habt ihr mit FreeBASIC gemacht? |
|
|
alter Hase hat Folgendes geschrieben: | Dann läuft das Programm, aber braucht für diese primitive Aufgabe mehrere Sekunden.
|
Bei mir läuft Code: | for i as integer = 1 to 100 : print i : next |
in 0,000540018 Sekunden durch. (mit Timer gestoppt).
Allerdings: Ich nutze Linux. Nimm das als beweiß das die anderen recht haben, die meinen es liegt an Windows und nicht an FB
Achja, verwendete Shell: xterm
(Rekord-schnelligkeit des codes: 0,00015(...) sekunden )
(Maximum: 0,00115 sek.)
Prozessor: Dualcore (2 x 2,6 ghz) _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
Verfasst am: 19.02.2009, 15:17 Titel: |
|
|
Wollte ich auch gerade testen, kann ich mir ja dann sparen - dafür ein anderer Test: Unter Windos XP dauert es bei mir in der fbc-Konsole etwa 0.15 Sekunden, wenn viele Zeilenvorschübe gemacht werden müssen. Den Code
Zitat: | for i as integer = 1 to 100 : print i; : next |
(beachte den Strichpunkt) schaffe ich unter 0.01 Sekunden. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
user123
Anmeldungsdatum: 13.02.2009 Beiträge: 11
|
Verfasst am: 27.02.2009, 23:59 Titel: |
|
|
erst immer kuppeln
Man, oh man, waht für eine Dorfkötersprache...
Mensch , das heisst verkuppeln, man...oh man...
Du solltest mal mehr Ampere trinken...., oh je....  |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 28.02.2009, 00:26 Titel: |
|
|
er meinte die Kupplung eines autos benutzen... und ich bin zwar nicht Herr Duden, aber ich würde das als richtig durchgehen lassen.
Verkuppeln tut man 2 Dinge (ja, ich weiß, das tut ist nicht ganz in ordnung...) oder personen.
*PLONK* _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 28.02.2009, 02:30 Titel: |
|
|
user123 hat Folgendes geschrieben: | Du solltest mal mehr Ampere trinken...., oh je....  |
Oh je ...
Freitagabend, und Peter hat mal wieder zu lange am Bierbach gesoffen ...  _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|