|
Post by rosy on Dec 3, 2020 15:09:05 GMT -6
I have a few questions for the president ... 1. How does it all work ..? Do you write in C? What's with this bytecode compilation? What is this byte code? For what ? Why not machine code? Why do all DLLs have to be included if the program doesn't use all of them? 2. There are many Basic dialects. What for another? Wasn't it better to expand an already existing one? RC is created by 1 person, similarly eg X11-Basic. Wouldn't it be better to join forces and create one, better one, combining the advantages of both?
|
|
|
Post by n00b on Dec 3, 2020 16:57:24 GMT -6
I guess I just got elected president lol 1. On question 1, I use C++. The byte code is a fake machine code that I made up. The reason RCBasic uses bytecode rather than machine code is because I wanted it to be as portable as possible. Machine is the exact opposite of portable. All those DLL files on the windows version are included because RC uses alot of external libraries: SDL2, SDL2_image, SDL2_gfx, SDL2_mixer, SDL2_ttf, SDL2_net, ogg, vorbis, and theora. 2. Ultimately the entire BASIC community is made up of a lot of hobbyist coders who just enjoy tinkering. Pretty much everybody on this forum is active on other forums and sharing knowledge between them. Even if we don't directly work together we all benefit from each others work.
|
|
|
Post by rosy on Dec 3, 2020 18:15:47 GMT -6
But the BAS is also portable, and machine faster...
So there is a "machine" written in C that executes this bytecode?
|
|
|
Post by n00b on Dec 3, 2020 19:16:28 GMT -6
Yes, there is a machine that executes the bytecode: rcbasic.exe. When you run the packager tool to create a distributable bundle, it just includes a copy of rcbasic.exe with your program. All the end user has to do is click on the launcher to run it. And because its bytecode, you don't have to include your source code with your program if you don't want to.
It has the benefit of portability and its faster than an interpreter. But its not as fast as pure machine code.
|
|
|
Post by rosy on Dec 4, 2020 5:06:11 GMT -6
However, it would be nice to have a normal compiler ... And in Android, how does it work?
|
|
|
Post by n00b on Dec 4, 2020 9:51:58 GMT -6
It works the same way on android except you don't have rcbasic.exe. The machine is a shared library that is included in the APK when its built. The web port does something extra on top of that. It compiles RCBasic's runtime and bundles your program into a webpage each time you build for the web. The Android, IOS, and web ports would not have been possible with a machine code compiler. Its all opensource so if you want to try to understand how the machine works, its the rcbasic_runtime folder. Here is a link to the RCBasic Sourcecode: github.com/n00b87/RCBASIC3And feel free to ask more questions. I am pretty proud of it and enjoy having the chance to talk about it. Also, since you have a lot of interest in the Android port, you should look into the RCBasic_Android_Interface$() function. It will allow you to call java code in RCBasic. Its useful for if you want to add In-App purchases or use an Android specific API.
|
|
|
Post by tbird on Dec 4, 2020 14:11:59 GMT -6
You should be proud of it n00b, we wouldn't be here if you had not created it, field of dreams quote comes to mind lol.
|
|
|
Post by aurel on Dec 7, 2020 2:48:10 GMT -6
he he ..guy have a lot of questions
|
|
|
Post by tbird on Dec 7, 2020 13:54:39 GMT -6
Good way to learn!
|
|
|
Post by rosy on Dec 8, 2020 5:29:05 GMT -6
I am not so proficient in C to parse code, so I will leave this thread for now.
Summa summarum ... You created it because you wanted to do something of your own from the beginning to the end ... I understand it, and I also do it against the instructions.
but...
The problem of the declining popularity of the Basic is raised. I think that one of the reasons is the low universality and the multitude of dialects. On the one hand, this is an advantage, on the other hand, it is a huge disadvantage. I am currently using 3 Basic varieties and I still have to deal with many compromises. You yourself advise to use Java in Android, Python in network programming, i.t.d .. I chose Basic and I don't want to learn these strange languages. If I wanted to, I wouldn't use Basic.
Therefore, I suggested joining forces and creating a universal language, so that you would not have to learn so many varieties. Especially since most are in the early stages of development and contain a lot of bugs. People are discouraged by it, the project is abandoned and so the circle ends.
|
|
|
Post by n00b on Dec 8, 2020 8:57:23 GMT -6
There is no reason you have to learn any of those languages if you don't want to. I mentioned you had the ability to use Java in RCBasic on android but it is not required at all. I suggested to tbird to use python to setup an http server to test a web app but there are other options. I just thought that was the most convenient since you don't have to constantly upload your app to the internet to test it. I can see the benefits of teaming up on some universal dialect but you could say that same thing about any software. Why are there multiple operating systems, game engines, web browsers, etc? They all have there own design goals and attract different communities. Different dialects have different focuses. RCBasic's has a main focus on game development but so does SDLBasic, NaaLaa, Basic4GL, GLBasic, AGK, PlayBasic, etc (There are a lot of them). But none of them really take the exact same approach. I think having more options keeps things interesting.
|
|
|
Post by aurel on Dec 8, 2020 10:15:37 GMT -6
And now i am want to know which ones are in development ? Do you can tell to us?
|
|
|
Post by aurel on Dec 8, 2020 13:03:48 GMT -6
really ....?
- i doubt about that ..people by definition are lazy to learn and some are lazy to try...also so many are lazy ask if they don't know how to use it ... so where are you?
|
|
|
Post by johnno56 on Dec 8, 2020 15:19:50 GMT -6
The model "T" Ford and the Wright brothers airplane... We don't see those any more, except in old pictures and movies, but those modes of transport had to start somewhere... The model "T" is no longer made, but the "process" of manufacture, is still in use today. Airplanes are no longer made from wooden frames, stretched canvas and wire cables. But, the principles with which it was built, is still being used today.
Where is this going? Basic - As the first word of the acronym says, 'Beginners', implies what? Basic, regardless of the dialect, was designed to teach the principles of logic and programming. Just like the Model 'T', Basic will and must evolve into something better. Why do 'I' still use Basic? Like Aurel said, I'm lazy. In regards to learning new languages. At my age I am "set in my ways" and find change difficult. I have used various forms of Basic and enjoy converting stuff to run on each version. I've dabbled in other languages, all of them with varying degrees of a learning curve, but I always come back to Basic.
I do not have the skills to help make a "better basic" but I believe that we have the people to do it. How much longer will we continue to be 'Beginners'?
|
|
|
Post by rosy on Dec 8, 2020 17:03:02 GMT -6
And now i am want to know which ones are in development ? Do you can tell to us? Maybe read what is written before you ask ... Repeat: incl. RCBasic and X11-Basic I understand that dialects have different goals, but it's probably better to have 1 dialect for different purposes ... There is e.g. Pygame, but it's the same Python, I don't need to learn a new language, I don't need to have 2 Pythons ... And no ... Basic did not become a science base. It is a full-fledged programming language. It lacks nothing, except perhaps the multitude of libraries, but this is precisely due to the multitude of its varieties and declining popularity.
|
|