BASIC Studio for Linux (Cancelled)

User contributed sources that have become inactive, deprecated, or generally unusable. But ... we don't really want to throw them away either.
Post Reply
marcov
Posts: 3455
Joined: Jun 16, 2005 9:45
Location: Netherlands
Contact:

Re: RAD for Linux (in development)

Post by marcov »

lizard wrote:Another thing you can see at FreeQ and its designer: It looks somehow outdated. But what ist outdated there? RapidQ itself can't be outdated. It uses the same principles of oop like other systems.

The icons are looking strange, to small (24x24) and a bit oldfashioned. Some People may think graphics are completely unimportant, but this is definitely not true. The subconscious decides if a program looks good, so in a modern environment the icons are more important than many are thinking.
Lazarus gets the same comments. But what really depends if it is really fixable or not. If you somehow have to deliver something where this is really important, you invest a few days and it looks right.

Sometimes even just putting a manifest file next to the exe with version info can already improve the look, since it signals windows to use a newer commctrl.

If your GUI however have a owner draw widgetset or old GTK lib that is not easily fixable, then you have a problem.
marcov
Posts: 3455
Joined: Jun 16, 2005 9:45
Location: Netherlands
Contact:

Re: RAD for Linux (in development)

Post by marcov »

(moved from part 3 action thread that discourages replies)
munair wrote: looking at the FreePascal project, I wonder if that compiler would be as actively maintained and developed without the Lazarus RAD environment. So there's definitely an advantage in having a project like that. I'm surpirsed to see it hasn't happened yet in the last 13 years with FreeBASIC.
It all stands or falls with active developers, and a bit long term focus. Lazarus is partially entangled with the FPC project. Having a constantly multi-person development team also keeps it generic, and doesn't cause one persons preferences to show through in everything. Having Delphi as model of course helped enormously to keep the noses (mostly) in the same direction.

Another thing is regular release accessible to the user. Experience shows that most potential devels first have their own projects before they get active, and if they can't easily test, they won't. That aspect is ok in FB I guess.

For the more outer parts of the system potential more serious power users and devels should also be able to compile the project from SVN/CVS/GIT. It doesn't need to be a blind button push so that everybody can do it, but serious people should be able to master it fairly quickly. Having low build dependencies helps immensely here. I don't know how FB does here.
Lazarus
The boost is not just starting on an IDE but compiler, RTS and "outer" libraries too. All parts were advanced at the same time with one common goal, to a have a delphi like RAD. Compiler got RTTI, RTS got libraries to access it and hundreds of other things to make the object model viable for such big endeavour. (the component streaming was rewritten at least three times)

Specially those non visual libraries that the visual components of Lazarus base (streaming, XML, imaging and DB and headers for the libraries, if any) are the ones where most common work are done. In recent years also unicode. Lazarus had a simple unicode system, but that is slowly fading now that there is language encoding support in FPC with FPC3.

FPC development already got a major boost when during the 2.x beta series (late 2003-mid 20050 the number of own libraries started expanding ( most notably simple XML, image, sockets (mostly abstracted simple sockets, not something like Indy) and DB units with low dependencies. These were done thoroughly, and modelled after Delphi, which made it a good fit for Lazarus. (db components and image components e.g.) Compatibility is not just good for users, but also while building it. The interfaces are fixed by it.

That should be as much as a focus as the IDE itself. Don't cut corners, do it right. But for that you need a multiperson effort.

To do this, basically FPC put the old dos legacy in supported but maintenance only mode, and increasingly focused on Delphi after 1997 accelerating in 2000 with the FPC 1 stable release which did a lot for the other libraries, and with a usable FPC 2 beta in early 2004 it really started to go faster. This partially also because Delphi code came in reach.

(the FPC1 release was very compatible with TP, comparable with FB's QB compat, but even with a complete textmode IDE clone, and actually that compatibility still exists today and has been improved, albeit very slowly).
Last edited by marcov on Oct 23, 2018 21:17, edited 1 time in total.
Munair
Posts: 1286
Joined: Oct 19, 2017 15:00
Location: Netherlands
Contact:

Re: RAD for Linux (in development)

Post by Munair »

In case anyone is wondering, the project is very much alive. Meanwhile, I switched from Debian 9 to Manjaro XFCE as the main development platform. Works like a charm, is much more up-to-date and easier with package installation. GtkSourceView 3 is installed by default. All it takes is installation of FB and Geany from the repo and all is ready to go.
badidea
Posts: 2586
Joined: May 24, 2007 22:10
Location: The Netherlands

Re: BasicStudio for Linux (in development)

Post by badidea »

Cool, although I don't fully grok yet what the project is.
Munair
Posts: 1286
Joined: Oct 19, 2017 15:00
Location: Netherlands
Contact:

Re: BasicStudio for Linux (in development)

Post by Munair »

badidea wrote:Cool, although I don't fully grok yet what the project is.
It is explained in the first post and throughout the lengthiness of this thread.
Munair
Posts: 1286
Joined: Oct 19, 2017 15:00
Location: Netherlands
Contact:

Re: BasicStudio for Linux (in development)

Post by Munair »

One problem on Manjaro is that it cannot run FBC 1.06 out of the box. In the repo the official release 1.05 is included and works just fine.

In order to use 1.06, the package ncurses5-compat-libs package needs to be installed from the AUR repo. However this requires the gpg key of the package maintainer to be installed. But in order to install that key a personal key must be generated first (only once for all future keys to be installed).

These are the required steps:
1. create personal key:
$ gpg --full-gen-key

and follow the instructions

2. install the key of the required package, in this case:
$ gpg --recv-keys 702353E0F7E48EDB

3. From the repo install the package ncurses5-compat-libs and let the build-process do its work.

Now fbc 1.06 compiler will run. Just check fbc -version

Hopefully this information can be of help to anyone running into the same problem.
Imortis
Moderator
Posts: 1923
Joined: Jun 02, 2005 15:10
Location: USA
Contact:

Re: BasicStudio for Linux (in development)

Post by Imortis »

I actually had to do that a few months ago when I installed Manjaro on my laptop. If I had been thinking about it, I would have posted it on the forums here to save people the effort of googling like I did. Sorry you also had to go through that as well.
Munair
Posts: 1286
Joined: Oct 19, 2017 15:00
Location: Netherlands
Contact:

Re: BasicStudio for Linux (in development)

Post by Munair »

Imortis wrote:I actually had to do that a few months ago when I installed Manjaro on my laptop. If I had been thinking about it, I would have posted it on the forums here to save people the effort of googling like I did. Sorry you also had to go through that as well.
It took me some 20 minutes to figure it out. Not really a big deal, but yeah, it may help save others some time.
Munair
Posts: 1286
Joined: Oct 19, 2017 15:00
Location: Netherlands
Contact:

Re: BasicStudio for Linux (in development)

Post by Munair »

With a solid event handler object in place - which was a bit of work to setup in FreeBasic - gtk widgets can be added to the OOP environment. This is much like Lazarus' Sender: TObject, but it is not required as parameter in BasicStudio.

Here is an example image of the interface with menu and the GtkNotebook widget which provides the tabbed pages. Each tab can be interacted with, just like the menubar, using the same event handler object.

Image

While OOP may be more difficult to set up, it is very much worth the effort IMO, because once in place, it makes programming much easier.

BTW, while the theme looks a bit like Win 10, this is actually Manjaro Linux with the latest XFCE desktop, which is currently the system on which BasicStudio is being developed.
Last edited by Munair on Nov 06, 2018 11:40, edited 1 time in total.
Munair
Posts: 1286
Joined: Oct 19, 2017 15:00
Location: Netherlands
Contact:

Re: RAD for Linux (in development)

Post by Munair »

marcov wrote:(moved from part 3 action thread that discourages replies)

It all stands or falls with active developers, and a bit long term focus. Lazarus is partially entangled with the FPC project. Having a constantly multi-person development team also keeps it generic, and doesn't cause one persons preferences to show through in everything. Having Delphi as model of course helped enormously to keep the noses (mostly) in the same direction.
For sure. But Delphi was a prominent development suite and probably many Pascal programmers felt the advantage of a an open-source clone, especially throughout the 2000s when it was taken over by Embarcadero. This probably propelled the Lazarus project by leaps and bound.

Real Studio did not have that leading position because it came to the scene much later. Yet, it became quickly popular, but mostly among programmers on Windows. Less programmers were interested in Real Studio on Linux (understandably).

That being said, it may not be easy to find good programmers interested in a RAD for Linux with the Real Studio concept in mind. It would require the Real Basic documentation and a working copy to get an idea of the concept.

Because the FB compiler advanced to OOP only recently, relatively speaking, the concepts may need some time to sink in. Nevertheless, I welcome anyone willing to contribute. The full source code will be available when the basis is finished, so that it will be easier to get an idea of the project's goal.

BTW, I may or may not have said this clearly before but BasicStudio is not meant to become a RealStudio clone, nor is it meant to be fully compatible. The idea is to take the RS concept with a similar RAD environment, but allowing the freedom to advance in its own direction. Lazarus has a bit of a disadvantage in this respect and I do not want BasicStudio to be limited in the same fashion, nor is there any need to.
Last edited by Munair on Nov 18, 2018 17:51, edited 2 times in total.
Munair
Posts: 1286
Joined: Oct 19, 2017 15:00
Location: Netherlands
Contact:

Re: BasicStudio for Linux (in development)

Post by Munair »

OK, this is still a very basic editor, without any additional features. It can create, open and save files, using multiple tabs. Tabs cannot be closed yet. I will do that next. My primary focus so far has been on FreeBasic and GTK specifics and how to combine them to set up a OOP environment. It should be easier from here on to add functionality and widgets. Keep in mind that for some widgets it might be necessary to translate C headers, like I had to do for the GtkSourceView.

The editor should be able to open unicode files in UTF-8/16/32 format. However, it will save only to UTF-8.

Be sure to read the notes below.

source (150kB): http://www.basicstudio.org/downloads/bs-002.tar.gz
language/styles (5kB): http://www.basicstudio.org/downloads/gt ... 3.0.tar.gz

1. Extract the source somewhere in your home directory. It will add the directory bs. In order to compile and run the program, the gtksourceview-3 package must be installed. The source was developed with a recent FBC 1.06.

2. Download the language/styles file and extract the archive in .local/share. It will add the gtksourceview-3.0 directory with files needed by the GtkSourceView widget. Without these files the editor will not work.

3. To change the syntax color theme, change line 129 of the bs_editor.bi file. E.g:
.StyleScheme = _stylescheme_basicstudio
.StyleScheme = _stylescheme_freebasic

These are constants defined in the bs_system.bi file. You can define your own style by adding a file in the ./local/share/gtksourceview-3.0 directory. It is easiest to copy an existing one and save it under an new name. Editing these files should be easy and straight forward.

Suggestions and improvements are welcome. I have not fully checked optimizations such as byref calls where applicable.
St_W
Posts: 1619
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: BasicStudio for Linux (in development)

Post by St_W »

Munair wrote:Suggestions and improvements are welcome.
Consider using a VCS instead of versioning zip files. GitHub, GitLab or BitBucket are some free options to share your repository.
Munair
Posts: 1286
Joined: Oct 19, 2017 15:00
Location: Netherlands
Contact:

Re: BasicStudio for Linux (in development)

Post by Munair »

St_W wrote:
Munair wrote:Suggestions and improvements are welcome.
Consider using a VCS instead of versioning zip files. GitHub, GitLab or BitBucket are some free options to share your repository.
Thanks for the suggestion. I have been thinking about that, but considered the project in a too early stage to use a VCS.
Munair
Posts: 1286
Joined: Oct 19, 2017 15:00
Location: Netherlands
Contact:

Re: BasicStudio for Linux (in development)

Post by Munair »

A basic editor is now up and running. Files can be created, opened, edited and saved in multiple tabs. A fully functional MsgBox has been added so that warnings can be given (when files are not saved) etc. Tabs can be closed and newly created etc. but not moved around yet.

The binary can be downloaded from the website: http://www.basicstudio.org/ and should run on every Linux distro with GTK 3 and the GtkSourceView 3.0 package installed. I'm now planning on continuing some coding in this editor. Needless to say this component will be the core of BasicStudio.

Still much to be done, but we're getting somewhere. :-)
St_W
Posts: 1619
Joined: Feb 11, 2009 14:24
Location: Austria
Contact:

Re: BasicStudio for Linux (in development)

Post by St_W »

Munair wrote:I have been thinking about that, but considered the project in a too early stage to use a VCS.
I don't think that there is such a thing as "too early to use a VCS", especially as there's no need to publish it if you're using e.g. GIT/Mercurial (or any over DVCS), you can upload it to GitHub/Bitbucket or similar services at any time later (or even not at all, if you decide to do so). Anyway, it's only a suggestion :-)
Post Reply