When comparing Idris vs twinBASIC, the Slant community recommends twinBASIC for most people. In the question“What are the best general-purpose programming languages?” twinBASIC is ranked 12th while Idris is ranked 15th. 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 Full dependent types
Idris not only has support for type classes, but is a fully dependently typed language, giving you the full power to statically verify your code.
Pro Domain driven design and type driven development
Because of full dependent types in Idris, the programmer can focus more on modelling the domain with types and waste less time fixing common bugs that the type checker will catch. Dependent types help apply type driven development and a lot of code auto generation, making the compiler and type checker an ally in developing working software instead of just getting in the way.
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 Not widely used
Con Not widely used
Con Weaker type inference
As type inference is undecidable for dependently-typed languages, Idris cannot offer the full type inference that Haskell supports, and so more type annotations will be needed.
Con Different semantics from Haskell
Idris, while similar to Haskell, has strict semantics, which may cause some confusion if your backend is done in Haskell. If using Idris, it would make sense to do the backend in Idris as well, if not for the fact that Idris currently has fewer libraries available for web development than Haskell.
