View Full Version : Development for thinBasic
Guys, I am not going to list names because I don't want to miss someone who deserves to be on the list. But there are many guys in this wonderful community that I know have the skills to contribute to thinBasic development beyond the great guys that are already doing so.
Right now to develop for thinBasic we almost have to make a new module. I think a way that we could add to existing modules would be a great addition. Here is what I was thinking:
Each module has a module leader. That is the person who created the module has full control along with Eros and Roberto. Those who contribute to the module send their code to that leader and they in turn can fine tune it to best fit into the module. But the bulk of coding for this new feature will be done and the rest of us not capable of making modules could at least add to the development of thinBasic.
For this to work we need a development language accessible to those who want to join in the development. Currently many languages are supported, but these are at module development level. In order to do what I am mentioning, this means a common language.
That language for now is PowerBasic as it is used by all but I think Roberto in developing for thinBasic. PowerBasic is expensive when you look at the free alternatives out there. FreeBasic is the closest probably to meet the needs, but understandably it is under lots of revisions itself as it grows and evolves to modern standards.
FreePascal would be the next choice, it is not that far from Basic type syntax and has been around a long time. But this would still mean these languages would not allow us to add to existing modules. The only real choice is PowerBasic.
I was thinking perhaps those interested in making additions to thinBasic, that perhaps a number of possible users could be deteremined and then Eros could approach PowerBasic and perhaps work out a substantial price reduction to make it affordable to more developers interested.
I bought powerbasic, so don't think it is for selfish reasons I bring this up. I got my copy already, but know I see talented coders here who could add to the development of thinBasic and perhaps that high price of powerbasic could be a limiting factor.
What do you guys think or any other suggestion? Is there a way that any compiled language could be used to add to partial module development?
MystikShadows
07-07-2008, 03:02
It's probably not a good idea to mix too many languages to make one language. Now you got me curious as to what language Roberto is coding in exactly ;). But the bottom line, and you mentioned it in your post is that its' best to use a common language as much as possible except when you need extra speed and then C++ or ASM can probably be used. But hey, PowerBASIC beats C++ hands down, and if they need ASM PowerBASIC has inline assembler to do that job very well. I've seen benchmarks in powerbasic and took the code, ported it to FreePascal and to MinGW and DJGPP and well PowerBasic beats them all.
Now, I like the idea of trying to get a collective multi user lower priced license. Although those of you that have purchased powerbasic, lucky you, I want one, I'll send my paypal account to anyone willing LOL. Seriously though Powerbasic wouldn't really have a commercial reason to do that (at least not if we're expecting to cut the price that much). At leat I don't see a reason and I don't work for PowerBasic Inc. ;). But hey, Maybe Eros can approach them with the idea and see what happens but I wouldn't expect that much from that venue. Doesn't hurt to try though, I so hope to be wrong ;).
Now, taking this approach out of the equation for now. I think that if developers were to use a different language, the whole thinBasic project should be ported over so that indeed, anyone can add to the existing modules. By that I mean that those Eros and Roberto would hand pick to participate in the development should either have powerbasic already (lucky you kent hehe) or the whole project ported to another language because the contributors would have a hard time integrating the new stuff without at least some prior testing being done and if Eros and Roberto start doing that testing, they'll be spending the rest of their lives doing testing and not doing coding per se ;). that can get boring over time hehe.
It depends, I haven't bought anything from PowerBasic Inc. So I couldn't say how open they are to such a proposition since I don't know anyone there at all personally.
Mystik, Roberto is a c/c++ guru. So that is what he uses. I think he has PowerBasic, but I am not sure.
So you are saying that since thinBasic is built mostly on PowerBasic, that PowerBasic would be the language to use for the common development language.
I guess will have to wait for Eros or Roberto to clarify how and if this would work or what options are available.
I guess till then, it would be nice to see the interest in those that would be interested in such a thing.
Michael Hartlef
07-07-2008, 07:34
Kent, when you say that everyone should be able to add to existing modules, that means that all modules should be open sourced, right?
ErosOlmi
07-07-2008, 08:41
Hi all.
Roberto is able to code in the language that most adapts to the problem. He can reply by himself but (as far as I know) he started with ASM and C (he still code in both) and made his first money with RPG on IBM machines (AS400 and others). He know very well C++ and the .Net framework (C# in primis). And, of course, many Basic: he daily uses PowerBasic. Some examples specific to thinBasic project: Roberto (among other stuff) is in charge of thinAir development (100% PowerBasic code), ASM and C SDK, COM module (Microsoft C), STAT module (PowerBasic), Date module (PowerBasic), Crypto module (PowerBasic), ...
Back to the original question.
One of the idea behind thinBasic was to be open to 3rd party development. Since the beginning we introduced thinBasic SDK that are a set of exported function from the main Core engine that allow other DLL to interface and interact with the Core Engine and with the script under execution.
Module creation was used since the beginning from us and has shown a lot of potentiality. I think it is a still valid concept that will be with us for the future of thinBasic. The concept of thinBasic SKD is very open and based on Windows standard technology: DLLs. That's why almost any language able to create standard Win32 DLLs can be used to create thinBasic modules.
We "personalized" this interface telling that a thinBasic module must follow some imposed rules. A thinBasic module usually do not expose all the internal functions (it is not a generic DLL library) but "talk" directly with thinbasic Core in an in/out way both for adding new keywords and telling thinBasic how to parse new functionalities.
We think the future development under thinBasic will remain open on this side, that is modules will continue to be developed with any of the supported languages. Looking at the many modules thinBasic already have and how easy it is to start creating them and how powerful they are we cannot think different. What we strongly need to do on this side is to create a much better documentation on how to create modules, how to interface with thinBasic Core, which are in details the many SDK functions and how to use them at the max. This is a must for me in the near future.
Regarding PowerBasic.
Many times we have suggested PowerBasic (GUI version) as primary development language. And we still do this. Looking at the many languages around, PowerBasic has shown big credibility, strong support, continuous development, creates the best optimized code I've seen around and (most important) stability. When you code 4/6 hours per day, the last thing you would find is your compiler haveing bugs. PowerBasic had absolutely no important bugs at all. When there is something not working correctly, I can be sure it is me and not the compiler. For me this is one of the most important aspect.
Regarding price. It is true that its price is higher than other compilers but it is true that they just do compilers for living. No money, no PowerBasic compiler. I prefer to pay something but have the best around. That said, I can ask PowerBasic about any possible discount. They did in the past a campaign. They asked to current PowerBasic customers base to tell a friend about PB making discounts in case of purchase. Maybe they can do something similar in the future. I will ask and report.
Open source
It is one of my limits but I do not believe in open source as THE method.
I believe in a strong user support, strong people listening, strong open mind, capacity to change idea on user suggestions, fast and frequent updates, and (of course) hard working. If, some day in the far far future, I would decide to give-up with thinBasic, I will release its sources. But this is not the case. Both Roberto and me have the full thinBasic source project so it is not one band project (it is at least two ;) )
Final
We are just at the beginning of thinBasic history! ;D
Many things will change and many things can change thanks to everyone suggestions and support.
Ciao
Eros
ErosOlmi
07-07-2008, 11:02
Worth to mention that for creating thinBasic modules, FreeBasic is a good alternative.
It is true that its future direction is ... maybe not perfectly clear but so far creating thinBasic modules using FreeBasic is very very close to using PowerBasic. FreeBasic manage BSTR strings (OLE32 Strings, the same strings used by thinBasic) almost natively. So handling strings in/out from "the modules / to the thinBasic Engine / to the script" is quite easy.
Regards
Eros
RobertoBianchi
07-07-2008, 12:56
Hi MystikShadows,
as Eros said I know a quite numbers of programming languages, normally the choice of which one to use depends on the work's context that to be do.
Of course like Eros I also have a Power Basic licence, PB was the historical and is the actual official ThinBASIC development language.
Historical reasons are mainly due to the fact that PB is the language preferred by Eros, however it is a language which I appreciate for the execution speed, small size of generated code, no external dependency and good and easy sintax.
Thanks to the experience made in these years with the Power Basic I understand clearly three limits of this language: DEBUGGER for example during the development of the modules thinBasic_Console and thinBasic_CGI the lack of a valid debugger for DLL caused me some headaches ;D, NO UNICODE SUPPORT this means that some writing system couldn't be use directly by the target application, NO CROSS-PLATFORM target application can runs only on Microsoft Windows OS even with two different compilers depending on the target subsystem (GUI or console).
In any case we are looking for a programming language that can ensure and accompany ThinBASIC in its strong and rapid growth.
In fact ThinBASIC is open to all languages that can create Win32 DLLs, but in order to avoid confusion on the languages used, do you think that it might be useful to highlight (may be within the help) for each ThinBASIC module/component the language used to develop it?
Regards,
Roberto
MystikShadows
07-07-2008, 15:59
I think it would be a great idea yes. this way, people from all the languages would know that they can use at least any language already used for one thing.
I too know a lot of languages. I've been programming since I was 7 back in 1975 and in 33 years well you learn a lot of languages and a lot of things about programming in general. but yes, a list like that would be most helpful to people already contributing as well as newcomers eager to contribute to the project.
ErosOlmi
07-07-2008, 16:16
In fact ThinBASIC is open to all languages that can create Win32 DLLs, but in order to avoid confusion on the languages used, do you think that it might be useful to highlight (may be within the help) for each ThinBASIC module/component the language used to develop it?
That is a good idea.
I will do it for next thinBasic release.
RobertoBianchi
07-07-2008, 17:54
Hi MystikShadows,
I started to programming as job in 1980 on HP-85 personal system:
http://www.hp.com/hpinfo/abouthp/histnfacts/museum/personalsystems/0029/index.html
Ciao,
Roberto
MystikShadows
07-07-2008, 18:44
reminds me of the IBM 5100 http://www.old-computers.com/museum/computer.asp?st=1&c=795
I've had one of those 5100. I 12 in 1980...wasn't time to work yet, but I was programming on this good old fashion basic back then lol.
Kent, when you say that everyone should be able to add to existing modules, that means that all modules should be open sourced, right?
Mike you are right, the idea collapses as to make it work things would need to be open source, I didn't think of that.
MikeStefanik
06-08-2008, 17:40
I think that if developers were to use a different language, the whole thinBasic project should be ported over so that indeed, anyone can add to the existing modules.
I wouldn't see why that's the case. Languages are like tools in a toolbox, you use the one that is most appropriate for your particular needs and what allows you to get the job done the fastest. For some people, that's PowerBASIC. For others, it's Delphi or C/C++. A strength of thinBasic is that its "language agnostic" in terms of module development.
They do need to update the SDK and the documentation, however. Right now, it's pretty thin on the ground and the C SDK looks to be several generations behind the PowerBASIC implementation of the same. Actually, that's something I wouldn't mind helping with, once I get the current project I'm working on wrapped up.