When comparing C# vs twinBASIC, the Slant community recommends twinBASIC for most people. In the question“What are the best compiled programming languages?” twinBASIC is ranked 12th while C# is ranked 19th. The most important reason people chose twinBASIC is:
Any code that runs in VB6 will run in twinBASIC (once v1 is released). Code that runs in VBA will also run in twinBASIC, though you need to account for any dependencies on the host application's object model (e.g., the Excel or Access Application object).
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Versatile
.NET offers rich functionality.
Pro Visual Studio
The Visual Studio IDE offers one of the best development environments. The Community Edition and Visual Studio Code can be used for free.
Pro Forms
Can be designed visually with the Visual Studio designer for traditional Windows forms, WPF, or Web forms.
Pro 3rd Party support
Lot's of tools and libraries available.
Pro Can be used in a variety of fields
With Xamarin for Mobile (ios, android),
with .net core asp for server (linux, windows),
with .net core for desktop (windows, mac),
with mono for desktop (windows, linux),
with blazor for web client with webassembly.
However, it is not considered top for any of those categories, but it is top choice for Windows desktop with .net framework and top choice for Unity.
.net 5 will unify frameworks similar to JVM (just one).
Pro Cross-Platform
Runs on Linux, Mac, and Windows.
Pro Supported By Microsoft
Constant updates and bug fixes to many popular frameworks, as well as great first-party support from Microsoft. This can be a con as well in certain circumstances.
Pro It is a C like language
Being a C like language counts in favor for it as a general purpose programming language, given the ease of using existing skills to pick up this language easily.
There are other superior languages that could be used as a general purpose, such as: F#, Haskell, but the complexity of those languages, being functional, make them strange to the usual C Syntax.
C# is better than C whenever garbage collection, Objects, classes, data access, are needed. But C is going to be the choice when hardware access and performance are paramount.
Pro 100% Backward Compatible with VB6/VBA
Any code that runs in VB6 will run in twinBASIC (once v1 is released). Code that runs in VBA will also run in twinBASIC, though you need to account for any dependencies on the host application's object model (e.g., the Excel or Access Application object).
Pro No runtime requirement
The lack of a runtime dependency makes twinBASIC applications very lightweight and portable. Additionally, compiled executables only include necessary code from any referenced libraries. The classic "Hello, World" program compiles down to an 8 KB .exe with no external dependencies.
Pro Compile DLLs to extend VBA functionality
Can be used to extend VBA functionality by compiling standard and ActiveX DLLs in both 32 and 64bit.
Pro 64bit compilation is supported
64bit compilation is supported, as well as 32bit.
Pro At last! a replacement for VB6
At last there is a replacement for Microsoft VB6 - and for VBA too - twinBASIC programming.
Cons
Con Learning curve
For a beginner the .NET framework can be daunting, the rich functionality means that things often can be done in several ways.
Con Very large runtime
Cannot be used for embedded programming.
Con Microsoft will mess up with the Visual studio installation
And all of a sudden you'll need to reinstall the entire thing just because it stopped working.
Microsoft assumes that every workstation is connected to the Internet then it is always pushing updates.
Con .NET is a mess
Troublesome in regards to being Microsoft centric, updates, security, excessively large, cross-platform issues, etc...
Con Windows OS centric
Not very good at being a cross-platform programming language.
Con Strictly object oriented
Con Owned by Microsoft
And like always, Microsoft is to be avoided, no exceptions.
