Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Was habt ihr mit FreeBASIC gemacht?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
alter Hase



Anmeldungsdatum: 18.02.2009
Beiträge: 2

BeitragVerfasst am: 18.02.2009, 02:26    Titel: Was habt ihr mit FreeBASIC gemacht? Antworten mit Zitat

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.
mit dem Kopf durch die Mauer wollen
Das einfache Testprogramm: "for i=0 to 100:print i:next", läuft nicht mehr!
weinen
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".
missbilligen
Dann läuft das Programm, aber braucht für diese primitive Aufgabe mehrere Sekunden. Kopf schütteln
Auf meinem alten Rechner, mit der alten Version von FreeBASIC, ist das Progrämmchen im Bruchteil einer Sekunde durch!
traurig traurig traurig
So hat FreeBASIC keine Zukunft mehr.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
isiprimax



Anmeldungsdatum: 02.01.2009
Beiträge: 77

BeitragVerfasst am: 18.02.2009, 05:22    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 18.02.2009, 08:52    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 18.02.2009, 09:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
alter Hase



Anmeldungsdatum: 18.02.2009
Beiträge: 2

BeitragVerfasst am: 18.02.2009, 11:53    Titel: Antworten mit Zitat

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.
missbilligen

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 18.02.2009, 12:13    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 18.02.2009, 12:39    Titel: Antworten mit Zitat

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 grinsen )
_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 18.02.2009, 14:20    Titel: Was hast du mit FreeBASIC gemacht? Antworten mit Zitat

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.
mit dem Kopf durch die Mauer wollen
Eine einfache Testfahrt: "20km quer durch die Stadt", da läuft nichts mehr!
weinen
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".
missbilligen
Dann läuft das Auto, aber braucht für diese kurze Strecke fast eine Stunde. Kopf schütteln
Früher mit meinem alten Renner, ohne diese vielen Ampeln und Geschwindigkeitsbegrenzungen, war ich in wenigen Minuten da!
traurig traurig traurig
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 18.02.2009, 14:41    Titel: Re: Was hast du mit FreeBASIC gemacht? Antworten mit Zitat

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! cool
_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 18.02.2009, 15:06    Titel: Re: Was hast du mit FreeBASIC gemacht? Antworten mit Zitat

Elektronix hat Folgendes geschrieben:

Der Käfer hatte 4 Gänge. Da mußte man auch kuppeln! cool
nur die ersten 10 Jahre, dann ging es mit etwas Übung auch ohne kuppeln grinsen

/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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 18.02.2009, 16:06    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 18.02.2009, 17:13    Titel: Antworten mit Zitat

@volta: Daumen rauf!

@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
Benutzer-Profile anzeigen Private Nachricht senden
isiprimax



Anmeldungsdatum: 02.01.2009
Beiträge: 77

BeitragVerfasst am: 18.02.2009, 22:16    Titel: Antworten mit Zitat

ICH SCHREI MICH WEG vor Freude klatschen vor Freude klatschen vor Freude klatschen Volta ftw
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 18.02.2009, 22:34    Titel: Re: Was habt ihr mit FreeBASIC gemacht? Antworten mit Zitat

alter Hase hat Folgendes geschrieben:
Dann läuft das Programm, aber braucht für diese primitive Aufgabe mehrere Sekunden. Kopf schütteln


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 lächeln )
(Maximum: 0,00115 sek.)
Prozessor: Dualcore (2 x 2,6 ghz)
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 19.02.2009, 15:17    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
user123



Anmeldungsdatum: 13.02.2009
Beiträge: 11

BeitragVerfasst am: 27.02.2009, 23:59    Titel: Antworten mit Zitat

erst immer kuppeln


Man, oh man, waht für eine Dorfkötersprache... lächeln

Mensch , das heisst verkuppeln, man...oh man... lächeln

Du solltest mal mehr Ampere trinken...., oh je.... lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 28.02.2009, 00:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 28.02.2009, 02:30    Titel: Antworten mit Zitat

user123 hat Folgendes geschrieben:
Du solltest mal mehr Ampere trinken...., oh je.... lächeln

Oh je ...
Freitagabend, und Peter hat mal wieder zu lange am Bierbach gesoffen ... grinsen
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz