ModernBASIC 128 Studio

Started by round157, May 08, 2021, 02:33:55

Previous topic - Next topic

Aurel [banned]

QuoteSo, no, I do not have a grudge against the QB64 community or the QB64 Team, like Aurel thinks.

- NO..I don't say that ,that say BPlus.

QuoteI must mention that Aurel is correct on the point that the libraries out there at this moment, are not enough to build

-Yes that is what i sayed, and i like to be honest and as always i appreciate your honest elaboaration too.
(Y)

Scaremonger

Quote from: bplus on May 12, 2021, 18:09:47
Yeah I think Basic should be the GOTO language for beginners but we don't need line numbers anymore ;-))

Having compiler directives that allow you to load old basic programs that contain line numbers would be nice, but you should be able to turn them off.

The Joyful Programmer

Hello and thank you, Scaremonger!

QuoteI admire you staying with the same project for two years, that's a massive achievement in itself.
Yes, that is a personal achievement for me as well [for personal programming projects].

However, I would like to point out that the project started out as one thing, and has turned into something much, much bigger. So, what has been keeping me focused on the project was not only the people involved with helping me with ideas, but working with the proverbial clay until I discovered it's true form.

Quote...and that experience gives you a lot of insight into both your abilities and what can be achieved
I fully agree with that! But, it also about how creative we can get with our projects and ideas.

Quote...so I look forward to seeing what you produce.
ModernBasic 128 Studio is a FLOSS (Free/Libre Open Source Software) and community project. My job right now is to finish the SRS (Software Require Specification), which is the document that tells developers how the project should be created, and all the parts to the project.

I will be coding the foundation, the GUI system, and the IDE by myself, just to get started, then I will share that part of the project with the other developers interested in helping with the project. The reason for this is I want the personal experience of creating these things myself, by myself.

QuoteMy go-to language for many years (when not at work) was Pascal
Pascal is a great language, but I haven't used it since Borland Pascal days.

Quoteuntil I found Blitzmax
Another great product!

Quotebut I've noticed over the years how programmers react to "BASIC" languages. Many of them think themselves superior because they don't use it, but you usually find that it's because they cannot.

Oh, how I know that is the truth! I actually see something similar to that all the time! For example, from what I have seen from my 60k+ members on my "C++ and C for Beginners" Facebook group, other Facebook groups, other sites, other forums, my Discord server, and so forth. People think they have learned C++ completely, but lose their minds when they go from the simple "functional" coding paradigm to the event-driven and functional coding paradigm.

I ran into the same problem when I went from coding in DOS to event-driven coding in Windows, and when I went backwards to relearn how to code in the non-event-driven programming language called, "QB64". I had to relearn that style of codingm which took me awhile to get back being used to it.

QuoteBeing a good programmer is knowing the capability of languages and choosing the best one for the job. Blitzmax is not always the best choice, but neither is C++ or Rebol
All programming languages are tools, and they have different ways of helping us create solutions to a problem. Some langauges are better suite then others, depending on the project, and your skills with the tools at hand.

At this moment, C++ is my ultimate tool for creating solutions for everything, including ModernBasic 128 Studio. ModernBasic 128 Studio will be created in C++.

QuoteNot knowing a languages strips you of that choice and that's why I think BASIC has, and always will have, a place.
I fully agree! BASIC will always have a place, can be a great tool to use for various solutions, and is perfect for beginners, depending on how deep they want to start out.

When I first started coding, it was in BASIC. I didn't know about anything else. Then, in 1985, I stumbled upon machine language by accident on the Apple ][e computer. So, I bought books on the subject and immediately fell in love with it, and have loved it ever since, though it has gotten a lot more complex then the 8-Bit days.

QuoteKeep up the good work.
The good work is founded on my excitement and passions for each step of the project. This truly shows in the logo for ModernBasic 128, which I created myself in Corel Draw X6. Oh, yeah! I was a graphic artist (mostly typesetter) in the printing industry for 20 years, so I know a thing or two about layouts and designs.






Walter Whitman
The Joyful Programmer

bplus

#18
Quote from: Scaremonger on May 12, 2021, 18:23:26
Quote from: bplus on May 12, 2021, 18:09:47
Yeah I think Basic should be the GOTO language for beginners but we don't need line numbers anymore ;-))

Having compiler directives that allow you to load old basic programs that contain line numbers would be nice, but you should be able to turn them off.

Right, I guess we do need them still to run old code specially non-compiled Interpreter solutions. All Basics I use are not in least confounded by line numbers, it's just that they are not required anymore. I mean we have ELSE and ELSEIF or even SELECT CASE alternate these days (since the late 80's at least) LOL! I am recalling Morristown NJ code that comes up every once and awhile, like old Eliza, I had quite a study of that when I got back to Basic's in 2014. That was with SmallBASIC BTW man what a great little Interpreter!
1 person likes this

The Joyful Programmer

#19
Quote[BPlus] Yeah I think Basic should be the GOTO language for beginners but we don't need line numbers anymore ;-))
You're right, @Bplus! We don't need line numbers anymore because now we have BASIC compilers.

I know you might be scratching your head about that last sentence, but let's have a look a the reason why BASIC had line numbers in the first place.

Fact #1:  The original BASIC programming languages, from Dartmouth's version to all those on machines like the Apple ][, Commodore, TI-94a, and the Color Computer required the line numbers. This was because those versions were interpreted languages, not compiled. As an interpreted programming language, each line (not statement) was stored in a linked-list, with a structure like:

AAAA BBBB CC DD EE...

The "AAAA" was the offset to the next line in memory in hexidecimal.
The "BBBB" was the actual line number in hexidecimal (0 to 65535).
The "CC" and later where single byte tokens for every instruction, in hexidecimal of course.

Quote[Aurel] and i like to be honest and as always i appreciate your honest elaboaration too.

I have always been honest about things, though I may not have always finished a project I spoke about. I too like to hear your honesty as well.

Since I am being honest here... wink... wink...

Let me say this for the last time, I personally do not care what happens to the QB64 project or the QB64 Team. I have no attachments to them, nor do I care what they do. As such, I had to help my buddy CodeHunter, and some others, not only to understand this point of view, but to believe it, so they can move on to bigger and better things, like CodeHunters new forum.

I actually thing I created a monster out of CodeHunter, because he about kicked me off his forum for making that joke about QB64, that I promptly removed.

Quote[Scaremonger] Having compiler directives that allow you to load old basic programs that contain line numbers would be nice, but you should be able to turn them off.
Actually, there is no need to turn off line numbers @Scaremonger. They are now viewed as labels for the most part.


Walter Whitman
The Joyful Programmer

The Joyful Programmer

#20
Also... Let's not forget that back in the Apple ][ and commdore days, BASIC commands could be executed on the command line by simply typing the command with line numbers. But, to store the code into the interpreter, you needed to add line numbers. So, back then, line numbers had multi-roles to play.


Walter Whitman
The Joyful Programmer

The Joyful Programmer

I almost forgot!

I remember the day vividly when I was in the eighth grade: My teacher came to me that morning and told me about how programming languages would someday soon no longer need lines numbers to code. I could not imagine how in the world that would be even possible, but that was because I got used to line numbers in BASIC, and memory addresses in machine language.

He then showed me a computer magazine showing off a new BASIC program without any line numbers, and I was mesmerized!

Those were the days!


Walter Whitman
The Joyful Programmer

Scaremonger

Quote from: The Joyful Programmer on May 12, 2021, 19:23:43
He then showed me a computer magazine showing off a new BASIC program without any line numbers, and I was mesmerized!

I used to study the program listings in those magazines for dozens of different computers and convert them into programs for my computer. That's how I learnt programming. I first encountered assembler as a page full of hexadecimal in a magazine and I was hooked. I bought every book I could find on the subject until I could write that stuff myself.

Fun times.

zelda64bit

Hello The Joyful Programmer.

I like the modern basic 128 logo and I also like the ideas you have in mind, I am curious to know more about modern basic 128, what else could you tell about this new language.

I would like to see some of the syntax of modern basic 128, can games be programmed with it? Will it have directx support, software or only opengl? Will it be compiled or interpreted?

Although the only language that I have made games is with gamemaker gml, I have also learned the basics of other languages and the ones I liked the most are lua, python and ruby, a shame they are interpreted, if they were compiled it would be wonderful.

The Joyful Programmer

Quote[Scaremonger] I used to study the program listings in those magazines for dozens of different computers
Those were the days! No internet. No mouse. No hard drives. No CDs/DVDs/Blu-rays. No video cards. No sound cards to program, just a little speaker you had to toggle at specific rates. No multi-processes. From 1k to 128k of memory. Two-color (monochrome), four-color, eight-color, and sixteen-color displays. From 80x40 to 320x200 graphics. Some machines you had to use ASCII characters or 16x16 sprites for graphics.

When I took "Advanced Computer Programming" in high-school, I really thought I would learn something new. Something valuable. Instead, those classes were more for beginners. While they were learning to PRINT their names on the screen in BASIC, I was doing animation and sound/music in pure machine language on the Apple ][e and Apple ][c. In other words, good games.

Quote[Scaremonger] I first encountered assembler as a page full of hexadecimal in a magazine and I was hooked.
I discovered machine language on the Apple ][, when I was at a book sale. I saw the book laying there and picked it up. It started discribing the weird gibberish that the Apple would display when something crashed. That is when I discovered there was a hidden language on the computer called, "Machine Language", and I soon realized that it was the language of the computer programming God's! The power of machine language was so magnificent that I wanted it to engulf my being so that I too could wield such power and become a God! No, I didn't want a Goa'uld inside me! Geesh!

Quote[Scaremonger] I bought every book I could find on the subject until I could write that stuff myself.
As did I! I even bought the entire set of developer manuals straight from Apple. There was as many books as the Encyclopedia Britannica had or more. They filled up 1-1/2 shelves on my book case (from Walmart). They were also hard-back books, and they went into detail about the Apple ][ line including the Apple ][GS.

Quote[zelda64bit] I like the modern basic 128 logo...
The ModernBasic 128 Studio  logo is full of symbolism.

  • There are 8 cogs in the inner edges.
  • Each cog has 16 teeth.
  • The total of 8 x 16 = 128, which is the number in the name.
  • The 8 inner cogs represents the other FLOSS projects which will be incorporated into ModernBasic 128 Studio .
  • The colors represent the many different types of people who will make the users of ModernBasic 128 Studio .
  • The center cog represents the umbrella of the product.
  • The boxes around each letter in the name symbolizes a keyboard.
  • The fun font used symbolizes our joy in programming.
Quote[zelda64bit] I also like the ideas you have in mind...
Thank you, but those are just a very minute tip of the proverbial iceberg.

Quote[zelda64bit] I am curious to know more about modern basic 128, what else could you tell about this new language.
ModernBasic 128 Studio  is just the doorway from the one to the many (like the number 2). The "Studio" part means ModernBasic 128 Studio  is the core of the project (the IDE, compiler/transpiler, the editors, and everything else in the system)

The "Modern" part of the name is a reference to how the project is designed for modern computers, and may not work on older ones, unlike most other programming languages, like FreeBasic and QB64.

ModernBasic 128 Studio  will be fully hardware accelerated by nature, and will be powered by:

  • OpenGL (Version 3.3+)
  • OpenGL ES
  • Vulkan
OpenGL is a widely used graphics driver for many devices and operating systems, and is a FLOSS project. It also has the expectant life of at least another 20 years (per the official OpenGL website). These are the reasons ModernBasic 128 Studio  will only support the OpenGL family. ModernBasic 128 Studio  will not support proprietary and non-FLOSS graphics driver like DirectX in Windows and Metal on the Mac's.

ModernBasic 128 Studio  will support the following devices:

  • PC
  • Web
  • Android
  • Raspberry Pi
ModernBasic 128 Studio  will support the following operating systems:

  • Linux (Mint, Ubuntu, ?)
  • Windows (7, 8, 10, ?)
  • Raspberry Pi OS
ModernBasic 128 Studio  is not a language itself, as I mentioned above, but does contain multiple languages to choose from.

  • RBasic (RetroBasic) -- A QBasic Clone
  • RBasicX (RetroBasic Extended) -- An enhanced version of RBasic
  • ModernBasic 128 -- The flagship programming language
ModernBasic 128 Studio  will provide transpilers for those three languages. All three will be translated to C++, and a C++ compiler will compile to machine language. Adding more custom languages to the product, or extending existing ones, will be made simple in the IDE.

ModernBasic will contain some revolutionary ideas and technologies.

For example, ModernBasic 128 Studio  will introduce "Fileless Coding", which means your code will no longer be stored in the archaic and static code files (similar in concept to how web sites no longer have to be static pages). This will allow easier and faster coding for developers and will provide a very simple, easy, and sleaker mechanism for version control. It will also offer a level of security for your projects right out the door.

With the "Fileless Coding" technology, we are able to work with assets much more efficiently, especially in our code. We will no longer need to remember internal (of the project) filenames or other asset names. We will still have the ability to load external files as needed, but those will not be secured.

Assets used in ModernBasic projects will be placed into a asset library.

Quotecan games be programmed with it?
Most definitely! Creating games and animations was the whole reason I got into computer programming back in 1982, and I would never abandon those things.

ModernBasic 128 Studio  will provide many types of editors, from code, WYSIWYG, image, sound, tiles, sprites, and many others, right in the comfort of the ModernBasic 128 Studio  (IDE). Think of it as being similar to FL Studio.

QuoteWill it be compiled or interpreted?
Great question! But the answer is two-fold.

As I mentioned above, ModernBasic 128 Studio  will provide transpilers for the three primary languages included in the project, which then will be sent to a compiler. However, we do have plans to integrate a scripting language that can be used in the product, and it will be interpreted.

QuoteI would like to see some of the syntax of modern basic 128
At this moment, we have not defined the syntax or language for ModernBasic 128. While we have some cool ideas for it, nothing has been set in stone yet, which means the community can help out in defining ModernBasic 128.

Here are some of my thoughts so far:


  • ModernBasic 128 will be multi-paradigm: Functional, Object Oriented, Procedural, Imperative, Declarative, and Structured.
  • Will provide "pointer" technology.
  • Graphics can be setup in a tree-like hierarchy structure.
  • Will offer 2D & 3D instructions.
  • Load & Save sounds in real time.
  • Play video in a video GUI object.
  • Will offer a wide range of GUI objects.
  • Will offer a text editor, code editor, and WYSIWYG editor GUI objects with built in ulimited redo, unlimited undo, automatic word-wrap, and load & save functions (so you don't have to recreate them yourself).
  • Will provide a spreadsheet GUI object.
  • Will provide functions to access files on the internet though http and ftp.
  • Will provide image filters.
  • Will provide support for shaders.
  • Will come with a pre-made shaders for you to use in all your projects.
  • CSS-like style sheet system for easy customization of your projects, including changing styles in real time as your app is running.
  • ...and so much more

ModernBasic 128 Studio , it's pre-made GUI objects contained in its standard library of assets, and other visual components can be styled with a CSS-like style sheet. This will make it easy to create, and change themes.

These are only the tip of the proverbial iceberg.

All this was from my scattered notes on the project, and I barely scratched the surface.

Now... On top of all that info, plus the lot I haven't spoke about, I have written hundreds of demos checking to see if I can do some of the things that I have planned, and they were all written for Linux.

So, as you can see from the tidbit above, I have spent way too much time, energy, effort on this project over the last two years, just to just walk away from it. Will not happen!

You can also get a sense as to why I am super excited about this project on a personal level too. With what I just mentioned in the post, and what I still have left in my notes, I really want this project to be done now so I can start using it myself!

Normally, I would not say so much about this project, but I have done so here because people have asked, and for the fact that I want to put to rest any doubt how much I have worked on and planned for this project.

Yes, this project can seem to be overwhelming in nature, especially for one person to create by themselves, but like I have said for so long, when you spend the time planning a project, especially one the size of this, and write a detailed SRS (Software Requirement Specification) with sketches and drawings, it really isn't that daunting. It's just time consuming.

If you have any more questions, please let me know!





Walter Whitman
The Joyful Programmer

round157

Quote from: The Joyful Programmer on May 12, 2021, 15:40:05
MY PROJECT:

That project is called, "ModernBasic 128 Studio".

I have been working on that project for over a year now (well, two actually), planning, writing hundreds of test demos to test ideas, learning about "Project Management" through books I own and online, ............................................................................



Thanks for introducing the project in detail here. This project looks really nice.


Quote
NEW LOGO FOR MODERNBASIC 128:

As part of the graphics and visuals for the project, I decided to go ahead and create the logo first. Here are two versions of the logo that I will be using:


THE VERTICAL LOGO:



The logo looks quite powerful since it consists of a lot of gears. The logo is beautiful. One reason is that the logo is so colourful. I like the design of the logo. The logo makes a positive impression on the public.


QuoteI know what I can do and what I can't do. If I didn't think I could create ModernBasic 128 Studio like I said, then I would have never taken on the project.

Now I believe that ModernBasic 128 Studio's future will be very bright. Good luck!



The Joyful Programmer

Quote[round157] Thanks for introducing the project in detail here. This project looks really nice.
You are very welcome!

However, I did start off with the intentions of doing so. One of my members on my "C++ and C for Beginners" Facebook group shared a link to this site, where either he, or someone else had posted a copy of a post I made on my brand's Facebook page.

One thing led to another, and...

Quote[round157] The logo looks quite powerful since it consists of a lot of gears.
That was one symbolism I was aiming for went I started the creation of it.

Quote[round157] The logo is beautiful.
Sadly... I can't keep my eyes off of it. I really impressed myself with that logo. I love it so much, I have the vertical version as my background image on my phone.

Quote[round157] The logo makes a positive impression on the public.
It does have that positive vibe to it, which honestly, I didn't think about that aspect when I created it. But, yeah, the colors do make it pop, and feel positive. The colors were suppose to symbolize all the different types of coders out there,

Quote[round157] Now I believe that ModernBasic 128 Studio's future will be very bright.
I too believe ModernBasic 128 Studio will have a bright future as long as the project maintainers (myself included) continue to follow the vision of the product.

My goals are to start two LLC's (Limited Liability Corporation), and turning one of them into a 501(c)(3) non-profit organization. The non-profit foundation will be the one in control of the ModernBasic 128 Studio, which is a FLOSS (Free/Libre Open Source Software) product.


Walter Whitman
The Joyful Programmer

Derron

#27
The logo reminds me of an inca tribe on drugs (font choice of the "text logo" supports the aztec/inca/... reminiscence).

In itself it might look cheerful, and eye attracting - but when having to judge the intention / usecase of the logo it is - in my opinion of course - not fitting.

- it is too complex for a (todays) logo
- it uses too many colors for individual focus points (one of the exceptions is the "rainbow" as it is seen as "one piece")
- minor: it contains a "tm" - sure it is trademarked?
- the cogwheels are bent ... sturdy cogwheels do not bend!
- bent cogwheels remind on cockscomb or an Romanian legionaires Crista
- cogwheel in the center is differently designed than the outer ones (things should not look like "different sources mixed together")
- take away the distracting colours of the outer cogwheels ... and what is left looks like an "all observing robot eye"

The idea of 8, 16 ... 128 etc might be nice to have - but maybe do not force it. Sometimes "less is more". Maybe see this logo as a "revision #1" and let others follow - settle down on colours, simplify shapes ...
Logos can of course still look cheerful - but it just does not always fit.


Above is only my opinion - and it is only about the logo. The other parts of the project I am not utterly interested (now) so I neither judge that nor have an opinion about it.


bye
Ron

Aurel [banned]

QuoteThe logo reminds me of an inca tribe on drugs
;D

I don't know that Inca tribe  :o
but yes considering logo looking nice but also little bit complex
so i am proud on my logo which is very simple letter A inside parens
(Y)

Aurel [banned]

maybe something like this  ;)
(Y)