Page 5 of 7 FirstFirst ... 234567 LastLast
Results 161 to 200 of 247

Thread: https://www.radbasic.dev/

  1. #161
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,219

    Re: https://www.radbasic.dev/

    Quote Originally Posted by radBasicHost View Post
    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

  2. #162
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    RADBasic KickStarter has started!

    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.

  3. #163
    Addicted Member
    Join Date
    Aug 2013
    Posts
    236

    Re: RADBasic KickStarter has started!

    Quote Originally Posted by yereverluvinuncleber View Post
    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.

  4. #164
    The Idiot
    Join Date
    Dec 2014
    Posts
    2,721

    Re: https://www.radbasic.dev/

    nothing to download yet? a preview edition of sort?

  5. #165
    Lively Member
    Join Date
    Mar 2015
    Posts
    104

    Re: https://www.radbasic.dev/

    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)

  6. #166

  7. #167
    Lively Member
    Join Date
    Mar 2015
    Posts
    104

    Re: https://www.radbasic.dev/

    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.
    Last edited by CreativeDreamer; Apr 9th, 2021 at 07:13 AM. Reason: small typo

  8. #168
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    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

  9. #169
    New Member
    Join Date
    Mar 2021
    Posts
    7

    Re: https://www.radbasic.dev/

    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

  10. #170
    PowerPoster
    Join Date
    Jun 2012
    Posts
    2,374

    Re: https://www.radbasic.dev/

    Quote Originally Posted by Schmidt View Post
    ... 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.

  11. #171
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    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.

  12. #172
    Addicted Member
    Join Date
    Aug 2013
    Posts
    236

    Re: https://www.radbasic.dev/

    Quote Originally Posted by SearchingDataOnly View Post
    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.

    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.

  13. #173
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    Re: https://www.radbasic.dev/

    Quote Originally Posted by vbrad View Post
    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.

  14. #174
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    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.
    Last edited by SearchingDataOnly; Apr 19th, 2021 at 01:20 AM.

  15. #175
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    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++.
    Last edited by SearchingDataOnly; Apr 27th, 2021 at 01:15 PM.

  16. #176
    The Idiot
    Join Date
    Dec 2014
    Posts
    2,721

    Re: https://www.radbasic.dev/

    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++?

  17. #177
    Addicted Member
    Join Date
    Aug 2013
    Posts
    236

    Re: https://www.radbasic.dev/

    Quote Originally Posted by baka View Post
    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.

  18. #178
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    Quote Originally Posted by baka View Post
    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.

    Quote Originally Posted by baka View Post
    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++.

  19. #179
    The Idiot
    Join Date
    Dec 2014
    Posts
    2,721

    Re: https://www.radbasic.dev/

    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

  20. #180
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    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.

  21. #181
    The Idiot
    Join Date
    Dec 2014
    Posts
    2,721

    Re: https://www.radbasic.dev/

    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.

  22. #182
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    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.
    Last edited by SearchingDataOnly; Apr 28th, 2021 at 02:50 AM.

  23. #183
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    Quote Originally Posted by baka View Post
    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.
    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.
    Last edited by SearchingDataOnly; Apr 28th, 2021 at 02:59 AM.

  24. #184
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    Re: https://www.radbasic.dev/

    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?

  25. #185
    PowerPoster
    Join Date
    Jun 2012
    Posts
    2,374

    Re: https://www.radbasic.dev/

    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?

  26. #186
    PowerPoster Arnoutdv's Avatar
    Join Date
    Oct 2013
    Posts
    5,872

    Re: https://www.radbasic.dev/

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

  27. #187
    PowerPoster
    Join Date
    Feb 2017
    Posts
    4,995

    Re: https://www.radbasic.dev/

    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.

  28. #188
    PowerPoster
    Join Date
    Feb 2017
    Posts
    4,995

    Re: https://www.radbasic.dev/

    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.

  29. #189
    PowerPoster yereverluvinuncleber's Avatar
    Join Date
    Feb 2014
    Location
    Norfolk UK (inbred)
    Posts
    2,235

    Re: https://www.radbasic.dev/

    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.

  30. #190
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    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

  31. #191
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,219

    Re: https://www.radbasic.dev/

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

    Quote Originally Posted by radBasicHost View Post
    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-ABI 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

  32. #192
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by Schmidt View Post
    [About COM-ABI 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 And no problem about supporting my project, I see you are busy with TwinBasic supporting, which is great

    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

  33. #193
    PowerPoster
    Join Date
    Jun 2012
    Posts
    2,374

    Re: https://www.radbasic.dev/

    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?

  34. #194
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,219

    Re: https://www.radbasic.dev/

    Quote Originally Posted by radBasicHost View Post
    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.

    Quote Originally Posted by radBasicHost View Post
    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).

    Quote Originally Posted by radBasicHost View Post
    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).

    Quote Originally Posted by radBasicHost View Post
    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:

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

    Quote Originally Posted by radBasicHost View Post
    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...

    Olaf

  35. #195
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    Quote Originally Posted by Krool View Post
    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

  36. #196
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    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

  37. #197
    PowerPoster
    Join Date
    Jun 2013
    Posts
    7,219

    Re: https://www.radbasic.dev/

    Quote Originally Posted by radBasicHost View Post
    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...

    Quote Originally Posted by radBasicHost View Post
    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):
    Code:
    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

  38. #198
    Junior Member radBasicHost's Avatar
    Join Date
    Jun 2019
    Posts
    27

    Re: https://www.radbasic.dev/

    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"
    Code:
    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")
    Code:
    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
    Code:
    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.

  39. #199
    Frenzied Member
    Join Date
    Aug 2020
    Posts
    1,421

    Re: https://www.radbasic.dev/

    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.
    Last edited by SearchingDataOnly; May 7th, 2021 at 09:34 AM.

  40. #200
    PowerPoster
    Join Date
    Feb 2017
    Posts
    4,995

    Re: https://www.radbasic.dev/

    Quote Originally Posted by SearchingDataOnly View Post
    ...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?

Page 5 of 7 FirstFirst ... 234567 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width