Page 1 of 4

Thinking about buying PureBasic, a few questions

Posted: Fri Aug 11, 2006 1:56 am
by MaxNorris
I recently stumbled across the PureBasic web site a few days ago, and tried out the demo, and was immediately hooked. I notice it has a large active community, which is very helpful, and so far I'm very impressed with what it can do. I do have a few random questions I'd like to throw out there that I couldn't find direct answers for via forum searches.

IDE - I've been developing for almost 30 years (gak I'm old) and I've messed with a lot of various IDE's. Nowadays I'm mostly using Borland 2006 (which I love), and Visual Studio .NET 2005. I'm very fond of their IDE's. I saw one external IDE that's available, jaPBe I beleve it was called. Are there others? (I may have to write one that emulates the BDS2006 IDE.. best one I've ever worked with)

Video files - I toyed around with video playback a little bit with mixed results. It seems to work ok with some and not others. Is there a "preferred format" for use with PB? (Type and codec?) Does it support OGG? And on the same token, how about sound files? I'd prefer to avoid MP3 just for licensing issues, will it handle other formats?

Libraries - I'm impressed with the end result. I tried a little test program I whipped out in a few minutes, and the exe size was downright tiny. There's no run-time libraries at all? I saw my little exe and was thinking.. "Ok where's the rest of it hiding?"

Performance - Just how fast is it? I know that's a loaded question of course, but in general, does it keep up with the "big guns"? (C++, Delphi etc etc) I'm mostly interested in two aspects of it for a project that I'm thinking of working on next.. 2D gaming and server side processing. I've been using Ogre in a managed environment for 3D stuff with decent results, and toying with Irrilicht, TrueVision and a few others, but this time around I'm going pure 2D. There'll also be a server I'll need to write, I was originally going to just do this in Delphi with Indy, but for a learning experience I'd like to give PB a spin on this end as well.

Large Projects - Just how big of an application can I build? How big can a single program file be? I noticed it handles includes and whatnot, which is good. (I'm in the habit of breaking bits of code down into seperate files to make things more managable) Is there a project manager of sorts?

OOP - I saw that it supports structures, including inheritance and so on, and it also supports user defined procedures. Can structures include procedures? (Just for sake of argument.. I design a simple object that represents a player on screen.. variables include position and whatnot, but it also has some functions with it as well that can be called) And on the same line, can objects have events? This isn't going to turn me off if PB doesn't work like that, it'll just go along with the learning curve, getting out of the Delphi and .NET mindset.

MoleBox - I use this mostly just for packaging. Example, your program has a few hundred little data files that it uses. MoleBox can squash all those files down into one compressed/encrypted data file, and your program has no clue that it's working differently. (Makes it super easy for distributing games without having to worry about people ripping your media and whatnot) Haven't had a chance to try it yet -- anyone have experience with MoleBox and PB?

GUI - I toyed with the GUI designer, which is pretty nice, no complaints there. Is there a GUI system for while in 2D or 3D mode? Or would I need to roll my own?

Thanks for any input you guys may have. Judging from what I've been reading here it looks very promising. Once I get over the learning curve I'm curious to see how hard I can push PB. (.NET aside I haven't used BASIC since the GWBasic days..) After I get a little more info I may just have to buy this. :D

Posted: Fri Aug 11, 2006 4:42 am
by Fluid Byte
I saw one external IDE that's available, jaPBe I beleve it was called. Are there others?
Just searched the web and looked at some common places but haven't found anything useful. As for the jaPBe IDE, I think it has been discontinued. Last update was 22.04.2005. Anyway, I really like the default IDE (PB v4.0) and as far as I know you can create your own kind of enhancements for it.
I may have to write one that emulates the BDS2006 IDE.. best one I've ever worked with
Gimme a shout when you are ready! :wink:
It seems to work ok with some and not others. Is there a "preferred format" for use with PB? (Type and codec?) Does it support OGG?
I noticed that too as I was working on some project wich makes use of the video playback commands. I have tested it with various formats and codecs like 'Ligos MPEG Video Decoder' or 'DivX Decoder Filter' don't seem to work correctly. I haven't tested the OGG format yet. And I think a "preferred format" would be AVI then. Furthermore, PB is missing same basic functions like "LoopMovie()" here or at least a flag that lets you specify some kind of looping mode.

However, the video playback commands are not too bad but need to be extended as well as the set of supported codecs.
And on the same token, how about sound files? I'd prefer to avoid MP3 just for licensing issues, will it handle other formats?
Only WAV and OGG but using OGG format on large files (like complete songs) is a bad idea becuase it's slow on decoding. A good solution would be using a sound library like FMOD.
There's no run-time libraries at all? I saw my little exe and was thinking.. "Ok where's the rest of it hiding?"
If you mean something like VisualBasic runtime libraries then this is a big NO.
Just how fast is it? ...does it keep up with the "big guns"? (C++, Delphi etc etc)
"PureBasic is a portable programming language which currently work on AmigaOS (680x0 and PowerPC), Linux, MaxOS X and Windows computer systems. This means than a same code can be compiled natively for the OS and use the full power of each. There are no bottlenecks like a virtual machine or a code translator, the generated code is an producing an optimized executable. The external libraries are fully written in hand optimized assembler, which produce very fast commands often much faster than C/C++ equivalents. "

Does this answer the question?
Just how big of an application can I build? How big can a single program file be?
I don't know of any offical limitations. There certainly is a limit based on your project's filesize and your CPU power when compiling the whole thing but I don't think you will ever reach that, I mean it's a pathetic scenario.
Is there a project manager of sorts?
Nope.
MoleBox - Haven't had a chance to try it yet -- anyone have experience with MoleBox and PB?
Haven't tried that application yet but absolutely nothing comes to my mind that should prevent MoleBox from working with PB compiled executables. Great program by the way!
Is there a GUI system for while in 2D or 3D mode? Or would I need to roll my own?
None that I know of, just one IDE for all dimensions. I guess you will need to create your own one.

As for the OOP thing (Object Oriented Programing, no?) I'm not quite sure what you mean maybe something like Interfaces or Prototypes? Wasn't yet in a situation where I would need this. Isn't there a specific key word for this kind of technique?

Anyway, I hope this helps you making your decision a little easier. And if you ask me, go buy the thing! PureBasic is one of the greatest dev packages you can get for less than a 100 bucks. :!:

Posted: Fri Aug 11, 2006 5:08 am
by Fangbeast
IDE:

1. jaPBe is now being supported by Gnozal and he is doing an excellent job of supporting, fixing and extending it.

Please look here.
http://www.purebasic.fr/english/viewtop ... highlight=

2. An extremely clever programer is making a RAD type IDE and project tool but even he says he has bitten off a lot and has no delivery date but have a look at what we can look forward to anyway.

http://www.woken.com

RUNTIMES:

There are no runtimes at all. The compilers' author has said a few times that the core of purebasic talks to and/or wraps the API which is another reason why it doesn't need runtimes, but uses the native capabilities/features of the host O/S it is working on.

SPEED:

Speed comparisons have show varieties of C to be sometimes faster, sometimes the same speed, sometimes slower than this compiler and this is always dependant on WHAT you are coding and how you are coding it. There are no definitive answers but plenty of opinion:):):)

FILESIZE:

I have seen recently that a coder came up against a limit of windows in running a large, single EXE and he mentioned it was over a gigabyte. But I think he had linked an awful lot of files to the actual program itself and windows choked. MSDN might mention the native limit of the host O/S.

GUI:

..There are several gui designers and some attempts at making a few to be integrated into the native IDE's tools menu. However, none of them are designed to actually work in 3d mode (If I understand the question).

..The native gui designer (Currently supplied with the compiler) is undergoing a radical overhaul but as the programmer is a single person trying to run a business, it is taking some time. (Still not designed to work in 3d mode?)

..A reasonable third party commercial design tool called purevision is another good alternative. It is also awaiting a final redesign of it's core components. Not expensive.

Posted: Fri Aug 11, 2006 8:19 am
by DarkDragon
Fluid Byte wrote:
I saw one external IDE that's available, jaPBe I beleve it was called. Are there others?
Just searched the web and looked at some common places but haven't found anything useful. As for the jaPBe IDE, I think it has been discontinued. Last update was 22.04.2005. Anyway, I really like the default IDE (PB v4.0) and as far as I know you can create your own kind of enhancements for it.
Eclipse is the best of all! :-D . But for testprojects it is really a bit too big.

Posted: Fri Aug 11, 2006 8:52 am
by netmaestro
I heard Eclipse was getting a plugin for PureBasic, but I did a search on their site and it turned up nothing. Anyone know if it's coming?

Posted: Fri Aug 11, 2006 9:39 am
by mskuma
Hi MaxNorris, I am a relatively new user .. I'll offer my 2c.

The IDE - excellent - has dropdown procedure list (as you type a few chars, you see a relevant list - very productive & handy for learning PB) and code-folding. These are my 2 favourite features.. The IDE is very customisable, though I've not needed to delve into that.

OGG files - audio OGG files are supported (according to the help).

Performance - from my limited experience, it's on par with anything else.

OOP - search the forum for many posts on this, including a recent one (little class parser).

MoleBox - has been mentioned often - search the forum for references to it and EXECryptor (strongbit.com). I am personally interested in these tools too..

All-in-all, I love PB - it is a very approachable language and the environment is enjoyable to use. The community here is great, which is one of the reasons why I registered. Good luck.

Posted: Fri Aug 11, 2006 9:43 am
by DarkDragon
netmaestro wrote:I heard Eclipse was getting a plugin for PureBasic, but I did a search on their site and it turned up nothing. Anyone know if it's coming?
http://www.purebasic.fr/english/viewtop ... ht=eclipse

Search here in the forums ;-)

Posted: Fri Aug 11, 2006 10:22 am
by mannybass
Hi MaxNorris, be sure to check http://www.purearea.net/. There you'll find many programs written with PB.

And just to mention it, with PB you have easy access to the WinAPI.

Posted: Fri Aug 11, 2006 10:34 am
by Kale
Plus you can click on my sig and find a beginners book to quickly get you up to speed with Purebasic. :twisted:

Posted: Fri Aug 11, 2006 11:27 am
by srod
Buy it!

:wink:

Posted: Fri Aug 11, 2006 12:50 pm
by inc.
Video files - I toyed around with video playback a little bit with mixed results. It seems to work ok with some and not others. Is there a "preferred format" for use with PB? (Type and codec?) Does it support OGG? And on the same token, how about sound files? I'd prefer to avoid MP3 just for licensing issues, will it handle other formats?
PBs internal Movie Commands do base on DirecX/DirectShow. If you want, you can easely handle mediastreams using own DirectShow accessing Procedures ... or a ready made include file ;) : http://www.purebasic.fr/english/viewtop ... directshow
Does it support OGG?
Anything supported by the installed Dshow Codecs in the users system

Posted: Fri Aug 11, 2006 4:18 pm
by MaxNorris
Thanks for the information everyone, gives me a lot to think about. Toying with the demo a bit more, it's a little tough getting out of my old programming mindset (Delphi/C++) as the language is structured quite a bit differently.. hard to get out of the OOP habit :) (That and shaking off not using braces and semicolons all over the place, let alone just jumping straight in with commands without having to muck about with headers, constructors and whatnot..)

But I think I may have to buy a copy of this. Thanks again

Re: Thinking about buying PureBasic, a few questions

Posted: Fri Aug 11, 2006 4:40 pm
by Shannara
Notice, these experiences I have ran against when answering. Some have been experienced by others, others have not.
MaxNorris wrote: IDE - I've been developing for almost 30 years (gak I'm old) and I've messed with a lot of various IDE's. Nowadays I'm mostly using Borland 2006 (which I love), and Visual Studio .NET 2005. I'm very fond of their IDE's. I saw one external IDE that's available, jaPBe I beleve it was called. Are there others? (I may have to write one that emulates the BDS2006 IDE.. best one I've ever worked with)
Depending on your definition of an IDE. I go by the dicitonary, Integrated Development Environment. I have found one IDE for purebasic and that have been discontinued. http://www.hellobasic.com/ . However, someone mentioned the Woken IDE, and it shows promise.

As for the jaPBe code editor. I have found some bugs that seem to only appear under Windows XP for the version for PB4. However, the PB4 code editor works nicely :)
MaxNorris wrote: Video files - I toyed around with video playback a little bit with mixed results. It seems to work ok with some and not others. Is there a "preferred format" for use with PB? (Type and codec?) Does it support OGG? And on the same token, how about sound files? I'd prefer to avoid MP3 just for licensing issues, will it handle other formats?
Some people here are doing wonderful things on this front :) I think his have been answered already :)
MaxNorris wrote: Libraries - I'm impressed with the end result. I tried a little test program I whipped out in a few minutes, and the exe size was downright tiny. There's no run-time libraries at all? I saw my little exe and was thinking.. "Ok where's the rest of it hiding?"
One of the advantages of PB, unlike VC, it has no runtime libraries. It only makes use of the OS' API.
MaxNorris wrote: Performance - Just how fast is it? I know that's a loaded question of course, but in general, does it keep up with the "big guns"? (C++, Delphi etc etc) I'm mostly interested in two aspects of it for a project that I'm thinking of working on next.. 2D gaming and server side processing. I've been using Ogre in a managed environment for 3D stuff with decent results, and toying with Irrilicht, TrueVision and a few others, but this time around I'm going pure 2D. There'll also be a server I'll need to write, I was originally going to just do this in Delphi with Indy, but for a learning experience I'd like to give PB a spin on this end as well.
On some aspects it definately keeps up and supasses the big guns. On other aspects, its slower then VB6. A nice search on the forums back up this comment :) All in all, it's fast :)
MaxNorris wrote: Large Projects - Just how big of an application can I build? How big can a single program file be? I noticed it handles includes and whatnot, which is good. (I'm in the habit of breaking bits of code down into seperate files to make things more managable) Is there a project manager of sorts?
If you are versed in creating dynamic code, PB can go quite high. PB has a nifty constant called, "#PB_ANY". Simply a must for any large projects :)
MaxNorris wrote: OOP - I saw that it supports structures, including inheritance and so on, and it also supports user defined procedures. Can structures include procedures? (Just for sake of argument.. I design a simple object that represents a player on screen.. variables include position and whatnot, but it also has some functions with it as well that can be called) And on the same line, can objects have events? This isn't going to turn me off if PB doesn't work like that, it'll just go along with the learning curve, getting out of the Delphi and .NET mindset.
By default? No, PB really has no OOP. Some people have made code editor plugins that can emulate OOP. But PB does not really support OOP.

MaxNorris wrote: MoleBox - I use this mostly just for packaging. Example, your program has a few hundred little data files that it uses. MoleBox can squash all those files down into one compressed/encrypted data file, and your program has no clue that it's working differently. (Makes it super easy for distributing games without having to worry about people ripping your media and whatnot) Haven't had a chance to try it yet -- anyone have experience with MoleBox and PB?
I have heard that people have used MoleBox with PB .. other then that ... *shrugs*
MaxNorris wrote: GUI - I toyed with the GUI designer, which is pretty nice, no complaints there. Is there a GUI system for while in 2D or 3D mode? Or would I need to roll my own?
Roll your own. PB isnt that far advance in the 3D realm :(

Posted: Fri Aug 11, 2006 4:48 pm
by Xombie
One of the things y'all forgot to mention is that we have a fantastic support community. Not only will the creator of the language (fred) hang out and chat in the IRC channel, he'll jump in on the forum with help on some problems. And freak is also there to hand out excellent information. Aside from those two big guns, we have a lot of great people out here extending the capabilities of PB with their own additions all the time. To me, that was a huge selling point. An active community makes a big difference to me.

Posted: Fri Aug 11, 2006 5:40 pm
by Straker
Xombie wrote:One of the things y'all forgot to mention is that we have a fantastic support community. Not only will the creator of the language (fred) hang out and chat in the IRC channel, he'll jump in on the forum with help on some problems. And freak is also there to hand out excellent information. Aside from those two big guns, we have a lot of great people out here extending the capabilities of PB with their own additions all the time. To me, that was a huge selling point. An active community makes a big difference to me.
Probably the best feature IMO.