Cerberus X v2018-05-24 for Linux released!

Started by MikeHart, May 27, 2018, 11:20:38

Previous topic - Next topic

MikeHart

Hi folks,


our user dawlane has created a Linux release under Linux Mint 18.3. Here you go:


https://krautapps.itch.io/cerberus-x/devlog/35343/cerberus-x-v2018-05-24-for-linux-released


Cheers
Michael

Derron

#1
Thanks for the release.

Why isn't the IDE using native file dialogues?



-> icons are "custom"
-> buttons are not properly aligned (or in other words: the height of the widget differs.


The native "gtk dialogue" in Geany eg. looks like this on my computer:

As you see it offers some more features (favorites, clickable directories - GTK BlitzMax IDE does use that too).

Edit: forgot that it uses QT - so I checked another QT app which also had this ugly icons, a pity.



Another tiny suggestion: why not (optionally) integrating the "server" into the editor/IDE? Saves another open application.


bye
Ron

MikeHart

Thanks for your questions/suggestions/complains and I will give them further to our department of complain to see if they can find someone to answer these.  ;D

Derron

#3
Ok, seems my edit and your reply were done in nearly the same time - so you might not be aware of it ;-)

Think it is an issue with QT (as my XFCE Mint installation is more a GTK-oriented distro).


Nonetheless I have another suggestion:
Allow font weight adjustments to the syntax highlights, not just color (in other words: allow "bold" and "italics")


Comparison of "Cerberus" and "Geany" (with custom script for BlitzMax support)


Ah, and another one: you allow setting up a BlitzMax path - and when opening a .bmx file it is properly compileable. BUT: the file-open dialogue only shows .bmx files when using the "*.*"-dropdown entry. Maybe add a "BlitzMax *.bmx" entry too - or append it to the default file-extension-entry.
Also: when you opened a .bmx file the header-dropdown for the build options correctly sets itself to "BlitzMax App" but there is no selection for "release / debug / gui / console / threaded" ...


bye
Ron

dawlane

#4
My two pence worth.

QT:
After using many other GUI frameworks, Qt is by far in my opinion, the best framework for writing cross platform GUI. Linux users should be well used to having to deal with applications that use a number of different GUI frameworks and non consistent icons and widget sets. All that should matter to someone writing cross platform is that it works and has a consistent user interface cross all the platforms.

BLITZMAX SUPPORT:
BlitzMax support should be removed as that's a hangover from Mark using it; he may have been playing with the idea of using it for both Monkey and BlitzMax, or using it just to write the MonkeyX support applications for Monkey, which the BlitzMax versions of the code should no longer be needed. If anything; any support applications should be written in either C/C++ or Cerberus-X code.

When it comes to BlitzMax. I for one, am not prepared to use a defunct third-party application who's cross platform capabilities were becoming a bit of a joke with the lack of Linux support. My hat comes off to Brucey for trying to keep it alive, but building from source can be too much of a pain with the number of times I've seen it break or fail to build code.

SERVER:
Integrating the server as part of the IDE may sound like a good idea, until someone else writes another IDE or uses Jungle. So the server has to remain as a separate application. Though it should be possible to add full web support to the IDE for the HTML target, but that would throw up a few problems with Linux and the the current version of Qt that comes as standard with any Long Term Support distributions. You could rewrite the IDE to be able to compile with the latest version of Qt and distribute it as either a SNAPS or an AppImage file, but each of these has their pros and cons.

FONT WEIGHTS AND ITALIC HIGHLIGHTING:
Well that this is one of those things that really needs to be added.

3DzForMe

Great news that Cerberus has a Linux release.
BLitz3D, IDEal, AGK Studio, BMax, Java Code, Cerberus
Recent Hardware: Dell Laptop
Oldest Hardware: Commodore Amiga 1200 with 1084S Monitor & Blitz Basic 2.1

Derron

@Dawlane
Thanks for the elaborative reply

The integraton of the server should be _optional_ - disable it and it uses the external server. It's just something the IDE could and should integrate - similar to the debugger and maybe a "project manager". Also "jungle" is not available for Linux :-)


Regarding BlitzMax-IDE-Support: I am aware of this and I first thought it is just a left-over option entry as the file open dialogue did not present an entry for .bmx files but once opened it seemed to work (compiled and so on). Better remove all bmx-connections to avoid misleading assumptions ;-)


QT vs GTK vs whatever: yes QT might be more suited for cross-platform but on my Linux box it looks a bit odd and while I do not have numbers I assume that GTK is more often used on linux desktop computers than QT. Seeing "AGK" using Geany for Windows too I think their GTK-binding works there too. Nonetheless this was just a minor note and no rant vs using QT or not.


@ BlitzMax NG and source fails
Open up issues (I know there are some still open) if you encounter them. For "desktop" I prefer BlitzMax as it benefits from the huge amount of Brucey modules (and my framework) over the cerberus/monkey-x libs.

Think cerberus-x should consider writing a language plugin for a more known IDE (intellij, atom, ...) and keep the IDE a simple basic editor+debugger for rapid prototyping. Benefit would be that I could fork that plugin to adjust for BlitzMax :p



bye
Ron

dawlane

@Derron: I think that there has been a few attempts at writing a plugins for a couple of other IDE's, but alas they are never maintained or are lacking something. As I recall there was one done for Geany.

@BlitzMax vs Monkey/Cerberus libs.
You have to remember that BlitzMax was aimed at desktop targets and was more capable at being a general purpose language, while Monkey/Cerberus were more specialised towards game development on multiple platforms with the main targets being mobile devices. The Monkey/Cerberus C++Tool target can only produce simple console applications due to language limitations, which is a pity really as it would have open the language up to being much more than it is. The only real use of the C++Tool target is to build the Monkey/Cerberus translator compiler.

@QT vs GTK vs whatever: Well GTK on Linux is considered the defacto GUI framework for Linux using any GNOME Desktop Environment, or at least it is for now. I've heard that there have been some major criticisms of GTK+3 and the latest GNOME and a few applications are getting ported over to Qt. But it could easily have been the K Desktop Environment from the start if it had not been the for the licencing issues with Qt.

Derron

Do you have any link for the Geany plugin? My plugin is just adding the compiler stuff but I miss some kind of debugger support to get rid of "MaxIDE". Geany is just far superior to the BRL editors.

Good IDEs (or good language plugins for common IDEs) is the sugar you need to attract users to a language (we had this discussion a long time ago - a dozen of times).


@ game language
Yes BlitzMax is more versatile in regards of doing non-game stuff. And all of these BRL-based-languages lack the needed tools to make life convenient for todays game developers (bundling stuff, creating packages, signing APKs, deploying to devices). All these things could be done via plugins (in intelliJ, geany, ...). Think the basic IDEs (TED, maxIDE, ...) just needed a simple interface to communicate with plugins (so people could add their stuff - maybe even individual workflow thingies, like auto-creation of sprite atlas graphics, compressing assets, ...).


@ QT
Maybe this was because QT was kind of bugged in the early KDE ages (and except of it looks I only read about its ressource hogging - compared to gnome 2.x).

bye
Ron

dawlane

#9
QuoteDo you have any link for the Geany plugin?
I've had a quick look for it and it looks like the plugin was just for BlitzMax found over on the BlitzBasic Portal dated 6 years ago (now dead). The only other reference to Geany was when someone did a NotePad++ version for Monkey2.

There definitely is a something for Atom IDE for Monkey-X and TextMate.
https://github.com/frameland/atom-monkey
https://github.com/gingerbeardman/monkey.tmbundle

Derron

The BlitzMax Geany plugin might have been this one:
https://github.com/GWRon/blitzmax-geany-plugin
with "GWRon" being me ;-)


The Atom and TextMate stuff is doing similar stuff: static keyword definition. So no "intellisense". For this someone with time and knowledge should write the definitions/rules for the language in a way the editors like it: so all the "grammar stuff". I never was brave enough to dive into this stuff - especially when seeing some users in the old blitzmax forums doing these things as if it was some elementary school lesson.


bye
Ron

Derron

I used the opportunity to update my plugin so one can choose between compiling with NG or vanilla (as I only compile some stuff with NG for now - when 64bit is needed), saves to run things from command line or via a MaxIDE in the NG directory. Thanks for this indirect reminder.


bye
Ron

Steve Elliott

Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

MikeHart

Quote from: Steve Elliott on May 29, 2018, 20:21:53
Congrats on this milestone Mike.


Thanks to dawlane, he deserves the credit.