Why not C#?

Melghost

Member
Licensed User
Longtime User
Hi!

I think high-level languages main goal was to make easier to speak to the machine. Languages as BASIC were created for that reason. So I usually appreciate ease as one of the most important features of a high-level language. When I want to get the most power of the machine I program in Assembler instead. But the most of the time it's not worth to program in low-level languages because of its difficulty.

Because of my work I have to waste a lot of hours in learning new languages, new libraries, new framework features... And I see that programming has become a Tower of Babel, where nobody completely knows what he/she is doing, and most of the time you have to copy-paste other's code from Internet, and fight against problems created by the framework and the language itself, but not by the algorithm you have to implement. I think it's a stupid situation when programming in high-level languages becomes even more difficult than programming in Assembler!

With that reasoning in my mind, I conclude that, the most I learn languages as Java, C#, etc., the most I like B4x.

Thank you very much Erel, for doing it possible. BASIC 4x forever!
 
Last edited:

SeaBee

Member
Licensed User
I started with Algol on an IBM 1130 - yes I really am that old! Damn - another exception. :D Then I moved to various versions of Fortran on the HP 1000 (MX21), and also started writing MX21 assembler (not to mention programming boot sequences on front panel switches to make punched tapes :eek:). After that, when I was working for HP, they bought out the HP98xx series with HP basic and I wrote reams of code, which also ran on just about every other HP machine of the era - HP110, 95 etc.

Then management happened, and I didn't get to write code for ten years, but I missed the creativity, so after that I went sailing for five years, hence the SeaBee moniker. After that I got back into software and everybody wanted Access DBs with DBA. I dabbled a bit with VB6, but when .NET came out it was a revelation, and jumped into C# - but all my clients said "Do it in BASIC as my son/daughter/niece/nephew is doing that at university".

When a client asked me to move a .NET app I had written for him from Windows to Android, with a deep sigh :( I bought a Java manual, but found I had a deep-rooted dislike of squirly brackets. I was looking for a utility to convert lots of VB.NET to C# and then learn Xamarin when I came across B4A. What a revelation!

Erel is spot on - it is truly a RAD for Android. My productivity went way up, particularly as this was very complex code I had to rewrite. OK, so it is a little verbose, like all versions of VB, but it requires fewer lines of code to achieve the same thing, so that is pretty much a wash. Also, it is much easier to maintain, a even when you look at old code it is very easy to understand what is going on.

So - lets hear it for Erel and VB4A!

Chris C-B (hence the SeaBee moniker - oh, wait - I already said that! :D
 

AnandGupta

Expert
Licensed User
Longtime User
Lots have already been said. Let me add my 2 cent.

I am old, yes 54+ yrs. I do not have VB background. Though I learnt BasicA, GWBasic; I started with dBase II.

Now I use Xbase++, Harbour MiniGUI, AutoHotkey, AutoIt3 etc. to create the apps/programs as per my project. Many time I mix above to create a complete solution.

When I started looking around for development on Android system, I found many but after using B4X, I knew it WAS the Xbase++ for me on Android.

You can see how different syntax I have to use for just creating a window / dialog in different languages I use. These do not deter me in using them, when I know which one will solve my requirement in the best way with easy maintainability.

To create an Android app we need a designer and IDE because the app must look and feel good.

To think that a programmer with not touch B4X, just because it has "basic" in its name and will grab it if it has, say "advanced" in it, is just hitting the wrong note.

Today' world revolve around social media and media controlled news. And most of our younger generations live in this world. Do not worry, when they have to make something for living, they will need the one which is easier, faster and maintainable with new OS version support. B4X has all these.

Regards,

Anand
 

wonder

Expert
Licensed User
Longtime User
upload_2017-11-27_13-10-14.png
 
I'm programming with C# (not using Xamarin), have developed with Java (using Android Studio) and like to program with B4A. The main reason is very simple: It takes less than 25 percent of the time to create an application. And this has nothing to do with the programming language. It's because B4A is a kind of framework that generates a lot of java code that otherwise you would have to write yourself (at least partly) when you use Java or C#. On the other hand you cannot tailor the application in detail, you cannot inherit, you cannot write a function with different types and numbers of parameters (private string mySubstring(string text, int start) private string mySubstring(string text, int start, int length). Instead you must use SubString and SubString2. There are no generics, you cannot use dependency injection, Model-View-Controller (MVC resp.MVVM) architecture and so on.
B4A is a successor of VB6, customized for Android and all the features of smartphones that desktops didn't have in times of VB6. C# instead of B4A would cut down the scope of C# not worth to call it C#. Everybody who knows C# would be very disappointed of a C#4A.

PS: I'm 66, programmed in Cobol and VB3 to VB6 and other Programming languages.
 
Last edited:

chompina

Member
Licensed User
Longtime User
my first post.. defending Basic..
i'm 34 , starting age 14yr coding.

in basic language..
basic 4 DOS 1.0/vb4/vb5/vb6/vb.net (2005,2008,2010, waiting for full 2017)... when exaust searching for develop for Android using basic, finally find b4a 1.90, following all demo versions after 1.90, 2.50, 2.80, 3.20, 3.50, 5.00 etc,.. etc.. etc.. , i finally decide bought license b4x/b4i+hosted builder, and i very happy with b4a 7.30 + b4i 4.40. and i waiting for the next update.

i not very familiar with C#, but, when a client wants software in C#, i develped 100% VB.net, then i use sharpdevelop to convert the code to C#, only fews errors to fix. after that, client have a C# 100% working code.. and i not frustating to learn 100% C# code...
Love Basic and i could do every i want... there is tutorial that you coding in VB with Xamarin with new .Net Standard with VS 2017 preview 3, coding in vb and compile for A/I/WM with one code.., i't a good news for Basic world. You can search Visual Basic Cross Platform..

but i think b4x could be more and more better RAD solution than Xamarin..

Erel, we need a tool that can export or compile to Window Mobile Phone.. using B4a or B4i i think, or B4u separate IDE... to complete B4x Suite.

thanks.
 

Star-Dust

Expert
Licensed User
Longtime User
The last posts are completely out of topic. I was suggesting adding support for C#.
I come to @Monster67's thought, so we also come to the subject in question.

The point is not defending or attacking the Basic. Here we are all (or most) users who like Basic. @Monster67's question was whether it was a case for adding and supporting C #.
Maybe similar to #IF JAVA (B4A) and C code that you can insert on B4R.

The argument has widened to the fact that the B4A, even though it was born as Basic, has now evolved. And all the evolved lingo resembles and have similar characteristics may also not be just as Basic, and someone has hypothesized (theoretically) that it could even be called Build4A.
But it was just an example to indicate that language is so evolved that it has absorbed features that are present in other powerful languages.

I did this short summary to get back to the topic. For me to add a new feature or feature does not mind.
Specifically I would not use it, but probably others would do it. So I would not be against it. Now you have to see if it's workable and beneficial for AnyWhere Software, but that's a lot of talk.

PS. It's nice to read the experiences of developers and what languages one of us used in the past. But maybe right to open a Topic for this. That is also interesting but out of context in this thread
 
Last edited:

Jeffrey Cameron

Well-Known Member
Licensed User
Longtime User
Another "old" programmer here (my high school had a working PDP-8 with a paper-tape punch/reader to save/load your program after manually entering the assembly code via seven switches on the front of the unit). I view a programming language as just that, a language. If you can order a sandwich in the native language, do so, if you have to use a phrase book to translate you still end up with a sandwich.

I can code in several languages, I prefer to code in BASIC. I view most of the "modern" languages today as unnecessarily obtuse... it seems to me as if the people designing the languages go out of their way to make the syntax cryptic or be overly "hip" or "trendy" in the syntax design.

On one end you have the classic verbosity of COBOL:
B4X:
PERFORM THAT-PROCEDURE VARYING MY-COUNTER FROM 1 BY 1 UNTIL MY COUNTER GREATER THAN 5
to the C# era:
B4X:
for (int i = 1; i <= 5; i++)

If you know nothing about either language, which one is easier to read? Which one is easier to debug at 2am after your fifth pot of coffee for the day?

For me, BASIC falls somewhere in the middle of those two and I am quite happy to keep with it as long as it continues to be developed.
 

imbault

Well-Known Member
Licensed User
Longtime User
Maybe we need a B4U to develop UWP apps, but definitely not specifically for windows mobile phones
 

udg

Expert
Licensed User
Longtime User
Erel is too shy to tell it aloud..but the B in the name of all our wonderful tools stands for Best :D
 

KMatle

Expert
Licensed User
Longtime User
PERFORM THAT-PROCEDURE VARYING MY-COUNTER FROM 1 BY 1 UNTIL MY COUNTER GREATER THAN 5

What about B4C? (Basic4Cobol). Hahaha.

Back to topic: What I never understood was the fact that after 2 years "old" languages have to be replaced "by new ones". From my point of view there are too many people want to reinvent the wheel and want us customers pay again for the same thing :)
 
I do not understand the discussion regarding C#. Experienced C#-programmers know that C# is a modernized Microsoft version of Java. At first appearance to the code you cannot distinguish between them. So why not support J4A or K4A (Kotlin for Android)(;->)? Not the programming language makes the difference. The difference is the infrastructure behind. C# instead of B4A helps to save some keystrokes, nothing more. Add inheritance, generics, polymorphism etc. to U4A and you can think of supporting C#. And then look for people able to implement all these features.
 

amykonio

Active Member
Licensed User
Longtime User
Hi.

Many contemporary languages do need a runtime. This is because there is an evolution to the "base" language and objects - types supported... One that is often required is the c++ redistributable (for windows machines).

Also take in mind that even c# and VB have their own redistributable. The framework...

Andreas.

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)
 

Star-Dust

Expert
Licensed User
Longtime User
chompina said:
my first post.. defending Basic..

Erel, we need a tool that can export or compile to Window Mobile Phone.. using B4a or B4i i think, or B4u separate IDE... to complete B4x Suite.

thanks.
why not create a basic for PalmOs? Maybe I would call it B4PPC .. I have a deja vu
 

amykonio

Active Member
Licensed User
Longtime User
I do not understand the discussion regarding C#. Experienced C#-programmers know that C# is a modernized Microsoft version of Java.

Hi..

That was also the main thing I thought when initially reading this thread. So when we speak about c#, we do speak about the native language? Or about the framework behind (.net, mono, xamarin) etc. Because c# was built FOR .Net...

I don't see why we need a c# like syntax. Java in-line is there. We can do lot of things with it.

I am 44 years old (I know this is out of topic). I'm a licensed user for b4a for most than (i believe) 6 years. Through this time I' ve done very little with b4a... In the opposite, I've done lot of things with B4J... I can say it is one of my favorite IDE. The language is very simple, and for sure it is a RAD.

I'm working from 1998 with RAD 4GL... I do program with Powerbuilder (yes it's still there) and it's PB.NET IDE, but also with sharpdevelop and visual studio in c#.
Why I do like so much B4J? 1st of all you can deploy to win, linux & mac... With the same jar... And this works very well for win & linux (I don't have a mac to test it). 2nd, with some changes that are mainly related with the GUI you can deploy to android (again, I don't have an iphone to test that). And to recreate the gui you do have a similar designer.

If I wanted to code to c#, I simply wouldn't choose the B4X family... And believe it, I bought B4A without really testing it!
For c# you have VS... And it as a free release.

Also If the idea is to use a c# like syntax instead of the basic like syntax in B4A, I'm not sure it would be a success. As mentioned java and c# are so close... And B4X produces java... But c# main language is not only similar to java, but supports things unsupported to java (so it's let say an "improvement" (?) of java)... This should be some kind of problem. Also why to code in c# and after that to produce (behind the scenes) java? In the other hand, it has sense to translate a basic like syntax to a more powerful language like java.

Actually Powerbuilder does that do produce .net applications... It translate powerscript to c# (wich is a higher level language).

But don't know any IDE translating from a "higher" language level to a "lower" level language. Except sharpdevelop which can translate in example from c# to vb.net. But don't forget that most of your code is based there on a common framework, the .net framework.

Now, I believe B4X can be used (and should be used) to any sort of projects. My projects are mainly related to data and databases. I found that coding using B4J can be very productive, and believe me I compare that with Powerbuilder... And as many mentioned, the code can be read almost from anyone with little knowledge of programming.

Finally for me the most important isn't the name of a product (yes I know, in marketing this can be very important).
The most important is: what I want to do, what can I do, how fast can I achieve my objectives (simplicity) and finally how robust is the result... From my experience B4X is a great IDE in all those points.

Andreas.
 
Top