Ease of distribution for applications

Everything else that doesn't fall into one of the other PB categories.
bsilver
User
User
Posts: 27
Joined: Tue Jun 27, 2023 3:36 pm

Ease of distribution for applications

Post by bsilver »

Hello! I wondered if people could offer some insight to their experiences with creation and distribution of applications made with PureBasic. I'm completely new to PB, and have some background using Go, and some huge benefits to using Go included being able to create a single executable file that I could easily deploy to other servers or users along with the ability to cross compile that application from one code base; my Linux workstation could easily be scripted to build out the same application for the Mac, Windows and other Linux workstations.

Well, that's how it's supposed to work. Sometimes I'd hit some weird errors that turned out to be a reliance on a particular system library like libc, or applications using network code would have issues if the client system didn't have a particular library available, and I had no idea about that until there were errors.

Combined these "gotchas" with a desire to create some small graphical utilities without worrying about graphical libraries that weren't "part of the language" adding to dependency and versioning headaches, I wanted to search for a language environment that could cross compile, have decent included libraries including GUI widgets without the default answer being "use a web interface", and be really simple to deploy the end application without worrying about weird gotcha's.

Does PB create single static executables? Does it hit gotchas where an application seems to work fine except it relied on a library I didn't know it needed until someone tries opening it on a version of Windows one release behind what I expected? I am a little worried about the community...I mean no offense when I say that it seems like there is only a small user base behind PB, relative to many other environments. Is it difficult for a learner in my position to get help and access to code examples?

Any stories from people experienced in using the language and IDE about their learning curve would be appreciated. I looked at Xojo and there are...well, other stories that make me hesitate to financially dive into that. I'm just starting with the demo downloads of PB now to get an impression of whether it could fit my needs and try to get a feel for what it may not be able to do (if anything?)...
User avatar
skywalk
Addict
Addict
Posts: 3972
Joined: Wed Dec 23, 2009 10:14 pm
Location: Boston, MA

Re: Ease of distribution for applications

Post by skywalk »

My opinion:
Purebasic is best of breed for RAD development tools(Win,Linux,MacOS,ARM flavors).
Forum is awesome. And Purebasic is past 20 years old!
Learning curve: Experienced programmer = 1 week, Novice = month(s).
Obviously, curve depends on complexity of code, (gui,networking,custom canvas gadgets,threading,database, 2D vs 3D graphics, etc).

Yes, you control all dependencies when you compile.
More recently, PB transpiles to C to create very swift, optimized exe's.
The price is almost charitable. But, understand its users come from across the economic scale.

Good luck!
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
Bitblazer
Enthusiast
Enthusiast
Posts: 733
Joined: Mon Apr 10, 2017 6:17 pm
Location: Germany
Contact:

Re: Ease of distribution for applications

Post by Bitblazer »

bsilver wrote: Tue Jun 27, 2023 4:35 pm Does PB create single static executables? Does it hit gotchas where an application seems to work fine except it relied on a library I didn't know it needed until someone tries opening it on a version of Windows one release behind what I expected?
You can create many kind of executables with PureBasic, on and for several different target platforms. You can create console executables for windows or linux that result in one file and the only thing you need for them to work elsewhere, is that one binary file. But you can create complex applications that use all kind of external libraries and in the end, you will have to think about how you distribute the whole package so it works elsewhere.

Personally i like to use NSIS for more complex applications, but there are many other installers like Inno setup or many, many other installers.

It really depends on your project and skill.
bsilver wrote: Tue Jun 27, 2023 4:35 pmI am a little worried about the community...I mean no offense when I say that it seems like there is only a small user base behind PB, relative to many other environments. Is it difficult for a learner in my position to get help and access to code examples?
Quantity is just one aspect. This forum is pretty active, has a decent quality of regular members there is also the PureBasic discord chat and many web resources for months to read. Why don't you try the demo yourself, grab some tutorial and watch the forum and discord, to see how that works for you?
webpage - discord chat links -> purebasic GPT4All
User avatar
Tenaja
Addict
Addict
Posts: 1948
Joined: Tue Nov 09, 2010 10:15 pm

Re: Ease of distribution for applications

Post by Tenaja »

Two things...
1. You cannot cross compile unless you are running an emulator or other two-os thing like wine or wsl. The target is always based on the os running the ide, so if you can't run a Linux or Mac ide, you can't output a Linux or Mac executable.

2. All gui stuff uses system calls, so all cross-platform stuff is lowest-common-denominator stuff. All of the os-specific commands are clearly noted in the documentation.
So... That makes pb only suitable for very simple GUI stuff if you want all the platforms identical.
OR, you use one of the many user-created GUI libraries here (like the tabbargadget that's ten years old but still very relevant). There are some prolific devs here that have quite a few options. (The canvasgadget made those explode in popularity.)

I love pb, and chose it for the cross-platform capability... But that only held up for very simple tasks. Thankfully, the are other options for most needs.
Post Reply