# Other Languages > Other BASIC >  https://www.radbasic.dev/

## vbwins

Hmmm

----------


## VB6 Programming

Interesting.

It claims to have a working IDE and compiler, but feature limited at the moment.
Claims to work with existing VB6 forms without migrating.
Also claims x64 native support.

Wanting funding by Kickstarter.


https://www.radbasic.dev/blog/2019/0...ject_about.php

https://twitter.com/radbasic

----------


## qvb6

Great! Another developer wasting time on making a duplicate IDE instead of spending time on a 64-Bit compiler, and 64-Bit Runtime, but it's not my time he is wasting. I am moving to Qt for my next project.

----------


## baka

well its sounds good. hopefully it will not get abandoned.

i really wanted the vbforums community to make one instead.
open source and with the knowledge of the pro we have here.
i mean, combining the top programmers we have theres nothing that can not be made.

----------


## axisdj

> Great! Another developer wasting time on making a duplicate IDE instead of spending time on a 64-Bit compiler, and 64-Bit Runtime, but it's not my time he is wasting. I am moving to Qt for my next project.


mm why do you say that?

they claim IDE and 64bit compiler?

https://www.youtube.com/watch?v=LSc5utVMlOM

WP

----------


## qvb6

> mm why do you say that?
> 
> they claim IDE and 64bit compiler?
> 
> https://www.youtube.com/watch?v=LSc5utVMlOM
> 
> WP


It's not that I don't appreciate such efforts, but working on a replacement IDE could be the last step. The main thing I miss in VB6 IDE is adding tabs to Code windows, but I found an Add-in that just does that.

In theory, I could just use VB6 IDE, and add an extra Add-in that adds a button "Compile to 64-Bit". So duplicating the IDE is not necessary. One could even stop the normal Run/Compile clicks, and do a 64-Bit compile instead, or in addition to making 32-Bit EXE. 

VBBuildEvents are hidden events in "Microsoft Visual Basic 6.0 Extensibility". Open Object Browser(F2), right-click anywhere, then enable "Show Hidden Members", then search for "VBBuildEvents". You will find these 3 events:

BeginCompile(VBProject As VBProject)
EnterDesignMode()
EnterRunMode()

Also, when clicking on menu items or the toolbar in VB6 IDE, VB sends a message to VB main window with message ID: &H1044. wParam contains the ID of the item clicked. I could eat the message, and do a 64-Bit compile instead. Here are the ones that relates to running projects from an Add-in that I have made:


VB Code:
Public Function VB6IDEWindowProc(ByVal hwnd As Long, ByVal uMsg As Long, _    ByVal wParam As Long, ByVal lParam As Long) As Long       If hwnd = hWndVB6IDE Then        Select Case uMsg            Case &H1044: ' VB6 IDE Toolbar or menu item clicked                Select Case wParam                    Case &H31: ' Start <F5>                    Case &H32: ' Start With Full Compile <Ctrl+F5>                    Case &HE1: ' Make EXE                    Case &H30: ' Break <Ctrl+Break>                    Case &H33: ' End                    Case &H34: ' Restart <Shift+F5>                    Case &H35: ' Step Into <F8>                    Case &H36: ' Step Over <Shift+F8>                    Case &HAA: ' Step Out <Ctrl+Shift+F8>                    Case &H37: ' Run To Cursor <Ctrl+F8>                    Case Else                        VB6IDEWindowProc = CallWindowProc( _                            oldVB6IDEWindowProc, hwnd, uMsg, wParam, lParam)                        Exit Function                End Select                'VB6IDEWindowProc = 0 ' Cancel the click                VB6IDEWindowProc = CallWindowProc(oldVB6IDEWindowProc, _                    hwnd, uMsg, wParam, lParam)            Case Else                VB6IDEWindowProc = CallWindowProc(oldVB6IDEWindowProc, _                    hwnd, uMsg, wParam, lParam)        End Select    Else        VB6IDEWindowProc = CallWindowProc(oldVB6IDEWindowProc, hwnd, uMsg, _            wParam, lParam)    End IfEnd Function

What takes time is making a compiler or translator, and replicating the Runtime and the common controls, etc.

We already made replacements for the common controls, but since these call CreateWindowEx(), it means that we are stuck with Windows. If we change these to make calls to either GTK or Qt, then we are one step closer to making a true multiplatform VB7. However, I haven't checked, but I think that both these Multiplatform Toolkits use CDecl, so they may not be straight forward to use. Qt seems to support more platforms, including Android/iPhone, so it would be my first choice. These Toolkits don't just cover GUI elements(They both have their own versions of the Common Controls, like ListView/TreeView, etc.), but they also cover File I/O, Network, Threads, Multimedia, and many others.

So while someone works on Compiler/Translator, others in the community could create both Standard/Common Controls using VB6 only that makes calls to GTK/Qt framework. There is some learning curve at first, but it can be done.

Olaf efforts are more ambitious and appreciated. Both Cairo and SQLite are multiplatform, and he already made ADO to SQLite connection, so making an IDE that binds controls to SQLite by default requires more work, if wasn't done already.

So I prefer if these efforts made the Compiler/Translator first(with Add-in to run them), then finally the IDE.

Other considerations: Both the latest GTK/Qt do not support XP. However, there are older versions that do, but are not supported, I think.

Edit: Olaf mentioned that vbRichClient was written in VB6, and vb_cairo_sqlite.dll was compiled with VC2008, which requires Win2000 minimum. So Win2000 is the minimum for Olaf solution.

----------


## qvb6

Also, I am not sure if there is big market for a TrueVB7 now. Elroy posted a poll a while back asking if we use MDI/SDI, only 29 responded, so does that mean only 29 buyers? I would divide the ones who want to use a TrueVB7 into different categories:

1 - Us, the 29+.
2 - New comers who stumbled on a "Portable" version of VB6 that can run on XP and prior(New tools require Win7+). These have mostly gotten it for "free", so they are not paying, unless they have gained enough skills to need such a tool.
3 - Businesses that have VB6 code, but not VB6 developers. They would probably outsource it, or ask a VB.Net developer to make modifications.
4 - Developers who moved to .Net or other languages who want to make or port some projects.

So, in this case a good IDE is needed to make it profitable. Charging one time fee like $100 or $500 is how software dies. Developer(s) income depends on new sales, and some give up because of slowness or competition. Charging $20-$100/User/Year(Among other options, like one time fee) gives the developer(s) steady income, and insures continued development. Trying to get multiple developers/contributers might be easy, trying to pay them fairly is hard, unless they have agreed to be paid by the hour, or percentage of revenue beforehand. Or maybe it's going to be like what Shaggy Hiker said, that we would kill each other before getting it done.

----------


## DataMiser

I personally would not buy a tool if it carries a subscription fee with it. When I buy a developer tool I expect to be able to use it now and in the future.

----------


## qvb6

Perhaps one time fee and updates for one year is better?

----------


## DataMiser

> Perhaps one time fee and updates for one year is better?


 Yes, I would say so. Then again the updates would not be a stumbling point, new features could come at a cost bug fixes and security updates should be free be it 1 year or 5 years later.

----------


## wqweto

TrueVB7 cannot be a commercial effort as there is no market for such an arcane beast. This did not stop QB64 effort though, so there is still a chance someone will post a viable PoC that will gather momentum the way Linux was born.

Another option is someone to keep on working in secrecy and finally come to light with a big bang after years of ironing the multi-OS wrinkles for those pesky ActiveX EXE projects and other compatibility issues :-))

cheers,
</wqw>

----------


## axisdj

Spoke with the developer of  radBasic today, in the next couple of days he plans to release some technical details, without saying much it sounds extremely promising...

----------


## Shaggy Hiker

Promising to what end? If I understand your basic point over the years, you have a large project in VB6, and you want to protect that investment by not porting to a different language, yet you are concerned that, eventually, VB6 will cease to run. 

Are you seriously suggesting that you would port to an obscure re-write by a single person, and hang your income off that person continuing to support/maintain/improve the project that you'd then be utterly dependent on?

----------


## axisdj

good suggestion Shaggy,

I will make the suggettion that there is an opensource fallback or similar.

If its 100% vb6 compatible and actually comes to fruition I think someone big will buy it fast.

If it fails, you just go back to vb6

----------


## Elroy

Personally, I think it's someone who's probably a fair VB6 programmer, but with larceny in their heart.  They've probably been hanging around these forums for a while and developed a sense of what we'd all like to see, and then developed a shiny web-page, YouTube video, and KickStarter page ... with the hope they'll find some suckers.

The video talks about a notepad-type program that's been developed in this new IDE.  If that's true, why aren't beta versions of the IDE, along with this notepad radbasic source code available on the website?  Because they're non-existent.

I'd love the be proven wrong, but, IMHO, anyone who gives money to this is a pure sucker.   Carles Royan, if you've actually got something going, I'll gladly apologize.

Elroy

----------


## MikeSW17

> Are you seriously suggesting that you would port to an obscure re-write by a single person, and hang your income off that person continuing to support/maintain/improve the project that you'd then be utterly dependent on?


Replace 'person' with 'company' and you have a good description of *Microsoft*

----------


## axisdj

> Personally, I think it's someone who's probably a fair VB6 programmer, but with larceny in their heart.  They've probably been hanging around these forums for a while and developed a sense of what we'd all like to see, and then developed a shiny web-page, YouTube video, and KickStarter page ... with the hope they'll find some suckers.
> 
> The video talks about a notepad-type program that's been developed in this new IDE.  If that's true, why aren't beta versions of the IDE, along with this notepad radbasic source code available on the website?  Because they're non-existent.
> 
> I'd love the be proven wrong, but, IMHO, anyone who gives money to this is a pure sucker.   Carles Royan, if you've actually got something going, I'll gladly apologize.
> 
> Elroy


I anticipate an apology soon.. we shall see

----------


## DataMiser

I'll believe it when I see it. For years I have been seeing people say that there is some new so called VB7 coming out and it has not happened and very likely never will.

----------


## axisdj

> I'll believe it when I see it. For years I have been seeing people say that there is some new so called VB7 coming out and it has not happened and very likely never will.


Agreed, I have relayed this to the developer and hopefully he will take action to create trust by showing/revealing some of the details about how this works.

I have had initial communication with him, and he shared some details with me, that I ran by a few very technical people, and his approach is very feasible.

You guys know me, Im the optimist when it comes to this, As soon as more details are released I will share here.

----------


## Grant Swinger

You can count me as being unimpressed.  It would be one thing if he could demonstrate an IDE that loads a 100,000 LOC VB6 project and then builds it (because this is what he's promising).  But it's something else entirely when all he has to show is a simple project like one of my interns has made.

It's not going to happen.  It can't be done by one person.  If it could why hasn't Olaf Schmidt just cranked it out?  It's a huge undertaking that requires a lot a man-hours and no matter how skilled he might be a single developer isn't going be able to do it. Nobody who has to earn a living is going to have that kind of time.  It would would take a *full-time* team working on it.   Aiming for 100% compatibility with all the decades old VB code and over 20-year-old ActiveX controls out there just adds to the problem. 

It doesn't really matter if he's larcenous or just clueless.  He can't deliver what he's promising.  Plain and simple.

----------


## TTn

It looks fake to me.  First, the dev is using xp still, really?  Ok fine, then the demo of rad basic is on windows 8/10.   Hmmm... Then, no 64 bit demo.  Why?  No code modules are ever loaded, so we have no idea if the project really loaded correctly.  Then the vbp project icon is blank.  Why.  Then, the icon on the notepad appears to be blank?  If the prototype is real, then the demo is terrible at proving it.

----------


## qvb6

> https://www.youtube.com/watch?v=LSc5utVMlOM


At time index 55 Seconds in the video, I can see the Toolbox, with only 10 controls, and I doubt that these can be data bound. It still needs a lot of work.

----------


## axisdj

Many critics here, and I understand. But no one has ever posted such a claim and demo, and got this far in 4 months.

This will be fun to see. 

WP

----------


## Thierry69

I don't care about the editor, it is not so complicated to write a clone of the editor.

But it claims that can compile in 64 bits.
And that is the most interesting thing.
What is the used compiler ?
How the call of 32 bits APIs are translated?
What about OCX & DLL compiled in 32 bits?
What about compiling OCX, DLL etc... ?

My opinion is that this is a fake as we have already seen in the past.

----------


## axisdj

Anticipation is killing me! I am not at liberty to share, but hope soon he will release tech document on how its done.

I have asked the dev if I can screen share to see more details. this is planned for next few weeks, I will let you know what i see.

----------


## TTn

> Many critics here, and I understand. But no one has ever posted such a claim and demo, and got this far in 4 months.
> 
> This will be fun to see. 
> 
> WP


I don't know about that, I've seen heavily featured prototypes in a shorter time period.
Also, we aren't convinced he's got that far with the 64 bit yet.
There were two operating systems demonstrated, perhaps for some unknown reason.
I'd be more comfortable if the demos were on a single machine, or side by side would be ideal.

It would be nice to get vb to compile 64 bit (better yet him explain how it is done), but in my opinion 64 bits is not a deal breaker either.  There are other ways through interop.
I've dabbled with some 64 bit ideas, but nothing solid with native code yet.

----------


## Shaggy Hiker

> Replace 'person' with 'company' and you have a good description of *Microsoft*


Seriously??? You think those are even vaguely equivalent? A person can be hit by a bread truck and that's the end of the project. MS won't be hit by a bread truck. I realize that people are pissed off that MS didn't keep going with VB6, but don't let that blind you to reality. If you are programming for a living, then you are building your livelihood on a base that is not up to you. You may be targeting some kind of hardware, or some kind of development environment, but one way or another, you are building on a base that somebody else created and somebody else is maintaining. If that base is some ANSI standard (C/C++), that's great, as there might be multiple versions of it. If the base is some widely supported open source project, that's probably pretty good (though OpenOffice shows how such open source projects can be risky, even with a great start). Failing that, you might choose a base created and supported by one of the most valuable companies (MS, Apple, Google) on the hope that they will stick around and also keep supporting the platform you depend on. To hang your whole livelihood off one person and whatever they feel like doing is not even vaguely comparable in terms of risk.

----------


## axisdj

Ok, I have permission from radBasic dev to post what he has explained to me. He will post new videos to more clearly show functionality, but I will post excerpts from our conversation to give more information now.




> "The new IDE and compiler are developed in .net sing C#. This was a critical decision. These two things made me decide: productivity in UI development (IDE) and integration with ANTLR. About the last: I used ANTLR for constructing the grammar and do the parser for the compiler. And ANTLR outputs to c#, so this was the way to go."
> 
> "About the compiler: developing a new compiler with all the parts would be a suicide. So, the developed compiler (rbc  RAD Basic Compiler) is a frontend parser whom translate to c source code. Then this c source code is compiled to native with LLVM C Compiler. In fact, VB 6 works in a similar way when it compiles to native code. Similarly to VB6, there is a library (RB Forms) for managing the forms and Windows Controls, and the compiler used it while it is generating de code."
> 
> "So, the development tools are in C#, but the exe generated are native. And as the compiler is written from the scratch, there are new features introduced, as 64 bit executable or Common Controls 6. There wont be any new features at language level at this time."
> 
> "Lastly, about cross platform, yes there are some plans. But, the initial version has the objective to get a 100% native replacement to VB6. So, it is limited to Windows development. And VB6 projects were very Windows centric, with winapi imports and so on. But RAD Basic thought as is would have a very limited life. So, following versions will introduce new project types for developing into other platforms (macOS, Linux, Android, etc.). But the cross platform idea is out of the kickstarter campaign, because 100% compatible solution for VB6 development is enough effort."
> 
> "About kickstarter campaign: I was working alone on this project in partial time for four months. The idea with the kickstarter campaign is I could work in full time in this project. Depending of the fundraising result, 1 or 2 developers could join into this project too. It would be a great help if you consider collaborate into the promotion of this project."
> ...

----------


## yereverluvinuncleber

I'd put some money into a kickstarter for this. The VB6 community needs an injection of positivity and these sorts of projects are probably the only way the VB6 community can thrive. VB6 was never FOSS and if a small team can be created and the end result is a tool we can fund by a kickstarter/payment then I'm all for it. I suppose the final cost is the issue and what the kickstarter proposals are with regard to the development schedule and the level of donations required.

The chap has shown something that appears to be working, perhaps a partly working demo tool, a binary could be created that shows the concept in a limited fashion and that might prove to the suspicious that the chap is capable.

----------


## TTn

VBA 6 version 6.1+ were open for trial, test, and evaluation, and they can be distributed by developers that obtained a license.  So the language (versions 6's) has never been on full lock down as suggested.  My NDA ended in 2016 after 12 years.  We no longer have to report royalties or make payments etc.

I don't think the term "suspicious" is appropriate, when we are being "realistic".  It is very bold to claim 100% compatibility.  It is not likely, almost certainly not possible, at least from my perspective.  That doesn't mean that 9x% is not acceptable.  Although, how much money will be spent as the dev finally realizes he can't finish 100%?

BTW, I looked into his references and it appears possible with Clang, but it reminds me of the old VS6 solution to 64 bit with that old 2003 SDK.  If you convert your code to C/C++ then you can compile in 64 bit.  If he really is that good then proper credit will be awarded when I see more.  Provided that I see some more proof points, I'd be willing to humbly collaborate, for free.

----------


## yereverluvinuncleber

That attitude is commendable. I'd hope he takes up your offer, I'd reach out to him if I were you.

The trouble on these kickstarter projects is that the one-man nature of the show really extends to the design and building of the whole thing. He may say he wants help but letting-go is another thing. I think that perhaps it might be the time when more than one VB6 solution starts to come to fruition. 

There might be room for both solutions, your own proposal and RADBasic? You could think of it as the existence of one proving the need for the other - just in case. Competition is always good.

----------


## TTn

> That attitude is commendable. I'd hope he takes up your offer, I'd reach out to him if I were you.
> 
> The trouble on these kickstarter projects is that the one-man nature of the show really extends to the design and building of the whole thing. He may say he wants help but letting-go is another thing. I think that perhaps it might be the time when more than one VB6 solution starts to come to fruition. 
> 
> There might be room for both solutions, your own proposal and RADBasic? You could think of it as the existence of one proving the need for the other - just in case. Competition is always good.


I think he may have been the one reaching out to me last month, asking for the source code.  It would be a couple years before his code editor (100%) can be produced from scratch, so the 64 bit compile is the only thing of interest that could be combined collaboratively in the near future.  I can always offer advise to issues as he develops the IDE feature set.

I have found over the years, that a 1-3 person team is powerful since there is less overhead in communicating with each other.  Very quickly this chatting can take up a significant part of the development time allotted.  The chatting is needed of course to make sure everyone is on the same page, but it has inherent disadvantages.  Some concepts take a lot of talking, but sometimes it may end up that devs are still not on the same page, thinking that they understand each other fully.  All nodding their heads at each other.

As for competition, I would embrace that too.  I feel relatively unchallenged lately, although the project has been eating at my free time.

----------


## Thierry69

I think that if the compiler to 64 bits is working, the Editor could be written in collaboration with several here.
There is a high level of knowledge.
And I could even participate in writing a new editor.

----------


## TTn

> I think that if the compiler to 64 bits is working, the Editor could be written in collaboration with several here.
> There is a high level of knowledge.
> And I could even participate in writing a new editor.


I have some doubts about how cohesive that knowledge can be stitched together.  In theory maybe, but in practice I see it collapsing with off-topic bickering and "as always" whining.

----------


## Elroy

Personally, I'd be impressed if they provided enough so that we could paste the following code into an IDE, compile it as an x64 executable, and then see it successfully execute.  And I don't want to see a hocus-pocus video of them doing it.



```

Option Explicit

Sub Main()
    MsgBox "Hello World!"
End Sub


```


If they have anything up and running, that would seem to be a relatively trivial task.  No forms to deal with, no classes to instantiate, no test of the robustness of any code editor ... just compile and execute the simplest of programs.

The fact that we've been provided with nothing but glossy web-pages and YouTube videos is highly suspect.  This is all vaporware in the extreme.

----------


## TTn

> ...that would seem to be a relatively trivial task...


 Plus one.

----------


## yereverluvinuncleber

I'd be willing to assist with proof-reading, I think he needs a little help there.

There was a chap here who came up with something that looked very like the VB6 IDE but his early offering was disdained and he disappeared soon after.

I feel the the thing to be is positive toward the person offering but optimistically cautious at what can actually be delivered. TTn, you seem to be further down the route than most so you may have a more realistic perspective. I always hoped Mr. Schmidt might come up with something. It has always felt about time that a VB-like product came about. Maybe that time is arriving.

----------


## TTn

> ...I feel the the thing to be is positive toward the person offering but optimistically cautious at what can actually be delivered... ...you may have a more realistic perspective.


Ya that's true, it was your politeness that re-spurred me out of a personal slump unrelated to programming.  To be clear, I encourage any verifiable efforts in this thread.  I wan't suspicious of malicious intent, just worried that maybe he was being over zealous, or perhaps over-confident.  We all know that the last few percent of a big project takes the longest to develop.  Right?

----------


## yereverluvinuncleber

> We all know that the last few percent of a big project takes the longest to develop.  Right?


Why is that? I have been trying to finish one of my small tools for weeks now...

----------


## Wolfgang Enzinger

> Why is that? I have been trying to finish one of my small tools for weeks now...


Well, the actual idea is mostly something very compact, but then, there are those cumersome details ... and there are lots of them usually.  :Big Grin: 

Wolfgang

----------


## wqweto

> Personally, I'd be impressed if they provided enough so that we could paste the following code into an IDE, compile it as an x64 executable, and then see it successfully execute.  And I don't want to see a hocus-pocus video of them doing it.
> 
> 
> 
> ```
> 
> Option Explicit
> 
> Sub Main()
> ...


How many real compilers for any language have you seen in these forums? Something written in VB6 that can produce working standalone .exe files for instance?

I've seen a lot of IDE, a lot of YouTube and a lot of vapor in the meantime. . .

cheers,
</wqw>

----------


## axisdj

So just a question, how many solutions used his method:

Use ANTLR to create a AST 
Use AST tree to compile using LLVM

Not sure he used all references below but I think no one ELse has taken this appraoch. Doing it this way drastically reduces effort because he is using tools already out there, therby saving tons of time and effort:

https://www.antlr.org/
http://llvm.org/docs/LangRef.html
https://github.com/antlr/grammars-v4...isualBasic6.g4
https://github.com/antlr/grammars-v4/tree/master/vb6

Who Has tried it this way?

Anxiously waiting the reply!

----------


## TTn

> So just a question, how many solutions used his method:
> Use ANTLR to create a AST 
> Use AST tree to compile using LLVM
> Who Has tried it this way?


I haven't seen anyone go this route specifically.
Is ANTLR easy to use?  I got lost in the documentation pretty quickly.  It must of taken some time to harness that.  
How old is the developer of RADB?

----------


## wqweto

> So just a question, how many solutions used his method:
> 
> Use ANTLR to create a AST 
> Use AST tree to compile using LLVM
> 
> Not sure he used all references below but I think no one ELse has taken this appraoch. Doing it this way drastically reduces effort because he is using tools already out there, therby saving tons of time and effort:
> 
> https://www.antlr.org/
> http://llvm.org/docs/LangRef.html
> ...


QB64 is self-hosted. Rust is self-hosted. Zig is self-hosted. Self-hosting is the gold standard a language has to reach to be accepted seriously. You have to be able to compile yourself and the compiled version has to produce verbatim compilation (second generation) of yourself.

The only way to achieve self-hosting in this case is to start w/ ANTLR and later come up with custom written parser and leave LLVM as an external dependancy. This seems like a viable route, provided that rubberduck-vba project poured tremendous efforts to weed out bugs in the VBA grammar that they started w/ from original ANTLR repo and they push fixes upstream as far as I remember. They are using C# too.

Translating AST you get from ANTLR to LLVM codegen is a lot of effort on it's own. You have to implement the ultimate COM client that VB6 is, and come up with ways to generate COM interfaces, coclasses, IDispatches and typelibs for those ActiveX DLL/OCX projects. This is a lot of research in LLVM IR w/ a lot of follow up questions on the llvm's dev mailing list. Linking and static/dynamic run-times are also a PITA.

To be a sole maintainer of such a project you have to be either very young and clueless or have a support team of 2-3 friends that can keep your interest when your will dwindles after long months of minimal progress.

cheers,
</wqw>

----------


## radBasicHost

> QB64 is self-hosted. Rust is self-hosted. Zig is self-hosted. Self-hosting is the gold standard a language has to reach to be accepted seriously. You have to be able to compile yourself and the compiled version has to produce verbatim compilation (second generation) of yourself.
> 
> The only way to achieve self-hosting in this case is to start w/ ANTLR and later come up with custom written parser and leave LLVM as an external dependancy. This seems like a viable route, provided that rubberduck-vba project poured tremendous efforts to weed out bugs in the VBA grammar that they started w/ from original ANTLR repo and they push fixes upstream as far as I remember. They are using C# too.
> 
> Translating AST you get from ANTLR to LLVM codegen is a lot of effort on it's own. You have to implement the ultimate COM client that VB6 is, and come up with ways to generate COM interfaces, coclasses, IDispatches and typelibs for those ActiveX DLL/OCX projects. This is a lot of research in LLVM IR w/ a lot of follow up questions on the llvm's dev mailing list. Linking and static/dynamic run-times are also a PITA.
> 
> To be a sole maintainer of such a project you have to be either very young and clueless or have a support team of 2-3 friends that can keep your interest when your will dwindles after long months of minimal progress.
> 
> cheers,
> </wqw>


Hi!

I'm the lead developer of RAD Basic.

There were a lot of comments. I try to summarize all in this answer (some of them will be in a new FAQ section to the webpage):

1. No, it is not a fake. You could argue if it is possible, how could it be done, etc. But it is a serious project, no vaporware.

2. It is a project with a minimal implementation. Sure, if it tries to compile a VB project of 60000 LOC, it will fail miserabily.

3. Question: So, if it is a minimal implementation, how you could say it is (or will be) 100% compatible? Asnwer: The current implementation is not about MVP (minimum viable product). It can't do mathematical operations! The implementation is about the challenges: COM / ActiveX support, reimplement MSVBVM60.dll and COMCTL32.ocx, etc. So, if this it could be solved, the rest is like any other compiler.

4. wqweto is right: translating AST to LLVM IR is hard, very hard. So this isn't the current approach, I dismissed after some tries. The current approach is ANTLR/AST representation to C language. And Then compile the C output with LLVM C compiler (CLANG). About this, the devlopment of new features goes by:
4.1 Write the smallest VB6 program with this feature.
4.2 Write The smallest C program with same feature. It have to mimic VB6 at 100%.
4.3 Extract the relevant parts of C program into compiler and/or RB Forms Library.

5. Question: Why this C approach? Answer: First, because it was the Vb6 approach for native code (not P-CODE). Second, As said, it is easier than LLVM IR.

6. Language/compiler don't need to be self hosted. Self hosting the language is a good thing because you demostrates to the wolrd that it's useful and powerful. But keep in mind the original, VB6 from Microsoft, it ins't self hosted. Javascript neither is. The main implementations are c/c++ bases, as Java JRE. (library and classes are in java, but not the compiler and core runtime).

Thanks very much for your feedback. I hope we could continue share ideas.

Cheers!

----------


## Schmidt

> 1. No, it is not a fake ... it is a serious project, no vaporware.


I don't doubt, that your intentions are serious...
What I doubt is, that you are fully aware, what you're "getting into"...

As for "fake or not fake" - there's a very simple way, to prove your technical competence:
Release at least the executables for your compiler (or IDE/Compiler combination, in case it is integrated like VB6.exe),
so that others can take a look where you stand...

If you don't do that - then "more glossy ads, mockups, and videos" will not help 
(neither with your fund-raising, nor with the overall-progress of your project).

Again, your competence is, what "potential investors out of the VB6-community" want to be sure about.
From what you write further below, I'm (personally) not sure, that you can go this way succesfully to the end, 
because you seem to underestimate a whole lot of things... and/or approach them in the wrong way...




> 2. It is a project with a minimal implementation. Sure, if it tries to compile a VB project of 60000 LOC, it will fail miserabily.


So, what's the open points, you've identified, which make it "fail miserably" on a midsized VB6-project?
Can you list "things which work already" - and "things which are still to be implemented" to make it work "100%"?




> 3. Question: So, if it is a minimal implementation, how you could say it is (or will be) 100% compatible? 
> Asnwer: The current implementation is not about MVP (minimum viable product). It can't do mathematical operations! The implementation is about the challenges: COM / ActiveX support, reimplement MSVBVM60.dll and COMCTL32.ocx, etc. So, if this it could be solved, the rest is like any other compiler.


Ok, so you're talking about COM basically (as the first hurdle to solve - or judging from your video, apparently "already solved to some extent").
1. what is your plan (or current implementation), regarding (VB6-compatible) COM-Classes? How do you build them?
2. what is your plan (or current implementation), regarding (VB6-compatible) UserControls? How do you build them?
3. what is your plan (or current implementation), regarding (VB6-compatible) COM-Events (for both of the above: *.cls and *.ctl modules)?  

As for your: "the rest is like any other compiler":
4. do you have experience already, writing such a "simpler one" (if yes, is there a code-repo somewhere)?
5. what is your plan about VB6-UDTs - and their "auto-serializing/deserializing-feature" to and from Files?
6. what is your plan about (V)BStrings and VB-SafeArrays (Redim, Redim Preserve)?

I'd suggest, that you try to answer all of the above questions in a way, that (even if you have not implemented anything from 1. to 6.) 
will ensure us, that you at least "know what you're talking about".




> 4. wqweto is right: translating AST to LLVM IR is hard, very hard. So this isn't the current approach, I dismissed after some tries. The current approach is ANTLR/AST representation to C language. And Then compile the C output with LLVM C compiler (CLANG). About this, the devlopment of new features goes by:
> 4.1 Write the smallest VB6 program with this feature.
> 4.2 Write The smallest C program with same feature. It have to mimic VB6 at 100%.
> 4.3 Extract the relevant parts of C program into compiler and/or RB Forms Library.


I have to say, that the block you wrote above - is the one, which raises the most "alarm-bells" on my end...

Because it seems like you approach the whole problem in a "non-methodical fashion" (seeing "what sticks", when you throw it at a wall - then repeating - "until everything remains sticking").
If that is the case, then your project will fail after some time.

What's needed for 100% compatibility with VB6, is basically my points 1-6 above.
You *need* to produce 100% compatible COM-Class-instances (COM-Dlls) - including their Events - and you need to produce 100% compatible UserControls (in case you planning to compile to OCXes).
If that is given (100% COM-compatibility to UserControls and most importantly Classes), you don't need to "fiddle around" with the CommonControls-API yourself - 
just recompile (with your new compiler) the existing VB6-sources which implement this functionality already (as e.g. Krools CommonControl-Replament-Project does).




> 6. Language/compiler don't need to be self hosted. Self hosting the language is a good thing because you demostrates to the wolrd that it's useful and powerful. But keep in mind the original, VB6 from Microsoft, it ins't self hosted. Javascript neither is. The main implementations are c/c++ bases, as Java JRE. (library and classes are in java, but not the compiler and core runtime).


They don't need to be, but compilers (Compiler-IDEs) which can compile themselves have advantages.
In that regard, I also don't understand, why you were choosing C# as the language you're implementing the Compiler and IDE with.

That does not make any sense to me, for the following reasons:
- VB6 is still more "raddish" than C# (you'd save time with it, writing all the new stuff)
- When VB6 would have been choosen - and your new compiler ends up being "100% compatible" - the selfhosting of new IDE and compiler would have been accomplished automatically

You asked for comments, and I hope I gave you enough of them.
Please keep in mind, that these are all technical ones - there's absolutely nothing personal about them all...

HTH

Olaf

----------


## wqweto

> . . . translating AST to LLVM IR is hard, very hard. So this isn't the current approach, I dismissed after some tries. The current approach is ANTLR/AST representation to C language. And Then compile the C output with LLVM C compiler (CLANG).


I'm not sure translating to C will be easier, Olaf is proponent of this approach while I prefer to keep codegen within LLVM API w/o strings floating around so much (if possible).

Wish you best of luck and do keep us posted!

cheers,
</wqw>

----------


## vbrad

Good luck RB, looking forward to hearing of positive developments!

----------


## axisdj

Hello Everyone,

It appears there is enough talent on this forum to get this done. I think each person giving suggestions adds to the big picture.

Here is the issue, each of the GURUs here stand firm on their approach for obvious reasons, but can you imagine if all of you worked together, each making some compromise, I think this is the best case scenario which would lead to a vb6 replacement.

Each GURU has in depth knowledge of how to solve this issue, I wonder if a virtual round table meeting via audio or video conferencing could achieve a good result where all parties involved could work together.

I see it where small tests could be agreed on for each step of the way to determine the best path forward for each segment of this project.

If all/anyone is up for it, lets set up a virtual meeting, just to see what happens.

My 2 cents.

----------


## radBasicHost

Hi Olaf,

A lot of ideas here. Let me share my point of view:




> I don't doubt, that your intentions are serious...
> What I doubt is, that you are fully aware, what you're "getting into"...
> 
> As for "fake or not fake" - there's a very simple way, to prove your technical competence:
> Release at least the executables for your compiler (or IDE/Compiler combination, in case it is integrated like VB6.exe),
> so that others can take a look where you stand...
> 
> If you don't do that - then "more glossy ads, mockups, and videos" will not help 
> (neither with your fund-raising, nor with the overall-progress of your project).


Well, it's your point of view. A lot of people pre-order videogames which only share videos, and some only cinematics, not playable levels.
But, sure release executable will be fine. But it's dangerous. It has to be tested very well. What about it didn't run because you don't have .Net version required? What about it fails compile because a bug? In fact, yesterday, while I was preparing a new video it failed to compile a VB project with a form containing two textbox, two labels and a button. That was because a bug that I fixed quickly. But people could think: "Uuh! It fails to compile such a simple project. It's vaporware, I've already said it!"

Developers have to be careful releasing "Work In Progress" versions. It could have a negative impact. I have to calibrate all scenarios, as you know. Maybe, we could go with a demo in real time in youtube, for skeptics (just ideas).




> Again, your competence is, what "potential investors out of the VB6-community" want to be sure about.
> From what you write further below, I'm (personally) not sure, that you can go this way succesfully to the end, 
> because you seem to underestimate a whole lot of things... and/or approach them in the wrong way...
> 
> 
> So, what's the open points, you've identified, which make it "fail miserably" on a midsized VB6-project?
> Can you list "things which work already" - and "things which are still to be implemented" to make it work "100%"?


Sure, it's a prototype, not a final product. Not a MVP product. The VB grammar is simple, a lot of statements are not implemented, not strings function and so on. I'm implemented the challenging parts, so I can trust I can go for it and it will be successfully.




> Ok, so you're talking about COM basically (as the first hurdle to solve - or judging from your video, apparently "already solved to some extent").
> 1. what is your plan (or current implementation), regarding (VB6-compatible) COM-Classes? How do you build them?
> 2. what is your plan (or current implementation), regarding (VB6-compatible) UserControls? How do you build them?
> 3. what is your plan (or current implementation), regarding (VB6-compatible) COM-Events (for both of the above: *.cls and *.ctl modules)?


About this three: COM-Classes are written in C. In fact, a lot of OCX used in VB6 were written in C. I'm translate the code to C. I'm working in C. So, no problem about it. UserControls, CLS, CTL, just write C code. The idea is: all that you do in VB6, could be done in C, so write automatically in C and compile it with CLANG (LLVM).




> As for your: "the rest is like any other compiler":
> 4. do you have experience already, writing such a "simpler one" (if yes, is there a code-repo somewhere)?


Yes, I have. But I have no repo. Sorry. I don't like share personal information. But hey! For the trust of the community: At university my final project degree was about a compiler (translator) of pseudo-code to java. It's in catalan (similar to spanish). You could check out:http://dugi.udg.edu/item/http:@@@@hd...@@2072@@201003

A compiler could be split to: 

1. frontend (compiler language to IR/IL)

2. optimizer (working in IR/IL domain) 

3. backend (write machine code from IR/IL)

This project is about constructing a frontend. IR/IL will be the C code. The optimizer and backend goes to LLVM. And the generated frontend will use support libraries for Win32 controls, strings management, etc.




> 5. what is your plan about VB6-UDTs - and their "auto-serializing/deserializing-feature" to and from Files?
> 6. what is your plan about (V)BStrings and VB-SafeArrays (Redim, Redim Preserve)?


Sincerely, I didn't think about it yet. If the funding goes well and the project go further, this will be thought and sorted out. For example, redim and redim preserve could be implemented with some functions in plain C with dynamic memory, copy of arrays, etc.




> I'd suggest, that you try to answer all of the above questions in a way, that (even if you have not implemented anything from 1. to 6.) 
> will ensure us, that you at least "know what you're talking about".


Sure, I answered honestly all of this.




> I have to say, that the block you wrote above - is the one, which raises the most "alarm-bells" on my end...
> 
> Because it seems like you approach the whole problem in a "non-methodical fashion" (seeing "what sticks", when you throw it at a wall - then repeating - "until everything remains sticking").
> If that is the case, then your project will fail after some time.
> 
> What's needed for 100% compatibility with VB6, is basically my points 1-6 above.
> You *need* to produce 100% compatible COM-Class-instances (COM-Dlls) - including their Events - and you need to produce 100% compatible UserControls (in case you planning to compile to OCXes).
> If that is given (100% COM-compatibility to UserControls and most importantly Classes), you don't need to "fiddle around" with the CommonControls-API yourself - 
> just recompile (with your new compiler) the existing VB6-sources which implement this functionality already (as e.g. Krools CommonControl-Replament-Project does).


Hey, I think I explained bad. Sure, there is a methodical fashion. There is a compiler and a grammar. But the idea is to mimic 100% VB6. So, I just test separately the part, and then integrate it into the compiler in a very methodical way. It's not just throw C code over and over. Oh my GOD!




> They don't need to be, but compilers (Compiler-IDEs) which can compile themselves have advantages.
> In that regard, I also don't understand, why you were choosing C# as the language you're implementing the Compiler and IDE with.
> 
> That does not make any sense to me, for the following reasons:
> - VB6 is still more "raddish" than C# (you'd save time with it, writing all the new stuff)
> - When VB6 would have been choosen - and your new compiler ends up being "100% compatible" - the selfhosting of new IDE and compiler would have been accomplished automatically


VB6 only could save me time in the IDE. But the IDE is the small part. The really important part is the compiler. And I chose ANTLR for lexical and syntactic parser.  It could output to some languages, but not VB6. So, C# for the compiler (it could be java too), and the IDE goes to C# to remains to same language. But in this project the IDE is the small part. Maybe the VB6 will be more powerful than RAD Basic 1.0. In fact, you could develop in VB6 IDE and compile with RB Compiler. The effort is in compiler and libraries, not the IDE.

If I went to VB6, I have to write the tokenizer part and the state graph for the grammar (syntactic parser) by hand. Sure, it could be done, but I disagree with you. VB6 for the compiler part was the unproductive way. It's a shame, but it's the reality. And Microsoft wrote the VB6 compiler in C, not in VB6.




> You asked for comments, and I hope I gave you enough of them.
> Please keep in mind, that these are all technical ones - there's absolutely nothing personal about them all...


Sure, there are technical ones, but some personal too, no (about my knowledge)?  :Wink:  No problem about it.

Cheers!

Carles Royan

PD: I'm not native English. Please excuse linguistic errors in a such large text  :Wink:

----------


## Schmidt

> Well, it's your point of view. A lot of people pre-order videogames which only share videos, and some only cinematics, not playable levels.


I guess in those cases (of vid-games) - the authors were already known in the gaming-community 
(less of a need to "prove your competence", when you can point out "prior art, attached to your name").

In case of a new programming-language + large needed runtime-libs + a lot of GUI-related-stuff,
 people will (rightly) expect that you prove your competence in (all) these areas beforehand (IMO).

And since we talk about VB6 here - one more requirement is necessary: -> "large experience with COM and existing COM-interfaces",
 it's especially that latter part, I have my doubts about (judging from, how you answered my earlier questions 1..to..3).




> But, sure release executable will be fine. But it's dangerous. It has to be tested very well.
> What about it didn't run because you don't have .Net version required? What about it fails compile because a bug?


Just point out "the right .NET-version" - and I'm sure many of the more experienced devs here will have no problem running your demo.
The goal of the whole exercise not being "bug-hunting" - but instead: "Will it do, exactly as shown in your videos?" - 
because that would already "rule out mockups, which faked the compilation-process".




> In fact, yesterday, while I was preparing a new video it failed to compile a VB project with a form containing two textbox, two labels and a button. 
> That was because a bug that I fixed quickly...


Now, that you've fixed the bug - and your compiler is producing C-Code - can you zip-up and post this generated C-Code here and now?
Should be easy enough for you (we'd also not have to bother with executables or .NET-runtimes)...
Just let the devs here take a look at your generated C-Code - can you do that at least?




> About this three: COM-Classes are written in C. In fact, a lot of OCX used in VB6 were written in C. 
> I'm translate the code to C. I'm working in C. So, no problem about it.


Great, then there should be no problem, posting the C-Code you've produced for your above:
 "two textbox, two labels and a button" example...




> ... I have no repo. Sorry. I don't like share personal information.


As said, just zipping up the produced C-Code from your last example above, would be enough (at least for me).





> You could check out:http://dugi.udg.edu/item/http:@@@@hd...@@2072@@201003


Ok, so that proves - that you at least know how to use ANTLR in conjunction with a high-level objectoriented language (Java), translating your own "toy-language".
Well, it's harder when you're trying to translate from a "NonToy-HighLevel-ObjectOriented language" (VB6) to a procedurale one (C).

What you wrote in the remaining paragraphs does not convince me at all, that you're fully aware, what you're getting yourself into.
You posting the zipped up C-Code (for the little Demo you've mentioned above) - would go a long way, to clear up doubts and concerns about that...

Olaf

----------


## Schmidt

> It appears there is enough talent on this forum to get this done.


As I see it, there's only 3 people in this forum, who have the skills to approach the problem.
And only two of them have (more or less) declared, that they are actively working on a new compiler/IDE.
That'd be Vlad (wqweto) and me...
 (..."the trick" is the 3rd one I'd consider capable enough, but he never mentioned explicitely what his plans are - regarding compiler-development).




> I wonder if a virtual round table meeting via audio or video conferencing could achieve a good result where all parties involved could work together.


Not sure, how a "virtual round table" could help... IMO this forum here should be entirely sufficient, to clear things up fast...

My position is this (only mentioning the most important "base-points" - I'm sure there's many more detail-points at lower levels, where more disagreement would ensue):
1. C-emitting has several advantages over LLVM-usage (which I've nevertheless experimented with, but ruled out about 5 years ago)
*2. already the first release has to work in a platform-independent manner*
3. and that involves incorporating a platform-indepently designed, stable and well-tested "new Class-Runtime" already in the development-phase of new IDE and compiler
4. point 2. also requires a COM-implementation which will work not only on Windows, but on other platforms as well 
... (basically "a built-in regfree mode" has to be ensured from the get go, as well as a platform-independent way for "reflection", to parse out Dll-contained "COM-types").
5. Development of new IDE and compiler should be in VB6

In my opinion, Point 5 of the above list - is the only one where agreement exists between us (I've included it only for completeness).

All other points (1..to..4) above are "fixed ones", which I will not "back off from" (because they are fundamental).

Knowing how "the minds of developers work" (especially those of the skilled ones), I'm quite sure that Vlad will also not back-off from "his own plans" -
IMO he is long aware of my above points - and never indicated anything with regards to "switching over" to "my way of approaching the problem".

I guess, it was "unspoken, but clear" between the two of us implicitely (never having exchanged any Emails), just by reading each other forum-posts - 
so a "round table" was never really needed.

HTH

Olaf

----------


## TTn

> As I see it, there's only 3 people in this forum, who have the skills to approach the problem.
> And only two of them have (more or less) declared, that they are actively working on a new compiler/IDE.
> That'd be Vlad (wqweto) and *me*...
>  (..."the trick" is the 3rd one I'd consider capable enough, but he never mentioned explicitely what his plans are - regarding compiler-development).
> Olaf


I'd be careful of listening to Olaf and his estimates on how things should work.




> When the new compiler (and new IDE-env.) is in a shape, that it can produce Binaries from at least
> VB6  *.cls and *.bas Modules, then the vbRichClient-Dll itself will be recompilable, and also the new
> IDE-Environment with the new Compiler will be recompilable with this first (VB6-generated) Compiler.
> The timeframe until "we" (I hope the community will not leave me alone with that) will achieve this 
> final self-hosting state, will be (*realistically* seen) another *1.5-2 years* or so.
> 
> Olaf Schmidt, April 2013


In my opinion, Olaf is not qualified to make an accurate time line.  As far as we know, Olaf's project plan has been abandoned due to a failure to understand what it takes to build a new IDE/compiler.

----------


## Schmidt

> I'd be careful of listening to Olaf and his estimates on how things should work.


Simple question to you - why do you think "a not met timeline" has anything to do with "the how" (of approaching things)?




> In my opinion, Olaf is not qualified to make an accurate time line.


That might be true - but then - this is true for every developer who plans for "ambitous, complex implementations"
(not holding timelines is the norm - not the exception - especially with huge projects like this).




> As far as we know, Olaf's project plan has been abandoned due to a failure to understand what it takes to build a new IDE/compiler.


I'd think this is a "low blow" - and that even wqweto (despite our different views on things) would disagree with you on this part.

Besides, if you look at what you've quoted from me - especially this part:
"I hope the community will not leave me alone with that"...

Then you already have your explanation for the "timeline-issue" 
(because that's exactly what happened and what continues to happen, 
most members of the community not understanding, why my points 1-5 are necessary).

The other reason is (I've explained that already a few times), that I'm not self-employed anymore, 
but work "a normal job" since 2014 (which leaves *significantly* less time for the project).

Olaf

----------


## TTn

> Simple question to you - why do you think "a not met timeline" has anything to do with "the how" (of approaching things)?
> 
> 
> That might be true - but then - this is true for every developer who plans for "ambitous, complex implementations"
> (not holding timelines is the norm - not the exception - especially with huge projects like this).
> 
> 
> I'd think this is a "low blow" - and that even wqweto (despite our different views on things) would disagree with you on this part.
> 
> ...


An "*unrealistic*" time line is not the way to approach the problem.  You failed to deliver, and IMO will never complete your project.  You didn't just miss the time line, you've tripled it at this point, including time before the job.  You can't blame anyone else for this, so stop trying.  It's good that you admit underestimating the time, and hopefully you can teach others from your mistakes.  If you are going to dish it out, you must be able to take the same critique.

----------


## Schmidt

> An "*unrealistic*" time line is not the way to approach the problem.


Then you're even less experienced than I thought you'd be...
(because: if you're not taking an "optimistic stance" with the timeline, then you'll never start larger projects in the first place).

See, the *realistic* expected Timeline would be the time the original team 
(of roughly 10 skilled people at Microsoft) was needing until VB6 was born:
- about 10 people times 3-4 years working full-time on it (including finishing the versions which came before - mainly VB4 and VB5)
- so that makes the realistic time-span 30-40 man-years

I knew that above "realistic timespan" beforehand (when I started with this stuff, roughly 10 years ago) -
but I was counting on "RAD-effects" from developing it in VB6 - and was (had to be) optimistic.

Looking back - so far, I've invested about 3-4 man-years into the project within the last 10 years 
(working only "On/Off" - and not entirely "full-time" on it).
And yes, I'm aware that it will take at least "another man-year or three" until things are finished,
which will make it "4-7 man-years total" when it's done...

So, in the end - using VB6 to develop it, will have "payed off" - because the needed man-years were less than the original team had to invest.

As for "dishing out" - I was (so far) only pointing out "technical problems only" 
(asking the "new kid on the block", to "show stuff" which convinces me and others, that he's aware of the problems).

Your line of "argumentation" is not based on any "technical points" at all so far (regarding compiler and IDE-development)
It's purely personal, without any back-up behind your insults.

Olaf

----------


## wqweto

Let me quote a post of mine from 1 year ago on the same topic:




> My point is that vNext is going to be a one-man show, two max. Just lowering expections of anyone reading such threads that community here is miraculously going to form a team of experts/hobbyists that are going to first plan, then implement. . . anything.
> 
> vNext might come up next month w/ a post on vbforums in Linus style: "Hey guys, here is something I've been workng lately. Enjoy!" or equaly possible this is not goint to happen in the next 10 years.
> 
> Here is my predictions how it's possible to happen: someone will compile LLVM w/ stdcall conventions, make VB6 wrappers and port kaleidoscope toy-language compiler in VB6. Then he or someone else will write a basic VB6-toy-language compiler. Then he or someone else will tweak it to use LLVM's interpreter for edit&continue. Then he or someone else will implement language services on top of symbol-tables and hook VSCode IDE. Then he or someone else will undertake VB6 Forms subsystem as a completely separate (dependent) project. Then Olaf will try to port RC5 (for Windows only) as a separate project. Then he or someone else will implement Win/COM compatibility layer for Linux as a separate project, etc.


The actual progress so far is probably closer to the 10 years estimate (LOL) but nevertheless I'm working on the VBScript cloning as a PoC for "VB6-toy-language compiler" and COM is hard. It's precisely because I couldn't use ANTLR for parser generator (no VB6 target) that I had to implement a PEG parser generator for VB6 which I'm currently trying to learn how to use :-))

Olaf is very adamant about incorporating RC5 in vNext and I find his aim orthogonal to the actual compiler project. IDE is also optional, provided that VSCode can be integrated if there are good/fast compiler services that expose symbols and code structure (probably w/ reparsing only changes as an optimization).

For any community effort the community has to walk the walk and come up with canonical VB6 for doing common things. There is no generally accepted coding style, no generally used code linters or formatters and I find a lot of code snippets here in these forums that are next to illegible. Probably this is somewhat like egg vs chicken problem and a big project like a self-hosting compiler will set up the canonical style for future efforts (but who knows).

It's probably worth watching closely projects like rust and zig as these are LLVM based languages, esp. the second one is a fringe language, a one-man show similar to my vNext efforts that I'm "borrowing" ideas (and code) from.

cheers,
</wqw>

----------


## TTn

> Then you're even less experienced than I thought you'd be...
> (because: if you're not taking an "optimistic stance" with the timeline, then you'll never start larger projects in the first place).
> 
> See, the *realistic* expected Timeline would be the time the original team 
> (of roughly 10 skilled people at Microsoft) was needing until VB6 was born:
> - about 10 people times 3-4 years working full-time on it (including finishing the versions which came before - mainly VB4 and VB5)
> - so that makes the realistic time-span 30-40 man-years
> 
> I knew that above "realistic timespan" beforehand (when I started with this stuff, roughly 10 years ago) -
> ...


This is hilarious.  So now, in order to suite your argument, you are condoning the OP's over optimism...well no,... but yes it's ok for me to do that.  Backpedal.  Let's remember that Olaf said realistic, not optimistic.  Its funny how he actually gets real personal and often is passively aggressive/condescending to other members in this forum, but then objects when forced to confront the hypocrisy.  To be fair, I don't think you notice that you do this, but it still doesn't make it ok.  So why is your delay?  Because RAD will pay off....  Not making any sense, forget it.  I've made my point to the rational members of this forum.

----------


## Schmidt

> So now, in order to suite your argument, you are condoning the OP's over optimism... well no,... but yes it's ok for me to do that.


Optimism is necessary in either case - period.
But deep knowledge about the topic (and especially COM) is a necessity as well...
I cannot see, why it is so difficult for some people to comprehend that.

And in case of radBasicHost, I was trying to find out how deep that knowledge of him goes... (politely, AFAIK).
I stand by what I wrote earlier, that (so far, and in my personal opinion) only 3 guys here in the forum have the needed skills,
maybe radBasicHost will be the 4th - but unless he's posting something else than videos, that  question remains open (for me).

You are apparently not interested in his answers to the questions I brought up - fine by me - 
but I'm not going to invest into a project, which has only videos to offer - and nothing else.

Olaf

----------


## wqweto

@radBasicHost: Did I mention that zig creator is on patreon: https://www.patreon.com/andrewrk/overview

I far as I can see he is collecting in donations $1,970 per month as of now which is the *maximum* you can expect from your crowd-funding efforts as Andrew is very active both code-wise on github and speaking at conferences about the ideas behind his language. Also the zig as a language has some strong followers/contributors too, although probably VB6 (legacy) code-base is orders of magnitudes larger in total.

Now it's up to you to convince me to direct my $10 support from zig to your VB6-clone effort :-))

cheers,
</wqw>

----------


## radBasicHost

> As I see it, there's only 3 people in this forum, who have the skills to approach the problem.
> And only two of them have (more or less) declared, that they are actively working on a new compiler/IDE.
> That'd be Vlad (wqweto) and me...
>  (..."the trick" is the 3rd one I'd consider capable enough, but he never mentioned explicitely what his plans are - regarding compiler-development).
> 
> 
> 
> Not sure, how a "virtual round table" could help... IMO this forum here should be entirely sufficient, to clear things up fast...
> 
> ...


Hi Olaf,

I'm sorry, but I completely disagree with you.

I'm not enter in personal context, as you does, qualifying people (not only me) and their knowledge. How do yo know there are 3 people who could do a project like this? Do you know everyone of this forum?

I see there are in this forum a lot of ego, because there are responses and criticism side of the main purpose of this thread.

About your answer:

I saw your work about a new implementation of common controls wrapping GTK+. You are a skilled person in software development. But about what you said, I really doubt about your knowledge in compilers area.

About your points:

1. Yes, I think C-emitting  is the way to go.
2. No. It could be. VB6 was no platform independent. RAD Basic want to be VB7, so it can't be platform independent. It sounds weird, but I'm a linux heavy user. I really like a VB solution cross platform. But it is not the way to go. I'm developed a lot of cross platform solution. True cross platform app is not only about language/compiled object, is a lot of your code. You can develop with a platform independent language and be tiered to a platform because you use platform dependent calls, winapi, path like C:\WINDOWS, etc. 

I think the first step is doing a true replacement VB6 tiered to Windows. Next version could be platform independent. But you have to begin your VB project in a platform independent way, or migrate it. Not imports of winapi for example. For this, you can rely in a library for GUI (RB Forms), with your code decoupled and it could be changed easy to another library cross platform based in, for example, GTK+.

3. As (2). Sure, we need a new class replacement (MSVBVM, COMCTL, etc.). But no need at this moment cross platform. It's good to design with this goal in mind, but I think it is no need at this moment.

4. I think it is the wrong approach. If you want a true VB replacement, it is virtually impossible. How do you run a COM OCX/DLL of a third party in Linux? Will you wrap with WINE? Will you add an extra layer translating Win32 call to system C calls? This way will fail for sure.

5. It's my opinion, but i think this is a really wrong approach. If you restrict your tools you will fail a lot of power and productive.  You say you will use tools of 20 years ago for escaping the hole of no new tools since 20 years ago.

I see you have strong thinkings about it. But I disagree with your approach.

But, it's good confront different approach to the problem, and no problem if you don't support RAD Basic project.

Cheers!

----------


## radBasicHost

> @radBasicHost: Did I mention that zig creator is on patreon: https://www.patreon.com/andrewrk/overview
> 
> I far as I can see he is collecting in donations $1,970 per month as of now which is the *maximum* you can expect from your crowd-funding efforts as Andrew is very active both code-wise on github and speaking at conferences about the ideas behind his language. Also the zig as a language has some strong followers/contributors too, although probably VB6 (legacy) code-base is orders of magnitudes larger in total.
> 
> Now it's up to you to convince me to direct my $10 support from zig to your VB6-clone effort :-))
> 
> cheers,
> </wqw>


Hi!

I'll try it!

Very interesting zig creator. As I've said, this is a different approach. It is not a new environment, it would be a direct clone.

I think this kind of project, if you want to be successful, it has to be done in a professional way. And it is not related about knowledge of developers. Professional way is about not a side project. It's your job. You are working on it the whole working hours. It's the only way to complete it. If not, it would be a project that in some moment it would remains abandoned and unfinished.

That the reason of future Kickstarter campaign.

Cheers!

----------


## Schmidt

> I'm sorry, but I completely disagree with you.


No problem...




> I'm not enter in personal context, as you does, qualifying people (not only me) and their knowledge. 
> How do yo know there are 3 people who could do a project like this? Do you know everyone of this forum?


Yes, I read every posting here in the VB6-Forum, so I know (roughly) the skill-level of everyone who posts here.
If you doubt that something like that is possible, then please consider, that I'm reading about 50
developer-postings every day on average (and that for the last 25 years, across several forums and newsgroups).
So, please consider that "neuronal network" as "trained enough"...  :Wink: 




> I really doubt about your knowledge in compilers area.


I have no problem with that either...  

But let's focus again on the thing you want to distract from (for the sake of the other readers here):
- So far we've only seen videos from you...
- neither a compiled executable was offered for download...
- nor did you post any of the C-files, you allegedly generate with your approach

I cannot come up with any good reason, why you'd avoid posting these things, 
when your efforts are indeed serious ones (and not fake).

Olaf

----------


## axisdj

Post Deleted because was not directly related to RadBasic

----------


## baka

please keep the topic within radbasic, since the thread is about that and not about people, if they can or can not, if theres just 3 or less that can make a compiler or not.

what the thread should be about is a showcase of radbasic, what it can do right now, the plans, the obstacles, q&a.
to pick a fight to the dev of radbasic is just ego talking, maybe jealousy? i dont give a crap about all that and ultimately its useless flaming since we are programmers and we want to know if radbasic is possible or not.

can the community help? sure fine. but only if its possible and only if you are mature enough to be able to do that, to argue and ego-compete with each other will only stress it and ruin the good mood of making something nice.

radBasicHost, when you ready, I think it would be nice with some examples, this to show your progress and calm some members here that seems to take this personal.

----------


## Shaggy Hiker

> I guess in those cases (of vid-games) - the authors were already known in the gaming-community 
> (less of a need to "prove your competence", when you can point out "prior art, attached to your name").
> 
> Olaf


Actually, I think that in the case of games nobody really cares, and that's a key distinction. With a video game, one might reasonably take a $50 flyer on something that looks interesting. If it works out, that's fun and games for some number of hours or days. If it doesn't....then move on to the next thing. 

You don't do that with a programming environment so readily. Sure, you can abandon something just as easily as you would abandon a game that simply didn't work, but if you do not quickly abandon a development environment, then your investment in the environment is sure to be FAR higher, which means that the cost of moving away is going to be far higher. Not an economic cost, of course, but a time and intellectual cost, which is all the more dear.

VB6 isn't a game that doesn't work on your current hardware. The reason for this thread is that the investment people have in VB6 is vastly greater than people have in some game that no longer runs on their current hardware.

So, what people will do with video games doesn't compare to what people will do with development environments. If you end up liking a video game, your investment is shallow, so like it or not, the cost isn't high. Not so with development environments.

----------


## Shaggy Hiker

> please keep the topic within radbasic, since the thread is about that and not about people, if they can or can not, if theres just 3 or less that can make a compiler or not.
> 
> what the thread should be about is a showcase of radbasic, what it can do right now, the plans, the obstacles, q&a.
> to pick a fight to the dev of radbasic is just ego talking, maybe jealousy? i dont give a crap about all that and ultimately its useless flaming since we are programmers and we want to know if radbasic is possible or not.
> 
> can the community help? sure fine. but only if its possible and only if you are mature enough to be able to do that, to argue and ego-compete with each other will only stress it and ruin the good mood of making something nice.
> 
> radBasicHost, when you ready, I think it would be nice with some examples, this to show your progress and calm some members here that seems to take this personal.


I second this. 

The subject of VB6 and whether there is a new version, and what it will be, or when, gets pretty contentious and has a tendency to go off the rails. Strong opinions abound. Best to stick with the topic at hand.

----------


## DllHell

How much is radbasic going to cost?

----------


## germano.barbosa

https://sourceforge.net/projects/visual-basic/

http://kidev.net/

What do you think of this compiler?

----------


## vbrad

> https://sourceforge.net/projects/visual-basic/
> 
> What do you think of this compiler?


Thanks . One of the videos for this on youtube has this link in the comments

http://www.kidev.net/index.htm

----------


## vbwins

For those of us who make a living from our software there are commercial realities at play here. Yes VB6 is old. Yes it lacks some features but apart from the "coolness" of replacing it with something new what is there to gain? Why not just migrate to a newer mainstream platform (apart from the obvious)

I for one would rather be in the semi mainstream with VB6 than out on a limb with something developed and supported by just a few people. I can imagine myself chasing down hard to find bugs and inconsistencies in compiled code or spending time trying to get the new IDE to work properly.

We have reasonable committed support for the runtime from MS at the moment with their "it just works" statement.

With the support of this and other forums I have not found too many things I cannot get done today.

I absolutely love the idea of a code compatible replacement & 64 bit completion but as I make my living from this stuff for me personally it would need to come from a substantial organisation with a track record of being around so that when I am trouble there is a company to go to & other users to converse with to try and find a solution.

The technical difficulties of doing this will be immense. One of VB's great strengths is that it reasonably reliably hides the complexity of what is going on under the hood. Duplicating this on the myriad of platforms I have to support from W2003 SP1 to today's OS's is going to be a mission.

I agree with Olaf that there are just a few people in this and other forums with the skills, knowledge and sheer grit to get this done.

It will be interesting to see how this turns out.

----------


## yereverluvinuncleber

Well, this forum is not created nor run by a large organisation and it works sufficiently well as you stated. The point is that there does not have to be a company behind it for it to succeed. 

I would prefer a FOSS solution as a community can then get behind it and it can become self-seeding as it were. However, much smaller or even one-man organisations have come up with successful products that people use daily.

The only commercial products I use now are Photoshop, Windows and VB6 (and I can't buy a copy of VB6 from MS for love nor money), everything else is FOSS, from LibreOffice to open hardware monitor, all one man efforts or community driven products.

When a product is a one-man show and it is closed source then that worries me a lot more as we all know how difficult it is for one man (or woman!) to maintain a software project right to the end, however, it CAN be done - see RJTextEd as an example

----------


## yereverluvinuncleber

> https://sourceforge.net/projects/visual-basic/
> 
> http://kidev.net/


 This latter URL seems to be dead or taken over by someone else. 




> What do you think of this compiler?


Well it has always been a lovely piece of work that has never seen much progress in all the time it has been available. However, the recent update has given it a visual overhaul, the code is there for someone to build upon and it could act as jumping off point for someone to start building an IDE that looks similar to VB6.

It seems that it could act as a useful starting point for a compiler too but that is not for me to say.

Visia never had a forms generator and that is why I never used it myself for anything other than a trial. 

I do not remember the source code being made available for it in the past but now it is on sourceforge anyone can build the Visia IDE and compiler so it does seem like a nice bit of work.

----------


## reexre

My dream : Olaf wqweto thetrick and this guy https://youtu.be/eF9qWbuQLuw. bisqwit
Working togheter for the future vb6 IDE & compiler version.

----------


## ChrisE

well I would have hope if Microsoft made VB6 open source, and one or many people could build a VB7 - 8 or whatever you want to call it

https://www.i-programmer.info/news/1...ource-vb6.html

----------


## baka

well, microsoft dont want, for some unknown reason they dont want to share the source.
just open source c2.exe and link.exe could make a difference as well. 
wonder if anyone has asked that, to give the source of c2/link alone?

----------


## Grant Swinger

I doubt we'll ever see VB6 open-sourced unless VBA is as well.  And as long as VBA is part of the Office cash cow that probably won't happen.

----------


## axisdj

New video posted showing RadBasic 64bit compiling..

https://www.facebook.com/radbasic/vi...7638598297678/

----------


## baka

looking very promising axisdj.

----------


## yereverluvinuncleber

> I doubt we'll ever see VB6 open-sourced unless VBA is as well.  And as long as VBA is part of the Office cash cow that probably won't happen.


In some ways this is a good thing as it means it will stimulate others to come up with an alternative solution, exactly as it is proving...

----------


## Shaggy Hiker

> Well, this forum is not created nor run by a large organisation and it works sufficiently well as you stated. The point is that there does not have to be a company behind it for it to succeed. 
> 
> I would prefer a FOSS solution as a community can then get behind it and it can become self-seeding as it were. However, much smaller or even one-man organisations have come up with successful products that people use daily.
> 
> The only commercial products I use now are Photoshop, Windows and VB6 (and I can't buy a copy of VB6 from MS for love nor money), everything else is FOSS, from LibreOffice to open hardware monitor, all one man efforts or community driven products.
> 
> When a product is a one-man show and it is closed source then that worries me a lot more as we all know how difficult it is for one man (or woman!) to maintain a software project right to the end, however, it CAN be done - see RJTextEd as an example


The IDE that you develop software on/in would be a far bigger reliance than something like LibreOffice. LibreOffice is an example of how things can go wrong with FOSS. I use that too, and it's a pretty good program that is being steadily improved. However, LibreOffice is a split from OpenOffice, which went moribund for several years, and is now moving forwards again. They aren't the same project anymore, including different features and even different licensing arrangements. That's fine for something you use for working on a letter, or a spreadsheet, especially since the file formats are compatible with other platforms. How thrilled would you be to have your development environment be equally unstable? Anything you built would have an unsteady base.

----------


## yereverluvinuncleber

I have to tell you that I'd be utterly thrilled with that. Knowing that at any time I can view the code and make changes myself, to contribute no matter what anyone else is doing. Knowing that if ever an organisation like the open office foundation stops doing its job, that another can just pick up the code and do it better. That is the way it should be.

Compare it to the alternative. MS makes VB from 0 to 6. MS drops it just as we are getting into full swing. MS never gives us another update ever again, not a morsel and never will.

If VB was FOSS then ask yourself, how would it look today after 20 years of development, forks, improvements and bug-fixes? It could have been abandoned five times in that many years and other groups would have picked it up. It would still be alive.

If MS made VB6 FOSS tomorrow, what would we have by the end of the week? I'd suggest multiple builds, several changes and improvements, a few forks would take root and each would take on new code and new directions, supportable by many and with a living future.

Yes, that is exactly what I would hope, or pray for for VB6. 

I used Sun's Star Office, then Open Office and now LibreOffice with security knowing it will always be there in one form or another, works on multiple platforms and is FREE.

----------


## TTn

The only thing I saw on the video that might be a problem is that it looks like the time in minutes jumps from 40's to mid 50's.  I can't confirm this at the highest resolution available, so I cannot say that the video is fixed or split.  If it is split, then it could be just an honest splice.

I look forward to a test download. If the developer wants to circulate a sample or collaborate privately, then please contact me on youtube by DM.

----------


## Shaggy Hiker

> I have to tell you that I'd be utterly thrilled with that. Knowing that at any time I can view the code and make changes myself, to contribute no matter what anyone else is doing. Knowing that if ever an organisation like the open office foundation stops doing its job, that another can just pick up the code and do it better. That is the way it should be.
> 
> Compare it to the alternative. MS makes VB from 0 to 6. MS drops it just as we are getting into full swing. MS never gives us another update ever again, not a morsel and never will.
> 
> If VB was FOSS then ask yourself, how would it look today after 20 years of development, forks, improvements and bug-fixes? It could have been abandoned five times in that many years and other groups would have picked it up. It would still be alive.
> 
> If MS made VB6 FOSS tomorrow, what would we have by the end of the week? I'd suggest multiple builds, several changes and improvements, a few forks would take root and each would take on new code and new directions, supportable by many and with a living future.
> 
> Yes, that is exactly what I would hope, or pray for for VB6. 
> ...


Yeah, that does sound nice, but there's a difference. Hobbyists can do whatever they want, but if you intend to build a business off the software you write, you need that IDE to keep on going. Any breaking change by any team would strand you at the current position. That's the exact position you are in currently, because VB6 still works.

So, you're really hoping that some team will come along with the skill, time, and dedication to create a free tool that won't break what you already have, and will keep moving forwards with it without introducing breaking changes. That hasn't totally worked for word processors, and I would expect those to be considerably simpler than an IDE. There are file types that can't be opened by any modern word processor, which just results in a dead file stuck in a closet somewhere. The same thing happening with an IDE would be much more significant for anybody who is selling software written using the IDE. You would need that pool, with the skills required, the time to dedicate to this, and a desire to devote the necessary time.

Frankly, I don't believe the pool of people with the three necessary traits exists in sufficient number. For any company to rely on such a strategy, they'd have to be willing to decide whether to migrate or remain whenever a breaking change came out. That's no different than what you have now, except that you'd have more people stranded in smaller and smaller groups down various branches.

----------


## yereverluvinuncleber

> There are file types that can't be opened by any modern word processor, which just results in a dead file stuck in a closet somewhere.


Except that you can fix that.

I am swotting up on my C++ so that I can (eventually) assist the ReactOS team in supporting the Yahoo widget engine. That is what I am interested in so I want to help there. At the moment it does not install due to a GDI problem. When I have the skills I may be able to fix the bugs there or assist in solving the problem. 

If LibreOffice doesn't open a file format you can pick up the code and change it. You can't do that for Word. 

I think you just have a natural bias against FOSS, that's fine, no problem. I just don't have it. ALL my software is FOSS now, except for Windows and VB (and PS). Soon, (5 years I aim to be rid of Windows and I suggest within that timescale a FOSS replacement for VB7 may well be on the cards  - and we WILL be using it.

----------


## Shaggy Hiker

Actually, I have no problem with FOSS and use it myself. Not for free, either, as I contribute financially to any such endeavor that I make use of. However, I have watched these attempts at a replacement for VB6 for a couple decades. Somebody quoted me as saying something along the lines of the fans of VB6 killing each other if anything actually got traction. I may well have said that, and said it better than I did this time, though I don't mean it literally. It always comes down to people saying, "I just want a new version of VB6 that will work with the code I already have....and has just this one extra thing." It's always a different extra thing. Frankly, if this dream is ever realized, I would expect a few people to be thrilled and most people to be totally pissed off. 

That's a different matter from whether or not you want to rest a business on this foundation. Everyone gets to make their own decision in that area. If you're a hobbyist, then do what you want. I've used a few platforms that vanished. Doesn't really matter, though.

----------


## baka

what i would like with radbasic is to use direct2d as the default graphic engine for the IDE and use a sound engine that can handle mp3 internally and to compile to 64bit.

----------


## yereverluvinuncleber

> However, I have watched these attempts at a replacement for VB6 for a couple decades.


I get that completely. The one thing I noted here when I started to participate on this forum was the feeling of abandonment and a perception of almost a layer of depression residing over the community, possibly born from the reality of working with a tool that the industry alternately derides, abandons and seems to try to want to stop working altogether.

If you've been exposed to multiple attempts to create a VB7 only to see each fail then I would understand why you feel that way. It is reality.

If only someone had worked on the VB6 IDE and then managed to create a portion of work that was FOSS then another then another built on top of that adding portions at a time, we might have been close to having something that resembles a replacement, if only 35-50% complete by now. That is what I expected to have occurred when I arrived here. I was surprised to see that there was only Olaf's graphics portion and nothing else - all this skill and capability to create, yet not as much to show for it as I would have expected.

I am positive, perhaps as I haven't been here long. I am also positive in nature and believe that we (the VB6ers here) can do it. I am hoping for a FOSS tool as the end result of these new developments but we shall see. 

I am not getting my hopes up. I have several paths for my VB6 code, ReactOS as a replacement environment (possibly even Wine on Linux - not really), VB.NET as a trial migration path (that is what I am going to do next with my two recent VB6 utilities) and now the possibility of two new VB6 compatible projects. The future is rosier than it has ever been - as long as you feel positive.

----------


## yereverluvinuncleber

> what i would like with radbasic is to ...  use a sound engine that can handle mp3 internally.


I like that.

----------


## dilettante

You can already play MP3s in a VB6 program using DirectShow which ships as part of Windows.

----------


## yereverluvinuncleber

Yes...

----------


## baka

dilettante, sure, we also have direct2d using a typelib.
that is not what i meant, its my wish for the new IDE,

- 64bit compiler
- integrated direct2d engine (with monitor sync control, png-loading/saving, transparent support, DPI support)
- integrated audio support to play wav/mp3 (it will be a default component we have a mp3/wav player, that can also control loop, fade, volume etc)

this for me is the "minimum" for a new IDE.

----------


## PlausiblyDamp

> dilettante, sure, we also have direct2d using a typelib.
> that is not what i meant, its my wish for the new IDE,
> 
> - 64bit compiler
> - integrated direct2d engine (with monitor sync control, png-loading/saving, transparent support, DPI support)
> - integrated audio support to play wav/mp3 (it will be a default component we have a mp3/wav player, that can also control loop, fade, volume etc)
> 
> this for me is the "minimum" for a new IDE.


I think this is exactly the issue that keeps cropping up with what the "new VB6" should involve. Your minimum is probably very specific to your needs and wouldn't be what other potential users want. The number of different "minimum" requirements seems almost as big as the number of people who want a new version...

----------


## axisdj

I wonder what your thoughts are on the latest video?

I may be wrong here but it appears radBasic is using a method not thought of before from the people here who have been attempting a new vb6. By using the ANTLR and LLVM / c compiler a lot of work has been saved. I have never seen a video that shows what radBasic has been able to do.

I did speak with the developer and suggested he privately send some of the GURUs here a sample exe for compiler and ide to quench their doubt.

I think radBasic has a clear vision, to create a 100% compatible vb6 IDE and compiler, I think this will only be the first part, and other stuff can come later. (cross platform etc.. integrated 2d, audio etc...)

----------


## baka

what is the point of using the old graphic model that has issues with DPI?
of course we need to upgrade the graphic engine. whats the point otherwise?

all the issues with DPI, people complaining why they can't add transparent buttons, and the problems with stuttering since the graphic engine is not monitor sync.
i dont understand people that dont want to improve a +20 year old IDE....

----------


## qvb6

> dilettante, sure, we also have direct2d using a typelib.
> that is not what i meant, its my wish for the new IDE,
> 
> - 64bit compiler
> - integrated direct2d engine (with monitor sync control, png-loading/saving, transparent support, DPI support)
> - integrated audio support to play wav/mp3 (it will be a default component we have a mp3/wav player, that can also control loop, fade, volume etc)
> 
> this for me is the "minimum" for a new IDE.


I hear you, but DirectX is Microsoft-only technology, although you could run it on Linux+WINE(Supports DirectX 11). Alternative multi-platform gaming engines includes Unity(C# only), Unreal(C++ and a "visual language" called Blueprint). Qt(C++/Python) has gaming engines too. I myself would go with Qt or Unreal, or both for games.

As for MP3, it seems that the patents have expired, so this should be easy to implement as an extra multi-platform component without slowing down compiler/IDE development.

----------


## Thierry69

> dilettante, sure, we also have direct2d using a typelib.
> that is not what i meant, its my wish for the new IDE,
> 
> - 64bit compiler
> - integrated direct2d engine (with monitor sync control, png-loading/saving, transparent support, DPI support)
> - integrated audio support to play wav/mp3 (it will be a default component we have a mp3/wav player, that can also control loop, fade, volume etc)
> 
> this for me is the "minimum" for a new IDE.



I don't see also why MP3 is needed in an IDE?

I am currently migrating one of my project to Visual Studio 2019 (and learning also this IDE), and even I can see some interest in Visual Studio 2019 (like automatic error detection/correction, etc..) VB6 is far more easier to code faster.
Visual Studio 2019 has too much options, etc...

For information, the project I am migrating is an Addin for Outlook I wrote some months ago, and I need it to work also in Outlook 64 bits.
I can tell that the migration is not as hard as I tough.
As I always encapsulate my code in some "Generic" routine, I just had to mainly rewrite to .NET those generic routine.
Even for the ADO part, I wrote a new class to mimic the ADO of VB and I don't need to rewrite everything.

Mainly Copy/Paste from VB6 to the Visual Studio, and then adapt a bi like  S = S & "test" to S &= "Test" etc...
and also changing the error handling to Try ... Catch

But now, my 2 addins are wrking side by side durng my tests, and I am very happy.
It took me arround only 2 full days to do it (including research to make Outlook Addin the right way in .NET), and I am at 95%.
I will probably write a post about this migration.

----------


## qvb6

> Ok, so you're talking about COM basically (as the first hurdle to solve - or judging from your video, apparently "already solved to some extent").
> 1. what is your plan (or current implementation), regarding (VB6-compatible) COM-Classes? How do you build them?
> 2. what is your plan (or current implementation), regarding (VB6-compatible) UserControls? How do you build them?
> 3. what is your plan (or current implementation), regarding (VB6-compatible) COM-Events (for both of the above: *.cls and *.ctl modules)?  
> 
> As for your: "the rest is like any other compiler":
> 4. do you have experience already, writing such a "simpler one" (if yes, is there a code-repo somewhere)?
> 5. what is your plan about VB6-UDTs - and their "auto-serializing/deserializing-feature" to and from Files?
> 6. what is your plan about (V)BStrings and VB-SafeArrays (Redim, Redim Preserve)?


I am adding a question #7 to what Olaf posted in post #46:

7. For those who take the approach to translating VB6 code to C/C++, then compile it, as you might already know, C++ exception handling(Error handling) works like VB6. If there is no error handler, it moves up to the caller until a routine with an error handler is found, but C++ doesn't have Resume Next, or On Error Resume Next. How do you plan to implement these? Not thinking this through would introduce bugs that only happen if there is a runtime error.

----------


## baka

sure im not opposed to another engine if its easy enough to implement.
we know that direct2d is already in windows, so no dependencies or additional dll are needed.

but if we just need to include 1 DLL when we release our executable, that will work like a framework for "windows" to use the graphics, im totally ok with it.
later, when cross-platform is in the menu, the other OS can have their "own" driver for the graphics, making VB+ cross platform.

but I dont see a problem using a "framework" that can use different graphic engines.
if that DLL'calls uses direct2d, and on Mac it uses the same calls, but the driver is calling "whatever Mac is using" is that not a good compromise?

or theres already dll/drivers that can be used that "VB+" could use that are not copyright?

----------


## radBasicHost

> I get that completely. The one thing I noted here when I started to participate on this forum was the feeling of abandonment and a perception of almost a layer of depression residing over the community, possibly born from the reality of working with a tool that the industry alternately derides, abandons and seems to try to want to stop working altogether.
> 
> If you've been exposed to multiple attempts to create a VB7 only to see each fail then I would understand why you feel that way. It is reality.
> 
> If only someone had worked on the VB6 IDE and then managed to create a portion of work that was FOSS then another then another built on top of that adding portions at a time, we might have been close to having something that resembles a replacement, if only 35-50% complete by now. That is what I expected to have occurred when I arrived here. I was surprised to see that there was only Olaf's graphics portion and nothing else - all this skill and capability to create, yet not as much to show for it as I would have expected.
> 
> I am positive, perhaps as I haven't been here long. I am also positive in nature and believe that we (the VB6ers here) can do it. I am hoping for a FOSS tool as the end result of these new developments but we shall see. 
> 
> I am not getting my hopes up. I have several paths for my VB6 code, ReactOS as a replacement environment (possibly even Wine on Linux - not really), VB.NET as a trial migration path (that is what I am going to do next with my two recent VB6 utilities) and now the possibility of two new VB6 compatible projects. The future is rosier than it has ever been - as long as you feel positive.


Hey! I miss a lot of messages.

Only, some ideas about you say:

1. There could be multiple attempts for "VB7" which failed in the past. Sure, it's impossible doing it in a hobby manner. It's the reason for future kickstarter campaign. A successful attempt has to be done in a professional way. Professional is not about development skills or knowledge, but it's about this is your job. You are all the working-hours developing it, thinking in it the whole day and it gives you the money for living. This project couldn't be done in other way.

2. I really like FOSS and I use Libreoffice along Gimp and Linux! But thinking in future: How FOSS is capitalized? I think there are two main forms: Foundations (as Linux Foundation, Apache, LibreOffice, ...) or selling support (the very successful way of Red Hat). For a developer tool, it's hard to fit in this former ways. Maybe, a third alternative is the "Trolltech way": QT code is open source, but it's free in beer (and in speech too) for open source projects. For commercial projects a license has to be paid. When you submit code to QT repository, the property belongs to "Trolltech" for converting to dual license. I think it is important to get this in mind, because we want a successful successor, with maintained versions and with new versions adding features along the years, don't we? So, the capitalize model has to be thought too, because it's important for surviving the next years after the kickstarter campaign has over and the first version has been released to bakers.

3. Yes, there are a lot of disappointment for failed past projects. It's understandable. But, as say yereverluvinuncleber, we must feel positive. I don't want to publicity competitors, but do you know PureBasic? https://www.purebasic.com/support.php. If you check out, there are one main developer and one additional code. With the current tools and the correct approach/design there is no need to large development team for this kind of product. As I said, the difference is the technical approach and the working approach (hobbyist vs professional). Yes, in open source there a hobbyist contributions and some are very important. But we are talking of projects with thousands of contributors. And, in great projects there is always professionals contributors paid by Red Hat, IBM, Linux foundation, etc.

Well, my two (or more) cents.

I'm not very active in this forum. A lot of work to be done and social media to be answered  :Wink: 

Best regards.

Carles Royan

----------


## wqweto

> I don't want to publicity competitors, but do you know PureBasic? https://www.purebasic.com/support.php. If you check out, there are one main developer and one additional code. With the current tools and the correct approach/design there is no need to large development team for this kind of product. As I said, the difference is the technical approach and the working approach (hobbyist vs professional). Yes, in open source there a hobbyist contributions and some are very important. But we are talking of projects with thousands of contributors. And, in great projects there is always professionals contributors paid by Red Hat, IBM, Linux foundation, etc.


I've previously shared w/ community here statistics that FOSS projects are always one-man shows w/ a couple of contributors max.

But does PureBasic has a successful kickstarter campain? Was it a crowd-funded effort from the very beginning? Is it now? Are they hobbyists of professionals? Where are the thousands of contributors? Is there anyone paid by a corporation/foundation?

Just interested how things are happening in a "sister project" according to the points you raised in your previous post. Is PB really a one-man show by a hobbyist, purely on his own will w/ no external financial support?

cheers,
</wqw>

----------


## yereverluvinuncleber

PureBasic is commercial. Was it Bob Zane's one man project at first? Or am I mixing it up with another basic project? I know Mr. Zane died and someone else took the project over.

----------


## vbrad

> PureBasic is commercial. Was it Bob Zane's one man project at first? Or am I mixing it up with another basic project? I know Mr. Zane died and someone else took the project over.


Bob Zale's (RIP) product was/is Powerbasic

----------


## wqweto

Oh, I see. . .

That's really an option, having a [Add To Cart] buttons on versions w/ prices and all.  Another option is to have a free download from Releases tab on a github repo like most of modern languages.

cheers,
</wqw>

----------


## radBasicHost

> I've previously shared w/ community here statistics that FOSS projects are always one-man shows w/ a couple of contributors max.
> 
> But does PureBasic has a successful kickstarter campain? Was it a crowd-funded effort from the very beginning? Is it now? Are they hobbyists of professionals? Where are the thousands of contributors? Is there anyone paid by a corporation/foundation?
> 
> Just interested how things are happening in a "sister project" according to the points you raised in your previous post. Is PB really a one-man show by a hobbyist, purely on his own will w/ no external financial support?
> 
> cheers,
> </wqw>


Well I don't know the details and I don't want to make parallelism. Only one example about it don't need a large team, answering previous post, not only yours.

Regards.

----------


## yereverluvinuncleber

Those viable commercial alternatives quoted were all one-man projects once showing how they CAN grow given a fair wind. PowerBasic was a candidate for FOSS as I think it has largely stalled since Bob Zale died, not having a stable release for almost a decade.

----------


## qvb6

> 2. I really like FOSS and I use Libreoffice along Gimp and Linux! But thinking in future: How FOSS is capitalized? I think there are two main forms: Foundations (as Linux Foundation, Apache, LibreOffice, ...) or selling support (the very successful way of Red Hat). For a developer tool, it's hard to fit in this former ways. Maybe, a third alternative is the "Trolltech way": QT code is open source, but it's free in beer (and in speech too) for open source projects. *For commercial projects a license has to be paid.* When you submit code to QT repository, the property belongs to "Trolltech" for converting to dual license. I think it is important to get this in mind, because we want a successful successor, with maintained versions and with new versions adding features along the years, don't we? So, the capitalize model has to be thought too, because it's important for surviving the next years after the kickstarter campaign has over and the first version has been released to bakers.


For commercial projects using Qt, a paid license is not needed. You can still keep your app closed source and sell your app. The license however, requires that you provide Qt source in the rare case when someone requests it.

----------


## radBasicHost

> For commercial projects using Qt, a paid license is not needed. You can still keep your app closed source and sell your app. The license however, requires that you provide Qt source in the rare case when someone requests it.


qvb6, you are right, my fault. Qt changed this in 4.5. I used intensively in 3.x days, and there was only GPL and commercial (in contrast of GTK which always been LGPL). I reviewed the license history and I saw in 2019 this was changed (QT 4.5), and now it is GPL, LGPL and comercial. So, yes you can develop closed source with free LGPL version of QT.

Thanks for you correction.

Regards!

----------


## axisdj

> For commercial projects using Qt, a paid license is not needed. You can still keep your app closed source and sell your app. The license however, requires that you provide Qt source in the rare case when someone requests it.


So just out of curiosity, I can request the QT source from a competitors product if they do not have a license from QT and they are required to give it to me?

That is crazy!

WP

----------


## qvb6

> So just out of curiosity, I can request the QT source from a competitors product if they do not have a license from QT and they are required to give it to me?
> 
> That is crazy!
> 
> WP


Yes, but it's just Qt source, not your app source code. It's the nature of LGPL.

----------


## germano.barbosa

https://sourceforge.net/projects/lizrd-basic/

----------


## yereverluvinuncleber

> https://sourceforge.net/projects/lizrd-basic/


I wonder why he never told anyone about it? I can't find any references to it here. 

At least he had the foresight to make it FOSS when he finally abandoned it.  I suppose it could be prove useful as a reference?

----------


## veebee123

In the past I was able to locate someone who completely disassembled and reverse engineered the MSVBVM60. I can't find it now. I only see a small pdf after a google search.
I'm entirely behind the idea of what radbasic is trying to do. It looks good so far, but we need more work on the compiler, not so much focus on the IDE. That can be done later or adapted from something else like eclipse.

I hope whoever is behind this has the right coding principles. I fear that it will just turn into a piece of bloatware like .NET. Now that PowerBasic is pretty much dead, it would be nice to make those developers aware of this project because I think they could help with it immensely. PowerBasic is very similar to VB6. It would be nice if it was open source. PureBasic is another good one.

The compiler should be a "real" compiler in my mind. No translating to C++ or some other language. I think translating to assembly language would be fine though. Then use FASM to produce the binary. Please DON'T use Qt for the compiler. I think that's fine for an IDE or even an IDE in .NET would be OK (like http://www.vbforums.com/showthread.p...spaces-release)

...but I don't think the compiler should produce a binary that needs Qt or some other bloated framework. PureBasic was able to do cross-platform without using such a framework.
I think producing an EXE with run-time included is probably the way to go. It would produce native code, but it would just insert the supporting procedures in the EXE so it would be standalone.

If someone has actually started a project that is a compiler and not just a fancy IDE demo, then I would gladly help with the project. Not that this is that. I wasn't able to find from the website if this was more than that. I don't think I would help though if the current programmers don't understand the no bloat policy lol.

I just remembered, Visia is another "language" and IDE written in VB6. It's very simplistic, but maybe worth looking at.
https://sourceforge.net/projects/visual-basic/

----------


## Erel

B4J is another related tool to consider.
It is not VB6 replacement however the syntax is similar to Visual Basic and it is a RAD tool. There are many Visual Basic developers who use it.

Cons:

- Not designed to be a VB6 replacement.
- Not open source.
- Compiled output depends on Java.

Pros:

- Mature product with large community behind it.
- 100% free.
- Supports OpenJDK 11 and it is very simple to create a standalone package that doesn't rely on any installed component. The size of such package is about 30mb.
- Part of the B4X tools. You can reuse most of the code with B4A and B4i and create similar Android or iOS applications.
- Cross platform. Apps will run on Windows, Mac and Linux.
- Very good performance.
- Modern IDE.
- Support for server solutions.


Disclaimer: I'm the CEO of Anywhere Software, the company behind those tools.

----------


## qvb6

> Qt or some other bloated framework.


I haven't used Qt yet, but I believe that you only need to include the DLL's that you use, or if you choose to compile it statistically, everything is included in the EXE.

My thinking is to add a wrapper layer between the compiler and a Multiplatform toolkit, like GTK/Qt/Other, so initially we could use one of these tools, then switch to something from the scratch(Olaf already made such an effort that he open sourced, see vbWidgets).

There is already Qt based Basic. It was called QtBasic, then Q7Basic/KBasic, then Basic4Qt. It's open source, including the compiler/translator/IDE, but it's not free as far as I know. It doesn't convert VB6 projects, though, so it maybe good for new projects only.

----------


## yereverluvinuncleber

QT/Q7/Kbasic has been dead for years. I wasn't aware that is/was open source.

----------


## yereverluvinuncleber

> B4J is another related tool to consider.


We know about your product, this thread is not about finding other VB6-alikes, that has been done to death. This thread (I think) is about a VB6 100% replacement, ie. language, compiler and IDE. 

The links to alternatives recently posted here are mentioned as resources and references toward a possible route map for alternative methods of achieving this, partly or fully.

----------


## MikeSW17

Just had a quick look at https://q7basic.org/#Windows. Initally there is no mention of Open Source, just a Professional license fee, a bit further down the page, a "Trial" download. Then right at the bottom of the page are the source download and set-up links. 
[https://q7basic.org/Q7Basic_Source_Code.zip]
[https://q7basic.org/Q7Basic_IDE.zip]

All seems virus-free, setup-package works, and the IDE source loads into VB6 without errors. Not got further than that (yet?).

*EDIT*
There is a *LOT* if stuff in those downloads - Documentation PDFs and HTML scattered about,  build sources for windows, Mac & Linux and sample code.

----------


## qvb6

> QT/Q7/Kbasic has been dead for years. I wasn't aware that is/was open source.


That's what I remember too, I think that it was partially open source, now it's fully open source. Perhaps the developer, like many; have found out that any financial return is limited, or dries up within a year. Donationware seems the way to go for such a project.

----------


## yereverluvinuncleber

These devs are building up a repository of open source code that could form a basis of something or at least a source of information, I do wish they'd publicise what they intend to open source. I watched Q7basic for a while and initially donated £25 to the cause. It would be nice to see the code be re-used, if only that for the IDE.




> ... the IDE source loads into VB6 without errors.


How does that work? just pulling the source code files in or attempting to load the .q7b files as project files for VB6? I presume the former.

----------


## MikeSW17

> These devs are building up a repository of open source code that could form a basis of something or at least a source of information, I do wish they'd publicise what they intend to open source. I watched Q7basic for a while and initially donated £25 to the cause. It would be nice to see the code be re-used, if only that for the IDE.
> 
> 
> How does that work? just pulling the source code files in or attempting to load the .q7b files as project files for VB6? I presume the former.


Oops. My bad. I just glanced at the wrong project window from my 'Recents'. Forget what I said.

----------


## SearchingDataOnly

> My position is this (only mentioning the most important "base-points" - I'm sure there's many more detail-points at lower levels, where more disagreement would ensue):
> 1. C-emitting has several advantages over LLVM-usage (which I've nevertheless experimented with, but ruled out about 5 years ago)
> *2. already the first release has to work in a platform-independent manner*
> 3. and that involves incorporating a platform-indepently designed, stable and well-tested "new Class-Runtime" already in the development-phase of new IDE and compiler
> 4. point 2. also requires a COM-implementation which will work not only on Windows, but on other platforms as well 
> ... (basically "a built-in regfree mode" has to be ensured from the get go, as well as a platform-independent way for "reflection", to parse out Dll-contained "COM-types").
> 5. Development of new IDE and compiler should be in VB6
> 
> In my opinion, Point 5 of the above list - is the only one where agreement exists between us (I've included it only for completeness).
> ...


Occasionally see this post again, I have a few knowledge points to understand:
(1) Is the COM mechanism the optimal software engineering mode?
    -    Why did Microsoft abandon the COM mechanism in .Net?
    -    Does Microsoft have a better mechanism or technology than COM?
    -    Does other companies (such as Apple) have similar mechanisms to COM?
    -    What technology can replace COM technology in the future?
(2) For point 5, why should the development of new IDE and compiler be in VB6?

----------


## Schmidt

> (1) Is the COM mechanism the optimal software engineering mode?


For native compiling languages which want to produce "libs with Classes", it is nearly optimal (IMO) because:
- it allows "interface first" design-patterns
- it allows "interface implementation" and "interface inheritance"
- it allows "strong typing" (for memory-efficiency and speed)
- the Variant-Type and IDispatch allow "lazy typing and -calling" nevertheless (for Script-like scenarios and -bindings)
- standardized Error-transport-mechanism (via HResults)
- does not require C++ compilers (COM-classes can be build with plain C)
- Class-instances are ref-counted (immediately cleanup when they go out of scope, no parallel running Garbage-Collecting instance needed)
- BSTRs and SafeArrays are also self-describing (typed) memory-allocations which are easy to work with
- libraries can be made "self-describing" (compiled with descriptions for all Types, Classe and Methods in these Libs)




> -    Why did Microsoft abandon the COM mechanism in .Net?


.NET is a different "universe" (VM-based, Garbage-Collection, "everything is an Object", entirely different ABI)
And MS never "abandoned" COM - it's still their "first layer on top of the flat-APIs".
.NET-Classes often only wrap existing COM-Objects.




> -    Does Microsoft have a better mechanism or technology than COM?


No, they still develop all their important Class-libs with it (Direct2D, DirectWrite, DirectX, their whole Office-Productline)...
Recent example: the shiny new WebView2-EdgeChromium-Binding is a COM-library (in 32 and 64-bit versions).




> -    Does other companies (such as Apple) have similar mechanisms to COM?


Yes, Swift-Classes have "ARC" (similar to COM-refcounting).
Rust has refcounted Classes, even Gnome/GLib (GTK) supports refcounted Class-Structs in "plain C".




> -    What technology can replace COM technology in the future?


As said, IMO it is currently "near the optimum" for:
 "Strong typed, native compiling languages, which want to support deterministic behaviour with Class-instances"
(whilst also having support for "script-like lazy typing").




> ...why should the development of new IDE and compiler be in VB6?


1) because it's COM-based ...  :Wink: 
2) because the old VB6-IDE (and language) is still great and produces speedy binaries 
.. (there really is no other reason, why anyone would write a new VB6-compatible environment in the first place... 
... and therefore: "put your hands where your mouth is"
3) and of course: because a *new* IDE and *new* Compiler which *is* entirely compatible  (first developed/compiled with the *old* IDE/VB6-compiler)  
4) ...allows immediate selfhosting in the end (a recompiling with the just produced new compiler).

Olaf

----------


## SearchingDataOnly

Very insightful explanation, solved my doubts for many years. I'll continue to use COM technology. Much appreciated.

----------


## rizalmart

BREAKING UPDATE!!!

RAD Basic has reached alpha stage. Roadmap has been established

Announcement

RAD Basic Roadmap

----------


## yereverluvinuncleber

Let's do that properly. 

Latest video showing sample calculator and notepad



March 2021 - Kickstarter campaign launch

    The crowdfunding campaign will be active for 30 days
    Getting funding for converting the free time project to full time project.

May 2021 - First public alpha release

    The alpha release will be available as a reward of Kickstarter campaign.
    It won't be feature complete, but it could compile some projects in the wild along the samples shipped.

November 2021 - First public beta release

    The beta release will be available as a reward of Kickstarter campaign.
    It will be feature complete (or nearly feature complete). With this release a intensive test phase will begin.

February 2022 - RAD Basic 1.0 release

    The final release will be public available.
    It will be available early for kickstarter backers.

----------


## mansellan

Tread carefully. I've just watched all the YT vids, and there's nothing there that proves or even convincingly portrays lexing, parsing, compilation, linking or execution. A similar demo could be put together in a day or so without anything behind it. Perhaps the object browser is somewhat live, but it's not at all hard to read a typelib.

Given the roadmap, I'd wait till the public alpha before putting my money down. If I turn out to be wrong, I apologise in advance.

----------


## yereverluvinuncleber

Paranoia seems to be natural and I'm fine with it. However, I do not believe that anyone would go into that much effort unless they truly felt competent they could create such a tool. So, are you saying you need proof of the chap's competence, the technical validity of the approach or that you don't believe he is genuinely attempting the product?

The chap needs support via a little cash then I may very well give it. I have used VB6 for long enough to afford to give someone some payback (as MS no longer wants my cash for VB6 improvements). If it encourages the man to start the task and get the ball rolling, I will do it.

----------


## VB6 Programming

> I have used VB6 for long enough to afford to give someone some payback (as MS no longer wants my cash for VB6 improvements). If it encourages the man to start the task and get the ball rolling, I will do it.


There do look to be some promising developments for VB6 users.  TwinBasic and RadBasic both look interesting.

For me, any alternative needs to be able to run existing VB6 apps.  That includes using *ActiveXs and OCXs*. And *intrinsic controls*. What about *DAO* and *ADO*, for example? Can they be used?  Would it be legal to use Microsoft controls? And can they be used in 64bit apps?
*Krools controls* offer good alternatives to *some* of the MS OCXs, will they work too? 

Hopefully this will start to become clearer as the preview releases become available.

My other concern is about the continued availability of these products - what happens if the developer(s) lose interest or move on?  Some form of Escrow/open sourcing would be wise.

----------


## mansellan

> Paranoia seems to be natural and I'm fine with it. However, I do not believe that anyone would go into that much effort unless they truly felt competent they could create such a tool. So, are you saying you need proof of the chap's competence, the technical validity of the approach or that you don't believe he is genuinely attempting the product?


The technical approach, from what I've read here, seems plausible, and I have no reason to question the developer's competence.

I'm not saying there's definitely no attempt here, just that if I were to put together a mock-up for visual purposes only, it would look extremely similar to what I see in the YT vids. I note that very little of the IDE is demonstrated - only a couple of targets clicked, no attempt to manipulate anything on the designer or interact with the code pane.

As Schmidt has noted, it would be trivial to allay concern here by providing an exe of the most recent build. This wouldn't need to be even alpha-quality, just enough to confirm that it can indeed take simple VB6 input and compile a 64-bit output.

According to the timetable, an Alpha is scheduled for release in May. Personally, I wouldn't invest any earlier than that unless the aforementioned proof-of-concept is made available.

----------


## yereverluvinuncleber

I think you should imagine that the chap will do well if he receives some backing. He will/may then create a product we could enjoy using and it could all grow from there. A small company, then a small organisation and then you may have something larger to depend upon - "From small acorns grow...". 

We are all so used to open source software these days but these chaps, Twin & RAD Basic have to make money to exist, survive and thrive. He just needs to persuade us on his technical offering initially.

----------


## Schmidt

> He just needs to persuade us on his technical offering initially.


But exactly that is *not* what happened so far (at least from my perspective)...

I absolutely agree with mansellan, that the stuff we have seen so far was in no way convincing 
(from the persepective of developers who have some experience in that field).

All the demos which came up for RadBasic, can definitely be constructed "over a weekend or two".
(e.g. with the 64Bit version of the tinyCC-compiler in "plain C", with some help from a GUI-lib like e.g. IUP).

What I've missed in the RadBasic-Demos is "proper COM-Class support".
E.g. by showing the 64bit-compilation of an imported (normal) VB6-*.cls-definition file, which:
- contained the Implements Keyword (to show that Interfaces are supported in the Class-concept)
- contained Class-Event-Definitions and the RaiseEvent-call 
- an instance of such a Class then demonstrated within a 64Bit-Form "WithEvents"

*That* would have been a convincing RadBasic-Demo (underlining the competence of the Author in that important field).

But even if such a demo would have been shown, I'd still not invest any money into it - 
until I was able to replicate "the shown feats" in my own tests with an Alpha-version of the product.

The underlying COM-layer in VB6 (and the Class- and UserControl-concept build upon it) is *everything*,
when you want to achieve the proposed "100% compatibility" (along with OLE-Variant- and -SafeArray-support).

Just my $0.02

Olaf

----------


## mansellan

> We are all so used to open source software these days but these chaps, Twin & RAD Basic have to make money to exist, survive and thrive. He just needs to persuade us on his technical offering initially.


It's not really about open-source, licensing, or cost. Both Twin and RAD are planning to go commercial, closed-source, and proprietary, and that's am entirely valid choice. Personally, I think the community would benefit most from a FLOSS solution, but commercial is infinitely better than nothing. After all, VB6 was commercial, proprietary and closed-source, is now 20 years old, abandoned by its owner, and still popular. And as you say, people need to make a living.

The difference is in the release model. RAD Basic is due to launch a Kickstarter campaign in the next few days, before any kind of build is made available. On the other hand, twinBASIC will make available a public preview on 7th April (assuming no slippage) and only later seek buyers. These are two entirely different propositions, spaced very shortly apart.

One thing seems clear - in the next two weeks we'll have a better picture of the situation with both. Hence, tread carefully.

----------


## radBasicHost

Hi!

First of all, sorry for didn't answer before. I'm more active in twitter and I didn't get any email notification of this thread.

I want to clarify some points:

- RAD Basic core (compiler and RTL standard libs) will be opensource: https://www.radbasic.dev/faqs.php#container-gen-faq-oss. In fact, it is a really strong point for the project. First, because I love OSS. Second, because I don't want to repeat Microsoft mistake. If the core is opensource, It can't be abandoned, or targeted to incompatible paths. It is reason of this situation: VB6 is not opensourced and Microsoft don't release new versions and targeted VB to incompatible paths.

- About costs: Sure, if you become a backer in kickstarter, it has a cost, the cost which you want. When 1.0 will release, there are four editions, one free of charge: community edition. You could check planned editions here: https://www.radbasic.dev/editions.php.

- Sorry if stuff shown by now is not convincing to some of you. But it really hurts words like "can definitely be constructed over a weekend or two". The project began in December 2018. This post was opened in 2019. And kickstarter didn't launched yet. Sure if all the work done is two weekend, the kickstarter campaign was launched a lot of month before. And I can assure you that I do not work two weekends of the year.

- I have never promised any feature which I can't accomplished. You could check public comments at Facebook page about MSCOMM32: https://www.facebook.com/radbasic/?c...c1MjM4NjAwMzM2

- Some people who are supporting me and helping me have tried one pre-alpha version. From this forum and out of this forum, as there a lot of people working in VB6 who don't know this site exists. In one of them we investigated a crash in LLVM when compiling output code. Seems there is some problem with the machine and dlls, as in other computer of same user worked like a charm. We worked lovely investigating this issue and releasing patching version for trying differents thins, but this situation could generate a very negative impact by someone being skeptical. This is one of the reasons about there weren't any public releases available yet. I prefer to make a rock solid version (although it will was a alpha version). I think is more important stability than feature-completeness for building trust.

- Lastly, about release model: twinBASIC is developing by a company working in MS-ACCESS/VBA Field. So, it has resources for development and in fact it has now buyers, but of other products. RAD Basic is developed in my free time and the kickstarter campaign is for converting this free time project to a full time project. And it is not demanding any price, you could back in Kickstarter whatever you want, you can even pay 1$, and you will have access to community version at the end of the campaign.

I hope I could clarify some of the points.

Carles Royan

----------


## radBasicHost

Sorry, I forgot one thing.


Yes, you can use ActiveX/OCX. There is a demo using MSIE ocx, well, it's up to you if you believe it  :Wink:  https://www.youtube.com/watch?v=Fnw-cicpBR8

DAO support is not planned. Only ADO. You could review planned components here: https://www.radbasic.dev/components.php

About if it will be legal: I'm not a lawyer but most of these components are redistributable. So, I think If you have a legal copy of VB6, there won't be a problem.

Regards.

Carles Royan

----------


## radBasicHost

Oh, I'm like Columbo Detective: One last thing....

You could check in this tweet: https://twitter.com/radbasic/status/...740170753?s=20
Or facebook page: https://fb.watch/4ycSUz2YRc/

A nice gif recorded while modifing size of buttons and undo action in gui designer.

And it was all for today, I'm in UTC+2 and it's 3 AM here :P

Regards,

Carles Royan

----------


## VB6 Programming

> DAO support is not planned. Only ADO. You could review planned components here: https://www.radbasic.dev/components.php


Why is DAO support not planned?  Is it because you think it is not used much, or is it for a technical reason (because it is an intrinsic control?)?

We have existing VB6 apps, some use DAO some use ADO.  I guess many other developers have DAO apps too.

Microsoft now recommend using DAO (in its latest ACEDAO version) rather than ADO when using Access or Jet databases.

----------


## radBasicHost

> Why is DAO support not planned?  Is it because you think it is not used much, or is it for a technical reason (because it is an intrinsic control?)?
> 
> We have existing VB6 apps, some use DAO some use ADO.  I guess many other developers have DAO apps too.
> 
> Microsoft now recommend using DAO (in its latest ACEDAO version) rather than ADO when using Access or Jet databases.


Neither of both. ADO support is a must, as ADO was introduced by Microsoft for replacing DAO and RDO.

Quoting myself:



> - I have never promised any feature which I can't accomplished. You could check public comments at Facebook page about MSCOMM32: https://www.facebook.com/radbasic/?c...c1MjM4NjAwMzM2


DAO is not implemented as a matter of resources. For first version it will implement ADO. For further versions, a layer of compatibilty between DAO and ADO could be rethinked. Or, I was thinking it could be an stretch goal for kickstarter campaign as it will allow to contract or make a small team. And it will be more resources for implementing more features.

Carles Royan

----------


## baka

as we know, VB6 sucks in the graphic department.
that is why we use API calls to use GDI directly and that is why I use direct2d.
we dont have monitor sync and it takes ages to render something, and we can't load png and other formats natively.

one thing that I think would benefit is that to replace the VB's native components with newer ones that support those formats.
and instead of using some crappy rendering, why not direct2d? sure u need windows 7 but radbasic should be the future not be forced to be back compatible to windows xp.

if not, I would be forced to yet again use typelibs, APIs etc to do what I need to do, radbasic will not give me much, except maybe 64bit compilation that is actually not that important as long we have 32bit mode in windows.

----------


## yereverluvinuncleber

Well, the future is important but the past cannot be left to rot. For RADBasic and other BASICs (TB) to take over from VB6 then support for some older technologies may turn out to be absolutely essential. It isn't about making a new toy for us to play with, it is about making programs that work and many of those will be legacy commercial products used in the enterprise. They need the components we might want to abandon so add your dreams to the wishlist and the future and hopefully both can come...




> except maybe 64bit compilation that is actually not that important as long we have 32bit mode in windows.


I can hear that particular axe being sharpened and I am looking out for the axeman preparing to practice his swing anytime now.

----------


## baka

not sure about that.
if you have a "software" that is still used, its also your job to keep it up to date. 
so u cant expect that a new IDE will do it for you, so that your old OCX can still work.

for me a new IDE is not about my old project, they still work under VB6. VB6 is still fully capable. VB6+32bit is still working well. except for some old component that causes issues. but is that really VB6 fault?

a new IDE should "fix" what VB6 was supposed to do if microsoft didnt abandon it.
compatibility for windows 7,8,10. so forms and component would be placed correctly. that is not about back-compatibility but a new feature.

so twinbasic or rad, if they only focus on legacy, it will be 10 years before they are ready to start adding new features. whats the point to make it when VB6 can do and because of the community still can do everything except a few things. we have the codebank for that. if your old project is not working is because u need to update it. thats life. I have updated everything I have to work with windows7-10.

64bit, right now is the less important thing. since 32bit still works.
the only reason for me to use a new IDE would be that the IDE itself is updated so that I dont need to use API/typelibs. whats the point if I still need to do it?

----------


## yereverluvinuncleber

> it will be 10 years before they are ready to start adding new features.


Well, I'm not sure about that...

His timescales are realistic and I don't think they include a 10 year hiatus. 100% compatible is his aim. I'm going to suggest that some of these new versions of VB6+ may not be suitable for you in the short term as it might take a lot to prize VB6 from your fingertips and insert something else. You sound happy enough with VB6 as it is. 

If you read the blurb on RADBasic, changes and improvements will come but not yet...

----------


## Schmidt

> Yes, you can use ActiveX/OCX.


"Using" ActiveX and "OLE-compatible-siting-support at compiler-level" are two entirely different pair of shoes.

For example - with a C-Compiler - (in case you used one to produce the IE-Control-hosting Demo),
you will only need a CreateWindowEx-based one-liner, to create an IE-Control on a ParentHwnd...


```
hWndIE = CreateWindowEx(0, "AtlAxWin", "https://google.com", WS_CHILD | WS_VISIBLE, 
                           10, 10, 800, 600, ParentHWnd, 0, GetModuleHandleW(0), 0);
```




> There is a demo using MSIE ocx, well, it's up to you if you believe it  https://www.youtube.com/watch?v=Fnw-cicpBR8


But how can we know, which method (in your compiler) you used, to show the IE-Control?

I have serious doubts, that you implemented full COM- and OLE-compatible siting of AX-Controls in your compiler.

Instead there is a very high probability, that you are using something "procedural and simple, CreateWindowEx-based"
(then using SendMessage-calls to communicate with the Control-hWnds, instead of early-bound COM-calls).

You mentioned already, that you have developed an entirely new rtLib with your own GUI-Control-implementations.

Why?

If you had proper COM- and OLE-siting support in your compiler (which is needed for 100% VB6-compatibility), 
you would not need to develop your own "GUI-control-runtime-lib" - instead you could make use of existing OCXes or other COM-based Control-libs.
(either in VB6-sourcecode, or from compiled Binaries).

Another thing, which raises suspicion (that COM-support is entirely missing), 
is your "external SoJo-Process" you currently use - also here, you seem to prefer to communicate via
Send- and PostMessage with the Controls hWnds (which in all likelyhood were sited via Controls.Add in a VB6-based SoJo-32Bit-Process).




> DAO support is not planned. Only ADO.


And that's another sentence which rings alarm-bells...

Because if your compiler is 100% compatible (meaning, that it comes with proper COM-Class-support), 
DAO would be supported automatically! (loadable earlybound just as any other COM-lib via the referenced dll/typelib -
since DAO ships with the System-OS, in the same way as the ADO-COM-libs and countless others)

I'd apprecieate it, when you would answer just these two questions:
1) Is there any COM-support in your current compiler-version, or not?
2) Is there even a Class-Concept in your current compiler-version?
...(because I've never seen any hints of that in any of your Demo-Videos)

Olaf

----------


## yereverluvinuncleber

You know I do see something rather ironic in the way that you, Olaf, keep your code, progress and technical methods closed and tightly clasped to your chest, preventing scrutiny and the asking of the sort of questions that you always ask others. This is my main point on this response.

It seems that the positive efforts of others inevitably end up in slanging matches where various parties try to disassemble and even denigrate the work of others without allowing the same open discussion for their own efforts. The poor developer then gets wrapped up into trying to defend his technical capabilities and spends more time arguing than getting on with his projects. Honestly, I know that as soon as any dev answers your questions you will come up with three more that are just as challenging to answer (and you will be perfectly able to defend why) but the end result is that it just drags the discussion down into a quagmire.

Whether you mean to do it or not the result is often the same. Some chaps here react defensively and then are forced to keep their code private to avoid the inevitable slanging match that always arises. I know at least three that gave up publicising or talking about their attempts to recreate/replace VB6 just because of the lead weights that are seemingly attached to these threads, bringing the poor developer down in the process.

My suggestion would be to phrase your technical questions in such a way that they appear as if you want clarification on how things will be achieved instead of always pointedly digging in an aggressive fashion as if you want the chap to fail.

You know a lot can be read into your tone and if a clever chap like you hasn't realised that already and hasn't already taken steps to mollify that tone, then we can be quite sure that your tone is exactly the one that you meant to provide.

My second point is this - I know it is useful to know the answers to certain technical questions but there are ways of asking without bringing the whole shebang down to the inevitable slanging match we always find here on these forums. Can we just not lighten it a bit and give the man some slack? 

Or conversely, open your own code to your own magnus opus to some scrutiny?

----------


## VB6 Programming

> DAO is not implemented as a matter of resources. For first version it will implement ADO. For further versions, a layer of compatibilty between DAO and ADO could be rethinked. Or, I was thinking it could be an stretch goal for kickstarter campaign as it will allow to contract or make a small team. And it will be more resources for implementing more features.


I'm not sure if you aren't implementing DAO and the Data control you can claim to be "100% compatible with your Visual Basic 6 projects".

Probably best to wait until you launch the preview/alpha version and we see what works and what doesn't.




> not sure about that.
> if you have a "software" that is still used, its also your job to keep it up to date. 
> so u cant expect that a new IDE will do it for you, so that your old OCX can still work.
> 
> for me a new IDE is not about my old project, they still work under VB6.


If a product advertises itself as being 100% VB6 compatible you should be able to expect that your old OCX should still work (at least as a 32 bit app). It would be good to have a bridge/shim to allow 32bit OCXs to work with 64bit apps.

For me, existing VB6 projects need to be able to be used with any VB6 replacement, with (almost) no changes. 

I look forward to the preview/alpha release.

----------


## radBasicHost

> not sure about that.
> if you have a "software" that is still used, its also your job to keep it up to date. 
> so u cant expect that a new IDE will do it for you, so that your old OCX can still work.
> 
> for me a new IDE is not about my old project, they still work under VB6. VB6 is still fully capable. VB6+32bit is still working well. except for some old component that causes issues. but is that really VB6 fault?
> 
> a new IDE should "fix" what VB6 was supposed to do if microsoft didnt abandon it.
> compatibility for windows 7,8,10. so forms and component would be placed correctly. that is not about back-compatibility but a new feature.
> 
> ...


Hi Baka,

I understand your point of view. But, for enterprise, compatibility is a must. There are prior messages about COM port (my PC didn't have any!) or DAO which it was deprecated a lot of years. There are other BASIC alternatives which have a Visual Basic dialect. Why we are still using VB6 then? It is all about compatibility. And first version is focused in it and easing the path from VB6 to RAD Basic. At frontend level (language) there won't be new features. At backend level there will be some new features as: 64-bit or Visual Styles support directly. But one key feature is that you could switch between environments VB6/RADBasic with no problems.

Sure, if we all are speaking about to reimplement VB6 and no more, it will be very little gain. You have to see 1.0 release as a first step, for later introducing new features as: Concurrency (threads), cross platform, and more.

And, as yereverluvinuncleber, no it won't be 10 years. I hope cycles of 1-2 years between major releases.

Regards.

Carles

----------


## radBasicHost

> I'm not sure if you aren't implementing DAO and the Data control you can claim to be "100% compatible with your Visual Basic 6 projects".
> 
> Probably best to wait until you launch the preview/alpha version and we see what works and what doesn't.
> 
> 
> 
> If a product advertises itself as being 100% VB6 compatible you should be able to expect that your old OCX should still work (at least as a 32 bit app). It would be good to have a bridge/shim to allow 32bit OCXs to work with 64bit apps.
> 
> For me, existing VB6 projects need to be able to be used with any VB6 replacement, with (almost) no changes. 
> ...


Sorry, I didn't explain well in this point.

Your OCX will work in 32 bit compilation. RAD Basic ships: IDE, compiler and new Runtime Library. This new runtime library allows:

- A maintained runtime. VB6 runtime is in patching mode for run applications in Windows 7/8/10. But, two summers ago a Windows Update broke VB Runtime in Windows 10. And the fix rolled out some days (or weeks, don't remember) later.
- 64 Bit support: New runtime Library is compiled into 32 and 64 bits.

So, if you use, for example, RichTextBox from RAD Basic RTL, you could compile to 64 bit, and in future access to newer features. If you use RICHTX32.OCX from VB6, you only compiles to 32 bit and use legacy code from 90's.

When I say it is not implemented/support, I mean in new Runtime Library, so you loose 64-bit support. About DAO implementation, it relies in a lot of VBA internal, so I have to test deeply if it will run without issues.

About allow 32bit OCX work with 64bit apps, yes, it's SOJO library: https://www.youtube.com/watch?v=YbcShyhze5g

Regards.

Carles.

----------


## Thierry69

Carles, have you seen my MP?

----------


## wqweto

> 1) Is there any COM-support in your current compiler-version, or not?


His machine currently does not have any COM ports! And next time instead of being passive-agressive just use "OLE-support" or "ActiveX-support" instead, not to scare the sh*t out of them poor developers :-))

cheers,
</wqw>

----------


## radBasicHost

> "Using" ActiveX and "OLE-compatible-siting-support at compiler-level" are two entirely different pair of shoes.
> 
> For example - with a C-Compiler - (in case you used one to produce the IE-Control-hosting Demo),
> you will only need a CreateWindowEx-based one-liner, to create an IE-Control on a ParentHwnd...
> 
> 
> ```
> hWndIE = CreateWindowEx(0, "AtlAxWin", "https://google.com", WS_CHILD | WS_VISIBLE, 
>                            10, 10, 800, 600, ParentHWnd, 0, GetModuleHandleW(0), 0);
> ...


Hi  Schmidt/Olaf,

As yereverluvinuncleber say, your repetitive attack to my persona didn't contribute in this thread. So, it will be the last message about this personal attacks. I will only answer technical questions from you and others. You seems to have a pretty good technical knowledge based on your posts and previous works. But your questions are tendentious from a technical view, I don't know if you lack knowledge on compilers fields or you are doing it on purpose. You are doubting about my knowledge of COM for about two years. I think 2 years are enough time for learning and implement something...

End of rant.

About your technical doubts:

I develop a new RT Lib with new controls because:
Using old and unmaintained OCX don't resolve the problem. You only have a new IDE, but no 64-bit support, no new features, no new Windows 10 controls, etc (You could review Microsoft Project Reunion: https://docs.microsoft.com/en-us/win...oject-reunion/)We have different approach here: cross platform. The new components are raw libraries, not COM objects. It could be exposed to COM if you want. RAD Basic can use COM and can generate COM (new OCX), but the runtime are pure C with no COM. Why? for cross platform support in further versions. Implementing cross platform COM runtime is a suicide. COM is based on idea of CORBA. And GNOME Bonobo and Mozilla XPCOM are similar COM implementations that they are deprecated. Also, COM are very tied to Windows.About your doubts in COM compiler support: Yes, it has little to none support, as in VB6 compiler (c2.exe). It is a crazy idea implement COM support in compiler  as it is implement printf in compiler. COM support in RAD Basic is in RBCOMLIB library, as in VB6 is in stdole. This library starts OLE SERVER. And there are a separated exe for implementation generator. The implementation is in plain C, as the while runtime, while COM/OLE are designed for C++, so it is very interesting supplying the virtual table in _IOleClientSiteEx structure. About your "suspicious" in SOJO: There is the only way to do it. Adobe Flash component in browsers works equal. You CAN NOT mix 32-bit and 64-bit addressees in same process. The only way is run two processes and passing messages between them. About DAO: My fault: I explained before. You can use this and other OCX components. But you will have to compile to 32-bit and you will continue with no support. DAO is an specially control as it is very coupled to VBA runtime. So, the problem won't be OCX, but the new environment. About class concept: Sure it will be. In fact, The C runtime is implemented in OOP. You worked with GTK and cairo, so you know how it works. Right now, Module classes didn't compile yet, they are only loaded in IDE. The project is in pre-alpha. If all was implemented already there won't be a kickstarter campaign and the GA version will be published already.

Yes, I keep saying RAD Basic is 100% compatible with VB6. But this does not mean that there aren't any bugs or behavior problems. They key difference is RAD Basic is focused in compatibility, full compatibility, so any different of behaviors is treated as a bug, meanwhile others BASIC implementations want to be as close as possible to VB6, but if there are differences they don't worry about them.

Carles.

----------


## radBasicHost

> His machine currently does not have any COM ports! And next time instead of being passive-agressive just use "OLE-support" or "ActiveX-support" instead, not to scare the sh*t out of them poor developers :-))
> 
> cheers,
> </wqw>


LOL

Thanks for a little of humour  :big yellow:

----------


## radBasicHost

> Carles, have you seen my MP?


Sorry, I haven't seen. I've just answered right now.

----------


## Schmidt

> His machine currently does not have any COM ports! 
> And next time instead of being passive-agressive just use "OLE-support" or "ActiveX-support" instead, 
> not to scare the sh*t out of them poor developers :-))


I take it, that your *entire* post was meant ironically, because -
 just went over my prior posting #143, looking for "passive aggressiveness" and didn't find anything like that.

And yes, from Carles follow-up postings - it seems he doesn't even understand the term "COM" in the right context.

@Carles
What I was talking about in #143 was COM/OLE (not the COM-ports for "serial devices").

Also (since you used this repeatedly in recent replies) - 
when you "plan to implement ADO" (but not DAO), this is "just plain wrong on so many levels".

What you need to implement is not "ADO" - but "proper COM/OLE-support".

As soon as you managed that at compiler-level, then there's "nothing further to implement"
(with regards to specific COM-libraries - as e.g. ADO-COM-libs or DAO-COM-libs, or whatever other COM-lib).

For example - the 64Bit-interpreter you find in VBScript, *does have* "COM/OLE-support" 
(and what it *does not have*, is "specific ADO- or DAO-support").

Here is the entire content for a little *.vbs-File, which shows that "64Bit-DAO-support" comes automatically,
when the language (the compiler or interpreter) has support for COM/OLE Class-Instancing and -Method-calling:


```
Dim  DBE 
Set  DBE = CreateObject("DAO.DBEngine.120")
With DBE.OpenDatabase("c:\temp\nwind.mdb")
  MsgBox .OpenRecordset("Select Count(*) From Orders")(0)
End With
```

The above shows the LateBound-version of COM/OLE-support (available via IDispatch) - 
whereas in your "100% compatible compiler" you'd have not only to support that LateBound-mode,
but also "EarlyBound-mode" ...
(meaning directly connecting to a given COM-Object-Instances VTable, using its TypeLib-Interface-derived method-signatures for direct COM-ABI-calls).

HTH

Olaf

----------


## Schmidt

> ... you, Olaf, keep your code, progress and technical methods closed and tightly clasped to your chest, ...


That's wrong...

First of all - I'm one of the devs, who contributed the most to the community (source-code-wise).
And as for the RC-libs I also provide - these are at least available (for everyones "own scrutiny") as free binaries.

That alone is already totally different from what was made available from the RadBasic-author
(where all we currently have is "promises" and a few videos).




> ...Can we just not lighten it a bit and give the man some slack?
> Or conversely, open your own code to your own magnus opus to some scrutiny?


As already said, the "magnus opus" can be (or better, already is) "scrutinized and used" by a lot of devs in their VB6 projects for about 15 years now.

And as for "some slack"... I did not claim that the author did "complete mockups"
(I'm fairly certain, that the outputs were produced by a working compiler or at least "translator" underneath)

All I did, was questioning the "current capabilities of that compiler" (because that's related to the authors "timeline-claims"):
- I made a few assumptions, how certain things were probably implemented
.. (note, that the Author did not deny any of those - so they were probably "right on the mark")
- and I asked technical questions - for example about Class- and COM-support at compiler-level
.. (Carles tried to answer these in the meantime - and my translation of what he wrote is: "currently not" 

And if the last point is true (no Class- or COM-support in the compiler currently) -
then the "deadline until the first test-version-binaries will be delivered" is (IMO) totally unrealistic.

Even with a 2 or 3-man team (in case the fund-raising is successful - and "decent help is brought on board"),
proper "100% compatible" COM- and VB6-Class-support will not be seen "for another year at least".

If you don't believe me, then feel free to ask wqweto or the trick in a PM, whether what I just wrote is correct or not.

And yes, "being questioned this way" might have hurt Carles on a personal level -
but he's the one who (so far) is "an unknown player in the VB6-community" -
and he's asking for money *before* "providing anything we can lay our hands on"

I seriously don't get why everybody is painting me "the devil incarnate" here in this thread, 
when I try for "a bit more clarification, before spending my money"...
such questions are entirely normal - and should be anticipated by Carles.


Olaf

----------


## yereverluvinuncleber

> I seriously don't get why everybody is painting me "the devil incarnate" here in this thread


So, are you telling me that my mental image of you is wrong? I had always imagined you WERE the devil.

<insert mental picture here of devil coding in super-speed using VB6, the music of "the devil came down to Georgia" playing in the background>

Olaf, I wholeheartedly apologise if I have painted you with an undeserved brush. The trouble is with these VB6+ threads they do seem to become downbeat and highly negative within a mere heartbeat or two. Your critical tone can seem acerbic at times. Once again, apologies if I ascribed a tone to your words that was not meant. I find a smiley or two always helps raise the tone.  :wave: 




> when I try for "a bit more clarification, before spending my money"...


I think your approach in this respect is correct and hopefully RADBasicHost can at least show you his direction, his intentions and his capability.

I just wanted to lighten this thread before it descended in that all too typical downward spiral. I can tell from RBHost's response that he has probably felt the same downward pressure applied.

----------


## SearchingDataOnly

> Hi  Schmidt/Olaf,
> 
> As yereverluvinuncleber say, your repetitive attack to my persona didn't contribute in this thread. So, it will be the last message about this personal attacks. I will only answer technical questions from you and others. You seems to have a pretty good technical knowledge based on your posts and previous works. But your questions are tendentious from a technical view, I don't know if you lack knowledge on compilers fields or you are doing it on purpose. You are doubting about my knowledge of COM for about two years. I think 2 years are enough time for learning and implement something...


Hi radBasicHost,

First of all, congratulations on your progress. I don't think Olaf is attacking you at all, he is just discussing technical issues. And the questions he raised are very in-depth, and bystanders as well as you can learn a lot from them.

Please relax. This is a technical forum, and discussing technical questions is the greatest value and greatest charm of this forum. 

Rooting for you.

Edit:
Also, IMO, even if RADBasic does not support COM, it's still valuable and has practical application scenarios.

----------


## radBasicHost

> Hi radBasicHost,
> 
> First of all, congratulations on your progress. I don't think Olaf is attacking you at all, he is just discussing technical issues. And the questions he raised are very in-depth, and bystanders as well as you can learn a lot from them.
> 
> Please relax. This is a technical forum, and discussing technical questions is the greatest value and greatest charm of this forum. 
> 
> Rooting for you.
> 
> Edit:
> Also, IMO, even if RADBasic does not support COM, it's still valuable and has practical application scenarios.


Thanks for your congrats.

Sure, I like discuss any technical issues. I discussed a lot in public and in private with members of this forum. I'm very relaxed about it.

But, I want to discuss about technical issues of the project. Not about my knowledge of COM, not about defending if it is a fake or not, not insinuating I don't differentiate between COM ports and COM components. This is not technical discussion. This is trolling. And it is said: Don't feed the troll.

If you find me in twitter, you will see there people from Microsoft following me (they have the blue check). I think they would have found out if all the project was a big fake, as it is suggested.

Carles.

----------


## radBasicHost

> @Carles
> What I was talking about in #143 was COM/OLE (not the COM-ports for "serial devices").


Thanks Olaf.

I'm not native English, so I explained very bad, as I see.

The only reference of COM-ports was in #134, about implementing old features. It was a reference to an example of legacy/old features which people are demanding.

Thanks for joking/distorting.



```
.. (note, that the Author did not deny any of those - so they were probably "right on the mark")
```

Sorry, for not being enough clear. 

Your suggestion:


```
hWndIE = CreateWindowEx(0, "AtlAxWin", "https://google.com", WS_CHILD | WS_VISIBLE, 
                           10, 10, 800, 600, ParentHWnd, 0, GetModuleHandleW(0), 0);
```

Is completely FALSE.

The code is something like:



```
if (!(ptr = (char *)GlobalAlloc(GMEM_FIXED, sizeof(_IOleClientSiteEx) + sizeof(IOleObject *))))
		return(-1);

_iOleClientSiteEx = (_IOleClientSiteEx *)(ptr + sizeof(IOleObject *));
_iOleClientSiteEx->client.lpVtbl = &MyIOleClientSiteTable;

_iOleClientSiteEx->inplace.inplace.lpVtbl = &MyIOleInPlaceSiteTable;

_iOleClientSiteEx->inplace.frame.frame.lpVtbl = &MyIOleInPlaceFrameTable;

_iOleClientSiteEx->inplace.frame.window = hwnd;

_iOleClientSiteEx->ui.ui.lpVtbl = &MyIDocHostUIHandlerTable;
pClassFactory = 0;
if (!CoGetClassObject(&CLSID_WebBrowser, CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER, NULL, &IID_IClassFactory, (void **)&pClassFactory) && pClassFactory)
{
    if (!pClassFactory->lpVtbl->CreateInstance(pClassFactory, 0, &IID_IOleObject, &browserObject))
    {
        pClassFactory->lpVtbl->Release(pClassFactory);
        *((IOleObject **)ptr) = browserObject;
        SetWindowLong(hwnd, GWLP_USERDATA, (LONG)ptr);
        ...............
```

As I'm said, the compiler has nothing related to COM/OLE. it is all implemented in RBCOMLIB library, which is linked in compile time. This library wrap the COM complexity and compiler make calls to this library. Same as C calling printf, same as VB6 COM implementation, which is wrapped in stdole library. So generated code is simpler as glue code goes into library.



```
What you need to implement is not "ADO" - but "proper COM/OLE-support".
```

You are completely wrong. Doing this: how will go multi-platform, 64-bit support? Who will maintain ADO OCX? YOU HAVE TO REIMPLEMENT ALL THE STACK. Runtime Libary has to be reimplemented. If not, in a few years you could have a shinny new compile who does nothing because any legacy OCX works in new Windows.

Olaf: I prefer to discuss about the project, not about personal issues.

Carles

----------


## Schmidt

> I'm not native English, so I explained very bad, as I see.


Most of the participants in this thread aren't native speakers either (myself included).
Guess, we all have to try our best in this regard, to avoid further misunderstandings...




> Your suggestion:
> 
> 
> ```
> hWndIE = CreateWindowEx(0, "AtlAxWin", "https://google.com", WS_CHILD | WS_VISIBLE, 
>                            10, 10, 800, 600, ParentHWnd, 0, GetModuleHandleW(0), 0);
> ```
> 
> Is completely FALSE.


Ok, no problem - your alternative (longer) code-snippet is apparently using Ole-siting interfaces - 
but my problem with that snippet is the part I've marked blue below:

if (!CoGetClassObject(&CLSID_WebBrowser, CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER, ...

This is (for me at least, not sure how others see it) - a hint, that the OLE-siting in your RBCOMLIB is 
currently used for the IE-Control *exclusively*.

And that in turn suggests, that you were not really aware that this IE-specific instancing-code-block already contained
all the needed pieces for *generic* OLE-siting (which would then work with any Control-ClassID from any OCX-lib).




> As I'm said, the compiler has nothing related to COM/OLE.


I'm sorry, but in that case your proposed "100% compatibility" is a lie, 
because - all the VB6-CodeSnippets:
- which rely on member- and pointer-positions behind the OLE-Variant-struct will not work
- which rely on "pointer-magic" behind OLE-SafeArray-structs will not work
- which rely on the IUnknown-interface behind Class-instances will not work
- which rely on the IDispatch-interface (As Object) behind Classes (for LateBound-support) will not work (CallByName?)
- which rely on the IEnumVariant-interface when implementing For-Each support will not work
- which rely on Class method-signatures, compatible with the COM-ABI (when using pointerbased method-calls) will not work
- Event-related Code which relies on IConnectionPointContainer & Co (to exist underneath) will not work
- VB6-Code which relies on, that Class-interface-casting is performed via IUnknow.QueryInterface will not work

Furthermore, a "100% compatible compiler" has to be able to produce "native Dlls with Classes in it".
And I can assure you, that (e.g. the VBA-folks) will expect these Class-Dlls to be "100% usable" 
also in "other COM-capable host-processes" (like MS-Office).




> Who will maintain ADO OCX?


Not sure, if this is "just another language-barrier-issue" - but JFTR:
The term OCX implies "Visual Controls".

But when we mentioned ADO or DAO further above, we meant the "*non-visual* DB-access-layer-classes",
which are usually associated with these terms (including all the Sub-dependencies further down, like OleDB- or ODBC-drivers).

It seems you are much too focused on "visual Controls" currently (which is an important part of VB6, sure - but nowhere near "all of what it does and needs").

See, my whole listing of the 8 points above (describing the things which would break, when you don't implement COM/OLE at compiler-level),
are the foundation of "*non-visual* VB6-code" which needs to work first (to remain true to your 100% goal), before you can even think about implementing a GUI on top of that.

Olaf

----------


## radBasicHost

> Most of the participants in this thread aren't native speakers either (myself included).
> Guess, we all have to try our best in this regard, to avoid further misunderstandings...
> 
> 
> 
> Ok, no problem - your alternative (longer) code-snippet is apparently using Ole-siting interfaces - 
> but my problem with that snippet is the part I've marked blue below:
> 
> if (!CoGetClassObject(&CLSID_WebBrowser, CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER, ...
> ...


You could continuing saying I'm lying, so this is my last post, as this isn't a technical discusion. 

Your assumptions, Olaf, are very, very wrong. 

```
See, my whole listing of the 8 points above (describing the things which would break, when you don't implement COM/OLE at compiler-level),
```

It is a stupid idea making it in compiler level. See, Visual Basic 6 din't make it at compiler level neither. Most of us working in compiler field had read (or be recommended to read) the Dragon Book. The authors just received ACM Turing Award, check: https://news.stanford.edu/2021/03/31...-turing-award/. Give it a try.

Carles

----------


## Schmidt

> You could continuing saying I'm lying, ...
> ... It is a stupid idea making it in compiler level ...


Well, let's reformulate then:

With your insistence on not supporting the following at compiler-level ("because it's stupid"):
- Ole-Variants
- Ole-SafeArrays 
- a COM-compatible class-concept with at least IUnknown, IDispatch and IEnumVariant-support

... the VB6-compatibility of your planned basic-language will be reduced to about 20-30% only...
(and is then comparable roughly to the free and existing QB64- or FreeBasic-compilers - which are "out of the beta-phase" for years now).

You are not a VB6-"PowerUser", because otherwise you would know -
that already slightly advanced VB6-CodeSnippets will contain the usage of:
- VarPtr(SomeVariant)  
- ArrPtr(SomeVB6Array)
- or ObjPtr(SomeVB6ClassInstance)

What do you think people expect behind these pointers in their following code-lines...
(when Offsets are applied on those pointers - and/or further dereferencing takes place, or ObjPtrs get passed to Win32-APIs)?

If you insist on doing your own "flexible Variant-like Type", or your own Array-implementations, your own Class-concept" - 
then your compiler will basically break every VB6-code, with a complexity above "Hello-World-Level".

Ok, now that I've pointed this problem out to you already the third time...

Lying is defined as: "knowingly making a wrong claim" (the claim being: "100% VB6-compatibility")

So, in case you are still not ready to accept what I wrote above as the truth, 
you're probably right, that you as a person were not lying (only the claim itself is a lie - but I wrote that already).

But in that case, "unknowingly  making a wrong claim" would apply - 
and I leave it as an exercise to the reader, to find a shorter word for that.

Olaf

----------


## yereverluvinuncleber

RADBasic KickStarter has started!

https://www.kickstarter.com/projects...sic-6-solution

I have contributed. I think it is a noble cause and we all need to contribute to the projects that are trying to keep our skills alive. In the scheme of things a few quid/bucks it isn't much and I can afford to donate something.

It seems that we have a few possibilities with VB6+ and I will probably end up donating to more than one... VB6 has helped me over the years and it feels time to give something back. For the first time in a long time we can.

----------


## vbrad

> RADBasic KickStarter has started!
> 
> https://www.kickstarter.com/projects...sic-6-solution
> 
> I have contributed. I think it is a noble cause and we all need to contribute to the projects that are trying to keep our skills alive. In the scheme of things a few quid/bucks it isn't much and I can afford to donate something.
> 
> It seems that we have a few possibilities with VB6+ and I will probably end up donating to more than one... VB6 has helped me over the years and it feels time to give something back. For the first time in a long time we can.


I backed it too after seeing your post. I'm sure there must be 500 people out there willing to risk 120 each to get this off the ground, it's making them aware that might be the hard part.
This thread is fairly well hidden away on this forum.

----------


## baka

nothing to download yet? a preview edition of sort?

----------


## CreativeDreamer

I decided to join the kickstart and backed RadBasic for the 75 pledge (Pro version) to try to get it off and running. It would be great to see RadBasic and TwinBasic being developed as replacements to MS Vb6, with both being able to use vb6 source code. 
I wonder if they will both succeed. I hope so.  I bought Clarion many years ago, but that seemed to disappear. Wouldn't it be great to see all the old vb6 developers convert their programs to new 64bit code. 
Thanks Carles Royan and Wayne Phillips for trying to get RadBasic and TwinBasic into reality. 

Regards Eddie Bole (ex uploader to PlanetVb)

----------


## wqweto

> (ex uploader to PlanetVb)


FYI, https://github.com/Planet-Source-Cod...1-00e__1-70874

cheers,
</wqw>

----------


## CreativeDreamer

Ah SummStats was an old vb6 project that I ended up deleting from PlanetVb, but somehow it survived. I ended up making over 100 newer projects and met some fantastic vb6 programmers there. I miss PlanetVb alot. I hope that Ian (the creator of PlanetVb) is OK, as the USA was hit hard by Covid-19.

----------


## radBasicHost

Thanks to everyone who is supporting the project and specially who backed to it in Kickstarter.

I'm working hard for showing more news along the campaign.

Have a big hug!

Carles Royan

----------


## imotion

well ive seen comments of all kinds, someones bad instead of support, dont lose your time, this and that, go for it the world needs VB7 not the vb.net experiment, or whatever it was cause i cant get good ideas about why .net, the power for the people, for the young ones, for the amateur programmer or for the advanced ones at same time, back things to its course

I think if it goes ok and you folks are able it can be a big success as VB6 was being, if it is simple to manage, intuitive, and nice look an feel, but a bit more powerful than VB6 or with chances to improve, if you can make a simple program with 4 mouse drags 4 clicks, and run> here we go, with not complicated compiling options or a default standard and stable ones, portable no installer or just an extractor, no files and parts of program spreaded in all the system folders plus hidden registry options, and finally i dont say this for myself but i think is key too, a features generous free version so its accesible by everybody and more popular

well that was just opinions and ideas, but the point is to send best wishes and tell work hard lol, I will like much to follow the news now and then  :Smilie:

----------


## Krool

> ... the VB6-compatibility of your planned basic-language will be reduced to about 20-30% only...


I need to second that and reading the responses from radBasicHost it gives little hope and all looks more like "marketing".
The compatibility will then look like going from VB6 to VB.Net.
A simple hello world app will look fine but anything going fancy/advanced will fail.

----------


## SearchingDataOnly

Olaf explained his concerns from technical points of view, which are very valuable. Obviously, Carles Royan(the author of RadBasic) has very limited understanding of "compatibility", and the possibility that he can achieve 100% compatibility with VB6 is almost zero.

But I'd like to show my view from another angle:
When I plan to start a brand new project, I probably know nothing about the project and don't have any technical reserves. So in the initial planning, many of my technical solutions are often wrong. But as long as I start this project, I will continue to adjust my technical solutions until I find the right (or even the best) solution. In the end, I can still complete my project. Of course, the progress of the project may be delayed a lot.

What I want to say is that the most difficult stage of a project is usually the stage from 0 to 1, and the stage from 1 to 10 or 10 to 100 is relatively easy.
What is the 0 to 1 stage? This is the stage where you decide to start this project. As long as you are determined to start this project, then you have completed the 0 to 1 stage.

If Carles Royan(the author of RadBasic) has started the development of the RadBasic compiler, then I think he has completed the stage 0 to 1. He will continue to encounter many new problems during the development process and continue to modify his own technical solutions. As long as he can keep going, I believe he can achieve his goal. The question is whether he can keep going.

Of course, any fraudulent technical behavior for marketing purposes is meaningless, and they will be quickly spotted by the technical experts here.

----------


## vbrad

> Olaf explained his concerns from technical points of view, which are very valuable. Obviously, Carles Royan(the author of RadBasic) has very limited understanding of "compatibility", and the possibility that he can achieve 100% compatibility with VB6 is almost zero.
> 
> But I'd like to show my view from another angle:
> When I plan to start a brand new project, I probably know nothing about the project and don't have any technical reserves. So in the initial planning, many of my technical solutions are often wrong. But as long as I start this project, I will continue to adjust my technical solutions until I find the right (or even the best) solution. In the end, I can still complete my project. Of course, the progress of the project may be delayed a lot.
> 
> What I want to say is that the most difficult stage of a project is usually the stage from 0 to 1, and the stage from 1 to 10 or 10 to 100 is relatively easy.
> What is the 0 to 1 stage? This is the stage where you decide to start this project. As long as you are determined to start this project, then you have completed the 0 to 1 stage.
> 
> If Carles Royan(the author of RadBasic) has started the development of the RadBasic compiler, then I think he has completed the stage 0 to 1. He will continue to encounter many new problems during the development process and continue to modify his own technical solutions. As long as he can keep going, I believe he can achieve his goal. The question is whether he can keep going.
> ...



There are easier ways to commit fraud than by hoodwinking users of a programming language that's not been updated for 23 years. 
I believe that Carles is a sincere person.
I'm willing to lose the small amount of money (120) I backed him with.
If he doesn't succeed I'd believe that he had a made a sincere effort.
No shame in failure.
I would back Twinbasic too if they ask.
I don't have the skills to do what these people are doing, the only way i can help is with money.

----------


## yereverluvinuncleber

> There are easier ways to commit fraud than by hoodwinking users of a programming language that's not been updated for 23 years. 
> I believe that Carles is a sincere person.


You are absolutely right... Carles is a very nice person, completely sincere, a family man who believes he has the technical capability to implement a VB6 replacement. He has a novel approach and he has passion for what he intends to achieve.

----------


## SearchingDataOnly

Yes, in many cases, passion is more important than technology.

Although from a technical point of view, I know that Carles will encounter a lot of difficulties, but in my opinion, Carles is a sincere person with big goals, I look forward to and wish him success.

----------


## SearchingDataOnly

> 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.


Just now I noticed that the IDE and Compiler of RADBasic were developed in *C#*. I think this is very interesting. It is a new idea and a new solution. Looking forward to Carles Royan's success.

Note: The compilers of twinBasic and Olaf's VB.Next seem to be developed in C++.

----------


## baka

the compiler can be made from any language, since in the end its about creating binary data that can run.
so the person that creates the program need vast knowledge of how to interpreter programming text into machine code. that can be done in any language that can save data to a file.
so, c# or c++ or vb or pascal or any other language can be used here, and I see no difference in the language but more difference from dev to dev, since that is where the knowledge and ambition resides.

my question is, why is C# interesting and a new idea/solution compared to c++?
what is C# that is different from C++?

----------


## vbrad

> the compiler can be made from any language, since in the end its about creating binary data that can run.
> so the person that creates the program need vast knowledge of how to interpreter programming text into machine code. that can be done in any language that can save data to a file.
> so, c# or c++ or vb or pascal or any other language can be used here, and I see no difference in the language but more difference from dev to dev, since that is where the knowledge and ambition resides.
> 
> my question is, why is C# interesting and a new idea/solution compared to c++?
> what is C# that is different from C++?


More pleasant to work with, anyway, I believe.

----------


## SearchingDataOnly

> the compiler can be made from any language, since in the end its about creating binary data that can run.
> so the person that creates the program need vast knowledge of how to interpreter programming text into machine code. that can be done in any language that can save data to a file.
> so, c# or c++ or vb or pascal or any other language can be used here, and I see no difference in the language but more difference from dev to dev, since that is where the knowledge and ambition resides.


IMO, it seems that there is no way to use VB6 to develop a new VB.Next Compiler, otherwise, almost everyone here would like to see a VB.Next Compiler and IDE developed with vb6.

I would rather see someone develop a VB.Next compiler with Rust or Golang. The workload of developing a compiler in C++ is too great.




> my question is, why is C# interesting and a new idea/solution compared to c++?
> what is C# that is different from C++?


Because C# can use a lot of .NET libs and and some existing solutions (such as cross-platform and 64-bit), it can reduce the workload of development and greatly speed up the development progress. In addition, C# code is easier to read and debug than C++.

----------


## baka

exactly what  Eduardo- said. 
its about knowledge to create such thing.
maybe the reason theres no VB6 IDE/compiler is because a programmer with the knowledge of C/C++ would have better understanding in low-level programming. 
a VB6 programmer, would be better in creating applications and all the "visual components" that VB6 has, instead of learning low-level stuff.
its not strange that someone that "helps out" to expand VB6 with new ideas and tricks, usually also have knowledge of C/C++
so, its not that VB6 can't do it, but the programmers dont have enough knowledge of how to create a compiler.
and why spend time creating a compiler in VB6, when u can do it in C/C++ where u have access to low-level functions and most of the time, if you google about something low-level, you get sources in c/c++ and not in VB6.
that is why most of the time, when we want something "new" we need to convert c++ to vb6.
but that doesnt mean it can't be done in VB6

----------


## SearchingDataOnly

Yes, according to your logic, I can also say the same: VB6 can also develop OS. The reason why no one does this is because they do not have enough low-level knowledge. We can also use VB6 to develop Android and iOS applications. The reason why no one does this is because they don't have enough knowledge.

You can even say that as long as you can read and write binary files, then in theory you can complete all the software in the world. Even further, as long as you know the two numbers 0 and 1, you can completely rewrite and create a whole new software world.

You can use your words and logic in many places. It's just that they don't make any sense.

----------


## baka

that logic is flawed.
a compiler is like an interpreter, it will read strings and convert it into header/assembler/machine code.
that part, any language can do, as long you know the header/protocol of how an executable are made of.

to create an OS, or an application from another OS is not the same thing, this because theres better languages that are made for that purpose. for OS you need low-level language, and for android, the best tools would be based in that OS, not another OS.

everything is about time. 
1. your own knowledge
2. knowledge you can get from books/internet
3. sources available that you can obtain
4. how flexible the programming language you are using is, can it do what you need?

10 years ago I learned how to change binary data from a swf file, I learned the jumpers, the string-pool etc, so that I could inject code, expand the string-pool etc. that part I learned by studying how swf are "compiled". of course, I never learned everything, but enough for my needs. after that I created projects in VB6 to manipulate swf.

the same method could be said for the 32-bit executable. first I need to learn how it works, after that, I can use any language.
but you fail to understand that part. you think its about the language, but its not the language that is the problem but the knowledge how to do a working executable.

----------


## SearchingDataOnly

If the same words (for example, VB6 can develop a new VB.Next compiler) are spoken by firehacker, or The trick or Olaf, then the meaning is completely different.

----------


## SearchingDataOnly

> that logic is flawed.
> a compiler is like an interpreter, it will read strings and convert it into header/assembler/machine code.
> that part, any language can do, as long you know the header/protocol of how an executable are made of.
> 
> to create an OS, or an application from another OS is not the same thing, this because theres better languages that are made for that purpose. for OS you need low-level language, and for android, the best tools would be based in that OS, not another OS.
> 
> everything is about time. 
> 1. your own knowledge
> 2. knowledge you can get from books/internet
> ...


You said a lot, but I don't know what you mean by it.

When I say "it seems that there is no way to use VB6 to develop a new VB.Next Compiler", it means the following two situations:
(1) There are technical difficulties in developing VB.Next Compiler in VB6
(2) It takes more time and resources to develop VB.Next Compiler in VB6 than C and C++.

If a person wants to prove that "VB6 can develop a new VB.Next compiler" then he needs to prove two points:
(1) There are no technical obstacles in developing VB.Next Compiler in VB6
(2) It takes less time and effort to develop VB.Next Compiler in VB6 than C, C++

I don't think you can prove the above two points.

Why do I think it is interesting to develop the VB.Next compiler in C#? Because:
(1) At present, most compilers are developed in C and C++. There are few cases of using C# to develop compilers, and even fewer people try to develop VB.Next compilers in C# (at least I have not seen it before )
(2) If it is feasible to develop the VB.Next compiler in C# (that is, the compiler can be successfully developed), it basically proves that it takes less time and effort to develop VB.Next Compiler in C# than C, C++

This is also the reason why I want to see someone develop a compiler using Rust and Golang.

I don't understand why you like to argue about issues that have nothing to do with you.

----------


## yereverluvinuncleber

SearchingDataOnly, you seem to be arguing over semantics. I am CERTAIN you could develop a compiler in VB6. 

Obviously, it would take skill and experience, no need to state that. The question is simply whether it would be sensible or appropriate to do so. Like all low level functionality it makes sense to use the languages and tools that are most suitable for the job.  VB6 would seem more suitable than some of the current higher languages that abound these days but still not really the best choice when setting out on such a task, the end result being a heap of work that could only ever be built on windows. 

in order take advantage of other platforms the whole compiler would need to be rewritten at some point in the future in C or C++ , so it would be obviously best to start out in a language that would allow a VB6 compiler to recompiled for any platform, Linux, os x, android &c - as they all have C or C++ implemented already.

Therefore, this is a silly discussion. Of course it can be done but no-one is going to do it, except for fun I suppose. IF that sort of thing has ever "rocked someone's boat" then I would have expected to see it already. Just like an operating system built in VB6, the ReactOS team regularly laugh at such an idea as an in-house joke - creating a VB6 compiler makes no logical sense.

However, I am certain Olaf 'could' do it if he wanted to and has probably already demonstrated to himself the technical feasibility of the concept. 

Shall we get back to RADBasic?

----------


## Krool

So, as it was stated in the live presentation, radBasic is not COM based, because it is difficult for cross-platform.
But what is the purpose then?

----------


## Arnoutdv

If it is not COM based then it can not replace the functionality of VB6.
It's just another on BASIC based programming language.

----------


## Eduardo-

The issue of supporting COM along with the goal of being cross-platform is the subject that I understand less of RB (and tB).

It is not clear to me whether RB is COM based, not COM based, but he was quite clear that it will support COM (OLE/ActiveX).

What does "COM based" mean anyway?
He was quite clear that it will support COM components. Not only in yesterday's presentation, but it is something that he said from the start.
But I have lot of questions, like: will those same ActiveX components run on Linux/Mac?  ... Android... I don't think so... but I don't know how all that related to COM is supposed to work.

The first goal of RB is to be able to open almost any VB6 project and run it, so COM support is taken for granted I think.

BTW: I liked the presentation

PS: but as long as they understand what they are doing, I wait to see what they come with.

----------


## Eduardo-

I realize too, that none of my components would run on Linux or Mac, since they all use Windows APIs, even if COM is simulated. 

And that will probably apply to most other components too.

----------


## yereverluvinuncleber

Perhaps our job is to pick up a version of BASIC for other oses, one that runs on multiple oses (GAMBAS?) and start to code something that will replace those most-used Windows APIs, one by one with some functionality, a stub of some sort that provides similar function from the new o/s?

- or perhaps use those created by ReactOS/Wine projects and expose them in some way so that our BASIC code can run without the whole of Wine (just a pipe dream methinks) but it might be place to start, to at least see what they meant to provide and how they do it.

I think that Carles' approach is to make a direct replacement but whether it will be able to replace everything is currently a moot point and for the future, if you want to go multi-platform then you will have to abandon those APIs and find an alternative.

In VB6's use of APIs, VB was really just logic glue supporting a close language - o/s symbiosis.  If Windows is removed from the picture then your logic will still work but you will have to replace all that integration with the same functionality but for a new o/s. You will have to do that anyway if contemplating moving from Windows and I suppose as a result RAD BASIC is offering you two things, a future on Windows if MS pulls out the rug and later on, a less painful transition method to a new platform.

In the future, both TB and RB are offering a chance to code for a new o/s in a very similar language but the API code has never really been a true part of VB6. Using them so prolifically we are all doing Windows coding,  working around the limitations of VB6 inabilities to do this or that. 

For me, it is the future for VB6 on Windows that worries me. I expect MS to announce the death of 32 bit apps sooner than you think. Therefore you will be forced to run XP on a VM, Wine on Linux (but only for a short time as it goes 64bit too) or ReactOS. 

With RB on Windows we have a potential future on a 64bit o/s.

----------


## radBasicHost

Hi,

Let me try to clarify some points:

*1. COM Based?*




> If it is not COM based then it can not replace the functionality of VB6.
> It's just another on BASIC based programming language.


No, it's not true. It is not need of reimplementing in the same way for achieving source code compatibility. Visual Basic 6 controls are in fact Windows Common Controls. They are wrapped with ActiveX, but it doesn't have too. It is a matter of how VB4+ was designed, not about what was needed. OLE/OLE2/OCX was introducing in Windows 3.1 era as a substitute of DDE, and "new" Windows 95 was a great adoption of this technology. So, with transition from VB3 to VB4 VBX components were abandoned in favor of OCX. It was product strategy, as it was the abandon of VB6 in favor of .NET.

But as I stated, you could do exactly the same calling Windows API without the COM wrapped of VB.

*2. About COM support*

Not being COM based doesn't mean not support. Let me name here Embarcadero Delphi: their runtime is not com based (VCL is not COM based, neither is FMX). But you can use ActiveX controls inside your Delphi applications with no problem.

The point is: trying to emulate Visual Basic 6 is a mistake. The goal is achieve full compatibility at source code level, that is, compile all of your projects without any modifications. Not being compatible at runtime level, as it is nearly impossible. Think about C compilers: MSVC, GCC, CLANG, BCC (c++ builder) all of them will compile your source code without problem. You could switch between each of them. But, compiler implementation are very different. STDLIB are very different. And it is not a matter. Visual Basic 6 and RAD Basic is the same. Implementation are different, but don't matter as the behaves in some way. And both behaves equally because both are using same WINAPI, whatever the wrapper library is used.

*3. About cross platform*




> The issue of supporting COM along with the goal of being cross-platform is the subject that I understand less of RB (and tB).
> 
> It is not clear to me whether RB is COM based, not COM based, but he was quite clear that it will support COM (OLE/ActiveX).
> 
> What does "COM based" mean anyway?
> He was quite clear that it will support COM components. Not only in yesterday's presentation, but it is something that he said from the start.
> But I have lot of questions, like: will those same ActiveX components run on Linux/Mac? ... Android... I don't think so... but I don't know how all that related to COM is supposed to work.
> 
> The first goal of RB is to be able to open almost any VB6 project and run it, so COM support is taken for granted I think.


I couldn't say nothing about TB purposes. 

About RB: You have to think as how works in Embarcadero Deplhi. They have VCL controls (new/old controls from 90's Borland Delphi ) for pure Win32 development. And they have FMX for cross platform. RAD Basic is designed and it will work in some way. 

- If you works with VB6 project, you works with native windows controls, you could use COM/OCX, and you have all power of windows API (32/64 bit), but you lack cross platform.
- If you converts your project into RAD Basic cross platform project (this feature will be available in next versions, not in 1.0 release), you will have cross platform support, but you lack some windows specifics as COM use. As Eduardo said: although it could be some cross platform support, your COM objects will fail due to win32 api dependencies. You could try running under WINE, but there are chances it will fail.

Finally,




> I think that Carles' approach is to make a direct replacement but whether it will be able to replace everything is currently a moot point and for the future, if you want to go multi-platform then you will have to abandon those APIs and find an alternative.


I developed a lot of cross platform applications in C++/QT and java. And the least important thing is compiler/framework. You have to develop with cross platform in mind. I came across with java projects (king of multiplatform?Â¿) which only can run on Windows. So, as I stated previously, for multi-platform you will have to "convert" your project and review it if it really could be a cross-platform project or it have some Windows thingy tied.

Regards,

Carles Royan

----------


## Schmidt

[About COM-A*B*I compatibility, as a requirement of any compiler, which wants to be 100% compatible...]




> *1. COM Based?*
> 
> No, it's not true. It is not need of reimplementing in the same way for achieving source code compatibility.


Carles -again - this is wrong on so many levels (and the reason I'm not supporting your project).

I'm trying to explain it again to you now:

A compiler which aims for 100% VB6/VBA compatibility has to support Classes and the WithEvents statement, period.

Furthermore, you have *no* "free choice" about, how you implement this class-support at compiler-level
(when you want 100% Class-compatibility to VB6/VBA).

Instead these Classes your new compiler produces, have to support (need to implement, need to be based on):
- IUnknown (which ensures a Ref-Counting, self-cleanup scheme for these Classes, along with "discoverability")
- IDispatch (with IUnknown underneath)
- IEnumVariant: IUnknown (for compatible For Each support)
- IConnectionPoint, IConnectionPointContainer (also IUnknown-derived)
- IEnumConnectionPoints, IEnumConnections (IUnknown-derived, similar to IEnumVariant)
- the Implements-Keyword needs to be supported in a COM-compatible way

That's the interfaces your compilers Class-concept has to adhere to, for 100% compatibility,
and what I meant with COM-A*B*I compatibility above (ABI == Application-Binary-Interface).

COM-ABI-compatibilty also requires a certain Method-call-scheme for the routines behind the VTable-pointer of your class-instances:
- __stdcall
- and always returning a HResult (even for a VB-Sub-definition) HResult = Vtable->Method(this As tMyClass, normal Params)

Only then, can you produce Class-Dlls with your new compiler (an absolute requirement for 100% compatibility),
 which will be usable in other Clients which "understand, and can use COM-classes" (MS-Office, VBScript, .NET etc.).

*And* only then will you be able, to use Class-Dlls not produced by RadBasic without problems in RadBasic itself.

Furthermore, there is often the need, to *pass* Class-instances into Class-methods of "external COM-Dlls".
(these Methods then expecting a certain implemented Interface in the "passed Class-instance".

All I was talking about above, has nothing to do (yet) - with ActiveX-Controls (which in your understanding is "COM").

I was only talking about "normal, non-visual VB6-Classes".

The twinBasic-author is fully aware of everything I wrote above - but (sorry to say it that frankly) you are not.

That doesn't mean that RadBasic (on the way it currently is), wouldn't attract some people (in some years, when it's finished) - 
but it certainly is not "100% VB6-compatible" (without supporting a VB6/VBA compatible Class-concept).

And as for "will a Class-concept, when being implemented in the way I've mentioned above" (IUnknown, IDispatch etc.),
be compilable on Linux, Android, Mac and other platforms?

Definitely yes - and that without needing "Wine".
The handful of interfaces I've listed above have (on average) "4 methods each".
And these methods (when implemented by hand, not delegating to some MS-Helpers in the atl.dll),
can ensure that this Class-concept will work also on other platforms (whilst not torpedoing advanced usage of these classes on Windows).

HTH

Olaf

----------


## radBasicHost

> [About COM-A*B*I compatibility, as a requirement of any compiler, which wants to be 100% compatible...]
> 
> Carles -again - this is wrong on so many levels (and the reason I'm not supporting your project).
> 
> Olaf


Hi Olaf, this is your point of view. I think you are wrong in so many levels too. I love you had some respect this time  :Smilie:  And no problem about supporting my project, I see you are busy with TwinBasic supporting, which is great  :Smilie: 

I know you love COM world and you think you have to get very coupled to this. But it is not the only way.

You say:




> Instead these Classes your new compiler produces, have to support (need to implement, need to be based on):
> - IUnknown (which ensures a Ref-Counting, self-cleanup scheme for these Classes, along with "discoverability")
> - IDispatch (with IUnknown underneath)
> - IEnumVariant: IUnknown (for compatible For Each support)
> - IConnectionPoint, IConnectionPointContainer (also IUnknown-derived)
> - IEnumConnectionPoints, IEnumConnections (IUnknown-derived, similar to IEnumVariant)
> - the Implements-Keyword needs to be supported in a COM-compatible way


This is ONLY true when you build classes for COM exposure. If your don't expose this classes to COM (as is an exe project with CLS or UserControls, which remains in it) there is no need to expose COM, get GUID, implements IUnknown with AddRef, QueryInterface methods, etc. So, although runtime is not COM based (memory management, strings management, controls -textbox, commandbuttons, and so on -, error management, IO, etc.), when you compiler a OCX project, the output compilation will expose the COM interface, but the implementation will be using RAD Basic plain C libs. And it is how COM works, as you now: Process using COM objects don't have how are implemented and in which language. In fact, most or all of the OCX from VB6 are written in C/c++, not in VB.

In fact, you are hiding TwinBasic has the same concept (Oh surprise!). Wayne showed that no-COM-classes could have parameterized constructor, while COM based couldn't have. So, there is no need all classes have to be COM-classes. So, You need to know build COM classes and exposing them, as also consume external typelibs for using other COM classes. But, it is not true that your CORE has to be implemented in this way. You have to support it, for sure, that is the compatibility, but your COM-based decision is not technical, it is ideological. It is not bad, but it is not the only one.

About**:



> All I was talking about above, has nothing to do (yet) - with ActiveX-Controls (which in your understanding is "COM").
> I was only talking about "normal, non-visual VB6-Classes".


I know: COM is a big bag of different tech: OLE, COM, Automation, DCOM. Most of VB6 code relies in ActiveX Controls (OLE2), but you could use Automation for opening a Word, and there will be no problem of using it in RAD Basic.

About**:



> The twinBasic-author is fully aware of everything I wrote above - but (sorry to say it that frankly) you are not.


Ok, no problem. It's fun you know the knowledge of other people without met them, only with your suppositions. But I think you are measuring knowledge if people think in some way as you think, as I could read from previous posts from you (in other threads and with other people involved).

About**:



> And as for "will a Class-concept, when being implemented in the way I've mentioned above" (IUnknown, IDispatch etc.),
> be compilable on Linux, Android, Mac and other platforms?
> 
> Definitely yes - and that without needing "Wine".
> The handful of interfaces I've listed above have (on average) "4 methods each".
> And these methods (when implemented by hand, not delegating to some MS-Helpers in the atl.dll),
> can ensure that this Class-concept will work also on other platforms (whilst not torpedoing advanced usage of these classes on Windows).


It will work for new code. Of course you could replicate all COM plumbing in pure C. That is what I doing! I'm no relying in MFC/ATL. But, your current COM classes used in your Win32 project WON'T work, as it is compiled for Windows and it is using Windows API. It is OK for you if you want to recreate COM in other platforms. I see the overhead won't pay off in systems as Android/iOS. But again, it is YOUR decision. But you, as me, aren't always right, are you? It could be alternatives other that you always thought, couldn't be?

I respect your efforts in VB classic field, as the work done by Wayne, and I don't have no problem with TwinBasic. We have different approaches and I only stated that both could be valid.

Regards.

Carles Royan

----------


## Krool

Short question to Carles: (which boils down to the core principle)
Can an ActiveX Dll compiled with RadBasic be referenced and used in VBA MS office? And also allowing usage of CallByName, For Each etc. and to consume WithEvents?

----------


## Schmidt

> Hi Olaf, this is your point of view. I think you are wrong in so many levels too.


You think wrongly - not much more to say - other than that I can prove my claims, whereas you cannot.




> This is ONLY true when you build classes for COM exposure. 
> If your don't expose this classes to COM (as is an exe project...) there is no need to expose COM


That's wrong, there's enough occasions, where you need to pass an instance of a "local Class" -
into some other COM-lib or COM-host (e.g. as a Callback-Object or for other purposes).




> In fact, you are hiding TwinBasic has the same concept (Oh surprise!).


I'm not hiding anything...
Fact is, that the "native" (even when locally used in an Exe-Project) twinBasic-Classes -
fully support IUnknown, IDispatch, etc. ... (so, they fully adhere to the COM-ABI - they simply have to for 100% VB6-compatibility).




> Wayne showed that no-COM-classes could have parameterized constructor, ...


Then you misunderstood.
A few "Extras" on the native tB-Classes (Extras, which are supported only in the language itself), 
doesn't mean at all, that these Classes are "wavering" in their support of IUnknown+IDispatch.
It's always there, as the following tB-example shows:



```
Module modMain
  Sub Main()
    Dim SC As Object = CreateObject("ScriptControl")
        SC.Language = "VBScript"
        SC.AddObject "oCB", New cCB("Hello") 'let's pass it into VBScript
        SC.AddCode "oCB.DoIt"
  End Sub
End Module

Private Class cCB 'a tB-local Class in an Exe-Project
  Private mTxt As String
  
  Private Sub New(Byval Txt As String)
    mTxt = Txt
  End Sub
  
  Public Sub DoIt()
    MsgBox mTxt & " from inside a local tB-Class"
  End Sub
End Class
```

The above wouldn't work, when the "local, native tB-Classes" were implemented without IUnknown, IDispatch-support.




> It's fun you know the knowledge of other people without met them, ...


 Hmm, guess I'm quite good at it in the meantime... 
So far you didn't give me cause, to change my first impression...  :Wink: 

Olaf

----------


## radBasicHost

> Short question to Carles: (which boils down to the core principle)
> Can an ActiveX Dll compiled with RadBasic be referenced and used in VBA MS office? And also allowing usage of CallByName, For Each etc. and to consume WithEvents?


Yes, as they are in fact a COM object as any other.

COM objects are mostly written in C++, not in VB itself.

Regards.

Carles Royan

----------


## radBasicHost

Hi Olaf,




> That's wrong, there's enough occasions, where you need to pass an instance of a "local Class" -
> into some other COM-lib or COM-host (e.g. as a Callback-Object or for other purposes).


as I said if you have to expose the class, you could compile it as a COM object. It's easy. Most classes don't need. If I'm wrong, why every language out there is working as I said? You insists in working as a VB6, a 90's application. I'm designing RAD Basic as a 21th application. You only have to expose to COM the public classes. 




> The above wouldn't work, when the "local, native tB-Classes" were implemented without IUnknown, IDispatch-support.


You are not guessing how it works. If you pass your class to a COM object, YOU ARE EXPOSING your class, so it will generate a wrapper for this class. Again, support COM doesn't implies the core have to be based in it. In other languages, is very common to have a "proxy" class, which when you are in runtime, you don't know if it is a local instance, or a wrapper class calling "remoting" methods (typical IDispatch). I've worked in JavaEE and it is a common behavior. 

So again, you will write 100 classes, and only two of them needs COM exposure. Why creating 98 COM classes for nothing?

If you have the core in C libs, you always could expose what you want in COM. THERE IS NO LIMITATION.
If you have the core in COM, you are limited with COM. You can't compile plain DLL, a great limitation of VB. You will have trouble for going cross platform, ....

So, I see more flexible first one.




> Hmm, guess I'm quite good at it in the meantime...
> So far you didn't give me cause, to change my first impression...


Don't worry, you neither. 

Regards

Carles Royan

----------


## Schmidt

> If you pass your class to a COM object, YOU  ARE EXPOSING your class, so it will generate a wrapper for this class.


That sentence is absurd...




> Again, support COM doesn't implies the core have to be based in it.


In my previous post #194, I already gave you an example, which proves otherwise.

Here it is again (this time with more comments for you, maybe that helps):


```
Module modMain
  Sub Main()
    Dim oCB As cCB = New cCB("Hello") 'create an instance of our local "Core-Class"
    Dim SC As Object = CreateObject("ScriptControl")
        SC.Language = "VBScript"
        SC.AddObject "oCB", oCB  '<- and pass the instance into VBScript
        SC.AddCode "oCB.DoIt"  'add+exec the VBS-Code (from a String obviously)
  End Sub
End Module

Private Class cCB 'a non-exposed, local tB-Class (defined in an Exe-Project)
  Private mTxt As String
  
  Private Sub New(Byval Txt As String)
    mTxt = Txt
  End Sub
  
  Public Sub DoIt()
    MsgBox mTxt & " from inside a local tB-Class"
  End Sub
End Class
```

Please explain to me exactly, what you think happens:
- in the red colored line
- and after that in the blue colored line
- and why you'll see a MsgBox-Text of: "Hello from inside a local tB-Class"

Olaf

----------


## radBasicHost

Hi Olaf,

Very simplified for your understanding when you compiles the module (almost in RAD Basic):

Step 1



> Dim oCB As cCB = New cCB("Hello") 'create an instance of our local "Core-Class"




```
1. Search in Symbol Table for "hello"
2. Found it, search method "Create", get the C output Symbol
3. Add to Symbol Table  oCB with type class and classname cCB 
4. Call transpiler to Assign to oCB  var the output of 2. Add reference oh C header to current c module.
```

Step 2



> Dim SC As Object = CreateObject("ScriptControl")




```
1. Call RBCOMLIB for creating dynamic COM "ScriptControl": calling comeigen for parsing typelib from msscript.ocx, generate symbol table and *.h and *.c wrappers
2. Add to Symbol Table  SC with classname "ScriptControl" (loaded in symbol table the methods, properties, etc. of object). Add previous header
3. Assignation SC from output of RBCOMLIB
```

Step 3: it's a litte more complex, simplified here for more understanding:



> SC.AddObject "oCB", oCB  '<- and pass the instance into VBScript




```
1. Search Symbol table for SC. Found SC and type class with classname "ScriptControl". Load "ScriptControl" type
2. Search Symbtol table for oCB , get class name "cCb". Add header (discard by repeated one).
3. Calculating types from AddObject: First parameter string, don't need conversion. Second parameter plain class, and signature is defined as COM object. At this moment, it is generated a new COM class wrapping the plain class. This feature in compilers are called auto-boxing. The new instance is saved in a temp C var.
4. Calling COM wrapper AddCode passing string , and pointer no new tmp var.
```

Step 4:



> SC.AddCode "oCB.DoIt"  'add+exec the VBS-Code (from a String obviously)


This is simpler, as you call the COM AddCode method passing string. Then, ScriptControl will dinamically interpreted it, and they call the COM generated of oCB and its method DoIt.


As I said previously, you lack some understanding of how compilers work.

Carles Royan.

----------


## SearchingDataOnly

It is expected that the RADBasic can implement Olaf's example as soon as possible. Perhaps the implementation mechanism of RADBasic is completely different from twinBasic  and Olaf's new compilers. (It seems that the implementation mechanism of Olaf's new compiler is similar to twinBasic)

If RADBasic is 100% compatible with VB6, then obviously we can use Olaf's RC6 in RADBasic.

----------


## Eduardo-

> ...Olaf's new compilers. (It seems that the implementation mechanism of Olaf's new compiler is similar to twinBasic


Where is Olaf's new compiler?

----------


## SearchingDataOnly

> Where is Olaf's new compiler?


I don't know when I will see Olaf's new compiler, but I believe Olaf has been developing a new compiler. But Olaf's way of doing things is different from others. When Olaf's new compiler is released, this new compiler should already be close to the official version (Olaf tends to do all the testing by himself), just like RC6, once released, it can be used officially. Of course, this is just my guess.

So it is not yet known who is the champion (who will reach the finish line first).

----------


## Eduardo-

Ahh, then you were talking about your fantasies.

----------


## SearchingDataOnly

> Ahh, then you were talking about your fantasies.


Isn't it a good thing to have fantasy? I see my fantasies being realized one by one.

----------


## yereverluvinuncleber

I believe that if Olaf had put some more effort into simply marketing his solution and had provided information regarding the progress of his solution then other replacement projects may not have even started...

- that is, if Olaf's opus magnus was pronounced to being somewhat close to completion...

Ah well, we are where we are and we, the community have five potential VB6 replacement projects on the go at the moment (not including .FRED) with two or perhaps even three leading the field.

My heart is with Carles' RADBasic as I really want him to succeed.

----------


## Shaggy Hiker

The kickstarter campaign doesn't seem to be getting anywhere. It looks like it timed out, having reached roughly a third of the desired goal.

This is the problem I have with any such attempt: There isn't THAT much support out there. The number of people who talk it up are not very numerous, but very vocal. When it comes down to putting up money...they don't show up. 

So, somebody is expected to put in their time and effort...for what? Evidence suggests they may not be able to make enough sales to make a reasonable living for a single year, let alone fund a company that would handle updates/bug fixes/improvements for any reasonable length of time. The people just aren't there in sufficient number. 

For this to work, not only does the new language have to meet your goals and expectations regarding VB6 code, it also has to be so spectacular that it draws people away from other languages.

----------


## Eduardo-

It used to be, it is said like 6,000,000 people using VB6.
Now thanks to all the auto-destructive campaign made by MS, and negative people that willingly or unwilling are helping them to vilify VB6, they are much fewer.
But it has a lot of potential, I think that BASIC is a much better language than others. It could grow very much in the future, and it is what I believe it will happen.

----------


## Krool

> So, somebody is expected to put in their time and effort...for what?


I meanwhile think that a VB6 replacement can fill in a great niche for businesses to develop DLLs and Add-Ins for 64-bit office VBA. And I think twinBASIC is aware of that niche and they bet the profits from there. The audience is therefore not only pure developer but also people who do use VBA here and there to solve high level business problems.

----------


## baka

right now I believe more in twinbasic, but I will not condemn radbasic, I will wait and see when it will demonstrate it can handle a complex project that is using API, OCX, typelibs and subclassing.

even so, I could accept a "new" vb6 IDE that is "NOT" 100% back compatible, but allow me to use the same VB6 language + more built-in component that replace api/ocx/typelibs/subclassing that will allow cross-platform in the future.

not sure why the need to make 100% back compatible, but if thats the case, Im worried that this project will fail when issues will start showing when old projects will not work properly.

----------


## SearchingDataOnly

> Quote Originally Posted by Shaggy Hiker View Post
> So, somebody is expected to put in their time and effort...for what?
> 			
> 		
> 
> I meanwhile think that a VB6 replacement can fill in a great niche for businesses to develop DLLs and Add-Ins for 64-bit office VBA. And I think twinBASIC is aware of that niche and they bet the profits from there. The audience is therefore not only pure developer but also people who do use VBA here and there to solve high level business problems.


If the scope of application of the new VB6 replacement is only concentrated in the VBA field, it will be difficult to succeed.

IMO, whether twinBasic, RADBasic or other VB6 alternatives, the key to their success is whether they can attract a large number of young programmers. Another sign of the success of the new programming language is that one or more heavyweight and well-known software products are developed in the new language.

----------


## SearchingDataOnly

twinBasic is progressing well now, how is the progress of RadBasic?

----------


## Episcopal

> twinBasic is progressing well now, how is the progress of RadBasic?


I also wanted to know...

----------


## yereverluvinuncleber

Stuff IS happening, I am assured, I will ask Carles to provide an update.

----------


## yereverluvinuncleber

Status update August 2021

https://www.radbasic.dev/blog/2021/0...tus_update.php

----------


## SearchingDataOnly

That's great. 

Because the business model of RadBasic is a bit strange, some people have raised doubts about RadBasic from a technical and rigorous point of view, which is completely understandable. Although I don't know Carles at all, my instinct tells me that RadBasic deserves our attention and support.

----------


## vbrad

> That's great. 
> 
> Because the business model of RadBasic is a bit strange, some people have raised doubts about RadBasic from a technical and rigorous point of view, which is completely understandable. Although I don't know Carles at all, my instinct tells me that RadBasic deserves our attention and support.


That's great! I subscribed to the kickstarter but once that didn't reach its goal, I suppose I lost my enthuasiasm a bit and never subscribed to the Patreon. 
Now since I've since subscribed to Twinbasic I'd need to think a bit before taking out a second subscription.

----------


## VB6 Programming

> Status update August 2021
> 
> https://www.radbasic.dev/blog/2021/0...tus_update.php


Interesting, I'd assumed RADbasic had been abandoned.

I understand an Alpha version will be available on August 25. But only for paid subscribers. If any RADbasic subscribers are on this forum could they post a review of this Alpha version here?


SearchingDataOnly's point about the business model of RadBasic is right. Surely it would be better to provide a 'Preview/Demo' version free for everyone to try. It seems to be working well for twinBASIC.

----------


## yereverluvinuncleber

I think Carles was a bit put off by the reaction of some of the usual crowd here. What I mean by that is that he doesn't want to be drawn into the endless technical and personal bickering that can often be engendered here when certain types become involved and it quickly starts to degrade. As a result, he tends to avoid this forum and I understand why.

If you want progress updates, see his Facebook page or his blog on the RADBasic website.

----------


## yereverluvinuncleber

> though I don't know Carles at all, my instinct tells me that RadBasic deserves our attention and support.


Carles is an extremely likeable fellow and very positive. He has complete dedication and enthusiasm for his project. It is worthy of your attention and support

----------


## TTn

> I think Carles was a bit put off by the reaction of some of the usual crowd here. What I mean by that is that he doesn't want to be drawn into the endless technical and personal bickering that can often be engendered here when certain types become involved and it quickly starts to degrade. As a result, he tends to avoid this forum and I understand why.
> 
> If you want progress updates, see his Facebook page or his blog on the RADBasic website.


I don't think he can handle technical discussions with anything impressive or acceptable.
I still have doubts that he has the skills to complete a fraction of what he is asking money for, with no proof of a working model.

If RadB can reliably compile with 3rd party activex controls (TODAY), then the project might be worthy of note.  Being a nice dude, doesn't actually pay the bills though.  I wish it would lol.
On the kickstarter:



> Am I able to reference and use third party components (ActiveX) as on VB6?
> Of course! COM/ActiveX is first citizen in RAD Basic. It will worked in same way as VB6. When compiles, it generates automatically internal COM interfaces as VB6 does.


I'd like to see VB6Namespaces (VB.dll) on Radbasic if it is possible.  TwinBasic can run large interop components like this.

----------


## yereverluvinuncleber

Yes, agreed, we need some proof of the pudding in order to convince others. TTN, I think you have been in touch with Carles in the past, perhaps it is time to reach out and offer to do some testing?

----------


## TTn

> Yes, agreed, we need some proof of the pudding in order to convince others. TTN, I think you have been in touch with Carles in the past, perhaps it is time to reach out and offer to do some testing?


Better for him to test VB.dll on his machine rather than me to download rb, that's what we did with tB. He could make a demo video showing that it works, and radbasic has full access to compile/expose VB.NET forms, common controls, with events, properties, enumerations etc.  This is a perfect example to test new IDE's with a dedicated library for VB compatibility including VBA.  Is he up to the challenge before his deadline?

----------


## Eduardo-

Why so much disrespect?
Carles already has set up a timeline and a scheme, why do not abide to it?

----------


## TTn

> Why so much disrespect?
> Carles already has set up a timeline and a scheme, why do not abide to it?


I'm sure Carles is a nice guy, as I implied without disrespect.  He may really believe he can do this, but he is not showing anyone else proof that he can.  Why not?

Carles stated that ActiveX worked of course!
Let's see that working!

----------


## Eduardo-

> he is not showing anyone else proof that he can.  Why not?


He showed some things he has done, you can believe or not.




> Carles stated that ActiveX worked of course!
> Let's see that working!


That is the disrespect, because he has stated a timeline and scheme for "seeing" it.
Anyway, we are still not in the start of being able to see anything, and in the case that the timeline is delayed (let's hope not), that would be normal in the programming field.

Are you informed about RB, did you read anything/watch any video already?

----------


## mansellan

Keen to hear reviews of the private Alpha from paid members. I will likely wait for the public Alpha.

----------


## WaynePhillipsEA

I would also be keen to hear about the RAD Basic alpha  :Smilie:

----------


## axisdj

> I would also be keen to hear about the RAD Basic alpha


Now look at that, we can all work together to save the vb6 eco system.

I really believe once things get moving the vb6 developers are going to surprise the world.

There is alot to be said when they try to kill a development environment for 20 years and cannot.

We are living in exciting times. 

ALL the best to both twinBasic and RadBasic!!

----------


## Episcopal

RadBasic where are you

----------


## vbrad

> RadBasic where are you


Radbasic hasn't gone away.
Someone wrote a little back that the developer no longer posts here. 
He does make updates on the radbasic patreon page, the latest one 
being the 21st of last month as far as I can see.
He has quite a few supporters on patreon.

----------


## wqweto

> Radbasic hasn't gone away.
> Someone wrote a little back that the developer no longer posts here. 
> He does make updates on the radbasic patreon page, the latest one 
> being the 21st of last month as far as I can see.
> He has quite a few supporters on patreon.


Wise decision!

Anyone that is afraid of bears does not go to the woods, the same way anyone scared by trolls does not participate in vbforums and hides alpha versions behind paywalls :-))

cheers,
</wqw>

----------


## Niya

You guys really "raked him over the coals", so to speak about COM. I didn't think the concept he had in mind was unreasonable. He didn't want to build it on COM but instead he wanted to do something similar to .Net which only uses COM when you need it by way of wrappers. I really don't know if 100% VB6 compatibility could be achieved this way but you guys could been a little more diplomatic and probed some more to really try and understand what he was saying instead of hastily tearing into his throat.

----------


## Shaggy Hiker

Yeah, right.

----------


## Niya

Indeed.

----------


## yereverluvinuncleber

> You guys really "raked him over the coals", so to speak about COM. I didn't think the concept he had in mind was unreasonable. He didn't want to build it on COM but instead he wanted to do something similar to .Net which only uses COM when you need it by way of wrappers. I really don't know if 100% VB6 compatibility could be achieved this way but you guys could been a little more diplomatic and probed some more to really try and understand what he was saying instead of hastily tearing into his throat.


Agreed.

If you have ever run up against the hard nuts in this forum you'll understand how it can put people off. The helpfulness offered in this forum is only equalled by the invective that can be heaped upon a perceived noob who is doing things the 'wrong' way. It is enough to put anyone off visiting again.

This place is much more positive than it used to be (I try to help in this regard) and we should cut some slack when someone comes up with a new approach. After all, this is programming and this is definitely not SPARTA!

So be nice.

----------


## Episcopal

> He didn't want to build it on COM but instead he wanted to do something similar to .Net which only uses COM when you need it by way of wrappers. I really don't know if 100% VB6 compatibility could be achieved.



Well if RadBasic could read the VB6 source and emulate it for RadBasic's basic language, I believe it would work. I forgot the name of the platform you write basic on and the compiler compiles in java. I believe this would be the path traced for RadBasic.

----------


## Niya

He'd have to be very careful with how that is implemented. Emulation layers are historically known to sap performance. I don't know enough about COM or it's implementation in VB6 to say confidently if "emulating" COM could be done without sacrificing performance. But I think his idea of basing his BASIC on something other can COM is worth pursuing. 




> I forgot the name of the platform you write basic on and the compiler compiles in java.


I think it's called Basic for Android or some such thing. I think Dilettante uses that. He mentions it a lot.

----------


## VB6 Programming

> I forgot the name of the platform you write basic on and the compiler compiles in java.


It is called B4X (as in Basic for ...)

https://www.b4x.com/

*B4A* for Android
*B4J* for Java (desktop, server and Raspberry Pi) - for Windows, Mac, and Linux
*B4i* for iOS
*B4R* for Arduino

B4A, B4J and B4R are all free.

----------


## VB6 Programming

Another similar approach is taken by *NSBasic* AppStudio.

It uses a VB-like language and compiles (transpiles) to JavaScript.

https://www.nsbasic.com/

It targets Android, iOS and desktop.

Node and Electron are supported.

----------


## Niya

> Another similar approach is taken by *NSBasic* AppStudio.
> 
> It uses a VB-like language and compiles (transpiles) to JavaScript.
> 
> https://www.nsbasic.com/
> 
> It targets Android, iOS and desktop.
> 
> Node and Electron are supported.


Oh wow that simplicity looks impressive.

----------


## SearchingDataOnly

> Let me quote a post of mine from 1 year ago on the same topic:
> 
> 
> The actual progress so far is probably closer to the 10 years estimate (LOL) but nevertheless I'm working on the VBScript cloning as a PoC for "VB6-toy-language compiler" and COM is hard. It's precisely because I couldn't use ANTLR for parser generator (no VB6 target) that I had to implement a PEG parser generator for VB6 which I'm currently trying to learn how to use :-))
> 
> Olaf is very adamant about incorporating RC5 in vNext and I find his aim orthogonal to the actual compiler project. IDE is also optional, provided that VSCode can be integrated if there are good/fast compiler services that expose symbols and code structure (probably w/ reparsing only changes as an optimization).
> 
> For any community effort the community has to walk the walk and come up with canonical VB6 for doing common things. *There is no generally accepted coding style, no generally used code linters or formatters* and I find a lot of code snippets here in these forums that are next to illegible. Probably this is somewhat like egg vs chicken problem and a big project like a self-hosting compiler will set up the canonical style for future efforts (but who knows).
> 
> ...



When I searched for information, I found the above paragraph. I'm not trying to continue discussing this thread, just make a markup.

"*Generally accepted coding style*" and "*generally used code linters or formatters*" are the things all VB6ers dream of. "No generally accepted coding style" and "no generally used code linters" are huge obstacles for VB6-Community to develop collaboratively. But I've solved the problem (I accidentally/inadvertently solved it while working on a project). I'll create a thread in a few months to discuss this.

----------

