BASIC Studio for Linux (Cancelled)
BASIC Studio for Linux (Cancelled)
Hi all.
Back in the 1980s my programming career started with QuickBASIC 4.5 and later QuickBASIC PDS 7.1. At the time I developed a text UI with controls and IDE with syntax highlighting.
In 2007 when Linux became my main OS, I greatly missed RAD software like Visual Studio or Delphi. I know, there is Glade and other tools that can help to fill that void but it isn't quite the same.
Then I came across REALBasic later called RealStudio and Xojo. But it was proprietary and Linux support wasn't too good, especially printer dialogs etc. But I very much liked the RealStudio interface; software development made easy and fast.
Because I like the freebasic compiler (although I still miss full class support) I am thinking about developing a RAD against GTK specifically for Linux similar to REALbasic to make software development for Linux easy and fast. I hope such a project will benefit the Linux community (and FreeBASIC let's not forget).
Although I like Qt more than GTK, I believe the latter is the way to go because of its open source and C API. Any ideas, suggestions are welcome!
Update 12-12-2017: The Project has received the official name: "BASIC Studio" with a dedicated website: http://www.basicstudio.org The name is chosen to honour the programming language BASIC, as reflected by the FreeBASIC compiler. ;-)
Back in the 1980s my programming career started with QuickBASIC 4.5 and later QuickBASIC PDS 7.1. At the time I developed a text UI with controls and IDE with syntax highlighting.
In 2007 when Linux became my main OS, I greatly missed RAD software like Visual Studio or Delphi. I know, there is Glade and other tools that can help to fill that void but it isn't quite the same.
Then I came across REALBasic later called RealStudio and Xojo. But it was proprietary and Linux support wasn't too good, especially printer dialogs etc. But I very much liked the RealStudio interface; software development made easy and fast.
Because I like the freebasic compiler (although I still miss full class support) I am thinking about developing a RAD against GTK specifically for Linux similar to REALbasic to make software development for Linux easy and fast. I hope such a project will benefit the Linux community (and FreeBASIC let's not forget).
Although I like Qt more than GTK, I believe the latter is the way to go because of its open source and C API. Any ideas, suggestions are welcome!
Update 12-12-2017: The Project has received the official name: "BASIC Studio" with a dedicated website: http://www.basicstudio.org The name is chosen to honour the programming language BASIC, as reflected by the FreeBASIC compiler. ;-)
Last edited by Munair on Apr 16, 2020 21:37, edited 13 times in total.
Re: RAD for Linux
As a Freepascal/Lazarus devel I've engaged in several discussions about what it would take to do something similar in FB.
Search for lazarus on this forum will yield threads like:
viewtopic.php?f=8&t=23168#p203780
viewtopic.php?f=17&t=24901&hilit=lazarus
viewtopic.php?f=17&t=23484&p=206942&hil ... us#p206938
viewtopic.php?f=3&t=19862&hilit=lazarus#p174094
and more, mostly in older threads <2012-2013, often discussions with TJF. Some of the threads above stress some needed language features. (rtti, metaclasses) I assume the old FB-has-no-OOP can be laid to rest.
Search for lazarus on this forum will yield threads like:
viewtopic.php?f=8&t=23168#p203780
viewtopic.php?f=17&t=24901&hilit=lazarus
viewtopic.php?f=17&t=23484&p=206942&hil ... us#p206938
viewtopic.php?f=3&t=19862&hilit=lazarus#p174094
and more, mostly in older threads <2012-2013, often discussions with TJF. Some of the threads above stress some needed language features. (rtti, metaclasses) I assume the old FB-has-no-OOP can be laid to rest.
Re: RAD for Linux
Thank you for sharing the links Marco. I will have a look.
I currently develop software using Lazarus and it works great, but my background is primarily (Quick)BASIC. I was able to quickly develop software for Linux with RealBasic (now Xojo). However, I wouldn't recommend it, not just because it's commercial but also because support for Linux has become poor to say the least.
I tried FreeBasic several times in the last 10 years and it has become quite mature. I believe it is now possible to at least mimic Real Studio with a simple, clean interface. The hard part is setting up a GUI library against GTK. Most examples I look at come from C source code and some things just need some figuring out. E.G. setting the max width and height for a window:
Currently, the goal is not cross-platform capability. Focus will be on Linux for the time being.
I currently develop software using Lazarus and it works great, but my background is primarily (Quick)BASIC. I was able to quickly develop software for Linux with RealBasic (now Xojo). However, I wouldn't recommend it, not just because it's commercial but also because support for Linux has become poor to say the least.
I tried FreeBasic several times in the last 10 years and it has become quite mature. I believe it is now possible to at least mimic Real Studio with a simple, clean interface. The hard part is setting up a GUI library against GTK. Most examples I look at come from C source code and some things just need some figuring out. E.G. setting the max width and height for a window:
Code: Select all
constructor TwMain()
Handle = gtk_window_new(GTK_WINDOW_TOPLEVEL)
SetSize 600, 400
' min size must be set first for max size to work
SetMinSize fxWindowMinSize
SetMaxSize 800, 600
end constructor
Re: RAD for Linux
That looks like just writing gui code, not really RAD. For me RAD is also non visual components and two way designer (not just designing, generating code, and then doing the rest in code. Also later maintenance must be possible visually)
Re: RAD for Linux
The project just started and before visual components and a designer, GTK must be implemented. That's what I'm currently working on. So when the user creates a new window, a constructor is automatically created (out of sight). An OnCreate handler can be setup by the user etc. The code above is a first setup and far from finished. I posted it to show GTK behaviour that must be taken into account:marcov wrote:That looks like just writing gui code, not really RAD. For me RAD is also non visual components and two way designer (not just designing, generating code, and then doing the rest in code. Also later maintenance must be possible visually)
Code: Select all
' min size must be set first for max size to work
SetMinSize fxWindowMinSize
SetMaxSize 800, 600
Re: RAD for Linux
I don't know how RB works internally, so can't comment on that. The only time I played with the trial (which is probably already 10+ years ago), the concept seemed friendly, but I had my doubts about scaling. Not just performance wise, but also being able to fix own bugs (e.g. fix and recompile libraries, which is possible in e.g. Delphi). RB seemed a bit narrow and confined in that regard.Munair wrote: When the GUI library develops, the RAD interface will be built. If you have tried RealBasic then you may get an idea of the plan.
Re: RAD for Linux
Correct, RB was commercial and even one's own source code could not be opened in a separate editor to view or print, while printing from the IDE on Linux was bad. However, plugins could be developed. MBS is a good example: https://www.monkeybreadsoftware.de/xojo/welcome.shtml. Performance on the other hand was definitely not a priority. Using CrossBasic's compiler as a basis, functionality always came first. I never went with Xojo when the brand was renamed in 2013. I still have a copy for Linux from 2011 and amazingly it still runs on OpenSUSE Tumbleweed. But it's old and it's time for a good replacement. ;)marcov wrote:I don't know how RB works internally, so can't comment on that. The only time I played with the trial (which is probably already 10+ years ago), the concept seemed friendly, but I had my doubts about scaling. Not just performance wise, but also being able to fix own bugs (e.g. fix and recompile libraries, which is possible in e.g. Delphi). RB seemed a bit narrow and confined in that regard.Munair wrote: When the GUI library develops, the RAD interface will be built. If you have tried RealBasic then you may get an idea of the plan.
Re: RAD for Linux
(I was actually looking at RB because iirc it had a Eur 250 pricepoint when Delphi asked double that for the entry level annual updates, and Delphi runtime sources were packaged and could be recompiled with mods with all but the cheapest editions. In the end I didn't purchase RB, and upgraded my private Delphi one more time (D2009), nowadays for all private use I use Lazarus)Munair wrote: Correct, RB was commercial and even one's own source code could not be opened in a separate editor to view or print, while printing from the IDE on Linux was bad.
Last edited by marcov on Nov 14, 2017 13:48, edited 2 times in total.
Re: RAD for Linux
In the last few days I managed to translate essential C headers from GtkSourceView 3.0 and get the widget working with FB. I already wrote the syntax highlight files. Here is a first setup (screenshot). I plan to get this editor working so that further development can take place from there. Feels right at home. Meanwhile Geany is being very helpful in getting this baby on the road. :)
BTW, this is GTK 3 under KDE. Looks great if you ask me.
BTW, this is GTK 3 under KDE. Looks great if you ask me.
Re: RAD for Linux
(reply to older message, but I read over it initially and just noticed it when I checked munair's recent reply).Munair wrote: Although I like Qt more than GTK, I believe the latter is the way to go because of its open source. Any ideas, suggestions are welcome!
Afaik QT is open source with a suitable license (LGPL) for several years now. In the distant past there was an exception for Windows, but that has been gone quite a while already.
Re: RAD for Linux
Qt has a dual license (https://www1.qt.io/qt-licensing-terms/). While I think that KDE gives the user a better computer experience, GTK seems to be wider in use given the popularity of Gnome, Cinnamon and XFCE. The advantage of GTK is also that it integrates well in Qt based desktops, while the reverse does not.marcov wrote:(reply to older message, but I read over it initially and just noticed it when I checked munair's recent reply).Munair wrote: Although I like Qt more than GTK, I believe the latter is the way to go because of its open source. Any ideas, suggestions are welcome!
Afaik QT is open source with a suitable license (LGPL) for several years now. In the distant past there was an exception for Windows, but that has been gone quite a while already.
In any case, from a practical point of view, current GUI development is for GTK. In time, Qt might be added.
Re: RAD for Linux
Using Qt from FreeBasic will be quite troublesome as it offers only a C++ API, afaik. You would need some wrapper library or some hacks to access the Qt methods from FreeBasic. GTK in contrast offers a C API which can be used from FreeBasic directly.Munair wrote:In any case, from a practical point of view, current GUI development is for GTK. In time, Qt might be added.
Re: RAD for Linux
I was already wondering about that. So the idea might be dropped altogether. The C API from GTK and Linux in general makes FreeBasic a great language for the platform.St_W wrote:Using Qt from FreeBasic will be quite troublesome as it offers only a C++ API, afaik. You would need some wrapper library or some hacks to access the Qt methods from FreeBasic. GTK in contrast offers a C API which can be used from FreeBasic directly.Munair wrote:In any case, from a practical point of view, current GUI development is for GTK. In time, Qt might be added.
-
- Posts: 8586
- Joined: May 28, 2005 3:28
- Contact:
Re: RAD for Linux
On of the problems with C++ and FreeBASIC are:
in a *.bi file:
type QT_Button extends QT_Object ' <-- this is OK in FreeBASIC
but
type QT_Button extends QT_XYZ, QT_ABC, QT_Object ' <-- this won't work in FreeBASIC
Same for FLTK C++ this is why I wrote the FLTK-C wrapper for FreeBASIC and we can use FLTK for comercial projects also.
For Qt you have to purchase a commercial license !
Joshy
in a *.bi file:
type QT_Button extends QT_Object ' <-- this is OK in FreeBASIC
but
type QT_Button extends QT_XYZ, QT_ABC, QT_Object ' <-- this won't work in FreeBASIC
Same for FLTK C++ this is why I wrote the FLTK-C wrapper for FreeBASIC and we can use FLTK for comercial projects also.
For Qt you have to purchase a commercial license !
Joshy
Re: RAD for Linux
See the link I provided in response to marcov's reply.D.J.Peters wrote: For Qt you have to purchase a commercial license !
Joshy