A Serious Article Debating the Pros and Cons of FreeBASIC
-
- Posts: 70
- Joined: Aug 06, 2008 22:47
I have finally read most of the replies and have written responses to the posts that directly addressed my essay. I am glad that quite a few of you contributed to the discussion with thoughtful posts.
My conclusion is this: We all need to push the dev team to continue working. Polls should be set up (good idea, Dinosaur) to determine what the community wants. The data that is collected should be used to form and then implement a plan. The best thing we could do is create an official FreeBASIC (and maybe FB Lite) standard. All future versions of the compiler will conform to the OFS (“Official FreeBASIC Standard”) and be able to compile any code that compiles with it. The OFS should require that FB is multi-paradigm, beginner-friendly, and powerful. More features can be added, but the OFS shouldn’t be changed easily and QB dialect development should be closed. I would also like to learn more about the dev team. If they do not have enough free time to work on the project, they should help other people (perhaps students, who have more spare time) learn about the compiler’s architecture so that they can work on it. No matter what happens, we must try our best to accomplish something.
By the way, Randal, welcome to the forums. It will help to have an experienced pro here.
The replies below are mostly just little remarks I would like to make to specific posters and may not be very important to the debate:
@Richard
*_“Firstly FB is not on life support, whatever some people might think.”
} You’re right; a thread in this section has already declared the leading BASIC publication dead. Life support failed.
*_“If a stepping stone is needed then FB may well have a place as a stepping stone. FB is loved because it actually educates its users in transition.”
} I agree. That’s why FB must be saved. However, should beginners keep going to the other side or should they just stay in the middle of the river?
*_“…like an island…”
} I like that metaphor. Clever.
*_“FB is more fun than C.”
} To who? I think that is really relative. I personally am more interested in the more abstract elements of computer science and low-level hardware access -the way the computer works. BASIC shields the programmer from all of that. FB can be more fun, as I wrote, but it is really designed for beginners.
*_“Have you considered some of the more recently developed antidepressants?”
} Ha, ha. No, and I don’t need to. I am neither a pessimist nor an optimist, but rather a realist.
@McLovin
*_“I assume this is just based on your perception. I'd love to see your indepth market study of the people who contributed to the 646,000 downloads from SourceForge. That sure would be a lot of children playing with the compiler.”
} You called my bluff; I don’t have any data to prove my “perception.” However, I would love to see the site admins set up data collectors to monitor logins, posting, etc. Compiler downloads should also be analyzed. Note, though, that the real test is the product. How many of those 646,000 have completed real projects or contributed something to the forum?
*_“FB is by far one of the most advanced BASIC's available.”
} Because it has C++ features like pointers and OOP!!!
*_“The only reason to use it as a stepping stone is because a person's job prospects would dictate it.”
} Why don’t any major software companies use a BASIC dialect as a primary development tool?
*_“Who the hell wants a BASIC that is rooted in 1960's architecture?”
} Advances like OOP must be included, but I also like getting back to BASICs. For beginners, understanding how your program works and is compiled shouldn’t require knowledge of huge APIs or “virtual machines.” I know that programmers shouldn’t be limited by a lack of features, but sometimes beginner languages (yes, FB is a beginner-friendly language) can overwhelm new coders if they force them to use advanced concepts. Having to learn all about classes and methods before even writing helloWorld is what made me hate Java. For an example of simplicity in learning to program, think about microcontroller programming in BASIC. That might seem like the dark ages to experienced PC programmers, but it teaches you how a computer really works inside and then let’s you move on.
*_“GOSUB/GOTO... I see the uses for it and would be nice to retain, but they can easily be replace by simple calls to a Sub/Function.”
} I have to strongly disagree. A language should not force a programmer to write code the “proper” way. Like I said in my response to angros47, if the C standard ever drops the goto in order to teach the “correct” way to structure programs I will destroy my computers and go live by myself in the woods.
*_“It's about time that a debate was made on this subject.”
} Thank you, and thanks for contributing.
@MikeS
*_“The one thing that keeps me using freebasic is the great documentation in the help .chm.”
} Very true. As I wrote in my original post, I think it is one of the greatest features of FB. That manual taught me all about PC programming before I moved on. If you want to continue learning, though, I recommend C++: The Complete Reference by Shildt.
*_“…drop QBasic…move forward to the OOP support we want, when backwards compatibility does not need to be maintained.”
} Would that really work out, though? QB compatibility in a new compiler was the chief design goal of FB. Furthermore, FB already has problems with breaking code compatibility with new compiler releases. C is great partly because it has an official standard and hasn’t mutated or splintered in a decade (except into Java and C#, which are merely simplifications for specific applications), yet everyone is still doing great things with it.
*_“…inline asm…”
} There is some low-level support. However, I have read that unless you are an expert a good optimizing compiler will write faster/smaller code than you anyway. All C compilers I know of offer inline asm, too.
*_“…learn lots…easy windowing tools.”
} That helps, but to really learn how things work you need to eventually learn the Windows API. You can’t say you understand even the most obvious element of your OS until you have written a WinProc message processing function.
*_“…inheritance and polymorphism added…”
} It is becoming C-ified.
*_“…much more credibility in the making of games…”
} Do hold on to that! I believe that the simple graphics system that makes games easier to write attracts many beginning FB users.
*_“I suggest someone(The OP perhaps) compiles a list of valid suggestions and/or lists them here and e-mails the current main developers if any action is to be expected.”
} Yes, action is required. Who is on the dev team, anyway?
*_“I hope my other points in my above thread are valid and can maybe help the original poster in the discussion.”
} Thank you very much. I only started this thread to stimulate debate. FB must prove itself to survive. If nobody cares enough to argue for it, there will probably be no one who thinks it is worth using. If some forum members get “fired up” over this and push the dev team in the proper (more debate) direction the programming community will undoubtedly benefit.
*_“So what can the community start to do to help?”
} It depends on the community member. If you think you could, perhaps you should ask to join the dev team. That would probably be best, but I know only a couple of members would have the skill, patience, and time to do this. I think that the next best thing is to just use FB to finish projects and then write about them on the forum. People need to see that FB is capable of great things. If you don’t like to use FB anymore -but still thing that it and this community are important- you could still help out by answering questions on the forum. Besides that, I think that you could help by mailing the dev team with specific reasons why FB should be kept around.
@Zippy
*_“…psychopathic trash…It's not appropriate to judge FB, the FB community, or QBE/Pete based upon the actions of one TWIT.”
} I never knew Z!re, but that article (can you call it that?!) was sort of repulsive, even if it was funny. As I wrote, I wanted to use her title because this thread would hopefully cause a stir and some useful discussion. I agree with you about Pete; he was right to publish it (although he said he never read it, which I think was wrong and irresponsible). QBE should be (is? was?) for discussion and enlightenment. Some people would like to see it degenerate to a technical journal, but we already have a thorough manual.
@Imortis
*_“Should I have done it differently? Probably not.”
} I agree, although I might have at least asked Pete about it.
*_“It didn't blow up computers/brains/home.”
} What an image!
@AGS
*_“Perhaps Java or Javascript…”
} No, not that! Java is merely a baby version of C with limitations necessary for comprehensive compatibility and web development.
*_“'Seen one, seen them all'”
} Yes, they are mostly the same superficially, but some languages are much more powerful than others. As an aside, a few of the older languages don’t look or behave the same. Have you ever tried Lisp? It’s totally alien!
*_“…syntax that's readable…”
} I myself cannot understand any program over a couple hundred lines unless I wrote it. I don’t know if anyone else experiences this problem, but I just can’t keep track of everything if I didn’t write the code, in which case it is clear to me, probably because I remember what I went through in writing it. However, what will you read, anyway? How many books have you seen that use BASIC to explain algorithms and advanced methods in programming?
*_“…starts a fork.”
} I understand that competition could help, but I don’t like the idea of fragmentation.
*_“Not releasing an 'official', new binary version…”
} Right. Users need to see the project moving forward. However, WHY should the developers work? I know that open-source sometimes works great, but only if the devs and users believe in the project. Linux is the great open-source operating system, which takes on and often matches the corporate empires of Microsoft and Apple in an underground hacker movement. Blender and Gimp similarly attack graphics giants like Adobe. GCC is perhaps the world’s greatest programming tool and makes all of the other projects possible. What is FB, the world’s greatest old DOS beginner’s compiler with modern OS support and some C stuff tacked on? It is like asking someone to work on golf carts instead of starships.
@marcov
*_“…the "easy" argument as prime FB feature…but to be honest, I have some doubts…”
} FB can be easy or difficult, depending on what you are doing with it. FB is useful for learning to program because it can be extremely simple. After all, Hello_World is only one line! C requires several and all Java introductions I have seen jump right into classes, methods, and other things that can easily overwhelm a beginner who is just learning to print to the console.
@agamenmus
*_”…the IDE bit…competition, even for freeware, often makes for a better product...”
} I don’t think there needs to be an “official IDE,” there should just be more and better editors. Some encouragement is necessary, and I really don’t think competition is going to help much if things continue this way. Realistically, where has competition gotten us so far?
*_“I totally agree with the "goal" part.”
} Thanks for concurring. This is a serious issue that must be addressed, although it probably won’t be, since no one will want to risk having to sacrifice their personal ideas about the project.
*_“Forget inheritance…”
} Right again. The project has important fundamental obstacles that must be considered instead. Also, inheritance only seems necessary in very large software projects that wouldn’t be done in BASIC, anyway. Copy and paste is definitely more in the spirit of BASIC.
@angros47
*_“…making some Freebasic distros?”
} An intriguing idea. However, care would be required to prevent splintering of the core’s basic structure and ultimate goal. A standard might prevent that. I would like to see a QB translator. It wouldn’t need to produce fast or efficient code, since letting old QB code run at all would be great. It seems like any QB code that used graphics is now basically dead.
*_“…simple and less-scaring interface…”
} BASIC, scary? Maybe, especially if a new user is not very good with computers yet. Perhaps a bundled IDE and compiler package with simple instructions, included docs (with F1 to look up keyword), one-click setup/install, and a link on the homepage would do the trick.
*_“…they will come here only when they'll be expert…”
} If you mean that beginners shouldn’t join the forum, I don’t like that idea. This forum is usually very friendly, helpful, informative, nurturing, etc., to beginners, many of whom would quit coding without some human help. Furthermore, there is already a “Beginners” section of the forum for people who are starting out.
*_“…pure QB code works on…FB…”
} Not with graphics on Vista.
*_“Why all of us are using FB? Why didn't switch to VB.NET? Or to VB6? These compilers are the official successors of QB, microsoft recommands them... but they are different, and somebody didn't like it. That's why we are here, because we like BASIC, not VB, not C++, not pascal, but BASIC.”
} First, I think that Microsoft is part of the problem. Their VB products are targeted at business applications, in my opinion. Adding simple graphics capabilities for games would likely steal quite a few potential FB users. Second, about not switching to C, etc., I have, and I suspect that many of the senior forum members have too. I return here because I like the “community,” QB Express, and the friendly and informative forum.
*_“…no GOTO/GOSUB...”
} I love the GOTO. As a programmer, I never want to be limited by my language. I hate that Java tries to prevent “bad programming practices” by only allowing very structured code. (G.K. Chesterton once wrote that communism tries to reform the pickpocket by prohibiting pockets. That applies here.) I would like to be able to absolutely anything that I want to. If that means procedural programming, fine, if that means ultra-modern Java-style OOP, that should be ok too. That’s what I like about C++. It can do ANYTHING (except web development, I guess). The day the C standard drops goto I will smash my computers and go live in the woods.
*_“C evolved, but can still compile programs written in the original ANSI C, otherwise you cannot call it a C compiler. Even C++ (that is a different language) can.”
} You’re right. I have always thought that FB needs an official standard just like C. Features can be added from there, but the skeleton shouldn’t be easily changed.
*_“Otherwise, you can call the language with the name you like, but not basic.”
} FB needs a standard, and it should be based on the original one, but we should really write it almost from scratch.
*_“I think that FB should be to QB what C++ is to C: it's compatible, can import old programs, but adds advanced features like OOP.”
} YES!
*_“Having to declare each variable is not beginner friendly…”
} I don’t think so, since beginners must learn what variables are and how they are used. As I remarked above, languages shouldn’t be restricting, but, like with all things, there is a limit to it.
*_“…FB should become…but it lacks…”
} Somebody needs to add these things then. I don’t think an easy 3D lib would be very difficult. Just think of it as an extension of FBGFX into another dimension!
*_“…I hate templates…”
} That’s how I do most of my C OpenGL setup coding!
@vdecampo
*_“I don't understand why on the one hand we want cool new features from FB, then on the other hand we want backwards compatibility. My vote is to fix what needs fixing in the -qb and -lite dialects and freeze them out.”
} Yes, fix the project’s problems with the lack of a goal, official standard, etc., get real QB compatibility to bring classic programs into the age of windows, and then work on new features.
*_“Future versions of FB should focus solely on new -fb features.”
} Partly. I don’t like that new FB versions (although, if the present course continues, we won’t need to worry about that) break compatibility with older FB code. FB was supposed to be at least somewhat compatible with QB, but how can it fulfill that if it can’t even stay compatible with itself?
@croco97
*_“…QB to freebasic…compatibility paradigm was left behind…”
} This bothers me, too. The manual says FB should be “syntax compatible” with QB, and it is, more or less, but I wish it could compile old QB code. This would give new life to many old programs that are now unusable due to problems with graphics, etc. If the dev team is bored, they should try to find a way to fix this.
*_“…development towards C/C++.”
} FB is definitely becoming more like C (I think that Mystic Shadows wrote about his in an old QB Express). I guess that the developers want it to be more powerful, but this version of BASIC is no longer basic.
*_“…QB switchers.”
} Are there still people switching that “Q” for an “F?” I am all for code compatibility, but I don’t think that helping QBers is important anymore, since those people likely stopped trickling in some time ago.
*_“…clone of the QB IDE…FBEdit…far too complex…”
} Although I have never used the QB IDE for development, it doesn’t seem very impressive. It is really rooted in DOS and needs a gui. I do agree with you about FB Edit. I think the programmer wanted it to be kind of like Microsoft’s VB editor, which places too much emphasis on “drag and drop” instead of understanding the APIs. I like the JellyFB editor.
@Eponasoft
*_“…I do not now nor will I EVER agree with the decision to remove GOTO…”
} Me either. Multi-paradigm, low-level languages are best because they let you work however you want. Languages that teach “proper” coding techniques are like hammers that only drive nails that they think are in the right place. It might be helpful sometimes, but the programmer should have the last word and never be restricted because of aesthetic considerations.
*_“…ANSI C isn't very useful by itself…”
} But there are very useful standard libraries. C is king, don’t dispute it.
*_“FB is BASIC.”
} Yes, but it is leaning toward C. Let’s make sure it doesn’t keep only the bad parts of BASIC and acquire the worst parts of C, but instead combines the best of both if this hybridization trend must continue.
*_“If you don't like FB…why don't you just go elsewhere?”
} I think it is tough love. Those who complain would like to see FB perfected. Of course, they can’t decide on what that means.
@Dinosaur
*_“Even being the Dinosaur here, QB compatibility is the past. However, lets not Nuke it, just leave it as is, close all development on it. If any one wants to use it they can.”
} First, funny coincidence about the “dinosaur” thing. I only support QB compatibility for extending the life of the old code that fills the resources from the “golden days” of BASIC. Nobody should use that ancient and essentially dead language for development.
*_“Dont write the compiler so that some of the more advanced features are mandatory.”
} I agree. See my replies to angros47, Eponasoft, and McLovin.
*_“…dropping Dos support.”
} Face it, DOS is dead. As the sheepish owner of a crippled garage sale ($20) DOS PC, I know that there should still be programming tools for DOS, but should developers be forced to work for a quickly shrinking group of users?
*_“Make a Questionnaire.”
} Good idea. We must take action. Someone needs to mail the site admins and tell them to setup some polls about the contents of a new FreeBASIC standard. However, I fear that we may find that the admins care even less than many of the users.
@MichaelW
*_“[In reference to angros’ remarks about outdated techniques] I have doubts that many here share your obsession with trivial details and hanging on to the past.”
} I do. Goto forever!
@1000101
*__“End it now before you drag us all down to looking like a bunch of retards that everyone who doesn't use basic looks down on basic users as.”
} I understand that discussions often lead nowhere. It is important that many of us fire up our Live, Gmail, etc., accounts and cause some change. (By the way, don’t let Richard see this or he might recommend that you get antidepressant prescriptions. :] )
My conclusion is this: We all need to push the dev team to continue working. Polls should be set up (good idea, Dinosaur) to determine what the community wants. The data that is collected should be used to form and then implement a plan. The best thing we could do is create an official FreeBASIC (and maybe FB Lite) standard. All future versions of the compiler will conform to the OFS (“Official FreeBASIC Standard”) and be able to compile any code that compiles with it. The OFS should require that FB is multi-paradigm, beginner-friendly, and powerful. More features can be added, but the OFS shouldn’t be changed easily and QB dialect development should be closed. I would also like to learn more about the dev team. If they do not have enough free time to work on the project, they should help other people (perhaps students, who have more spare time) learn about the compiler’s architecture so that they can work on it. No matter what happens, we must try our best to accomplish something.
By the way, Randal, welcome to the forums. It will help to have an experienced pro here.
The replies below are mostly just little remarks I would like to make to specific posters and may not be very important to the debate:
@Richard
*_“Firstly FB is not on life support, whatever some people might think.”
} You’re right; a thread in this section has already declared the leading BASIC publication dead. Life support failed.
*_“If a stepping stone is needed then FB may well have a place as a stepping stone. FB is loved because it actually educates its users in transition.”
} I agree. That’s why FB must be saved. However, should beginners keep going to the other side or should they just stay in the middle of the river?
*_“…like an island…”
} I like that metaphor. Clever.
*_“FB is more fun than C.”
} To who? I think that is really relative. I personally am more interested in the more abstract elements of computer science and low-level hardware access -the way the computer works. BASIC shields the programmer from all of that. FB can be more fun, as I wrote, but it is really designed for beginners.
*_“Have you considered some of the more recently developed antidepressants?”
} Ha, ha. No, and I don’t need to. I am neither a pessimist nor an optimist, but rather a realist.
@McLovin
*_“I assume this is just based on your perception. I'd love to see your indepth market study of the people who contributed to the 646,000 downloads from SourceForge. That sure would be a lot of children playing with the compiler.”
} You called my bluff; I don’t have any data to prove my “perception.” However, I would love to see the site admins set up data collectors to monitor logins, posting, etc. Compiler downloads should also be analyzed. Note, though, that the real test is the product. How many of those 646,000 have completed real projects or contributed something to the forum?
*_“FB is by far one of the most advanced BASIC's available.”
} Because it has C++ features like pointers and OOP!!!
*_“The only reason to use it as a stepping stone is because a person's job prospects would dictate it.”
} Why don’t any major software companies use a BASIC dialect as a primary development tool?
*_“Who the hell wants a BASIC that is rooted in 1960's architecture?”
} Advances like OOP must be included, but I also like getting back to BASICs. For beginners, understanding how your program works and is compiled shouldn’t require knowledge of huge APIs or “virtual machines.” I know that programmers shouldn’t be limited by a lack of features, but sometimes beginner languages (yes, FB is a beginner-friendly language) can overwhelm new coders if they force them to use advanced concepts. Having to learn all about classes and methods before even writing helloWorld is what made me hate Java. For an example of simplicity in learning to program, think about microcontroller programming in BASIC. That might seem like the dark ages to experienced PC programmers, but it teaches you how a computer really works inside and then let’s you move on.
*_“GOSUB/GOTO... I see the uses for it and would be nice to retain, but they can easily be replace by simple calls to a Sub/Function.”
} I have to strongly disagree. A language should not force a programmer to write code the “proper” way. Like I said in my response to angros47, if the C standard ever drops the goto in order to teach the “correct” way to structure programs I will destroy my computers and go live by myself in the woods.
*_“It's about time that a debate was made on this subject.”
} Thank you, and thanks for contributing.
@MikeS
*_“The one thing that keeps me using freebasic is the great documentation in the help .chm.”
} Very true. As I wrote in my original post, I think it is one of the greatest features of FB. That manual taught me all about PC programming before I moved on. If you want to continue learning, though, I recommend C++: The Complete Reference by Shildt.
*_“…drop QBasic…move forward to the OOP support we want, when backwards compatibility does not need to be maintained.”
} Would that really work out, though? QB compatibility in a new compiler was the chief design goal of FB. Furthermore, FB already has problems with breaking code compatibility with new compiler releases. C is great partly because it has an official standard and hasn’t mutated or splintered in a decade (except into Java and C#, which are merely simplifications for specific applications), yet everyone is still doing great things with it.
*_“…inline asm…”
} There is some low-level support. However, I have read that unless you are an expert a good optimizing compiler will write faster/smaller code than you anyway. All C compilers I know of offer inline asm, too.
*_“…learn lots…easy windowing tools.”
} That helps, but to really learn how things work you need to eventually learn the Windows API. You can’t say you understand even the most obvious element of your OS until you have written a WinProc message processing function.
*_“…inheritance and polymorphism added…”
} It is becoming C-ified.
*_“…much more credibility in the making of games…”
} Do hold on to that! I believe that the simple graphics system that makes games easier to write attracts many beginning FB users.
*_“I suggest someone(The OP perhaps) compiles a list of valid suggestions and/or lists them here and e-mails the current main developers if any action is to be expected.”
} Yes, action is required. Who is on the dev team, anyway?
*_“I hope my other points in my above thread are valid and can maybe help the original poster in the discussion.”
} Thank you very much. I only started this thread to stimulate debate. FB must prove itself to survive. If nobody cares enough to argue for it, there will probably be no one who thinks it is worth using. If some forum members get “fired up” over this and push the dev team in the proper (more debate) direction the programming community will undoubtedly benefit.
*_“So what can the community start to do to help?”
} It depends on the community member. If you think you could, perhaps you should ask to join the dev team. That would probably be best, but I know only a couple of members would have the skill, patience, and time to do this. I think that the next best thing is to just use FB to finish projects and then write about them on the forum. People need to see that FB is capable of great things. If you don’t like to use FB anymore -but still thing that it and this community are important- you could still help out by answering questions on the forum. Besides that, I think that you could help by mailing the dev team with specific reasons why FB should be kept around.
@Zippy
*_“…psychopathic trash…It's not appropriate to judge FB, the FB community, or QBE/Pete based upon the actions of one TWIT.”
} I never knew Z!re, but that article (can you call it that?!) was sort of repulsive, even if it was funny. As I wrote, I wanted to use her title because this thread would hopefully cause a stir and some useful discussion. I agree with you about Pete; he was right to publish it (although he said he never read it, which I think was wrong and irresponsible). QBE should be (is? was?) for discussion and enlightenment. Some people would like to see it degenerate to a technical journal, but we already have a thorough manual.
@Imortis
*_“Should I have done it differently? Probably not.”
} I agree, although I might have at least asked Pete about it.
*_“It didn't blow up computers/brains/home.”
} What an image!
@AGS
*_“Perhaps Java or Javascript…”
} No, not that! Java is merely a baby version of C with limitations necessary for comprehensive compatibility and web development.
*_“'Seen one, seen them all'”
} Yes, they are mostly the same superficially, but some languages are much more powerful than others. As an aside, a few of the older languages don’t look or behave the same. Have you ever tried Lisp? It’s totally alien!
*_“…syntax that's readable…”
} I myself cannot understand any program over a couple hundred lines unless I wrote it. I don’t know if anyone else experiences this problem, but I just can’t keep track of everything if I didn’t write the code, in which case it is clear to me, probably because I remember what I went through in writing it. However, what will you read, anyway? How many books have you seen that use BASIC to explain algorithms and advanced methods in programming?
*_“…starts a fork.”
} I understand that competition could help, but I don’t like the idea of fragmentation.
*_“Not releasing an 'official', new binary version…”
} Right. Users need to see the project moving forward. However, WHY should the developers work? I know that open-source sometimes works great, but only if the devs and users believe in the project. Linux is the great open-source operating system, which takes on and often matches the corporate empires of Microsoft and Apple in an underground hacker movement. Blender and Gimp similarly attack graphics giants like Adobe. GCC is perhaps the world’s greatest programming tool and makes all of the other projects possible. What is FB, the world’s greatest old DOS beginner’s compiler with modern OS support and some C stuff tacked on? It is like asking someone to work on golf carts instead of starships.
@marcov
*_“…the "easy" argument as prime FB feature…but to be honest, I have some doubts…”
} FB can be easy or difficult, depending on what you are doing with it. FB is useful for learning to program because it can be extremely simple. After all, Hello_World is only one line! C requires several and all Java introductions I have seen jump right into classes, methods, and other things that can easily overwhelm a beginner who is just learning to print to the console.
@agamenmus
*_”…the IDE bit…competition, even for freeware, often makes for a better product...”
} I don’t think there needs to be an “official IDE,” there should just be more and better editors. Some encouragement is necessary, and I really don’t think competition is going to help much if things continue this way. Realistically, where has competition gotten us so far?
*_“I totally agree with the "goal" part.”
} Thanks for concurring. This is a serious issue that must be addressed, although it probably won’t be, since no one will want to risk having to sacrifice their personal ideas about the project.
*_“Forget inheritance…”
} Right again. The project has important fundamental obstacles that must be considered instead. Also, inheritance only seems necessary in very large software projects that wouldn’t be done in BASIC, anyway. Copy and paste is definitely more in the spirit of BASIC.
@angros47
*_“…making some Freebasic distros?”
} An intriguing idea. However, care would be required to prevent splintering of the core’s basic structure and ultimate goal. A standard might prevent that. I would like to see a QB translator. It wouldn’t need to produce fast or efficient code, since letting old QB code run at all would be great. It seems like any QB code that used graphics is now basically dead.
*_“…simple and less-scaring interface…”
} BASIC, scary? Maybe, especially if a new user is not very good with computers yet. Perhaps a bundled IDE and compiler package with simple instructions, included docs (with F1 to look up keyword), one-click setup/install, and a link on the homepage would do the trick.
*_“…they will come here only when they'll be expert…”
} If you mean that beginners shouldn’t join the forum, I don’t like that idea. This forum is usually very friendly, helpful, informative, nurturing, etc., to beginners, many of whom would quit coding without some human help. Furthermore, there is already a “Beginners” section of the forum for people who are starting out.
*_“…pure QB code works on…FB…”
} Not with graphics on Vista.
*_“Why all of us are using FB? Why didn't switch to VB.NET? Or to VB6? These compilers are the official successors of QB, microsoft recommands them... but they are different, and somebody didn't like it. That's why we are here, because we like BASIC, not VB, not C++, not pascal, but BASIC.”
} First, I think that Microsoft is part of the problem. Their VB products are targeted at business applications, in my opinion. Adding simple graphics capabilities for games would likely steal quite a few potential FB users. Second, about not switching to C, etc., I have, and I suspect that many of the senior forum members have too. I return here because I like the “community,” QB Express, and the friendly and informative forum.
*_“…no GOTO/GOSUB...”
} I love the GOTO. As a programmer, I never want to be limited by my language. I hate that Java tries to prevent “bad programming practices” by only allowing very structured code. (G.K. Chesterton once wrote that communism tries to reform the pickpocket by prohibiting pockets. That applies here.) I would like to be able to absolutely anything that I want to. If that means procedural programming, fine, if that means ultra-modern Java-style OOP, that should be ok too. That’s what I like about C++. It can do ANYTHING (except web development, I guess). The day the C standard drops goto I will smash my computers and go live in the woods.
*_“C evolved, but can still compile programs written in the original ANSI C, otherwise you cannot call it a C compiler. Even C++ (that is a different language) can.”
} You’re right. I have always thought that FB needs an official standard just like C. Features can be added from there, but the skeleton shouldn’t be easily changed.
*_“Otherwise, you can call the language with the name you like, but not basic.”
} FB needs a standard, and it should be based on the original one, but we should really write it almost from scratch.
*_“I think that FB should be to QB what C++ is to C: it's compatible, can import old programs, but adds advanced features like OOP.”
} YES!
*_“Having to declare each variable is not beginner friendly…”
} I don’t think so, since beginners must learn what variables are and how they are used. As I remarked above, languages shouldn’t be restricting, but, like with all things, there is a limit to it.
*_“…FB should become…but it lacks…”
} Somebody needs to add these things then. I don’t think an easy 3D lib would be very difficult. Just think of it as an extension of FBGFX into another dimension!
*_“…I hate templates…”
} That’s how I do most of my C OpenGL setup coding!
@vdecampo
*_“I don't understand why on the one hand we want cool new features from FB, then on the other hand we want backwards compatibility. My vote is to fix what needs fixing in the -qb and -lite dialects and freeze them out.”
} Yes, fix the project’s problems with the lack of a goal, official standard, etc., get real QB compatibility to bring classic programs into the age of windows, and then work on new features.
*_“Future versions of FB should focus solely on new -fb features.”
} Partly. I don’t like that new FB versions (although, if the present course continues, we won’t need to worry about that) break compatibility with older FB code. FB was supposed to be at least somewhat compatible with QB, but how can it fulfill that if it can’t even stay compatible with itself?
@croco97
*_“…QB to freebasic…compatibility paradigm was left behind…”
} This bothers me, too. The manual says FB should be “syntax compatible” with QB, and it is, more or less, but I wish it could compile old QB code. This would give new life to many old programs that are now unusable due to problems with graphics, etc. If the dev team is bored, they should try to find a way to fix this.
*_“…development towards C/C++.”
} FB is definitely becoming more like C (I think that Mystic Shadows wrote about his in an old QB Express). I guess that the developers want it to be more powerful, but this version of BASIC is no longer basic.
*_“…QB switchers.”
} Are there still people switching that “Q” for an “F?” I am all for code compatibility, but I don’t think that helping QBers is important anymore, since those people likely stopped trickling in some time ago.
*_“…clone of the QB IDE…FBEdit…far too complex…”
} Although I have never used the QB IDE for development, it doesn’t seem very impressive. It is really rooted in DOS and needs a gui. I do agree with you about FB Edit. I think the programmer wanted it to be kind of like Microsoft’s VB editor, which places too much emphasis on “drag and drop” instead of understanding the APIs. I like the JellyFB editor.
@Eponasoft
*_“…I do not now nor will I EVER agree with the decision to remove GOTO…”
} Me either. Multi-paradigm, low-level languages are best because they let you work however you want. Languages that teach “proper” coding techniques are like hammers that only drive nails that they think are in the right place. It might be helpful sometimes, but the programmer should have the last word and never be restricted because of aesthetic considerations.
*_“…ANSI C isn't very useful by itself…”
} But there are very useful standard libraries. C is king, don’t dispute it.
*_“FB is BASIC.”
} Yes, but it is leaning toward C. Let’s make sure it doesn’t keep only the bad parts of BASIC and acquire the worst parts of C, but instead combines the best of both if this hybridization trend must continue.
*_“If you don't like FB…why don't you just go elsewhere?”
} I think it is tough love. Those who complain would like to see FB perfected. Of course, they can’t decide on what that means.
@Dinosaur
*_“Even being the Dinosaur here, QB compatibility is the past. However, lets not Nuke it, just leave it as is, close all development on it. If any one wants to use it they can.”
} First, funny coincidence about the “dinosaur” thing. I only support QB compatibility for extending the life of the old code that fills the resources from the “golden days” of BASIC. Nobody should use that ancient and essentially dead language for development.
*_“Dont write the compiler so that some of the more advanced features are mandatory.”
} I agree. See my replies to angros47, Eponasoft, and McLovin.
*_“…dropping Dos support.”
} Face it, DOS is dead. As the sheepish owner of a crippled garage sale ($20) DOS PC, I know that there should still be programming tools for DOS, but should developers be forced to work for a quickly shrinking group of users?
*_“Make a Questionnaire.”
} Good idea. We must take action. Someone needs to mail the site admins and tell them to setup some polls about the contents of a new FreeBASIC standard. However, I fear that we may find that the admins care even less than many of the users.
@MichaelW
*_“[In reference to angros’ remarks about outdated techniques] I have doubts that many here share your obsession with trivial details and hanging on to the past.”
} I do. Goto forever!
@1000101
*__“End it now before you drag us all down to looking like a bunch of retards that everyone who doesn't use basic looks down on basic users as.”
} I understand that discussions often lead nowhere. It is important that many of us fire up our Live, Gmail, etc., accounts and cause some change. (By the way, don’t let Richard see this or he might recommend that you get antidepressant prescriptions. :] )
technoweasel, I have a few comments, not necessarily directed at your most recent post, but at it and some others.
First, regarding QuickBASIC and QBasic code-compatibility.. There are certain aspects of their original target (16-bit DOS) that simply make code incompatible with the systems FreeBASIC is designed for (remember, keeping things cross-compatible is also a goal of FreeBASIC). Now, Galleon, the author of QB64, is trying to create a QBasic (perhaps QuickBASIC as well ?) code-compatible compiler (I hope he has finally released the source, silly to go alone). For those that want a tool that, in theory, will eventually compile all QBasic code without modification, then I would suggest looking into that. I'm not sure the depth of emulation that Galleon is implementing, but, as is implied, to support the 16-bit segmented memory addressing, text and graphics pages, etc., it must be more involved than I, personally, would like to see -lang qb be.
Second, regarding FreeBASIC code-compatibility.. As has been said before, while FreeBASIC is still in a beta stage, there is always a threat of new releases -- "official" or "developmental" (SVN) -- breaking compatibility with older releases. Yes, a FreeBASIC standard would determine the behavior of the compiler (and the correctness and behavior of code) in its finished, ideal state; but devising a standard is not an instant fix, but, as you say, would be a great thing to do, as some from the community have already expressed interest (AGS has done some work already with the grammar). Keep in mind also that perhaps the best way to determine the merit of a certain feature -- not only academically in terms of continuity with the existing language and its relevance to the targetted demographic, but also practically in terms of its ease of use, etc. etc. -- is to actually implement the thing and have people try it out. Standards are great, but FreeBASIC, unlike C, is an evolving language.
Third, regarding FreeBASIC "leaning towards C".. I wish that people would state specific examples to support this opinion, particularly when the notion is of FreeBASIC "getting more like C" as time goes on. Here's a list of some things off the top of my head that are C-like:
I'll reflect on some more if I think of them, but I use C++ more than C.. Anyway, my point is just that I don't understand what the "leaning toward C"-like statements mean, and why borrowing some things from other languages is necessarily a bad thing. How many QB+ASM tutorials are there ? What's the big deal with C ? Just look at enumerations and const-correctness: those are two really useful tools to have at your disposal; enumerations seem more like a BASIC notion than of C/C++ anyway !
Lastly, I'd like to say thank you and to others for taking time to try to make FreeBASIC better and to get the community involved. We all enjoy FreeBASIC, or we wouldn't be here. :D
First, regarding QuickBASIC and QBasic code-compatibility.. There are certain aspects of their original target (16-bit DOS) that simply make code incompatible with the systems FreeBASIC is designed for (remember, keeping things cross-compatible is also a goal of FreeBASIC). Now, Galleon, the author of QB64, is trying to create a QBasic (perhaps QuickBASIC as well ?) code-compatible compiler (I hope he has finally released the source, silly to go alone). For those that want a tool that, in theory, will eventually compile all QBasic code without modification, then I would suggest looking into that. I'm not sure the depth of emulation that Galleon is implementing, but, as is implied, to support the 16-bit segmented memory addressing, text and graphics pages, etc., it must be more involved than I, personally, would like to see -lang qb be.
Second, regarding FreeBASIC code-compatibility.. As has been said before, while FreeBASIC is still in a beta stage, there is always a threat of new releases -- "official" or "developmental" (SVN) -- breaking compatibility with older releases. Yes, a FreeBASIC standard would determine the behavior of the compiler (and the correctness and behavior of code) in its finished, ideal state; but devising a standard is not an instant fix, but, as you say, would be a great thing to do, as some from the community have already expressed interest (AGS has done some work already with the grammar). Keep in mind also that perhaps the best way to determine the merit of a certain feature -- not only academically in terms of continuity with the existing language and its relevance to the targetted demographic, but also practically in terms of its ease of use, etc. etc. -- is to actually implement the thing and have people try it out. Standards are great, but FreeBASIC, unlike C, is an evolving language.
Third, regarding FreeBASIC "leaning towards C".. I wish that people would state specific examples to support this opinion, particularly when the notion is of FreeBASIC "getting more like C" as time goes on. Here's a list of some things off the top of my head that are C-like:
- - the preprocessor, specifically, the source file/include file structure
- memory addressing (pointers, reading/writing to memory at some location)
- mandatory name declaration
- implicit and explicit scope blocks
I'll reflect on some more if I think of them, but I use C++ more than C.. Anyway, my point is just that I don't understand what the "leaning toward C"-like statements mean, and why borrowing some things from other languages is necessarily a bad thing. How many QB+ASM tutorials are there ? What's the big deal with C ? Just look at enumerations and const-correctness: those are two really useful tools to have at your disposal; enumerations seem more like a BASIC notion than of C/C++ anyway !
Lastly, I'd like to say thank you and to others for taking time to try to make FreeBASIC better and to get the community involved. We all enjoy FreeBASIC, or we wouldn't be here. :D
I agree with technoweasels conclusion. I, for one, would love to help develop FB, and I know others who want to as well. I feel the main problem stopping this is the difficulty to learn about the compiler internals. Right now, all I can do is read through the largely undocumented source and attempt to discover what is happening. If FB developers or ex-developers could write some documentation or something, I think there would be a number of people willing to get involved.
Don't worry, I wasn't disputing it; C is my language of choice these days, and I always have and always will despise C++. But the fact is that ANSI C by itself is comprised of a very, very limited number of keywords (only 32) and though these do make up the bulk of everyday C programming, it is still a very limited system and that's why trying to compare ANSI C to BASIC is a ridiculous comparison.technoweasel wrote:But there are very useful standard libraries. C is king, don’t dispute it.
Hi all
I dont want to start a "Dos ain't dead war" but
I made a analogy some years ago about Dos.
"Just because you dont ride a pushbike anymore, doesnt mean it's dead, go to Holland or China and see"
Moral of the story, look outside the box, drop the tunnel vision.
Regards
Google Hits
FreeBasic = 1,360,000
DOS = 730,000,000
MS-Dos = 14,200,000
I am amazed at how many people make this very uninformed statement about Dos.} Face it, DOS is dead.
I dont want to start a "Dos ain't dead war" but
I made a analogy some years ago about Dos.
"Just because you dont ride a pushbike anymore, doesnt mean it's dead, go to Holland or China and see"
Moral of the story, look outside the box, drop the tunnel vision.
Regards
Google Hits
FreeBasic = 1,360,000
DOS = 730,000,000
MS-Dos = 14,200,000
So, you made this post using your 8/16bit browser over your 8/16bit internet connection?Dinosaur wrote:Hi allI am amazed at how many people make this very uninformed statement about Dos.} Face it, DOS is dead.
I dont want to start a "Dos ain't dead war" but
I made a analogy some years ago about Dos.
"Just because you dont ride a pushbike anymore, doesnt mean it's dead, go to Holland or China and see"
Moral of the story, look outside the box, drop the tunnel vision.
Regards
Google Hits
FreeBasic = 1,360,000
DOS = 730,000,000
MS-Dos = 14,200,000
It is (fb source code documentation) what it is. You can wish for better docs, but you cannot force existing or past devs to do anything. If they are too busy to develop then the extension is that they are too busy to.. document.TheMG wrote: I agree with technoweasels conclusion. I, for one, would love to help develop FB, and I know others who want to as well. I feel the main problem stopping this is the difficulty to learn about the compiler internals. Right now, all I can do is read through the largely undocumented source and attempt to discover what is happening. If FB developers or ex-developers could write some documentation or something, I think there would be a number of people willing to get involved.
The other side of this is that no current dev CAN document the code.
v1ctor was the one-man-show; he's gone on to $other$ endeavors, he didn't document everything he did and is unlikely to [come back to] do so.
lillo (Antonio) wrote most or all of the gfx code. He didn't document much of anything, he's not been available for years. The gfx code is a mystery to all.
mjs (another dev) is long-gone.
yetifoot is gone (as a dev).
cha0s, gone.
coderJeff says "busy":
http://www.freebasic.net/forum/viewtopic.php?p=112524
DrV and counting_pine are IT. Both are genius, neither know enough to document what they weren't around to develop in the first place (yes, they do and could if:). If they could, they may not have the time nor the inclination to do so.
So, Mr. TheMG et al, get cracking. It's up to you. You spend the time, you learn the source code, you head the team to take fb wherever it is you think it should go. Or not.
A little blurb from his holiness:
http://www.freebasic.net/forum/viewtopic.php?p=110009
Dos is dead. For all intents and purposes win9x is already considered dead. Some people just don't want to realize it.Dinosaur wrote:Hi allI am amazed at how many people make this very uninformed statement about Dos.} Face it, DOS is dead.
There is always a generation doing new mimimalist experiment in some old system (C=64, Amiga _OR_ Dos), but nearly all non trivial codebases are either quick ports or aging codebaes in maintenance mode. Nobody is significantly investing in Dos, which is another word for dead.
And what does a Google hit prove?Google Hits
FreeBasic = 1,360,000
DOS = 730,000,000
MS-Dos = 14,200,000
Napoleon Bonaparte: 1.5 million
Julius Caesar : 3 million
Elvis Presley : 16 million
Michael Jackson : 201 million.
And they are all dead. Well, Elvis allegedly.
This is my main gripe, and more specifically, the creeping up of heavy macro usage, for basic usage as defining datastructures.stylin wrote:Third, regarding FreeBASIC "leaning towards C".. I wish that people would state specific examples to support this opinion, particularly when the notion is of FreeBASIC "getting more like C" as time goes on. Here's a list of some things off the top of my head that are C-like:
- the preprocessor, specifically, the source file/include file structure
The other part is less bad, though it is Cish in the way that inclusion of headers is the only way of fragmenting source over multiple sources. If QB missed a decent feature for this, should freebasic blindly copy this and expand it in C-oriented ways (#pragma once)?
Normal compiler stuff it seems, except the last maybe?- memory addressing (pointers, reading/writing to memory at some location)
- mandatory name declaration
- implicit and explicit scope blocks
I don't get this? Is this about nesting subs, or about declaring variables inside the code?The fourth item is a Good Thing, particularly since, unlike C, FreeBASIC/C++ allows names to be declared throughout procedure bodies, and not just at the beginning.
Borrowing is not the problem. Mindlessly copying is, or, as so often with C features, merely following the way of the least resistance, which is usually C since it is such lowlevel language.I'll reflect on some more if I think of them, but I use C++ more than C.. Anyway, my point is just that I don't understand what the "leaning toward C"-like statements mean, and why borrowing some things from other languages is necessarily a bad thing.
Example: the remark above about importing foreign modules. Setting up a decent module system is work, requires commitment and a risk. Letting C include header model with a single namespace creep in requires less work, and is easy, but also brings in the horrible search for problems about missing identifiers at linking time.
For me QB is not necessarily gospel in this. I expect a successor to exceed its predecessor.
Nearly all languages have the notion of an enumeration.How many QB+ASM tutorials are there ? What's the big deal with C ? Just look at enumerations and const-correctness: those are two really useful tools to have at your disposal; enumerations seem more like a BASIC notion than of C/C++ anyway !
Operating systems are not humans, marcov. The two are incomparable. And DOS is most certainly not dead at all...it is still VERY widely used in manufacturing industries as well as embedded systems. There are also several DOS-based operating systems in heavy development to this day. Just because you and your friends run the latest Microsoft "operating system" doesn't mean that everything else is "dead". Windows 9x though? Yes, it's dead.
The heavy use of macros, at least in my projects, is due mainly to lack of other things, such as OOP, RTTI/CTTI. I don't prefer using macros to replace things that could be done [better] by the compiler, but it has been fun researching metaprogramming and the things you can do with simple text replacement.marcov wrote:This is my main gripe, and more specifically, the creeping up of heavy macro usage, for basic usage as defining datastructures.
The other part is less bad, though it is Cish in the way that inclusion of headers is the only way of fragmenting source over multiple sources. If QB missed a decent feature for this, should freebasic blindly copy this and expand it in C-oriented ways (#pragma once)?
FreeBASIC was intended to be syntax-compatible with QuickBASIC, so bringing over its mechanism of source code organization seems a natural -- not mindless -- thing to have done. Certainly, one could argue that there is room for expansion, and that FreeBASIC should all but deprecate the source/include model in favor of another; any suggestions ? FP, Java ? ***
In many, many ways, FreeBASIC has done just that; and it's still growing. But: the sf.net tracker has 60 bug reports and 93 feature requests open. The TODO has lots of boxes that aren't checked. With only one or two active devs, where's the labor to implement all this stuff ? You can't expect something for nothing.For me QB is not necessarily gospel in this. I expect a successor to exceed its predecessor.
*** Not that I think it's a bad idea, but there doesn't seem to be enough time to even discuss new source/code organization models, let alone implement one.
I don't hold any QB-lore sacred, but goals are goals.. perhaps syntax-compatibility is even less important now that there are other projects aiming for code-compatibility..
Hi all
Marcov wrote
Nobody "Investing" may also mean that it is mature for it's purpose. For example FreeBasic is mature for MY purpose. I dont need any more bells and whistles. I havent found any errors.
The biggest trend that I have noticed in Dos use is Windows users wanting to do Network data transfers using Dos programs.Five years ago I got less then half those hits, also the confusion between "Dos Prompt" and MS-Dos may be adding the the hits. But lets face it, if you are not exposed to the users of dos, you can be excused for thinking it is dead.
I visit factories every week where I see the examples. For an "off the shelf" OS, there simply isnt anything better available, and it's free.
I have investigated everything from embedded dos to Win CE to the Linux breeds, nothing is as stable / reliable.
BUT, that is not what this thread is about.
My opinion in FreeBasic becoming a clone of C that speaks a different language , is that will not stand out. None of us knows what the trend in hardware or use of software will be in 5 years time. Having a robust compiler and tools that will easily adapt to the changing environment is more important then becoming a "me too" in the C of C's.
This discussion would be a lot more constructive if the proponents of some of the "proposed features" spent time selling them. Once other users see the advantage of these features they will become motivated to participate. Start a thread on it and convince them that it is badly needed.
Blindly debating a dozen issues will simply mean that in six months time the same debate will happen again. Debate / Sell one point at the time and you win supporters.
Regards
Regards
Marcov wrote
Then FreeBasic is also Dead.Nobody is significantly investing in Dos, which is another word for dead.
Nobody "Investing" may also mean that it is mature for it's purpose. For example FreeBasic is mature for MY purpose. I dont need any more bells and whistles. I havent found any errors.
The popularity of the subject.And what does a Google hit prove?
The biggest trend that I have noticed in Dos use is Windows users wanting to do Network data transfers using Dos programs.Five years ago I got less then half those hits, also the confusion between "Dos Prompt" and MS-Dos may be adding the the hits. But lets face it, if you are not exposed to the users of dos, you can be excused for thinking it is dead.
I visit factories every week where I see the examples. For an "off the shelf" OS, there simply isnt anything better available, and it's free.
I have investigated everything from embedded dos to Win CE to the Linux breeds, nothing is as stable / reliable.
BUT, that is not what this thread is about.
My opinion in FreeBasic becoming a clone of C that speaks a different language , is that will not stand out. None of us knows what the trend in hardware or use of software will be in 5 years time. Having a robust compiler and tools that will easily adapt to the changing environment is more important then becoming a "me too" in the C of C's.
This discussion would be a lot more constructive if the proponents of some of the "proposed features" spent time selling them. Once other users see the advantage of these features they will become motivated to participate. Start a thread on it and convince them that it is badly needed.
Blindly debating a dozen issues will simply mean that in six months time the same debate will happen again. Debate / Sell one point at the time and you win supporters.
Regards
Regards