Experiences with B4x

Unless you need containers, listboxes, or any other control that need javascript and CSS workarounds. Or any other control/functionality considered basic this days that is not included and you requiere programming in Javascript (Decent canvas, MapViewer, etc). Or creating a custom bootstrap theme to have a web app with the standar colors instead of the Xojos taste. I think he is talking about that.

1 Like

Not needed and I did not experience anything you wrote as an attack. I should’ve restricted my replies to only the ‘points’ and ‘open source’ remarks you made.

As a matter of fact, your last post did me realize your other remarks were nothing but fair as I had, many years ago, a similar experience as you.

I once needed to do some work in Python on Linux, on which I had up to then very little experience with. I remember I too was very frustrated I had to spend hours, just to get the damn thing up-and-running and get the environment to my own liking. I could not believe why it all had to be that difficult. My biggest mistake was I was still ‘thinking’ in my familiar ways (this is what I meant with Limited Xojo state of mind, not my best phrasing I’m afraid).

The help I got from seasoned Python users did not much good to the experience. ‘Just do an apt-get here and a apt-get there’ was totally not my thing so I did not see their suggestions as very helpful. And those guys could not believe I didn’t ‘get’ it!

And let it just be that last thing I may be doing myself now to you! So, if apologies would be in order, they should come from me.

For me, using B4X is just a download and off you go. I consider even my own libraries (ABM and BANano) to be just that. But someone not familiar with the environment/OS may not experience it this way (as your testimony describes). I probably do things in the background that I do not realize, just because they seem so obvious to me now.

Finally, BANano is probably the closest one can get to a B4W, as it is just a transpiler from B4J source code to Javascript/HTML/CSS. Building a WebApp with BANano follows all the same paths a normal B4X app does: design in the Abstract Designer, write code in the IDE, run, deploy. For someone already familiar with the other B4X tools, the step to make WebApps in B4J is rather easy I would think.

It was the main reason I wrote BANano, as ABM (grown from my day job production environment) does not do that and does indeed require a rather steep learning curve.

Web is a different animal all together compared to the other platforms. Even Xojo does not get that one on par with the other ones. They sacrificed a lot of functionality Web is capable of (see Ivans post) in an attempt to do so. The result is that beyond writing a very basic WebApp, one has to go back to JavaScript and CSS to achieve their goal. Not having a proven giant like Java to build the server backbone did not help them either, something I was lucky to have with B4X when writing BANano. As BANano does transpile the users logic to pure JavaScript, that is one ‘extra’ language I could eliminate for B4X users to learn.

I still believe (besides the slowness problems they should fix ASAP!), a thing like BANano is the glue Xojo is missing. If they could also transpile the users logic (Xojo source code) to Javascript, that would greatly help their attempt. The mixed API frameworks they have will not make that an easy one, I’m sure.

I don’t know spiderbasic (only by name), but if it fits your needs I am happy you found your solution. After all what is said, THAT is still the most important thing why we all pick a certain language environment.

So, I sincerely can only wish you success with your projects!

Alwaysbusy

3 Likes

Nice. But isn’t it so that xojo has also von really production running web? So, what’s your point. You’ll not be able to compare peaches with apples. Xojo web has a small part of the functionality of Banano. Not to speak about abmaterial. Start to find a way where xojo works consistently. B4j Banano does. Write pws with xojo. Not possible. But complaining will not help. As I wrote: you want to work with xojo then do it☃️

1 Like

you completely missed the point

I like that there is no “check dependencies, down load this tool, install this runtime” just to use the IDE
You download it and off you go - done - nice and simple

WHAT you build with that toolchain is an entirely different matter
And yes there are issues as you note

Ok, so if Erel also makes a ‘fat’ download (with a Java OpenJDK included), more people will be happy :stuck_out_tongue:

And is it really so with Xojo? As soon as I want crossplatform, other seperate installs seem to be needed too:
https://docs.xojo.com/Resources:System_Requirements

1 Like

I have no words anymore. Xojo for Linux has dependencies like libunwind. To install manually otherwise it will not work. And yes, on Mac for 3d you have also dependencies for open go. Whatever. On some windows computers you’ll need the c++ runtime encironment to be installed manually. So even xojo is not without dependencies.

Using b4j is simple. Jdkfx from azul and work. Deployment with jrefx and apps are running. So where is the big thing? Works out of the box.

So it is not the question of dependencies. It is a question of running software and that’s it. And yes, once written it runs anywhere. Exactly that is not possible with xojo from windows and Linux. I build once and deploy anywhere. That what I can not do with xojo. For desktop this is true for plain java swing and fx but also for b4j. B4i and b4a are the same kind of Players serving native iOS and android apps.

The Nonsens is That yes, Webapps are less complex with xojo but only from the first view. Xojo don’t give me the decision what to run on host and what in browser. Xojo web has at least 18 glitches which are coming together with client server communication. Many stuffs are running not on server but on client.

There are a lot of inaccuracies and partial-truths in this thread. I hope I can be helpful:

Let me state up-front, to answer the OP: You want to build cross platform apps (desktop, mobile), backend/server apps, CLI, non-CLI, you go with the tool that right now enables you to most efficiently and effectively do that. That’s B4X.

Just for full disclosure: English is my first language. I’m not an OS fanboy. I have multiple monitors. (If you’re a developer, I highly recommend at least one of your monitors be widescreen. Glory in all that space!) I don’t like to make negative comments about other products, so I will attempt to refrain as much as possible.

I obtained another cross-platform development IDE a few years ago. I became disillusioned when it did not perform as advertised. Recently, I had gone the C# route (Xamarin and similar environments) and was considering Flutter.

Thank [insert your favorite source of blessings], I found B4X.

Seems like some devs have spent years learning some other development product, but then want to learn another language in a day. I would suggest anyone new to B4X to expect to spend at least two weeks learning it. That is enough time to watch Erel’s videos and read the B4X documentation booklets. There are also a ton of other resources that will be very helpful.

It took me only a few hours before I felt confident enough to start developing production apps with it, but your mileage may vary. I have not regretted choosing B4X at all at any point. It has been pain free.

For my B4X journey, I downloaded the tools and was productive the first day.

I started with the desktop product, B4J. When I finally wanted to check out the Android stuff, I literally had an Android example up and running on my phone in 5 minutes.

Install B4A. Hook up phone via USB. Open example project. Run it on phone.

I remember thinking, “How was that so easy?!” I think I even said it out loud.

I’ve rarely, if ever, had a problem finding anything on the forum. And if I did, a question about, “Where can I find info about…” is quickly answered.

Yes, you might exhibit some frustrations if you expect to know a language/IDE in one day. If you’re in a rush, those feelings will be compounded. However, frustration is probably not the typical new experience for B4X development. It’s actually awe and relief and excitement.

Any new, complicated skill–such as a programming language/IDE–will require you to stick a lot of time into it. This is not a negative and not even worth mentioning. It’s a fact of life.

Finding and working with B4X has been one of the best development experiences of my 30+ year career in programming.

The B4X forums have places where users share their code. There are also tutorials and examples for each platform.

Check out this recent post about an Android project. Then the same project on iOS and on the desktop. (The guy who built those, Peter, has several other projects for new users. Be sure to see those as well.)

Or this recent post about x-plat dev.

There are tons just like that.

The Abstract Designer is brilliant and easy to work with. You have anchors. But you also have designer scripting. The designer scripting alone is worth it. That gets you centering and positional guides… and so much more.

To reiterate: You want to build cross platform apps (desktop, mobile), backend/server apps, CLI, non-CLI, you go with the tool that right now enables you to most efficiently and effectively do that. That’s B4X.

I know some of you don’t want to run Windows. But the fact remains: Use the right tool for the job. Period.

5 Likes

If there is a mixture of functionality and reliability and stability of B4x and the usability of Xojo it would be the greatest thing on planet. But there is none. Exactly that’s the point. Xojo has a really, really nice Idea of usability and simplifies the deployment process. This is the fact most people like. Especially when and if they are developing, compiling and deploying from mac computers. There is no question about, the IDea and the usability of xojo are really cutting edge technology.

Now, behind the scenes there is - sadly - another scene. Xojo has functional leaks, many, many, many bugs, nur bugfixing culture, no versioning culture. If users are speaking trues they would have to say: okay, with xojo I have from time to time to learn the language from scratch cause of the changes. With chance there will be - somewhen - a better situation but it is not. Within this process the xojo users losing much time with building up workarounds for language errors, buying MAC computers while compiling for all platforms runs only from mac, trying to get around the problematical errors and living with the existing ones.

Everybody waits since years for delivering of Android in the knowledge that this construction place will be for years a construction area at all like IOS is at the moment at all. I was programming IOS Apps with B4I and I can tell you: IT IS MUCH NICER. Using Pages I can use nearly my entire Code and my Design and do copy paste between Android and IOS and I have in the result a native APP for both. If I want I can use my UI also for a Desktop-App, also this via Copy paste.

Xojo Android will not allow Copy paste of UI Elements between IOS and Android, IOS and Desktop and nor between Android and Desktop. Thats clear before it is becoming a shipped app. We have to see the trues: developing professional working Software economy for a company can become really heavy with Xojo. Really heavy.

I tried to use it in medical environment. And what shall I say: the authorities where asking me when I will change with the Webapps to Web 2.0 because Web 1.0 is deprecated and I can not secure the Web connections. My answer was sad: never cause I can not use the code and I have not the needed functionality. I lost 3 Manyears of development and I lost many reputations from my customers with this. That’s why I develop only in Java and no xojo is allowed in the House. After LOOSING 180000 EUROS. My other Programmers have the same problem, they had to switch from xojo to Java because of this.

Looking on this situation I wuld ask myself why should I develop anything in Xojo? Why should I because it is not that kind of tools professionals can rely on. Not yet, not at the moment. It could be.

So in my eyes the question about the experiences with B4x is or has to be allowed even if this forum is a xojo based forum while many developers are in the need of an alternative. And not every programmer can or wants to change to C++, JAVA, SCALA or Kotlin.

For my Customers the future is written UI’s in B4J and Server site Software written in Java. In that configuration I give my customers a guaranteee for at least the next five years for Java 11. Java 17 is on its way, we will see how long it will be supported. But again: the refactoring for Java 17 from Java 11 is no problem. It can be done not like xojo. Why? Because they have the needed sustainability to hold their language clean. Something Xojo was not doing within all the time. I hold further a pro license of xojo and my programmers will do the same while we have to fullfill software maintenance for the few customers which are not changing their products in the market. But I would do a bet: there will not be a NEW release written in Xojo. And that is poor cause it is not because of not the right abilities. It is because the management decided to add features but not to build the right platform supports.

At the other side: it is not a project for 5 developers. It is a project for much more people. The compiler needs love what will cost a year or even a bit more to get really ready with it. That would allow people to build everywhere instead reducing to Mac for all abilities.

IOS needs Love to be a really App-Builder and not something I miss the describing words for. Web? Should go back to Web 1.0 and make it stable and working. Desktop: needs love.

All Building areas are in the need of one Engineer taking care of it. But for this would also mean: no developer available anymore. I think that will show all of us that we need an alternative in the market. To get the Job done and not to be sad about not working advertised functionality.

1 Like

I’s agree
Xojo’s “download and go” approach is pretty desirable - not perfect everywhere but for the most part it is (most modern linux have libunwind installed)
If it were as rock solid as Java, which B4X leverages, it would be awesome

If B4X took some of Xojo’s approach - ie less “abstract designer” and more WYSIWYG and had an x-platform IDE that’d be awesome

The point of the designer is that it gives me the ability to use it and have in one designer all natives I need. It is complex to du it wysiwyg

1 Like

The x platform ide will come, the one click download is a packaging question not more. They’d have the chance for packing with binary starters for all targets and pack the needed partial jet with. Would be possible yes.

1 Like

Agreed that a x-platform IDE would be nice, but as sklester said, for a professional programmer, why would that even be an issue?

We are not speaking about a competition between xojo and b4j. That’s not possible. We are speaking about two complete different worlds of programming paradigms. Xojo is a good show with a let me say often not usable result. Long time running apps as web or desktop are starting memory consumption, the software is not ready for production and will never be. On the other side is a tool with the only target: get your job done. Stuffs xojo has as goodies (even if they are only show goodies like wysiwyg designerwhich is far away from wysiwyg) are held as major arguments from xojo users. In my view there is no competition cause in real the tools are not comparable. Not at all. Xojo is not a real cross platform system like java but worlds when and if developed on Mac. If not it’s quite complex. But it works. In my case I have the ide running with crossover on Mac and Linux what makes it for me cross platform. Whatever xojo is not the same amount of reliability, sustainability, stability, functionality, cross platform ability, not at all in the same league in questions of continuity, not in the same league of technical abilities. It is, looking from the java site a tool for citizen developers. That was not always so. But it became with the time. Even if I would say xojo looks nicer I can not rely my development on it cause it is not a professional development tool in all cases. While b4j is it mAkes it not comparable to xojo.

All the arguments have their not beatable and bullet proof evidences. No question. But at the same moment I can say: there are lots of citizen developers which really like to develop with it and which are not in the need of pro level development. And they are right in their decision cause it is less complex to build with xojo comparing to b4x or java, it is less complex to deploy. No question at all. So I think That Pros will not stay with xojo cause for them it’s no problem of complexitivity while they don’t care.

1 Like

Thanks for reminding me that I am not a professional programmer because I do not like to work on Windows …

Could that be received of as just a tad condescending … :roll_eyes:

I would agree that there are a LOT of things that make me NOT a professional programmer - however I feel disliking Windows and preferring to work on a Mac is not one of them …

3 Likes

I write Xojo desktop apps for use in factory environments, running production test equipment, and have done for over ten years, going back to RealBasic and RealStudio. I code on Macintosh and compile for Windows. These apps run 7 days a week, continuously, testing tens of thousands of products. I have never been seriously affected by any bug in Xojo, and I have never had to “learn the language from scratch”, nor have I “lost much time buying MAC computers”. So in terms of desktop apps, I have no idea what you’re talking about.

Now on the web app side, things may well be different, and it seems that that’s what a lot of posts in this thread are referring to, but people should perhaps be more specific. I’ve only written one web app in Xojo (a fairly simple one), and it was not a particularly pleasant experience, but again, I didn’t run into “many many many” (or any) bugs. I got it to work, and it’s been working without issue for a couple of years now, served up by a RasPi in a corner of my shop.

4 Likes

Ok, now I’m totally lost how to write on this forum. I ESPECIALLY added the ‘professional programmer’ part NOT to step on the toes of citizen devs and now this. :flushed: Guess if one want to, on can always find something to be offended about.

All I meant to say was a professional programmer is used to adept, more than a citizen user should do. I have several OS running, depending on the needs of the project. I do prefer one above the other, but do not whine if I have to use one of the other ones. As a Pro, I just don’t have the luxury to be that picky. That is just part of the dev life I chose.

1 Like

When you’re happy and not affected then do it like I wrote. It is not on me to convince you to something or to reach out documentation for available errors. While I found many bugs I have another view on it sorry.

Sure can. But

Agreed that a x-platform IDE would be nice, but as sklester said, for a professional programmer, why would that even be an issue?

in the context of the conversation is pretty condescending to those who said they do not want to work on Windows and basically saying “you are therefore not professional programmers so we can disregard those comments that do not agree with me”.

So your defence of “I only meant my comment for professional programmers” ist just digging that particular hole deeper.

I would even say there are professional programmers that work on only one platform. Especially the top professional programmers as they have expert knowledge and do not compromise on cross-platform.

And if it comes to cross-platform: Xojo attracted a LOT of people because you could compile for Windows without the need to get deep into it (often without even having a Windows PC).

We should calm down this discussion. There are professional programmers which do not have the need for some extended functionality, many pros are not leavong MAC OS with thheir Software and many of them are not really working with Ios or Web. We have to agree under all circumstances that the question if somebody is programmer as a professional programmer or not is not hanging on the question of Language or IDE.

Saying this I also see that many features of the XOJO portfolio are made for non pros what again not means that pros are not using xojo or can not use it. Whenever you will hit the borders where is no workaround youll find Plugins from MBS or others and your world again is working perfekt. But.

Whenever there is none you have two choices: write own plugins (that’s what we did for Web 1.0 with nearly 30 functional parts where we had no chance to use a plugin directly and had to write our own plugins. We have done it without complaining and that’s it. With Web 2.0 all of them ar garbage. Nonsens. Even that I would accept if there would not be the need to wqrite around further 10 plugins for Xojo to get to a point where we could migrate our Stuff to Web 2.0. I decided not to do that because the upfront costs are higher than using Java and having all the functionality I need in a professional Level without buying even one Plugin. But that’s - like I said - at the end my Choice and not yours.

So even if a professional programmer wants to work with Xojo, why not? It is okay. But that makes the behavior of Xojo Releasing and the Behavior of Xojo Status not professional. When Java 17 comes out, it will ot be error free. But it will be nearly showstopper free. And it will be supported like even Java 8 is supported until 2026. With Xojo we had a supported time of 2019 and 2020 and in 2021 the Software has not to be migrated, it has to be rewritten. Even Points like MSGBOX(“ARGS”) renamed to messagebox(“ARGS”) is nonsens in my eyes and has nothing to do with professional behavior.

Yes, there has to be a deprecating when it is needed. But not in this wise and with this kind of behavior. Deprecatings in Java are not overcoming me from now to immediately. They start to be signed deprecated and after that they will be deprecated in following versions to die slowly. At Xojo deprecation comed immediately now without warnings. THAT is everything else than professional at all. Beside Java you have the same behavior in C, C++, Scala, Kotlin, PHP, Python, Ruby, Delphi, Lazarus and many, many more professional Languages.

That is needed for a planneable lifecycle Management. But not with Xojo. And no, it is never recommended to write your Software in an old IDE with a years old compiler. Even that behavior isn’t rofessional for wroting new Software and develop new packages. We can speak abut Updates for old Software but in the most circumstances I would not do it in this wise. We have three old Apps written in C for VMS for nuclear plants we are doing still maintenance on a frozen Compiler State. But only to maintain errors in old programs when there will be the need. It was not for now 7 years.

So, where should be the point to serve an application written with Xojo 2016 in 2021 in view of Cyber Security? Can you guarantee the standards for your compiled Files? Maybe, maybe not cause you can not know. Stuffs which are tested with new C++ compilers and Java compilers for example.

So we should not discuss about the question if somebody is professional developer or even not. The question is another one. Is a programmer reaching the borders of the language or not. People which are not reaching the borders and have enough functionality with the plugins from market and have no controlling authority for cyber security will oe may not have problems to work in that wise.

I have and many others also and that is the point why many are changing and others are fanboys for Xojo. No question at all. Do your stuff and if you get your Job done: no problem. If not while there are restrictions, Bugs, problems or whatever: this people will be in the urgent need of an alterntive to xojo while they can not get their Job done. But that has not to do with professional while professional will every programmer be which sells his results. So it has nothing to do with the language e is writing.

2 Likes

Personal preference ?

1 Like