Why not C#?

It's not so easy with the programming languages. B4X is excellent for "simple" (;-<) applications. It's easy to learn, it's productive and yes it's a RAD. But it's not the right tool for very complex applications.
I have read all postings of this thread. And I'm not able to form an opinion on the knowledge of B4X programmers.

Professional programmers should have a deep knowledge of OOP (Object Oriented Programming), know something about SOLID principles and so on. Classes in B4X are a little part of OOP, but there's no polymorphism, no inheritence. Programming Android with Java using Android Studio IDE or Eclipse has all these features and allows very complex applications and user interfaces. You can use the latest features of Android versions if you like.

But it takes much more time to develop and much more time to learn.

So I like to program with B4A for my personal use. But I never would use B4A for complex applications destined for hundreds or thousands of users.

Have a look at Android Studio (it's free) and try to create an app. And you will be very happy to return to B4A. And then you will like Basic as a programming language. C# with the limited extent of Basic (except Basic.NET) is not worth to busy oneself.
 
Last edited:

Erel

B4X founder
Staff member
Licensed User
Longtime User

Emme Developer

Well-Known Member
Licensed User
Longtime User
Professional programmers should have a deep knowledge of OOP (Object Oriented Programming), know something about SOLID principles and so on. Classes in B4X are a little part of OOP, but there's no polymorphism, no inheritence. Programming Android with Java using Android Studio IDE or Eclipse has all these features and allows very complex applications and user interfaces. You can use the latest features of Android versions if you like.

But it takes much more time to develop and much more time to learn.

So I like to program with B4A for my personal use. But I never would use B4A for complex applications destined for hundreds or thousands of users.
I don't understand your point of view.. Yes, in b4x there is not polymorphism or inheritence, but i dont understand why without these you cannot made complex applications.. I also develop in c#, and i see that there are some features on it that could be good on b4x (lambda expressions and enumerators for example), but this doesn't mean that you can't made a complex application. And by the way, what is a complex application? I developed an app in UWP using c# that is running in events: http://www.integralabsrl.it/home/works/8-promo/15-minds-e-digital-signage is this a complex application? I don't know, but to port the same app on android totem i spent 1/4 of the time i spent in c#..
 

Star-Dust

Expert
Licensed User
Longtime User
B4a is based on java. I think that everything you can do with Java can also be done in b4a. You are in Java develop complex comma applications I do not understand the reason why you could not do them with b4a.

There are few features that b4a has not inherited for Java.

I still think that calling it Basic for some developers means a little powerful language. RealBasic to overcome this obstacle has changed its name to Xojo. Before it was mistreated by the world of developers and professionals, now it is considered an excellent language, but has changed only name. Maybe we developers should change the point of view?
 
Last edited:
I don't know, but to port the same app on android totem i spent 1/4 of the time i spent in c#..

I agree to this. And Erel told me that there are some B4A applications with more than 100.000 downloads.

Yes, I'm sure you can program complex applications with B4A. But the question is: Should one do this? In the posts to this thread I have found very little regarding software technology. This is not the right place to talk about interfaces, abstract classes, polymorphism, dependency injection, Model-View-Controller (MVC) etc. But these features (and other) are very helpful especially when creating complex apps (independent of the programming language supporting this (could be VB.NET)).

Kind of programming with B4A is state of VB6. It's easy and it's fast to program. And I like it. But it is not the state of the actual art of programming.

PS: I'm a licensed user for more than 3 years. This is not shown here because my mail account for posts is different from my license account.
 
Last edited:

wonder

Expert
Licensed User
Longtime User
I never would use B4A for complex applications
I'd like to remind you that we are able to write our own native libraries (C/C++) and/or embed a Python 2.7 interpreter (CPython). So why limit ourselves to B4A?

Here's some ideas:
  • 3D Games: B4A with jPCT Lib [OpenGL (C/C++)]
  • 2D Games: B4A with LibGDX [OpenGL / Shaders (C/C++)]
  • Blockchain / Cryptocurrencies: Interface in B4A / Core algorithm in C++
  • Artificial Neural Networks: Interface in B4A / Core algorithms in C/C++/Python
  • Computer Vision: B4A with OpenCV Lib (C++)
  • User Scriptable Applications: Interface in B4A / Functionality in Python

:)
 
Last edited:

RandomCoder

Well-Known Member
Licensed User
Longtime User
I have to say that I'm in agreement with the sentiment of the very first post that started this discussion. I'm old (according to my kids), and I feel most comfortable coding with Basic and VBA. My eldest son has recently finished his HND in computing. He's now working for an IT tech support company and in his spare time has started to show interest in writing programs for the Google Play Store.
And so to the point of my rambling...
I said "why not use B4A its simpler than trying to code in Java". His reply was "I need to learn Java to find a better job in the future whereas no-one in business uses B4A". I argued the point that to code a web page you wouldn't attempt to write the HTML in NotePad (something that I've done and would have been the norm), but rather you would use one of the many IDE's that make the job simpler. It's now possible to make complete websites without writing a single piece of HTML.
My son showed me his work and asked for some help with a problem he was struggling with. In the space of three hours I had recreated his App using B4A and found a solution to his problem. It has taken him over three days to get a blue screen with an image of a spaceship which moved to where the screen was touched.
But I still can't convince him to use B4A! :(
 

Descartex

Well-Known Member
Licensed User
Longtime User
Is this a generation conflict :)!?
Don't think so.
I'm much younger than you and I'm very glad to keep on B4X... (i'm starting on the last product of the family... B4R)
 

imbault

Well-Known Member
Licensed User
Longtime User
Is this a generation conflict :)!?

No, it's just a marketing issue concerning Basic vs Java, c#, Objective C, Swift...
RealBasic is just the perfect example, renaming their product Xojo
 

RandomCoder

Well-Known Member
Licensed User
Longtime User
My remark was for Randomcoder's sentance:
This is how I interpreted it and liked the post. I even told him that if he really wants he can use inline Java and have the best of both worlds, the ease of B4A with the added functionality of Java when needed. But you know what teenagers are like. He'll do his own thing and make his own mistakes just like we all have in the past. :)
 

amykonio

Active Member
Licensed User
Longtime User
Top