Why not C#?

moster67

Expert
Licensed User
Longtime User
This might leave a frown on someone's face, especially among us who comes from a VB-background, but I will write down what I think nonetheless...

I have tried out Xamarin from time to time but I always return to B4x due to its simplicity, support and continuous improvements, especially as a cross-platform. That said, I believe Xamarin receives lots of attention because it uses C# (C-sharp). C# is a well mature, rather modern language and have lots of users. It can be used for programming apps for the Windows-platform and now also for the mobile world through Xamarin. Many new developers learn it as a first programming language so for many Xamarin becomes a natural choice for mobile development unless they of course go along the Java/Swift road.

Let us be honest, there aren't many developers these days using VB (or its "dialects"). I am not saying that there aren't any. You will now all write: We still use VB in the office etc - fair enough: but the majority does not learn or uses Basic these days. I asked out of curiosity my son who studied programming at High School and currently at Univeristy and none of his friends are familiar with any Basic-language or use it actively while C# is being used or has been used massively. There was a thread posted here in the forums a week or so ago and from this thread one can deduce that many of us B4x-users are rather old/middle-aged, including me, and many with a VB-background. There were not many "youngsters" who posted and my general impression is that most B4x-users are not that young anymore..

As I said, Xamarin is not very user-friendly and rather "odd" to use but still many developers (newcomers and not) choose it for mobile development because there aren't any alternatives unless they learn Java, Swift etc. They do not use B4x because it uses a Basic-dialect which, for many, is not considered these days neither as a "serious" language nor a language they would like to learn when they already are familiar with C#.

I believe the "Basic-tag" of B4x is stopping the B4x-platform from becoming a more popular, wide-and well-known, recognized language/platform for development (mobile and not). Developers don't take B4x seriously.

Now, "if I were" Erel (which I am not) I would consider developing a C#4x suit of development-tools. It should be based on the B4x-strategy: keeping it simple and cross-platform. If I am not wrong, Erel already converted "Basic-code" to C# with the old Basic4Ppc-platform so C# is probably not a problem for Erel. I think a "C#4x suit" would create a lot of interest among developers and attract many C#-developers who find Xamarin difficult or limited.

Just some ideas for the future of Anywhere Software and to give Erel the recognition he rightly deserves in the development world.

OK, let the flames start rolling in.... ;)
 
Last edited:

NJDude

Expert
Licensed User
Longtime User
Ok, first of all, who are you calling OLD, you old man? :D

Seriously now, I don't fully agree that the "Basic" tag has any influence on this product (B4A), I guess the acceptance comes from the features of the product itself, indeed, C# is the "norm" nowadays and yes "youngsters" learn it as well as other similar languages but if we take a look, they ALL look the same, meaning, all of them use the "curly brackets" so, jumping from one language to another (C#, Dart, Java, etc) it's seamless and that's the "appeal" of these languages, B4A it might be "old school" by comparison but like I said, I do not agree with that.

I agree with you 100% on the simplicity and speed of development using B4A, I have tried other tools and I always come back to B4A for the reasons I just mentioned.

B4A Rulez!
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
Note that the average age of all forum members is around 33. While there are many B4X developers that come with VB background, I think (or guess) that there are more that don't have such experience.
B4X language is simple, powerful and fit nicely in the IDE and all B4X ecosystem.

B4X = RAD
C# + XAML = anti RAD (which doesn't mean that it is not powerful).

B4X is inspired by VB6 RAD features.
 

alwaysbusy

Expert
Licensed User
Longtime User
let the flames start rolling in
I will not, as this is hypothetical anyway :)

Although I would not be against it if Erel decided to do this, I still would use the VB-like syntax. I love it too much! ;)

I think the major problem would be that again it would not be C#, but also a "dialect" of it. Erel has worked-in so many nice features in the language one would expect to have in the C# version too, but are not C#-like at all.

To be honest, I haven't used to term 'Basic4' in quite some time when I talk about the language. It just is B4X, a unique language in itself. I suppose I could call it 'Build4X' because it feels exactly like that e.g. when using #If JAVA/Obj-C stuff.

average age of all forum members is around 33
That is very cool to hear! (but on the other hand makes me one of the older guys...)
 

Star-Dust

Expert
Licensed User
Longtime User
The "Basic" ever since it was created has been considered as a language for beginners or a less powerful language. And many dialects at the time were indeed poor languages.

As a lot of programming languages have emerged, no language developer ever thought of calling it BASIC for not giving it a negative connotation.

When in the 1990s I attended the Borland conference, which at the time was one of the most open-minded companies in programming languages (Turbo Pascal, Turbo C, Turbo asm) and someone asked why they did not come up with a Turbo Basic .... the managing director replied: "With my Turbo Pascal I can implement the basic compiler that she would use to implement her applications." The concept is very clear, for some (or many) consider Basic (just because it is called Basic) a secondary language.

One of the few who focused on Basic was MicroSoft with VB (now VB.NET) that has continued to develop it to date. And we can say that today's VB.NET, with the old Basic, only has the name in common, but I want to venture that seems more like a mix between Java and C #.

I think the previous comment is right. The problem is the name. Build4x would give developers a better idea. The word Basic is almost banned in the computer world.

That is why at universities you do not study it, but generally you study the most used language in the business world. Schools must prepare for the world of work, and the best choice is a very used language ... for example the C #.

But among the hundreds of languages that exist today (see this) and many of us are beginning to know each other, we know very well that many are powerful enough but ignored. There is a fashion of the moment. Yesterday Java, Today C # and Swift Tomorrow Kotlin ......
Of the languages that have been developed up to now, those who take off or are dialects and / or inherit some other language. What today drives a lot in one direction rather than in another is the fashion and advertising that it does in the technical and scholastic contexts.

P.S. I do not like fashion :p
N.B. The idea of a C#4A/C#4I/C#4J does not disappoint me, too, because I do not know the C slot, very little C # and therefore would not change anything. Perhaps it may be useful to have a greater distribution of RAD for the benefit of AnyWhere Software
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
p.S. (2) The main reason why Basic at the time was underestimated was because there were no compilers but only interpreters of Basic. (or They existed were not very widespread)

This made the developer difficult. He had to install the Basic (or dialect) interpreter on the machines and then a copy of the source. Often there was no way to protect the source but could be seen by others simply by opening the file. Only some Basic allowed some form of protection for the source.
So all developers were oriented to compiling languages in .EXE or .COM.

Now this concept is overcome because some languages have a semi-compilation, such as Java. A hybrid file (JAR) is generated that is executed or interpreted by the runtime that you find it stuck on the machine (you do not have to do it) almost on all operating systems. The semi-compiled has its source protection. At the time a similar idea would be rejected.
(If I did not mistake the Vb4 had a similar system, it produced an EXE that contained the partially compiled code and had to be on the machine a runtime to run the code)
 

RJB

Active Member
Licensed User
Longtime User
"snob developers" have been around a long time and they wouldn't touch anything that even hinted at 'BASIC'.
B4A is about as far from the original BASIC as is possible. It really does deserve far more recognition.
VB.Net must still be very popular, MS wouldn't continue to update it otherwise. Though there are differences B4A IS THE 'VB.net' for Android and given the difference in development budgets must be the best value language in the world!!!
 

Star-Dust

Expert
Licensed User
Longtime User
"snob developers" have been around a long time and they wouldn't touch anything that even hinted at 'BASIC'.
B4A is about as far from the original BASIC as is possible. It really does deserve far more recognition.
VB.Net must still be very popular, MS wouldn't continue to update it otherwise. Though there are differences B4A IS THE 'VB.net' for Android and given the difference in development budgets must be the best value language in the world!!!
Obviously I did not refer to any of this forum when I used the Snob Developer expression.

Becouse we use b4x :p
 

Cableguy

Expert
Licensed User
Longtime User
I usually don't get into this kind of discussion, simply because, I started learning how to code with BASIC, then came PASCAL, and, thank god, VB...
I did very little VB4/VB5 until the first PocketPC's came into play. Unfortunatly, the language for those systems was a complete unknown to me, so I went looking for alternatives. I found Basic4PPc (The very first IDE that EREL created and that started my journey into soft-dev), and I was so happy... It was a language I understood!
At that time it suffered from the previously mentioned need of a Runtime Lib, so creating a "final" program was difficult. Then EREL introduced the first version (I think it was V4) that could compile into EXE, producing both WinMob or Win32 compiled programs! Finally! The IDE kept improving and then came the ability to use libraries, written in.... C#! Yes, we have used it already!
All this long story to get to this point! If EREL's IDEs were to be based in C# he would have done so already! He chose, and I thank him in doing so, to keep with the vb like syntax. In my case, since I don't have an academic background in coding, it makes coding a matter of logic line of thought.
EREL made a bold move, when shortly after maturing a bit Basic4A, he decided to drop the Basic and use the B instead.
Most still read it Basic 4 Anywhere, I read Basically 4 Anywhere!
 

Star-Dust

Expert
Licensed User
Longtime User
We did a similar path ('88 -) Basic and ASM [on Commodore 64, Poke] ('90 -97) GwBasic, QuickBasic, ASM8080, Turbo ASM and Turbo Pascal ('94 -2010) VB4, VB6 (200?) BasicPpc [Cracked:p] and RapidQ (2003-4) Java (2009-now) VB.NET (2017-now) B4A (2018) ???

Sorry but I did not want to start a coming-out where developers talk about their past experiences and known languages, I feel right to delete my post
 
Last edited:

moster67

Expert
Licensed User
Longtime User
First of all, I am sorry if I offended someone by calling them "old". I did write "middle-aged" as well to be on the safe side :).
Secondly, I am sorry if I offended someone by "offending" the BASIC language. I am, indeed, also more comfortable with BASIC than other languages.

That said, this thread was not meant to find all possible ways of defending BASIC and why to use BASIC and why Erel wrote B4x way back in BASIC and so forth. We all use BASIC (we are using B4x after all) and we are pleased with that.

The question I posted was "why not add support for C#" considering the huge existing user-base of C# developers. I believe @alwaysbusy is right though that it would require a "C#-ish" version of C# but it could probably be done the way Erel did it with his B4x BASIC-dialect i.e. some sort of C# with similar syntax to make C# developers feel comfortable.

My personal opinion is that this would give a huge boost for Anywhere Software. STOP.
 

Star-Dust

Expert
Licensed User
Longtime User
First of all, I am sorry if I offended someone by calling them "old". I did write "middle-aged" as well to be on the safe side :).
I am old :p:D;) time passes

Secondly, I am sorry if I offended someone by "offending" the BASIC language. I am, indeed, also more comfortable with BASIC than other languages.
I'm not offended and you did not offend the basic, you expressed a thought, in an educated and respectful way

That said, this thread was not meant to find all possible ways of defending BASIC and why to use BASIC and why Erel wrote B4x way back in BASIC and so forth. We all use BASIC (we are using B4x after all) and we are pleased with that.

The question I posted was "why not add support for C#" considering the huge existing user-base of C# developers. I believe @alwaysbusy is right though that it would require a "C#-ish" version of C# but it could probably be done the way Erel did it with his B4x BASIC-dialect i.e. some sort of C# with similar syntax to make C# developers feel comfortable.

My personal opinion is that this would give a huge boost for Anywhere Software. STOP.
I did not understand anything about what I wrote down after, I'm poor in English.
OK, let the flames start rolling in....
As you have expected, you have opened a fire, they are delicate topics
 
Last edited:

Roycefer

Well-Known Member
Licensed User
Longtime User
I think moster67's suspicion that B4X is seen as a toy language isn't entirely without merit. I think this can be remedied with the addition of some more advanced features like inheritance and polymorphism and the creation of cross-platform IDEs.
 

Beja

Expert
Licensed User
Longtime User
* You will now all write: We still use VB in the office etc - fair enough*

VB6 was so easy and friendly.. regardless of limitations.. that's why many programmers stick to it when MS abruptly switched to .net, and they are
still using it.
 

OliverA

Expert
Licensed User
Longtime User
I think moster67's suspicion that B4X is seen as a toy language isn't entirely without merit. I think this can be remedied with the addition of some more advanced features like inheritance and polymorphism and the creation of cross-platform IDEs.
Let everyone else think that this is a toy language. And who is this everyone else? Enterprise developers? I say, so what! Who's selling apps on the various app stores? Enterprise developers? Really? And what about C#? Will it help develop Android apps? For that you just need B4A, and now and then some Java. The cool thing is that most of the B4A will translate to B4J and then you have Windows/Linux/MacOS/any platform with Java support. Then again, you may need to know a little Java to take care of some more platform specific stuff. Now on iOS, B4i will take you there and now you may need to know some ObjectiveC/Swift for any platform specific stuff. And what about B4R and its platform? How will C# play into that? And what if Apple makes Swift into the 1st class citizen for apps. Bam, taken care of with B4i (with probable no code change). So for enterprises I can see the appeal for C#, but otherwise no. Oh yeah, and on a selfish side, I just don't want to learn another language/keep up with another one.

As to inheritance and polymorphism, are we really, really sure we need them? Is the extra complexity really needed? Just saying (my uneducated opinion).

This is not a defense of Basic, I just don't see the benefit of adding C#, but I do not work in an enterprise/educational environment where this may be more appealing (and I may just be getting plain old :D).

Cross-platform IDE, I'm going chicken out of that one... :p
 

netsistemas

Active Member
Licensed User
Longtime User
Better4Android.
Build4Android.
Bring4Android.

that is Basic4Android!!! The best.

COBOL -> Dbase/Clipper -> Dbase For Windows -> VB50 -> VB60 -> VB.NET -> B4A -> vb70 multiplatform Future? (i'm 48)
 
Last edited:

DonManfred

Expert
Licensed User
Longtime User
come with VB background, I think (or guess) that there are more that don't have such experience.
I´m one of those. I am even an Exception about the average Age :D; I´m 48
 

klaus

Expert
Licensed User
Longtime User
I´m one of those. I am even an Exception about the average Age :D; I´m 48
And what should I say?
I worked with VB1, VB3 (VB3 was on the market before we bought VB2), VB4, VB5 and VB6.
And last but not least I'm almost 73.
 
Top