BlitzMax - Vorschläge & Co

Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu Seite 1, 2, 3, 4, 5  Weiter

Neue Antwort erstellen

hamZta

Administrator

Betreff: BlitzMax - Vorschläge & Co

BeitragFr, Jan 15, 2010 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute!

BlitzMax ist inzwischen in der Version 1.37 erhältlich und wird auch hier im Forum immer beliebter. Meiner Meinung nach programmiert sichs damit ziemlich nett und problemlos. Aber dennoch gibt's hier und da ein paar Ecken an die man früher oder später stößt.

Da ich Einblick in das interne Developer-Forum auf blitzbasic.com habe kriege ich ein bisschen mit, woran Mark & Co gerade werkeln. Und mir scheint, dass BRL von neuer Idee zu neuer Idee springt, ohne dabei alte Baustellen zu beachten. Deshalb hatte ich die Idee, im Namen der deutschen BlitzBasic-Community ein paar Vorschläge/Ideen/Fehler zu sammeln, diese zu übersetzen und Mark zukommen zu lassen. Ich kann nicht versprechen, dass er sich das Ganze ansieht, aber vielleicht gefällt ihm der eine oder andere Punkt.

Wenn sich hier ein paar Punkte angesammelt haben werde ich alles übersetzen und BRL zukommen lassen (und ein bisschen lästig sein, damit ich wenigstens eine Antwort von ihm bekomme Wink ).

Allerdings brauch ich dazu eure Hilfe! Das richtet sich an alle, die BlitzMax besitzen und damit arbeiten: Postet hier (oder schickt mir per PN) was euch an BlitzMax stört, was ihr gerne drin hättet oder andere gute Idee zu der Sprache. Bitte versucht euer Anliegen so klar wie möglich zu formulieren, damit weniger Fragen aufkommen.

Natürlich ist hier auch Platz zum Diskutieren, allerdings würde ich euch bitten beim Thema zu bleiben und Ausschweifungen so gut wie möglich zu unterlassen.

Vielen Dank,
hamZta
Blog.

hamZta

Administrator

BeitragFr, Jan 15, 2010 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Allgemein
Kein Installer unter Windows
BMax sollte unter Windows auch als Version ohne Installer angeboten werden (BtbN)

Updates als Patches
Updates sollten als Patches installierbar sein, keine vollständige Deinstallation/Neuinstallation verlangen (BtbN)

Verbesserte Dokumentation
Verbesserte Dokumentation zu Modulen & Co. (Schnuff)

Transparenterer Entwicklungsprozess
Es wäre sicher für die ganze Community interessant woran gerade gearbeitet wird, wann neue Updates kommen, was diese beinhalten werden und welche Features geplant sind. (hamZta)

BlitzMax-Core
Echte 64bit-Anwendungen
BlitzMax sollte in der Lage sein, echte 64bit-Anwendungen zu kompilieren. Vor allem unter Linux ist es recht nervig, alle benötigten 32bit Libraries nachzuinstallieren um seine Programme kompilieren zu können. (hamZta)

bcc als OpenSource
bcc sollte, wie die anderen Tools auch OpenSource veröffentlicht werden (BtbN)

Parameter bei Konstruktoren
Konstruktoren sollen, wie in den meisten anderen gänigen OOP-fähigen Sprachen Parameter unterstützen (BtbN)

Richtige Funktions-/Methodenüberladung
Richtige Überladung mit verschiedenen Parametern sollte unterstützt werden. (BtbN)

cl-Compiler unter Windows benutzen
bmk sollte als Option anbieten, unter Windows den VS cl-Compiler anstelle von gcc zu verwenden. Dadurch würde auch die (nervige) Installation von MinGW entfallen. (BtbN)

Generics wie in Java/C#
BlitzMax sollte Generics unterstützen, inklusive manuelle Implementierung der Funktion für bestimmte Datentypen. (BtbN)

Support für Debugger
Support für Third-Party-Debugger. (BtbN)

Operator Overloading
Überladen von Operatoren, wie in anderen Sprachen (zB.: C++) (Nicdel)

Zirkuläre Imports
Zirkuläre Imports sollten entweder erlaubt oder durch Precompiler-Statemens unterbunden werden können. (BladeRunner, Goodjee)

Erweiterte Precompiler-Statements
Precompiler-Statements wie ?define, ?ifdef, ?ifndef etc. sollten eingebaut werden. (FireballFlame)
Eventuell auch Hilfsmittel wie __LINE__ und __FILE__, die beim Kompilieren automatisch ersetzt werden. (Schnuff)

Verwendung der Object-Basismethoden
z.B. Verwendung der Compare-Methode eines Objektes bei Vergleichsoperatoren. (FireballFlame)
Entfernung nichtverwendeter Methoden (SendMessage). (hamZta)

Information Hiding in Types
Private/Public nicht nur datei- sondern auch typebezogen einführen. (FireballFlame)

Bundle Flags einstellbar (OSX)
Man sollte Flags in der miterstellten info.plist frei einstellen können um einen reibungslosen Ablauf mit OSX zu garantieren (d-bug)

Kopieren eigener Ressourcen ins Bundle(OSX)
Nach dem Kompilieren sollten vorher definierte Ressourcen ins .app-Bundle kopiert werden (d-bug)

Reflection für normale Funktionen
Reflection sollte nicht nur für Types sondern auch für alle Functions möglich sein. (coolo)

SuperStrict als Standard
SuperStrict sollte Standard sein. (Xeres)

Verbessertes Standard-Audio-Modul
Das Standard-Modul kann Dateien nicht streamen und ist somit für größere Sounds unbrauchbar. (Firstdeathmaker)

Objekte kopieren
Objekte sollten mit Hilfe einer Funktion/Methode kopiert werden können. (BladeRunner)

Unsigned Integer & Long
Obige Datentypen sollen das Speichern von großen Zahlen ermöglichen. (BladeRunner)

MaxIDE

Module
Threadsafety
Wenn BlitzMax schon mit Threading angeboten wird, dann sollten die beiliegenden Module auch thread-safe sein, zB.: Events, auch threadübergreifend. (BtbN)

Überarbeitung einiger Module
BRL.Filesystem: Arbeitet mit Integer-Handles statt Types (mpmxyz)
BRL.MaxLua: Lua-State offen verfügbar oder einstellbar machen (coolo)

Druckersupport
Ein offizielles Modul sollte einfaches Drucken aus BlitzMax ermöglichen. (Midimaster)

Offizielles 3D-Modul
Neben Max2D sollte es ein offizielles 3D-Modul geben, um bei Supportfragen nicht von Drittanbietern abhängig zu sein.
  • Zuletzt bearbeitet von hamZta am Do, Jan 28, 2010 14:11, insgesamt 5-mal bearbeitet

BtbN

BeitragFr, Jan 15, 2010 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal ein paar Punkte, die mich schon eine ganze weile stören:

  • Windows-Version ohne installer
  • Diff-Patches, sodass man nicht all seine eventuellen änderungen an Modulen neu anwenden muss
  • Der BCC sollte Open-Source sein, der komplette Rest ist es bereits, ich sehe keinen grund, den compiler-kern nicht auf der Community freizugeben.
  • Den Konstruktoren fehlen Parameter. Es sollte kein Problem sein, dass im compiler einzubauen
  • Funktions und Methoden-Überladung(Funktionen gleichen Namens, aber verschiedenen Parametern)
  • Es sollte möglich sein, unter Windows den cl compiler vom Visual Studio anstelle vom gcc zu nutzen, da dieser unter Windows klar die bessere wahl darstellt.
  • Einfache Generics(Java/C# like) mit Sonderfall-Behandlung(d.h. das man die allgemeine funktion für einen/mehrere Datentypen manuell implementieren kann)
  • Support für echte Debugger, der eingebaute bringts einfach nicht, vorallem, wenns an Threads geht.
  • Thread-Safety oder wenigstens Reentrance der BRL und PUB Module.
  • Dabei insbesondere: Events, die mit Threads klar kommen, und zwischen Threads hin und her geschickt werden können.
  • 64bit Support

Das wars eigentlich erstmal, wenn mir noch was einfällt, schreib ichs dazu.

Nicdel

BeitragFr, Jan 15, 2010 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Das meiste hat BtbN schon gesagt, hier noch etwas von mir:

Arrow Sound- und Videosupport ohne Extra-Module
Arrow Überladen von Operatoren
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

hamZta

Administrator

BeitragFr, Jan 15, 2010 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicdel hat Folgendes geschrieben:
Arrow Sound- und Videosupport ohne Extra-Module


Hab ich jetzt mal rausgelassen. Kann jemand bestätigen, dass das mit den BRL/PUB-Modulen nicht vernünftig möglich ist?
Blog.

Nicdel

BeitragFr, Jan 15, 2010 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Sound nicht unbedingt, Video allerdings schon.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

beanage.johannes

BeitragFr, Jan 15, 2010 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Jopp, finde beides ist nicht brauchbar, sowohl sound als auch video (bei video vieleich weils nicht vorhanden ist^^)
Wünsche mir ein TableView Gadget in der MaxGUI weil das eig. das wichtigste Gadget ist um Daten darzustellen wie ich finde.
Und eine Mac IDE ala Xcode Very Happy
  • Zuletzt bearbeitet von beanage.johannes am Fr, Jan 22, 2010 16:13, insgesamt einmal bearbeitet

Jolinah

BeitragFr, Jan 15, 2010 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Die bisher genannten Punkte finde ich auch die wichtigsten, (vor allem Konstruktor mit Parameter und Methoden-/Funktionsüberladung). Zusätzlich würde mir aber auch noch folgendes gefallen:

- Zahlen-Datentypen als Objekte (wenn dies nicht all zu grossen Performance-Verlust bedeuten würde). Dann könnte man in Listen auch mal Zahlen einfügen etc.

- (Nicht wichtig) Erweiterungsmethoden (wie bei C#). Es ist z.b. möglich der String-Klasse eigene Methoden hinzuzufügen, ohne dabei einen eigenen abgeleiteten Type etc. erstellen zu müssen. Im Prinzip sowas wie Function Encrypt:String(str:String) nur dass man dann direkt schreiben kann "String".Encrypt() und diese Erweiterungsmethode/Funktion automatisch aufgerufen wird.

- (Nicht wichtig) Partial Type (wie bei C# partial class). Types können auf mehrere Dateien etc. aufgeteilt werden. Indem man Partial Type Name schreibt. Mehrere Partial-Blöcke werden dann zusammengefügt zu dem einen Type.


Die letzten beiden sind wirklich unwichtig, aber wären trotzdem evtl. nützlich Wink

klin

BeitragFr, Jan 15, 2010 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicdel hat Folgendes geschrieben:
Sound nicht unbedingt, Video allerdings schon.

Jop! Das wollte ich nämlich vorschlagen^^ Video wäre allerdings sinnvoll. Am besten mpg oder was auch noch sehr geil wäre AVI!!!111eins
Was man auch noch adden könnte.. hmm...
Vielleicht auch noch wenn es geht, ein Bild Blur zu zeichnen in echt zeit Smile Ich meine, viele Programme/Spiele können sowas locker o.o .

THX
MFG
Klin

BladeRunner

Moderator

BeitragFr, Jan 15, 2010 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Für Import eine IFnDef-Anweisung, um cirkuläre Imports zu unterbinden und somit das Handling zu erleichtern.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

ChristianK

BeitragFr, Jan 15, 2010 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
klin hat Folgendes geschrieben:
Vielleicht auch noch wenn es geht, ein Bild Blur zu zeichnen in echt zeit

An sowas ähnliches hab ich auch gedacht. Shader-Support allgemein wäre ganz praktisch. Oder wenigstens die Möglichkeit, Max2D durch eigene Module zu erweitern, also Zugriff auf Direct3D-Device, OpenGL-Context etc. über ein einheitliches Interface.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Goodjee

BeitragFr, Jan 15, 2010 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
auf jeden fall circuläres importen erlauben, also

file a.bmx:
BlitzMax: [AUSKLAPPEN]

Import b.bmx

Type a
Field test:b
EndType


file b.bmx:
BlitzMax: [AUSKLAPPEN]

Import a.bmx

Type b
Field test:a
EndType
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

FireballFlame

BeitragFr, Jan 15, 2010 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
hamZta hat Folgendes geschrieben:
Richtige Funktions-/Methodenüberladung
Richtige Überladung mit verschiedenen Parametern sollte unterstützt werden. (BtbN)
Muss nicht sein, optionale Parameter haben auch ihre Vorteile.

Jolinah hat Folgendes geschrieben:
- Zahlen-Datentypen als Objekte (wenn dies nicht all zu grossen Performance-Verlust bedeuten würde). Dann könnte man in Listen auch mal Zahlen einfügen etc.
Wäre das nicht schon durch den Generic-Vorschlag von BtbN abgedeckt? Aber wenn, dann vielleicht eher als neuen Datentyp, nicht als Object.

Eigene Wünsche:
- eigene Bedingungen für ?-Blöcke bzw. richtige Konstanten (die beim Kompilieren ausgewertet werden)
- sinnvolle Verwendung der Standard-Object-Methoden, zumindest Benutzung der Compare-Methode durch die Vergleichsoperatoren
- Private und Public nicht nur für ganze Klassen, sondern auch innerhalb der Klassen für Felder, Globals, Methoden und Funktionen
- Boolean-Datentyp?
- vernünftige Dokumentation, siehe u.a. BRL.Threads Rolling Eyes
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit
  • Zuletzt bearbeitet von FireballFlame am Fr, Jan 15, 2010 19:08, insgesamt einmal bearbeitet

BladeRunner

Moderator

BeitragFr, Jan 15, 2010 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
*Hust*
Wenn ich nicht irre hatten wir die Diskussion über überladene Methoden erst gestern und eigentlich alle ausser Dir waren dafür, FBF.
Von daher plädiere ich das dieser Vorschlag drinbleibt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Artemis

BeitragFr, Jan 15, 2010 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
@Fireball-Flame,

mit dem ersten ist denke ich mal so etwas gemeint:
BlitzMax: [AUSKLAPPEN]
Function Maximum(a:Int, b:Int)

EndFunction
Function Maximum(a:Float, b:Float)

EndFunction

Das kann man nicht mit optionalen Parametern machen.

Was ich super fände wäre Operator-Überladung:

Also dass man z.B. in einem Type sage kann
BlitzMax: [AUSKLAPPEN]
Method +(value:Int)
Return Self.intValue + value
EndMethod

Thunder

BeitragFr, Jan 15, 2010 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde der Datentyp Byte sollte etwas erweitert werden, und zwar so, dass er auch Zeichen akzeptiert(ohne explizite Typumwandlung durch Asc <-> Chr). Z. B. wäre( wie in C und Assembler) so etwas möglich:

BlitzMax: [AUSKLAPPEN]
For Local i:Byte="A" To "Z"
'...
Next



mfg Thunder
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
  • Zuletzt bearbeitet von Thunder am Fr, Jan 15, 2010 19:24, insgesamt 2-mal bearbeitet

FireballFlame

BeitragFr, Jan 15, 2010 19:18
Antworten mit Zitat
Benutzer-Profile anzeigen
*Blade ein Hustenbonbon reich*
Wie viele Leute dafür und wie viele dagegen sind, kann hamZta ja selbst sehen.
Meine Meinung werd ich doch trotzdem nennen dürfen Wink
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

klin

BeitragFr, Jan 15, 2010 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Thunder hat Folgendes geschrieben:
Ich finde der Datentyp Byte sollte etwas erweitert werden, und zwar so, dass er auch Zeichen akzeptiert(ohne explizite Typumwandlung durch Asc <-> Chr). Z. B. wäre( wie in C und Assembler) so etwas möglich:

BlitzMax: [AUSKLAPPEN]
For Local i:Byte="A" To "Z"
'...
Next



mfg Thunder


Du meinst wohl For Local i:STRING="A" To "Z"
Aber für was könnte man sowas benötigen? Ich meine... das bekommt man auch mit ASCII hin. Jedoch sinds noch Bytes Razz

MFG
Klin

Der Eisvogel

BeitragFr, Jan 15, 2010 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
@klin: Nein, er meint tatsächlich i:Byte Wink
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D
Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB
Projekte: Window-Crasher
Ich liebe es mit der WinAPI zu spielen.
 

ChristianK

BeitragFr, Jan 15, 2010 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Er meinte, dass man einzelne Zeichen direkt als ASCII-Code in einer Zahlenvariable und ohne String speichern kann. Dann sollte man aber entweder Short dafür benutzen (Unicode) oder einen passen Char-Datentyp einführen.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Gehe zu Seite 1, 2, 3, 4, 5  Weiter

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group