Munair wrote:No reason to mix distro's. We have virtual machines these days to try out different OSs.
Also flatpak or snap packages are another solution to the linux distro library version mismatch problem.
In the first post it says: "I am thinking about developing a RAD against GTK specifically for Linux similar to RealStudio..."
Yes on Linux GTK+ is a good choice, especially given it's existing C Api which can be worked with easily from FB.
However I have got to the point where it is no longer my go-to choice for toolkit, unfortunately. The main reason is that right now the projects I'm working on will probably end up being used primarily on Windows (and maybe mac), and possibly android in the future. GTK+'s non-Linux future is always in question. Just today I read on the list that the OS X Quartz backend has no maintainer, so it's not getting bug fixes. The windows backend has a couple of people working on it, but nothing like the Linux backend, which has the full force of Gnome developers behind it.
I think that open-source projects in general don't go well with properietary OSs. Developers often adhere to the freedom that comes with open-source. The fact that Qt has better multi-platform support is primarily because it has a commercial license as part of its dual license. It makes it much more interesting for companies to use it in their projects.
Indeed, given the C-API and full open-source nature, FreeBASIC + GTK + LINUX = 100% :-)
Munair wrote:No reason to mix distro's. We have virtual machines these days to try out different OSs.
Also flatpak or snap packages are another solution to the linux distro library version mismatch problem.
Virtual machines puts the onus on the user. I don't know much yet about the practicalities of the rest. And one might as well name Wine then too.
However I have got to the point where it is no longer my go-to choice for toolkit, unfortunately. The main reason is that right now the projects I'm working on will probably end up being used primarily on Windows (and maybe mac), and possibly android in the future.
Same here (and on forums like Lazarus). For people delivering apps to others the order is usually Windows > OS X > mobile > Linux.
Centralizing GTK is then useless.
That's the same what is typically the norm. People delivering apps to others usually Windows > OS X > Mobile > Linux.
GTK+'s non-Linux future is always in question. Just today I read on the list that the OS X Quartz backend has no maintainer, so it's not getting bug fixes. The windows backend has a couple of people working on it, but nothing like the Linux backend, which has the full force of Gnome developers behind it.
Linux bugs that aren't touched by Gnome aren't fixed either.
marcov wrote:Linux bugs that aren't touched by Gnome aren't fixed either.
Sadly yes. GTK really has become the "Gnome Tool Kit." If you want to run GTK+ without the Gnome infrastructure, such as policykit, dbus messaging, etc, your mileage will vary.
marcov wrote:Linux bugs that aren't touched by Gnome aren't fixed either.
Sadly yes. GTK really has become the "Gnome Tool Kit." If you want to run GTK+ without the Gnome infrastructure, such as policykit, dbus messaging, etc, your mileage will vary.
I never used the Gnome 3 desktop, not a single time. Not even tried it. I never understood the change away from the traditional desktop. MATE is OK, but definitely with bugs. Cinnamon -- also never tried it. XFCE: my first choice for a GTK desktop. Relatively light, stable and friendly. A great distro with customized XFCE is MX Linux. In December they come out with a new version based on Debian 9. Definitely worth a try.
And the winner is: GTK (that's a joke guys). I just added the Menu widget to the OO framework. The hurdle to take with FB is event handling with multiple levels of inheritance (see this thread for the solution: viewtopic.php?f=3&t=26125) Anyway, here's a screenshot of the successfully compiled code (just 40Kb in size). Many thanks so far to those here on the forum who helped me out with specific FB stuff. ;).
Last edited by Munair on Nov 03, 2018 9:45, edited 1 time in total.
MANY, many people use FB and Linux BECUASE of the binary sizes.
Linux can be very small, and perform well on older, smaller systems where any modern Windows would not be a consideration.
DOS hasn't died for a reason: for many, that's all that the hardware can support, and that's all the hardware they can get. A small FB executable is a god-send. For many, sneaker-net is still the fastest communication protocol. Don't try to take away one of FB's greatest appeals.
It will ALWAYS be far cheaper to write in Linux and port to Windows, than to do the reverse. (Cyqwin and mingw - how do they count?) The difficulty is choosing the common ground between them. My personal suggestion: GTK. Most portable, least license issues. Unfortunatley, the elephant in the corner (android - following IOS and the JAVA tools) has chosen qt. What are the multi-platform targets? (Interesting - a current search of 'cross-platform' implies that if you don't do IOS and android - no one will care. I guess I am a dinosuar. Wait! Does that means all those apps they want you to move to on the cloud are all written in JAVA something? Yeah, right, and I would like you to give me change for my three dollar bill.)
qt, GTK, or proprietary. Those are really the only choices.
Too bad Vulcan is ONLY on the horizon: not worth the investment yet.
Today, people write in Windows, and then move them to other OS's precisely BECUASE of the RAD tools available.
Munair, I applaud your efforts.
Is your code available somewhere? I will help you test it.
speedfixer wrote:Munair, I applaud your efforts.
Is your code available somewhere? I will help you test it.
David
Thanks David. There's no functional code to test yet. I'm working on adding widgets to the OOP framework. First goal is to setup a working editor, By the time, it will be interesting to test creating, opening and saving files. ;)
Munair wrote:MATE is OK, but definitely with bugs. Cinnamon -- also never tried it. XFCE: my first choice for a GTK desktop. Relatively light, stable and friendly. A great distro with customized XFCE is MX Linux. In December they come out with a new version based on Debian 9. Definitely worth a try.
The most comfortable for me is Kubuntu with KDE. I tried Mint, Mate,Slackware and others. On live-dvd they worked, but at installation on HD the graphics drivers where not there. After some fiddling around i simply use Kubuntu. It installs the right graphics driver for this machine.
Ok, i have to link this. Today i have build another box with a Mint installation on it. First it ran with onboard graphics 640 x 480. When i plugged a graphics card in it recognized it automatically. Now it runs and i have 4 boxes on desktop.
The design of Mint is better than Kubuntu at the moment, no doubt.
I really like the OOP structure of your code. IMHO, OOP is pretty much the way to go in modern GUI coding for large projects. And this thread pretty much summarizes my thoughts about gui, and RAD development in FB. If most of us can focus on one powerful gui, that would be GREAT.
questions
You looked at the FLTK c-wrapper and dropped it, what was the reason? Same for IUP? Really the encapsulation avoids the craziness of the native interface
Is the plan to make your code work in windows too?
JohnK wrote:I really like the OOP structure of your code. IMHO, OOP is pretty much the way to go in modern GUI coding for large projects. And this thread pretty much summarizes my thoughts about gui, and RAD development in FB. If most of us can focus on one powerful gui, that would be GREAT.
questions
You looked at the FLTK c-wrapper and dropped it, what was the reason? Same for IUP? Really the encapsulation avoids the craziness of the native interface
Is the plan to make your code work in windows too?
IUP seems outdated and doesn't have a native look. FLTK has only basic functionality. Qt has a C++ API, which makes it more difficult to use with FB. GTK has a lot of functionality, is easy to use with FB and supports many Linux desktops. No toolkit is perfect. Each has it pros and cons, but GTK seems the most logical choice at this point. Perhaps at a later stage a FCL may be developed, including support for Windows, Qt, etc... But my opinion is that open-source is best served on Linux.
Munair wrote:IUP seems outdated and doesn't have a native look.
IUP looks plenty native to me. At least on Windows and platforms that actually have a native look and feel. Linux is the odd one out in that regard as every toolkit has its own look. I guess what you mean is that on many/most linux desktops (except KDE!), GTK is the de facto native look and feel. And in that regard, no IUP will never quite be native. Although it is possible to grab the desktop color scheme through FreeDesktop APIs and apply them to other toolkits which makes them fit in better. Oddly enough I've always thought Qt with the GTK theming looks great on my Linux desktops, maybe even better than regular gtk apps!
Munair wrote:IUP seems outdated and doesn't have a native look.
IUP looks plenty native to me. At least on Windows and platforms that actually have a native look and feel. Linux is the odd one out in that regard as every toolkit has its own look. I guess what you mean is that on many/most linux desktops (except KDE!), GTK is the de facto native look and feel. And in that regard, no IUP will never quite be native. Although it is possible to grab the desktop color scheme through FreeDesktop APIs and apply them to other toolkits which makes them fit in better. Oddly enough I've always thought Qt with the GTK theming looks great on my Linux desktops, maybe even better than regular gtk apps!
IUP doesn't integrate well on GTK desktops nor on Qt desktops. And here we have the old story that most programmers using other languages than C, develop for Windows (and maybe Mac). Take a look at Geany or gEdit. They are great editors for GTK desktops, but all coded by hand using C. That will not change BTW as those C programmers probably hate seeing the toolkit being wrapped up by another language. So that won't be a target. But those who developed a lot in Visual Basic to craft their own stuff may actually like a FreeBASIC alternative, and for the Linux platform GTK looks like the best option. given its functionality and flexibility. No toolkit comes close, except Qt but that's already discussed.
Perhaps I should correct myself here. Reading the IUP documentation, it appears to support GTK+ on UNIX systems. The problem then would be the integration into KDE (Qt). KDE integrates GTK very well, but apparently doesn't know how to handle IUP, making it look pretty ugly.
IT may not be an easy choice these days to choose the right toolkit for a RAD system. So one has to start somewhere where it doesn't undermine the efforts right away. If this would have been a commercial enterprise then targeting Windows or Mac would have been first choice.
Taking RealBASIC as an example, its first target was MAC, then Windows, then Linux. But it chose GTK to support the Linux platform and it actuallt had quite a user base, given the numbers on the forum. Admittedly, that was in a time when the desktop was used more than smartphones and tablets. Not sure what the numbers are these days.