RAD Basic: a 100% compatible Visual Basic 6 solution
source link: https://www.kickstarter.com/projects/koss3982/rad-basic-a-100-compatible-visual-basic-6-solution
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Story
Update - IMPORTANT INFO:
- You are a company and you CAN'T pledge via Kickstarter? Contact us!
- You need an invoice for the pledge? contact us!
To contact us, use the "ask a question" at the bottom of the project or in the FAQ section
Visual Basic was first released in 1991. The final release was version 6 in 1998. VB6 or Visual Basic Classic was known as rapid application development (RAD) because you could design your GUI very fast dragging components and with a few lines of code your application was working and useful.
In 2021 there is a lot of people developing with Visual Basic 6 and a lot of active applications built with it. And they need a real alternative because they are developing in a 20 years old tool with no new version available.
Sure, there is VB.NET, but it is another language and platform. You have to migrate your project. It is incompatible with your VB6 code base.
So, this project began. RAD Basic wants to bring a new IDE and compiler 100% compatible with "Visual Basic classic". I was working in this project as a side project in my spare time. The first commit was in December 2018.
It wants to be the true VB7 that never existed. And the compiler and runtime libraries will be open source.
Why start it i this project in 2021?
- We need a modernized IDE, Visual Basic 6 IDE is old and it don't have modern features as refactor operations.
- Visual Basic 6 Runtime (MSVBM60.DLL, OCXs, etc.) are deprecate, discontinued and with no support from Microsoft. Its necessary a new runtime with support for fixing bugs and adding new features.
- We could no stay with only 32-bit forever. RAD Basic allows create and using EXE and OCX of 64-bits.
- And Future: This campaign is for releasing 1.0 version. Further versions will be cross-platform, with enhanced language features, new libraries and co.
Features
There was developed the core and fundamental features as: Form designer, OCX support, standard controls, etc. And it works natively with VB6 files.
RAD Basic IDE is a modern environment which will be pleasant to use. You can try between UI themes, for example dark and light themes.
As a RAD environment (Rapid Application Development), it has a Form Designer which allow to edit visually all windows and dialogs of your application, as Visual Basic has.
You'll need an HTML5 capable browser to see this content.
It has integrated a powerful code editor with syntax highlighting, code completion, auto-capitalization. It will have some refactor operations too.
It supports ActiveX/COM natively and as easy and transparent as VB6 does. Below, you could view two samples: first using WebBrowser OCX and second inspecting objects loaded from OCX of the project.
Also, the compiler (rbc.exe) could be executed from command line and it will be full documented (no exotics parameterss as c2.exe included in VB6). Below, you could see a demo using rbc.exe from command line for compile a VB6 application to 64-bit.
Although the IDE and the compiler are developed in C#/.NET, the output executable are native. So, the generated exe does not need any external dependency. RAD Basic allows generate 32-bit and 64-bit executables.
More videos and info in website: https://www.radbasic.dev
64-bit support
RAD Basic reimplements this three components:
- IDE: The environment for design the forms and write the code.
- Compiler: The tool for generating the exe file, which could be distributed.
- Runtime libraries: libraries for GUI design (creating buttons, text boxes, ...), string manipulation, database access, etc.
It is very important to reimplement runtime libraries, as VB6 runtime is 32-bit only. Reimplement the runtime has two major benefits:
- You could have x86 and x64 libraries. So, you gains 64-bit support.
- You goes from "unsupported" runtime (VB6 runtime) to a new, updated and supported runtime. So, you could introduce new features, new Windows components, etc.
For generating 64-bit executables, you need to depends only from RAD Basic runtime, or from ActiveX which have 64-bit version available. If it is not possible, there is a solution: SOJO library. RAD Basic implements SOJO library which allows mixing 64-bit applications with 32-bit OCX. You could see the details in this video of SOJO presentation.
Platforms
Sure, in 2021 cross platform support is important. But Visual Basic was designed for Win32 environment (well Visual Basic 1.0-3.0 for Win16, Visual Basic 4 for Win16/Win32 and VB5/VB6 for Win32 only). And the applications developed with it assumed it will run in Windows OS. So, It's really hard a large VB project will not fail compiling for cross platform. For example, problems will arise with: third party OCXs, Win32 dll imports, hard coded path assuming windows machine (C:\WINDOWS, etc).
Former idea doesn't mean cross platform has to be avoided. In fact, the RAD Basic design has cross platform design in mind. RAD Basic future goals have to be more than compile legacy code. So, It should not be confused the efforts for the first version with the long-term goals for the following versions. But, as it is a big project, these first version efforts have to go in Win32 native code, a true VB replacement (as you see, the main idea which is repeated as a mantra).
A project developed in VB6 should be migrate for a new project type (for example "cross platform RAD Basic executable"), for ensuring there is no Windows particularity. So, for a real cross platform development, it is not only necessary to be supported in compiler/library/framework, also the user code has to be developed with cross platform in mind.
So, this campaign is for RAD Basic 1.0, which will support Windows OS (x86 and x64). And further versions beyond 1.0 will introduce cross platform (macOS, Linux).
Current status
Core features are developed and RBC (RAD Basic Compiler) could compile some small application test. It has support for basic flow structures (IF, WHILE), method calls, variable declaration and some basic math operation. The Runtime Library have some basic components and functions.
About COM/OCX: at this moment there is only support for using them, it can't compile OCX yet. But, planned to finish an initial implementation for first public alpha release in June.
Editions
RAD Basic will be in four editions: Community, Standard, Professional and Enterprise. In this table you can compare each edition for finding which is suitable for you:
Open source?
The core will be open source: compiler and core runtime libraries. Visual Basic classic community got very angry with Microsoft movement forcing transition to new incompatible Environment of .NET. So, RAD Basic wants to not repeat same error. Open sourcing the core guarantees the development will not be ceased or redirected to incompatible ways.
Why a license then?
Business model in open source is a challenging question. For RAD Basic, the business model is an hybrid business model based in Red Hat model: The core is open source, but there are "premium" features that it isn't. So, you purchase for premium features and customer support. RAD Basic is a registered mark, so forked code or recompilations has to be distributed under other name, as Red Had Enterprise Linux clones are distributed.
Having a business model is the way for getting funding for developing new versions of RAD Basic.
Roadmap: When will it be completed?
We are anxious to get it to you as early as possible but want to make sure it get it right.
How can I help in the meantime?
Beyond participating in crowdfunding campaign, there will be an important phase of testing against real applications. Backers with rewards including alpha and beta access could helping in testing and finding bugs.
Testimonials
Joseba Machado
A base de dar la paliza a Carles fuí de los primeros en probar el compilador. Aún no admite todas las características pero conseguí compilar y ejecutar un hola mundo escrito en vb6, lo cual me parece muy esperanzador. Creo que debemos apoyar esta iniciativa.
English translation:
By annoying Carles I was one of the first to test the compiler. It still doesn't support all the features but I managed to compile and run a hello world written in vb6, which I find very hopeful. I think we should support this initiative.
He kindly allows us to share his first Hello World in RAD Basic:
What is your money going toward?
All the development done until now was in my free time, as a side project. But, for publish a 1.0 release stable and 100% compatible with VB6 it is not enough. A project such big and complex like this needs full dedication. So, the crowdfunding campaign will allow me to dedicate 100% of my time developing RAD Basic and pay external expenses as iconography design or text proofreaders.
Future
RAD Basic 1.0 is not the final step, but the beginning. Further versions of RAD Basic will introduce new language enhancements, new features and cross platform. I'm convinced Visual Basic 6 could improve as language without loosing backward compatibility, as other languages did (javascript, C#, java, etc.).
And, as core will be opensource, we won't be trapped again in a dead language. It could be improved forever, as community wants to.
Stretch Goals
90.000 EUR - Internationalization
Visual Basic 6 was available in these languages: English, French, German, Italian, Japanese, Korean, Simp. Chinese and Spanish. RAD Basic will support internationalization (i18n) of strings, and if this stretch goal is achieved, the extra amount will be used for translation. RAD Basic we will available in this languages too!!
150.000 EUR - Reporting tool included
Visual Basic Classic was awesome for developing applications with database access. And this kind of applications need a good reporting tool (as Crystal Reports, Fast Report, etc.). Visual Basic 6 includes a simple yet powerful reporting tool with integrated designer in IDE. If this stretch goal is achieved, RAD Basic will have a native reporting tool too (with support x86/x64) and compatible with reports made with VB6.
????? EUR - ????
Some idea came up! Let's see how its going!
why should we believe you can deliver?
Hi! I'm Carles Royan and I'm working as Software Engineer for about 15 years.
I have a lot of experience in compilers field.
I have worked in compilers at university. Check out Degree Final Project: compiler/translator from pseudocode to Java (sorry, it's written in catalan).
And I did some work with ANTLR and hibernate (HQL parser).
Basic was my first language and Visual Basic Classic was a great discover for me: you could build great and professional looking applications with so little code!
I am a passionate person I have worked in this project for more than two years. I have solved a lot of challenge features and RAD Basic could run some small applications as you could see in videos. So, it's a matter of time and resources for take this project to completeness.
You can help revive Visual Basic Classic (VB6)!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK