Wish A linux version of B4A and B4J

Roycefer

Well-Known Member
Licensed User
Longtime User
I've been saying for years that there are multitude advantages to be had if the B4X IDEs were developed with B4J. The one relevant to the this thread is that the IDEs would be cross-platform. But some other advantages to think about:
  1. It would be a lot easier to port some of the IDE code to create an on-device B4A IDE or code editor. Same with B4i. Probably not with B4R.
  2. It would propel B4J to become even better.
  3. It would advertise to the world that B4J (and B4X, in general) is a serious tool, not a toy, since B4J is used to develop B4X. This is called dogfooding: https://en.wikipedia.org/wiki/Eating_your_own_dog_food
  4. It would make it much easier to allow for user-developed IDE plugins. This is YUGE for community engagement.
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
I agree with everything. However writing a full new IDE, with a similar level as the current one, is a huge task. The current IDE is based on a third party library which helps with many aspects. There is no equivalent JavaFX library.

With the best available library, the IDE will be similar to Arduino IDE which cannot be compared to the current IDE and I'm sure that will not be accepted by B4X community.
 

highflyer

Member
Licensed User
Longtime User
Arduino IDE has been widely accepted, and a basic cross platform IDE is better than nothing....
 

moster67

Expert
Licensed User
Longtime User
The B4X IDEs are now very good in my opinion and have improved (and still are) during the years. However, this does not solve the problem to run B4X neither on Mac nor Linux (without virtualization). Ideal would be what suggested by @Roycefer i.e. written in B4J but of course if the underlying JavaFX is missing features to make such a version equal to or better than the current Windows-version, then I much prefer working with the current B4X IDEs.

Maybe one alternative could be the Intellij-platform by JetBrain which is open source and licensed under Apache2. This is java Swing and unfortunately not JavaFX but would run on most major platforms. For those not aware, Android Studio is using this solution.
 
Last edited:

JakeBullet70

Well-Known Member
Licensed User
Longtime User
I wonder though, there are something like 90,000 registered users here, what is the Windows vs Mac vs Linux usage?
 

Roycefer

Well-Known Member
Licensed User
Longtime User
In addition to moster67's suggestion, NetBeans also has a NetBeans Platform upon which you can build great apps. And this ties into my second point: making the B4X IDEs with B4J would make B4J better. In this case, by adding a new type of B4J project: NetBeans (or IntelliJ) Platform Project. Lacking that, I think the RichviewFX library looks promising: https://www.b4x.com/android/forum/threads/custom-view-richviewfx-codearea.62823/#content . Either way, there are lots of world class IDEs that run in the JVM.

To JakeBullet70's question, I'm not sure that that statistic is that important. Obviously almost all B4X users will have at least one Windows system since B4X is primarily Windows-only. But how many potential B4X users are out there who don't use Windows? I suspect it's a large untapped market. This relates to a point I've made in other threads about evolving B4X in ways that don't only appeal to former VB6 developers. Furthermore, how many users are tied to Windows solely because of B4X? That latter case is certainly my situation and I know I've seen that opinion posed elsewhere in the forums.

As to Erel's point about the size and difficultly of such an undertaking, I think Anywhere Software could recoup the cost of such a project (and then some) by keeping and advancing the Windows-only versions with their current pricing model while also offering cross-platform versions to be purchased separately. At least until the cross-platform versions achieve feature parity with the Windows-only versions at which point I assume the Windows versions would be abandoned. I would happily pay $20/IDE/subscription period in addition to the Windows-only versions' cost to be able to ditch Windows part-time in anticipation of feature-parity cross-platform versions that would allow me to ditch Windows full-time. And I'm sure I'm not alone in this.
 

wonder

Expert
Licensed User
Longtime User
I'd be happy with a B4A command line compiler.
As for the IDE, Sublime Text would be enough. Hell, even VIM! :D
 

LWGShane

Well-Known Member
Licensed User
Longtime User
B4A command line compiler
Something like the Mono Compiler for B4J but for B4A/B4i that includes license authentication (That would enable the B4X community to develop IDEs themselves; and since the compiler would be a CLI app, it could be ported to Android and iOS via Xamarin thus making it possible to have IDEs on iOS and Android as well.

As for the IDE, Sublime Text would be enough. Hell, even VIM
I would have no problem using text editors like that too. (If command line idea comes to pass then I wouldn't mind researching plugins for said text editors that make B4X stuff easier.)
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
This relates to a point I've made in other threads about evolving B4X in ways that don't only appeal to former VB6 developers.
I don't agree with this statement. I believe that there are more B4X developers that never used VB6 than ones that did.

The desktop and tablet statistics are:
Windows - 85%
Mac - 7%
Linux - 3%
Other - 5%

I guess that it shouldn't be too difficult to run the command line compiler with Wine.
I don't see it as an alternative to a real IDE. It will be difficult to use it to develop without the code editor features, visual designer, debugger and other features that are expected from a RAD tool.
 

Roycefer

Well-Known Member
Licensed User
Longtime User
I don't agree with this statement. I believe that there are more B4X developers that never used VB6 than ones that did.
Wasn't the desire to avoid alienating former VB6 developers the reason for not implementing such features as inheritance and full-fledged polymorphism? If you suspect that former VB6ers are in the minority among B4Xers, then can we have those features? (Erel will say: start a new thread for this.)

Those OS statistics you quote are for the general population. Much more germane to our conversation is OS usage among developers: https://insights.stackoverflow.com/survey/2016#technology-desktop-operating-system . I think you'll find the trend in those statistics lead you to only one conclusion: for a large and growing percentage of developers, the joys of B4X will remain off-limits so long as the B4X IDEs are tied to Windows. And I suspect that those stats to which I linked actually underestimate the situation since they don't count people like me who still use Windows, primarily, but are itching to leave.

I think there is a big opportunity here. With cross-platform IDEs, B4X could position itself as the ultimate in OS freedom. iOS developers can develop faster, easier and on the OS of their choice. Reuse much of your code for Android. Quickly create high-performance back-end servers. The marketing slogans practically write themselves.
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
Wasn't the desire to avoid alienating former VB6 developers the reason for not implementing such features as inheritance and full-fledged polymorphism?
No.

Those OS statistics you quote are for the general population.
Don't get me wrong. I completely agree that it will be very good to add support for Mac and Linux. It will not happen in the near future due to technical reasons. I do hope that it will be accomplished eventually.
 
Last edited:

LWGShane

Well-Known Member
Licensed User
Longtime User
I don't see it as an alternative to a real IDE. It will be difficult to use it to develop without the code editor features, visual designer, debugger.

Code Editor Features: All the code editor does is allow one to edit code, right? I don't see how that itself is different from using a text editor like Sublime Text, Visual Studio Code, Atom, etc. (Visual Studio Code is cross platform.)

Visual Designer: Since you've made the format "open source" (via the BAL to JSON and BAL to BIL converters), it shouldn't be too hard for someone to create a community edition of the visual designer.

Debugger: Is it not possible to move the debugger to the command line as well?
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
All the code editor does is allow one to edit code, right
There are many features that will not be available in a generic text editor: auto-complete, built-in documentation, auto-formatting, warnings and errors, visual designer, find all references, icon picker, color picker, files management, sign key management and many more.

Debugger: Is it not possible to move the debugger to the command line as well?
No.

If you want to try it then start with the B4J cross platform command line tool. It is already available.
 

JTmartins

Active Member
Licensed User
Longtime User
As far as B4A is related , as a starting point I would be happy to produce the .bal files in windows. Then use something as visualstudio code (wich runs in all platforms) for the actual code of the apps. So if we could have a pluggin for VScode that supports B4A language and a command line for compilation, that would be a good way to start.. Then as a second stage, maybe a cross platform designer for producing the *.bal files.

I think the biggest problem will be debugging.

At the end of this process, we would have a cross platform product...and if B4A is already good...Then it would be a blast !!!

Just imagine the millions of developers that use VScode exposed to B4A..Our community would grow substantally I guess.

Currently b4A is the only reason I still use windows.
 
Last edited:

Sandman

Expert
Licensed User
Longtime User
There are many features that will not be available in a generic text editor: auto-complete, built-in documentation, auto-formatting, warnings and errors, visual designer, find all references, icon picker, color picker, files management, sign key management and many more.

Well, not in a generic text editor like Notepad. But for something like Sublime Text or VSCode all of those things are fairly standard to handle. The exceptions I can see are the visual designer (could perhaps be a completely separate app, made using B4J?) and sign key management (which seems ripe to simply move into a #Region and be handled as text). I'm not entirely up to date on the status on debugging through ST or VSCode, but I'm guessing it's all within reach if one would create a plugin.

And just to add a data point: I'm on Linux and I use B4A on a Windows machine that I RDP to. That works ok, I'm not complaining. But I'll add that I'd much rather use ST or VSCode to edit my code. I'd still need the debugger obviously.
 

LWGShane

Well-Known Member
Licensed User
Longtime User
Debugger: Is it not possible to move the debugger to the command line as well?
No.

I'm failing to understand why. Unless you're talking about code errors and warnings (which could be created as a plugin for Sublime Text), the other stuff could be moved to the command line. (After all, Android debugging is done via the Android Debug Bridge which is a command line app.)

and sign key management (which seems ripe to simply move into a #Region and be handled as text
To Be Honest, I'm not sure why sign key management isn't text in the first place. B4i does it in text. Why not B4A?
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
After all, Android debugging is done via the Android Debug Bridge which is a command line app.
B4A debugger is not related to ADB. It is not suitable for the command line builder. Why? Because it requires deep and continuous integration with the IDE.

The sign key management is a very minor challenge compared to implementing many other features.
 
Top