DISCLAIMER This is basically a method for me to express my views on the future of this project. Since this project is Free Software, that does not mean that someone else can take the project in a different direction. This is just what I think. - Anthony Liguori Plans for a Windows port are in the works. The current plan is to support GCC compiled with the CYGWIN dll which forces all programs compiled with LBPP to be licensed under the GPL thereby encouraging open source development on Windows. 7) Will LBPP be ported to *BSD or another Open Source operating system? Sure, if there is a demand for it. I can also justify spending resources on that so I will obtain a copy of a BSD if there is a desire. * Updated 12/15/2001 Anthony Liguori Easy port if the system runs GTK 8) What are function and statement defines? The define statement allows for the definition of a LB statement or function. This definition will allow for a C function prototype to be generated for the corresponding statement or function. * Updated 12/15/2001 Anthony Liguori Changed to declare statement but same idea 9) Does this mean I can add used defined statements to LB? Yes. Since statements can be so different though, I am going on record saying that only very select statements should get officially added to the list of predefined statements. This will help keep executable size low and reduce the complexity of the language. I also would like to see in the future the ability to have special libraries that include a statement/function declaration with the support object code. That would allow someone to delivery a package of a new functionality that could either reside in a static or dynamic library. 10) Do programs created by LBPP have any external dependency. No. Well, only the standard C library but that really doesn't count. 11) Is there a way to embed resources in an executable? No, although this is a very interesting topic. I would love to see some discussing about this. 12) Will LBPP ever have a IDE and debugger? I have no plans or desire to create an IDE for LBPP. An IDE sounds like a great project all on it's own. I imagine it could borrow a lot of the syntax parsing and verifing features of LBPP which is a good argument for moving those features to an external library. Those features will remain GPL'd though so any IDE that wished to use those features would also have to be GPL'd. A WYSIWYG editor is also another great project that is outside the scope of LBPP. Many efforts to create a Liberty Basic driven WYSIWYG editor have already been undertaking with a great deal of success. A bench mark of version 0.1.0 is surely the ability to successful compile one of this programs. A debugger is a very interesting topic of discussion. Due the the symbol storage methods employed by the translator, it would be very easy to be able to interactively view and modify symbols without having to deal with all the debugging information of the executable. Line information is something that can be outputed directly by LBPP to be used by GCC. The only thing that would really be required is the ability to set breakpoints by reading the line table and the ability to put the executable in single step mode safely - read the LCC documentation for info how this effects Windows. 13) Why doesn't LBPP use LCC? I used LCC for quite some time. The original Liberty Basic compiler I wrote many moons ago used LCC. LCC is a great Windows compiler but unfortunately, is no longer Open Source, and not ported to a great deal of platforms. It is also no where near as robust as GCC. GCC is by far a superior compiler than LCC. GCC is a much larger package but that is because it supports so many languages. The components of GCC that are included with LBPP will be considerably smaller in size. 14) What is GCC? Is it a compiler or set of compilers or what? GCC is actually a collection of tools. It is referred to as the GNU Compiler Collection. There is a tool in it that is called GCC which is the GNU C Compiler. This is what LBPP uses. All the GNU Compiler Collection tools are based on a common source and hopefully some time in the future, LBPP will also draw from that source. When this happens, LBPP's name will be changed to reflect what it is. For now, since LBPP is providing functionality similiar to the CPP tool, it's name will be LBPP to reflect the fact that is a Liberty Basic Pre-Processor as far as GCC is concerned. I wouldn't be suprised if LBPP never became part of the GCC tree though. The GCC developers are very hardcore Unix C programmers. I am amazed that they let the Java compiler become a part of the project. I have a hard time imagining that they would want a Basic language to be part of the project. Currently, the LBPP code is no where near the quality that would be required to become part of the GCC tree, so this is a very far off consideration. 15) What is Linux? I figured I should do some advertising atleast :) Linux is an incredible operating system that is absolutely free. It is both free as in speech - you modify and change it your hearts content - and as in beer - you can download it free off of the internet. If you are new to Linux, I recommend buying a distribution. They are available in most if not all software stores and in most decent bookstores. I recommend buying a book along with it since it is rather different than Windows. It is absolutely worth checking out. I have used Linux since the 1.x days and about two years ago, switched over to use Linux as my main OS with Windows as a supplemental OS. I am happy to say though that after not using Windows for quite some time, I removed it from my system and am now only running Linux. I have to tip my hat to all the people who have contributed to Linux in some way or another. It is truely an amazing thing. Here is a list of good sites for info on Linux: [General Linux Information] http://www.linux.org [RedHat - Leading Linux Distribution] http://www.redhat.com [Linux Documentation Project] http://www.linuxdoc.org 16) How is LBPP different than BCX? I truely believe that LBPP and BCX are two entirely different projects with two entirely different motives. This is highly subjective though. First let me start by saying that BCX is an amazing project that I have a great deal of respect for. I considered concentrating my efforts on porting BCX to Linux prior to writting LBPP. BCX is an incredible language. It is a highly sophisticated Basic language that can do amazing things though. I think the power of a Basic language though is it's simplisity. All languages have a special niche. For heavy duty production applications, the language of my personal preference is C++. For fast, efficent, and complex programs (or rather, programs that have a higher degree of complexity than code size) I prefer straight C. For problems that need a small bit of logic but high level of OS level interaction, I prefer shell scripting (csh's my favorite). The niche I think Liberty Basic - and Basic languages in general - occupy are small GUI applications that don't require complex logic behind the scenes but do require some logic. With a few simple statements, a GUI can be created that can do an amazing amount of things. There have been many instances where I wanted to automate some job that required a large amount of data to be entered. The ability to make a quick GUI to do this is indespensable. In a lot of circumstances, it is impossible to justify writing a C/C++ application for a certain task. With that being said, I think BCX is trying to fill part of the niche that C++ occupies. I could not personally imagine having to maintain 10,000+ lines of Basic code but thats just me. That's where the encapsulation features of C++ come in handy. I guess some people really like Basic. Of course, one writes Free Software for himself so I guess that's all that really matters ;-)