73

RAD Basic: a 100% compatible Visual Basic 6 solution

 3 years ago
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.
neoserver,ios ssh client

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.

First commit of RAD Basic

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.

Working natively with VBP and FRM 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.

RAD Basic IDE in dark theme
RAD Basic IDE in light theme

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. project video thumbnail

It has integrated a powerful code editor with syntax highlighting, code completion, auto-capitalization. It will have some refactor operations too.

RAD Basic code editor

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:

RAD Basic Editions comparison table

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.

Roadmap of RAD Basic development

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:

First Hello World

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?

Lead developer: Carles Royan

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)!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK