VB or C#?

Hi everyone, I would like to ask for your opinions on a matter regarding:

"the better language to use for auxiliary programs for arduino"

In general point of view
and not depending on a specific purpose/use of an arduino auxiliary program (so it may be either for controlling arduino / monitoring or other purposes),
which from Visual Basic and C# is better to use ?

I searched for differences between these two, but I just want to hear it from real arduino users from this forum . Thanks in advance for your responses.

c# is c++ done right. It's very clean, and very functional. VB is an abomination. It is the Edsel of programming languages. The syntax is an unholy mess, courtesy of 20+ years of constant mutation.

Regards,
Ray L.

I'm not a fan of VB, so if I have to choose between the two I guess I'd pick C#.

But really I'm going to say that it depends on the particular application. It has a lot more to do with what you want the PC end to do than it does with the fact that it is involving Arduino. Surely python and java have their place. Just about anything that can handle a serial interface is going to be applicable somewhere.

I use Processing to display, analyse and save data from sketches. Processing is close to the Arduino language and is free to download. I have used VB and would rather shoot brake cleaner in my eye than use it again, after learning C++ and Processing.

I would prefer C++ or Java, but after about 5 years of trying, I have never got either of them to talk to the serial port on the computer. So, Processing, it is.

Python.

The OP's question was to choose between VB or C#. I have experience with both, but I think the transition to C# makes more sense if you're going to be working with the Arduino and Visual Studio. At least C, C++, and C# have many similarities.

One of the nice things about Arduino is it's cross-platform support. Linux, MacOS, AND windows.
Neither VB nor C# is easily cross-platform...

which from Visual Basic and C# is better to use ?

The one you know best.

My vote would be for Python because it is cross-platform and simple.

Java is cross-platform, but not simple.

It's a while since I used Windows but I thought VB and C# were the same body dressed in different clothes.

...R

Answer is C++ for me.

Therefore C# ...

I know Python wasn't an option in the OP's OP, but I certainly enjoyed learning it and used it for serial comms in both directions with Arduino. Dead simple, and good graphics.

(The fact that I've been a fan of Monty Python since 1974 may have had a bearing on my choice though.)

The fact that I've been a fan of Monty Python since 1974 may have had a bearing on my choice though.

I was going to comment that it was a shame that there was not a programming language called Monty, but guess what ? The Design of Monty: a Programming/Scripting Language

It does not seem to have caught on though.

westfw:
One of the nice things about Arduino is it's cross-platform support. Linux, MacOS, AND windows.
Neither VB nor C# is easily cross-platform...

I agree. Any advantages C# might have over C++ will be lost when you try to run on Linux or Mac. Plus you need to pay for Windows, whereas you don't have to pay for Linux.

Years ago I wrote a MUD game client using Microsoft libraries. They certainly simplified the initial development, but today, when people are asking for Linux/Mac versions, it is basically impossible to port it. A rewrite is all I could do. I bet Microsoft aren't (isn't?) displeased about that.

I agree with Nick and westfw, go with C++ or Java and make sure you have versions for Windows/Linux/and Mac.

In todays market, if you are going to release the product, you really need a version for all three.

c# has been available for years on both Linux and Mac....

Regards,
Ray L.