Author Topic: ScriptBasic 3.0  (Read 11083 times)

Offline AlyssonR

  • Advocate
  • Posts: 131
Re: ScriptBasic 3.0
« Reply #75 on: April 30, 2024, 12:59:23 AM »
Too true!

I have, as promised, given the latest version a look, and will be using it in the future.

Right now, though, I'm mostly concerned with hardware projects - but software will
come into it once that stage is reached, and SB will almost certainly be my choice for
the (remote) front end.

Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #76 on: April 30, 2024, 07:33:56 AM »
Thanks for the feedback. Let me know if you have any questions.

Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #77 on: May 03, 2024, 03:55:26 PM »
This is a list of ScriptBasic features I really like.
  • No need to dimension or declare variables or their type. This includes arrays.
  • One code branch for all platforms.
  • Thread centric memory model.
  • High level C extension module API. (CBASIC enhanced)
  • Case sensitivity option with string functions.
  • Module based name space design.
  • Variant based variables.
  • Arrays (or any range of it) can be appended to any element of another array with a = assignment. Arrays can be indexed, associative or a combination of both.
  • Less than 800KB footprint.

My most favorite / used is the SPLIT and LIKE functions.
« Last Edit: May 04, 2024, 07:28:15 PM by John »

Offline AlyssonR

  • Advocate
  • Posts: 131
Re: ScriptBasic 3.0
« Reply #78 on: May 06, 2024, 01:24:05 AM »
I was always planning on using SB in a couple of projects and I have used it in the
past for some quick and dirty admin processes across my network.

One code branch is brilliant (but not needed for me ... yet)
Variant variables and undeclared types are good - even though I prefer to declare variables
Module name space means not really changing mental gears from VB6
Optional case sensitive string functions sells it for me

C extension will be useful when I get around to it
Arrays. I'm still used to keeping track of them by numeric indices

What would be really good would be a utility to take VB forms (without code) and to turn them
into viable SB forms - sadly, I know that I don't have the patience (or skill) to write it. An ANSI
terminal forms handler, OTOH, may be within my wheelhouse - sometimes a text interface is
just what the doctor ordered.



That small footprint is useful, even though I generally have stacks of memory available,
but combined with thread-based meory model, means that multi-process and multi instance
isn't going to break the bank


Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #79 on: May 06, 2024, 08:06:37 AM »
Quote
I was always planning on using SB in a couple of projects and I have used it in the
past for some quick and dirty admin processes across my network.

If there was a glueware class of software SB would be at the top of the list. I save a lot of money for my clients connecting processes together to automate the solution.

Quote
Variant variables and undeclared types are good - even though I prefer to declare variables.

SB by default declares variables as global to the module. This includes FUNCTION/SUB variables not passed as arguments which are local by default. You can change this with SB option settings to require that all variables be assigned or SB will not run run the script. You also set the option that all variables in FUNCTION /SUB are local by default. Normally the only time I initialize a variable is if I'm incrementing it with += or &=. SB doesn't like incrementing undef variables. I rarely use STR() or VAL() functions with SB variant variables.

PRINT "1" + "2"  would return 3
PRINT 1 & 2 would return "12" 


Quote
Arrays. I'm still used to keeping track of them by numeric indices.

I rarely use indexed based arrays. All the DB extenion modules support returning the data in associative arrays. I wrote a JSON to SB associative function (webext.sbi) that makes working with JSON a dream. HERE is an example of using the webext.sbi extension module with a JSON string.


Quote
What would be really good would be a utility to take VB forms (without code) and to turn them
into viable SB forms - sadly, I know that I don't have the patience (or skill) to write it. An ANSI
terminal forms handler, OTOH, may be within my wheelhouse - sometimes a text interface is
just what the doctor ordered.

I use VB6 with VBCCR to create form / class COM DLLs as my user GUI interface on Windows 32 bit. The form events callback to SB FUNCTION / SUB routines which I use to load grids and update my DB. HERE is an example I posted in this thread. My plan was to start a new thread showing how to use VB6 + VBCCR to create a modern looking GUI that runs on Windows 10 and 11. I've held back starting this thread to see how the ScriptBasic 3.0 release and its use progressed. So far you are the only person that has taken the time to respond.



« Last Edit: May 06, 2024, 11:49:14 AM by John »

Offline AlyssonR

  • Advocate
  • Posts: 131
Re: ScriptBasic 3.0
« Reply #80 on: May 06, 2024, 11:53:04 AM »
Quote
What would be really good would be a utility to take VB forms (without code) and to turn them
into viable SB forms - sadly, I know that I don't have the patience (or skill) to write it. An ANSI
terminal forms handler, OTOH, may be within my wheelhouse - sometimes a text interface is
just what the doctor ordered.

I use VB6 with VBCCR to create form / class COM DLLs as my user GUI interface on Windows 32 bit. The form events callback to SB FUNCTION / SUB routines which I use to load grids and update my DB. HERE is an example I posted in this thread. My plan was to start a new thread showing how to use VB6 + VBCCR to create a modern looking GUI that runs on Windows 10 and 11. I've held back starting this thread to see how the ScriptBasic 3.0 release and its use progressed. So far you are the only person that has taken the time to respond.

I may even take that approach and create DLLs when I get to that point.

As a fairly keen retrocomputing and MCS-51 person, ANSI terminals are very much an in technology for me and a lightweight handler for serial to display port is a definite path to reducing the (cursor addressing / graphics boxes / colour encoding) overhead on the remote board is the difference between glass teletype and VT100+ behaviours - and brings the possibility of multipage forms on board, not to mention background data logging.

The fact that a PC if considerable power is used as a terminal for a 64k text-only device is quite apart from the point - I get fed up with the disparate, pretty GUIs on remote devices that just swallow bandwidth on the network.

For reference, I use:

Windows 7
Windows Server 2008 (R2)
DOS 6.22
MCS-51 (bare metal)
Arduino ecosystem (bare metal)

Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #81 on: May 06, 2024, 12:00:22 PM »
The CIO extension module is used to control the console display with positioning and colors.

SB also supports a socket connection with OPEN statement.

You should checkout the RaspberryBASIC forum I host. I have examples of using the GPIO extension I created.
« Last Edit: May 06, 2024, 01:03:56 PM by John »

Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #82 on: May 06, 2024, 01:34:29 PM »
ScriptBasic has been compiled on current supported OS versions. SB isn't a substitute for QuickBasic or other ancient BASIC interpreters. I will not be supporting any Windows version earlier than Windows 10.

The Windows 32 bit version was released as a binary distribution and a compilation of my efforts over the years. I have no plans of extending this version. All development efforts going forward will be based on Windows 64 bit and Linux.

« Last Edit: May 06, 2024, 03:19:02 PM by John »

Offline AlyssonR

  • Advocate
  • Posts: 131
Re: ScriptBasic 3.0
« Reply #83 on: May 07, 2024, 05:13:38 AM »
Terminal interface:
All I need is an interpretation/formatting layer between serial port and terminal window
  - to take custom escape codes and put/grab data as required
  - thus reducing the static data overhead on the remote device application (with only
    a few kB of application storage)

Windows Compatibility:
I don't actually use many 'features' of Windows in my software as it is mostly file and
text-like data manipulation along with whatever maths I need to do. So long as file
handling and comms is backward compatible, the programs should run trouble free.

Small systems:
Most of my hardware projects are too small to be able to host an OS and GPIO is
handled directly on the metal. Any control from input has to be handled at that level
(i.e. assembler, C/C++ or B4R)

Historical BASIC:
I do have QB64, but I prefer SB and VBS. VBA is still a part of my version of Office.
VB6 will, it seems, never get old unless you use windows features that have been
removed. It remains (on W7) a good option for GUI and Q&D development.

I don't even use a DBMS, just a couple of random-access index files, INI tally files
and a directory tree. (mineral collection records). Storage is, after all, cheap.

For front-end - VS (VB/VC) serves well enough right now if I want a proper GUI and
SB's support on W7 breaks - right now It seems to work fine, though.

I should point out, here, that I am not interested in commercial polish since functionality
trumps all.

Socket connections:
As a friend used to say - poifick - at least where an RS232 (RS422/485) interface
don't reach directly.

« Last Edit: May 07, 2024, 08:29:29 AM by AlyssonR »

Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #84 on: May 07, 2024, 09:29:21 AM »
Most of the Windows 32 code was developed on Windows 7 so I don't see any issues running the current version of SB on it.

The OPEN statement also supports a serial port connection. I have only done a quick test long ago using AT commands to to a controller.

VB6 + VBCCR allows me to create modern UI solutions as a COM DLL. I don't use VB6 for anything else. I don't see Microsoft dropping VB6 runtime support anytime soon.

Quote
I may even take that approach and create DLLs when I get to that point.

If you go that direction let me know and I'll send you what is needed to create a form DLL.
« Last Edit: May 07, 2024, 08:41:29 PM by John »

Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #85 on: May 25, 2024, 01:25:56 PM »
I have restored the resources for the ScriptBasic open source project. My future contributions to this project will be limited to processing push requests by other contributors.

My efforts with SciptBasic going forward is servicing the commercial market with a supported product.

If you would like to join this forum and would be posting rather than lurking, send a request to support@scriptbasic.org for membership. It seems the current member base is either dead, retired or just too lazy to post what they're doing with BASIC if anything.


« Last Edit: May 26, 2024, 02:21:54 AM by John »

Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #86 on: May 26, 2024, 03:19:51 PM »
I have one favor to ask. If you have downloaded ScriptBasic and given it a try, could you post a review of what you like or dislike about the language? E-mail responses are welcome as well.

Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #87 on: May 26, 2024, 08:24:57 PM »
I updated the Windows 32 ScriptBasic installer in the repo with a recompile with TDM-GCC-32 and setting the version level to 3.0.

Push requests can also be ScriptBasic examples to add to the library I have already started.

I started a wiki (markdown) conversation of the ScriptBasic developer guide on the sb-dev-msvc repo. If someone would like to take ownership of that project let me know.

To push ScriptBasic enhancements and examples to the repos, create an account and I'll assign you a role and extended your repo access.
« Last Edit: May 27, 2024, 12:20:24 PM by John »

Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #88 on: June 01, 2024, 02:51:24 PM »
I have one favor to ask. If you have downloaded ScriptBasic and given it a try, could you post a review of what you like or dislike about the language? E-mail responses are welcome as well.

Is this too much to ask?

I'm going to be cleaning up the member base and removing anyone that hasn't logged in over a year.

« Last Edit: June 01, 2024, 06:18:44 PM by John »

Offline John

  • Forum Support / SB Dev
  • Posts: 3597
    • ScriptBasic Open Source Project
Re: ScriptBasic 3.0
« Reply #89 on: June 09, 2024, 01:23:15 PM »
The only complaint I have ever received about ScriptBasic is they wished they had tried it sooner. Don't assume SB is just another QuickBasic remake. You would be hard pressed finding a BASIC interpreter that is faster or with more features. Just give it a try, you will thank me.