PowerBasic 10
PowerBasic 10 is coming soon!
You can see a preview of some of the new features here: http://www.powerbasic.com/support/pbforums/showthread.php?t=46443
I want to discuss some of these new features that they have posted on their web site pointing out the ones I am most excited about.
Static Link Libraries (SLL’s)
I think this is the most important new feature in PowerBasic 10. Now third party developers can create libraries which can be embeded in the EXE, so users don’t have to distribute DLL’s. I definitely plan on converting some of my software to SLL’s. This does not mean though that DLL’s are some how obsolete. The advantage of a DLL is that its code can be shared among multiple applications, making the total application size much smaller. For example, EZGUI 5.0 will have a DLL runtime which about 700 KB in size. It is best to keep it as a DLL, since some EZGUI users will write multiple EXE’s for their application and they all can share the same DLL, which makes the entire application much smaller. Other of my tools are perfect for the new SLL format. EZSprite is a good choice for this. EZSprite is not a very large library and I can image a number of programmers distributing a single EXE with it. Even if a programmer needed to distribute two EXE’s , both with the SLL embeded, the extra size would not be significant.
Now smaller libraries, where the user may more likely only distribute a single EXE as well, may be better converted to SLL format. This one feature alone will make the upgrade to PowerBasic 10 worth it to me. (Note: I have already preordered PowerBasic 10)
Resources
PowerBasic 10 introduces the new and improved #RESOURCE compiler directive. Rather than compile a PBR file separately, you will now be able to simply define the resources in your applications source code and not have to use the RC.exe compiler. This is a welcome addition to the language.
FASTPROC
This is an interesting new feature. It is some kind of faster procedure calling mechanism, which is limited to two long parameters. The speed of execution is the key here. Procedure calls have a certain degree of overhead, which if called repeatedly can slow things down a little. Modular code design encourages putting code into reusable procedures. The problem is when a procedure may be called thousands or millions of times in a loop. One example is when what you write is graphic intensive. I usually avoid procedure calls in such cases, because I need the optimal speed. This new faster procedure call, may allow me to write such procedure calls and not take a hit in execution speed. Now two long parameters is not a lot work with, but I don’t see any reason those parameters can’t be pointers to large structures, so the procedure can be passed large amounts of data via a pointer. I have always appreciated new mechanisms to speed up code.
There are a lot more new features, but few of them are ones I personally would use a lot. This does not mean others won’t need them though. Check out the link I posted above and read about them yourselve. Likely some will appeal to you.