Code: Select all
if array1=array2 or array1<>array2 then....
Code: Select all
if array1=array2 or array1<>array2 then....
I would push for the opposite. Rather than bloat the FB keyword-space, I'd prefer to see many other things in the runtime library pushed out to .bi files. That way you can use them when you wish to, otherwise leave the symbol names open for the programmer's own use. Most languages have maybe 30-40 reserved key words. FB has many times that. Another solution might be to push many of them into a special namespace.Kot wrote:Make vbcompat.bi and datetime.bi obsolete.
Do you have examples of what you would remove just to make it clearer what exactly you mean?caseih wrote: I would push for the opposite. Rather than bloat the FB keyword-space, I'd prefer to see many other things in the runtime library pushed out to .bi files. That way you can use them when you wish to, otherwise leave the symbol names open for the programmer's own use. Most languages have maybe 30-40 reserved key words. FB has many times that. Another solution might be to push many of them into a special namespace.
Sure. The main example would be the graphics API. line, draw, pset, bload, screenres, etc. Other built-in functions could be exposed though a .bi file too, such as the various conversion functions like CVI, etc. In fact most of the functions in the runtime library don't need to be part of the language proper. Even MID(), CHR(), and friends. This would leave a nice compact language core and you could still use all the nice batteries that BASIC has traditionally included if you require them.Tourist Trap wrote:Do you have examples of what you would remove just to make it clearer what exactly you mean?
Code: Select all
Lists of keywords in ...
ANSI COBOL 85: 357
SystemVerilog: 250 + 73 reserved system functions = 323
VHDL 2008 115 reserved words
C#: 79 + 23 contextual = 102
F#: 64 + 8 from ocaml + 26 future = 98
C++: 82
Java: 50
PHP: 49
Ruby 42
Python 3.x: 33
C: 32
Python 2.7: 31
Go: 25
Smalltalk: 6 pseudo-variables
iota: 2
In other words those instructions would be required:caseih wrote: Sure. The main example would be the graphics API. line, draw, pset, bload, screenres, etc. Other built-in functions could be exposed though a .bi file too, such as the various conversion functions like CVI, etc. In fact most of the functions in the runtime library don't need to be part of the language proper. Even MID(), CHR(), and friends. This would leave a nice compact language core and you could still use all the nice batteries that BASIC has traditionally included if you require them.
Code: Select all
#include "graphics.bi"
#include "conversion.bi"
#include "string.bi"
Code: Select all
#lang "minifb"
dim .... ' works
print .... 'not work!
Sancho2, it's hard to compare. It's not a question of classes. For instance VB.net has classes. So you will include features via classes, and the class itself will manage with multiple low level includes that are required for his work. So you won't see the includes by just adding an object to your code, but the object definitions will certainly rely on a forest of hidden includes. For instance, if you want to write to the console, you'll need the console class, that will do all includes needed for IO operation at console level (is it CRT, is it windows API?, or something else). But this is different to add an object, than to add an include file. One is natural (hides technical stuff behind the class code), the other is just technical.sancho2 wrote:The language C (and others) has no classes so thats a head start in fewer keywords.
C is an easy language to learn with an almost one for one translation to BASIC being possible. I used it for about two years during my MSDOS days. By using a C++ compiler you will also have access to lots of useful objects even if your program itself is not object orientated.Tourist Trap wrote:I'm not a C programer!
C++ is a very hard language. Seriously you must try and give us your feedback only then. And it's object oriented by design. Or I can't see why one would use it? Ok, you can use a C++ compiler compatible with C. But if you dont do OOP, you will really not do much C++.BasicCoder2 wrote: I used it for about two years during my MSDOS days. By using a C++ compiler you will also have access to lots of useful objects even if your program itself is not object orientated.
BasicCoder2, FB has enough power right now to be extended by the users. There will always be a need for core development of course, at least to keep things compatible with newer systems.BasicCoder2 wrote: Without a team of enthusiastic developers I see no future for FreeBasic. Indeed last week I decided to stop using it and start playing with more modern and easier to use languages when it came to things not supported by FreeBasic. Like other FreeBasic programmers that have moved on I will probably visit the forum occasionally but as a useful tool for a novice or occasional hobby programmer FreeBASIC has had its day.
Isn't it true that the compiler vets only the keywords that are used? So, is the only issue is the programmer not being able to use the keywords as variable and function names?caseih wrote:I would push for the opposite. Rather than bloat the FB keyword-space, I'd prefer to see many other things in the runtime library pushed out to .bi files. That way you can use them when you wish to, otherwise leave the symbol names open for the programmer's own use. Most languages have maybe 30-40 reserved key words. FB has many times that. Another solution might be to push many of them into a special namespace.
Yes and no. Just because you use objects doesn't mean your code is object-oriented. There's nothing wrong with procedural C++ code, or event-driven C++ code. One of C++'s redeeming graces is that it's not like Java where everything is forced into some kind object-oriented paradigm even when that's not appropriate.Tourist Trap wrote:C++ is a very hard language. Seriously you must try and give us your feedback only then. And it's object oriented by design. Or I can't see why one would use it? Ok, you can use a C++ compiler compatible with C. But if you dont do OOP, you will really not do much C++.BasicCoder2 wrote:I used it for about two years during my MSDOS days. By using a C++ compiler you will also have access to lots of useful objects even if your program itself is not object orientated.
I guess I don't understand your logic. Mature languages move very slowly, for good reason. The latest revision of C is C11 (2011), nearly 12 years after C99. And many compilers still don't support C99 yet, and many features are convenience features that many programmers may not find essential.BasicCoder2 wrote:Without a team of enthusiastic developers I see no future for FreeBasic. Indeed last week I decided to stop using it and start playing with more modern and easier to use languages when it came to things not supported by FreeBasic. Like other FreeBasic programmers that have moved on I will probably visit the forum occasionally but as a useful tool for a novice or occasional hobby programmer FreeBASIC has had its day.
C is a very bad example, since it is more driven by OS and embedded developers than by application developers, as well as keeping its place as lowlevel brother of C++.caseih wrote:I guess I don't understand your logic. Mature languages move very slowly, for good reason. The latest revision of C is C11 (2011), nearly 12 years after C99. And many compilers still don't support C99 yet, and many features are convenience features that many programmers may not find essential.BasicCoder2 wrote:Without a team of enthusiastic developers I see no future for FreeBasic. Indeed last week I decided to stop using it and start playing with more modern and easier to use languages when it came to things not supported by FreeBasic. Like other FreeBasic programmers that have moved on I will probably visit the forum occasionally but as a useful tool for a novice or occasional hobby programmer FreeBASIC has had its day.