The + and & operators are not the same, they cannot be used interchangeably. You cannot add two numbers using the & operator. Having two operators that are aliases for each other is just insane and unnecessary bloat.
Printable View
Isn't part of the problem is that there is no 'standard' for the Basic language? C/C++ are ISO standard(s), Fortran has it's standard. But what's Basic? I could 'invent' a new language and call it say zBasic and it could look quite different to existing versions of 'Basic' but still be called 'Basic'. I first came across this issue when I wrote Basic applications for mini-computers in the 1970's/80' and each version was different in some way. I don't program in Basic any more, but isn't it time that 'Basic' became a standard?
I am really for and against that idea, I proposed it earlier, my suggestion was a ECMA-style group that decided on the changes, direction for the language. However, given the characters here and the levels of opposition to almost anything proposed it might be a slanging match.
However, with Wayne seemingly running the show as an intelligent, benign and benevolent dictator (no slur or criticism intended) we are probably in a good place, ie. he listens, he knows his stuff but ultimately we don't have much of a choice. It works.
With a properly constituted group - it requires recognition to work, I mean if we constituted a group, no-one has to listen, anyone could still do what they wanted. The "BASIC advisory board" might be the best we could come up with a voting method to decide things. That is roughly what we are creating here.
Yes - it needs to be done via your National Member. See https://isoupdate.com/resources/6-st...-iso-standard/
Hold the front page! Stop the Presses!!
There is an ANSI/ISO Basic standard - INCITS/ISO/IEC 10279-1991 (R2005)
https://www.iso.org/standard/18321.html
https://webstore.ansi.org/standards/...102791991r2005
However I don't know how useful these are due to their age. Perhaps those currently involved in Basic development might like to contact the ISO and find out what's happening re revision to the basic standard and how to contribute to its active development.
I remember the standardization process for C++. It was about as contentious, though much drier, than the discussion around TwinBasic. Following that came the revision of the C standard in 1999. You need an active process to keep those standards evolving.
or revolving in our case.
The Basic working group is WG8 under SC22 (C is WG14, C++ is WG21). Apparently, it is no longer active. See http://www.open-std.org/jtc1/sc22/
If anyone wants to pursue Basic standardisation, then I suggest in the first instance they contact the Chair of SC22 (which covers all computer languages) for information http://www.open-std.org/jtc1/sc22/docs/contacts
twinBASIC status update:
twinBASIC update January 2, 2022
Highlights include a feature to generate missing implementations, minor improvements to the Reference List UX, and some spirited debates.
Well based on the current state of the votes, it seems the language will remain unpolluted by the addition of aliases for the << and >> operators. So this issue has been resolved.
I know not everyone wanted this and I know a few people here have grown to hate me during this course of this conversation but I personally enjoyed the discussion. It was very enlightening. I just wish people wouldn't get so emotional. I also want you guys to know that despite your hatred for me, I hold no animosity in my heart towards any of you. I have no hate for baka or Eduardo. I respect you both but it doesn't mean I will just keel over and just agree with everything you say. I apologize if during the course of this I went too far but I do not apologize for my opinions and hopefully we can find a way to peacefully co-exist on these boards.
twinBASIC status update:
twinBASIC update January 9, 2022
Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
I would like to see lambda functions as I did in M2000 Interpreter:
https://georgekarras.blogspot.com/20...-in-m2000.html
Each "lambda" function is an object which have two parts: The function and the list of closures.
We can define closures at the definition stage for lambda, and that will be new or copies of variables of same scope at the definition.
Also tuple: a=(1,2,3,4) like a=Array(1,2,3,4). The empty tuple: a=(,). One item tuple: a=(1,). We can use #functions like Print a#sum().
Also cons()
a=(1,2,3,4,5)
b=Cons(a, (6,7,8), a)
Print b
And car() and cdr()
a=((1,2), (3,4), (5, 6))
b=Car(a)
Print Car(b) ' 1
Print Car(Car(a)) ' 1
Print Cdr(Car(Cdr(Cdr(a)))) ' 6
Have you ever tried Common Lisp?
You have all of these requested features there unlike any BASIC language known to mankind :-))
cheers,
</wqw>
So, CAR and CDR is property of LISP?
I think BASIC must go higher, including these which I propose in previous reply.
As someone who's been wishing for a vb6 upgrade/replacement for well over a decade (not far off two actually) I really wish discussions about desired new features would just go away.
Until twinbasic can open all existing vb6 projects it's no more interesting to someone invested in vb6 than any other language.
I'm contributing to twinbasic, albeit only financially, but I'd prefer if people would leave Wayne to get on with the great job he's doing.
Once compatibility is achieved that's the time to start adding all the new goodies.
Wayne already ready made it very clear that new features must be considered up front. If it's put off for later, it may be far more difficult to implement them. Here is the post. More specifically he said:-
There is no getting away from this.
As someone who previously has been involved with OS and compiler development, I absolutely agree with this. Time spent on the design is time well spent and will almost certainly be recouped during the coding phase. Major changes to the design once significant coding has been done often requires large amounts of code to be thrown away and re-written - delaying the project beyond the small extra design time that would have been spent.The more complex the project (like TB), the more the need for up-front in-depth design before much production coding is undertaken. Not doing this is, IMO, a recipe for disaster and often helps to explain why some projects get so far and then no further and peter-out.
twinBASIC status update:
twinBASIC update January 16,2022
Highlights include the CompileIf attribute and IsObject function for generics, an experimental package manager, and 10 Guiding Principles of twinBASIC.
twinBASIC status update:
twinBASIC update January 23,2022
Highlights include the introduction of TWINPACKs and the TWINSERV package manager, IntelliSense improvements, and easier reporting of twinBASIC bugs.
twinBASIC status update:
twinBASIC update January 30,2022
Highlights include a sample project demonstrating the WaynesGrid control and a timeline update for the release of (some) native Win32 controls.
twinBASIC status update:
twinBASIC update February 6,2022
Highlights include the milestone release of WinForms functionality, control inheritance, ReadOnly class properties, and twinPACK updating documentation.
twinBASIC status update:
twinBASIC update February 13,2022
Highlights include a new Settings filter bar and WinForms Controls Package updates included by default with future twinBASIC extension updates.
twinBASIC status update:
twinBASIC update February 20,2022
Highlights include checkbox-style list boxes, native Winforms progress bar and image controls, and an option to align controls to grid in the form designer.
The current twinBASIC version is 0.14.28
twinBASIC status update:
twinBASIC update February 27,2022
Highlights include multiple form designer improvements and a *BIG* announcement about the future of the twinBASIC IDE.
The current twinBASIC version is 0.14.36
twinBASIC status update:
twinBASIC update March 6, 2022
Highlights include a sneak peek at the new twinBASIC IDE (currently under development) and a brief comparison between RAD Basic and twinBASIC.
A sneak peek at the new twinBASIC IDE...
New twinBASIC IDE
A simpler and more VB6-like IDE - available soon :)
twinBASIC programming just gets better and better :thumb:
twinBASIC status update:
twinBASIC update March 13,2022
Highlights include another sneak peek of the upcoming twinBASIC IDE and a special announcement regarding Access DevCon Vienna 2022.
twinBASIC status update:
twinBASIC update March 20,2022
Highlights include a cryptic update on the new IDE's release date and a possible twinBASIC solution to the oft-delayed Access modern browser control.
And the new IDE? "Not long to wait now, hang on in there 😁"
I thought about posting this on the TwinBASIC GitHub but due to it's very informal and imprecise nature, I think here is the better place to post it.
A video just came across my recommended videos in YouTube:-
https://www.youtube.com/watch?v=qvFG8J7SUDE
Now the video itself is not what I'm trying to direct attention to. It's a very light hearted video meant perhaps to elicit some laughs. What really caught my attention was the comments. I spent about 30 minutes just reading the comments. The comments were mostly centered on JavaScript of course but there were also but there were a number of comments and mini-discussions on how it compares to other languages.
It reminded me of this thread and a couple over on GitHub, particularly our fierce debates on how to attract outsiders and how people would feel about specific features and what should be included and what shouldn't. Reading the comment section of that video was like waking the pulse of the body of expectations modern programmers have for programming languages. I think it would be valuable just to casually browse the comments it to see what modern programmers like and what they don't like. I found it enlightening. There were some things that that even surprised me.
New twinBASIC IDE...
New twinBASIC IDE demo
Not long to wait now :)
twinBASIC programming just gets better and better
The expected release date of the new twinBASIC IDE is Tuesday 29th March
New twinBASIC IDE demo
Cool. ;)
twinBASIC status update:
twinBASIC update March 27,2022
Highlights include a release date for the twinBASIC IDE and plans to open-source the IDE's source code.
The twinBASIC IDE is scheduled for release on Tuesday, March 29, 2022
Attachment 184494
Whoa that was fast. How does Wayne do these things so quickly. I thought an IDE would have been at least a year away.
For the early birds... BETA 1 of the twinBASIC IDE is now available...
The new twinBASIC IDE is now available.
This is a custom-written twinBASIC IDE - not the VS Code IDE that was used previously.
This is a more VB6-like IDE for twinBASIC programming.
To install:
twinBASIC IDE LATEST BETA is now available: - See posts below for more details.
Download from here... https://github.com/WaynePhillipsEA/twinbasic/releases
- Click on "Assets" for the latest release
- Download and Extract the ZIP file into a local folder
- Then run the twinBASIC.exe from the local folder.
If you're NOT using Windows 11, you might need to download and install the WebView2 Runtime (32-bit). When you run the IDE it will show a message if the WebView2 Runtime isn't installed.
Download it here: https://tinyurl.com/twinbasicwebview2runtime
(in case of difficulty download from here https://developer.microsoft.com/en-u...wnload-section - you want "Evergreen Standalone Installer" > "x86")
Some products, like Office 365, now pre-install WebView2 for you, so you might not need this step. - See post #883 for more details.
Report any issues here https://github.com/WaynePhillipsEA/twinbasic/issues/772
See twinBASIC IDE for further details.
The new IDE is a big step forward for twinBASIC programming. And now with ActiveX support in twinBASIC forms too.
It seems that the following links cannot be opened in China:
https://tinyurl.com/twinbasicwebview2runtime
Could you provide an alternative link? Thanks.
You might find that the WebView2 runtime is already installed on your machine. It seems that it has come pre-installed with Office 365 for the last year or so, so many will already have it installed. If you run the twinBASIC EXE (from the second link) and it does nothing, then it will be due to the missing WebView2 runtime. If that's the case you can try to download it at the following alternative link:
https://developer.microsoft.com/en-u...wnload-section
(you want "Evergreen Standalone Installer" > "x86")
BETA 2 is now available:
https://www.twinbasic.com/downloads/...IDE_0.15.2.zip
Changes;
- improved: all panels are now resizable, and their states are restored when the IDE is reloaded
- improved: some minor theme tweaks
- improved: escape key will now cancel editing a variable value in the VARIABLES panel
- improved: after importing from a VBP file, the IMPORT_LOG.txt file is now opened automatically
- fixed: importing a VBP file would show duplicate entries in the PROJECT EXPLORER
- fixed: DEBUG CONSOLE auto-scrolling sometimes got out-of-sync
- improved: debugging experience, with less code-editor flickering
- fixed: DEBUG CONSOLE not being able to access local variables from the debugged callframe
- fixed: compiler bug involving non-ANSI UDTs being passed ByVal to As Any arguments [FullValueRider]
- added: 'Ask before delete files' IDE option (default: true)
@SearchingDataOnly - I think the Run button is for running a procedure from a line of code where the caret (sic, cursor) is? Not sure because there is no tooltip, but there is such an button in the VS Code version. Try clicking the Round "Preview" button instead - it doesn't look like a button, which is a bit confusing.
@WaynePhillipsEA:
In the process of testing, I found several phenomena:
(1) I dbl-clicked the Cmd button on MyForm, and the twinBasic smoothly entered the "Control1_Click" procedure in the code window. However, if I dbl-click MyForm, the twinBasic does not enter the code window, that is, does not enter the procedure related to the MyForm event. It seems that MyForm events can only be selected on the "Events" tab next to the properties window.
(2) "Save Project" cannot save newly created projects. However, after reopening twinBasic, in the "New-Samples-Recent" window, the Recent tab will still display the last saved "project name and path". If I open this "project name and path", twinBasic displays the following information:
(1) Error reading file
(2) bad file format: invalid header
(3) here 1 failed
Then, twinBasic stops working and goes into a long "Please Wait..." suspended state. Maybe it's just a copyright protection mechanism specific to the beta version.
(3) The default names of the controls on MyForm should not be "Control1", "Control2", "Control3", etc. It would be better if the default names could be the same as the VB6-controls.
BETA 3 is now available:
https://www.twinbasic.com/downloads/...IDE_0.15.3.zip
- improved: IDE minimize/maximize/restore and window sizing/positioning is now allowed (some known resizing issues remain)
- fixed: double clicking on a form design was not opening the default event [VBF:SearchingDataOnly]
- improved: default names of newly added controls now match VBx [VBF:SearchingDataOnly]
- improved: added tooltips to the toolbar icons
- fixed: Ln/Col status bar text no longer visible if the code editor is not visible
- added: FormBorderStyleConstants.vbSizableNoTitleBar enumeration (now used by the IDE)
BETA 4 is now available:
https://www.twinbasic.com/downloads/...IDE_0.15.4.zip
- fixed: close button not at the very right edge of the window [jpbro]
- fixed: click again on a top-level menu should cancel it [jpbro]
- fixed: escape should cancel menus [jpbro]
- fixed: form designer context-menus not at expected position [aliensoftGB]
- fixed: switch between form/code not working [aliensoftGB]
- added property TextBox._Default [DefaultMember] [wopag]
- added property HScrollBar._Default [DefaultMember]
- added property VScrollBar._Default [DefaultMember]
- added property Timer._Default [DefaultMember]
- added property OptionButton._Default [DefaultMember]
- added property ListBox._Default [DefaultMember]
- added property Label._Default [DefaultMember]
- added property ComboBox._Default [DefaultMember]
- added property CheckBox._Default [DefaultMember]
- 'Standard EXE' is now the first and default entry in the initial project-selector dialog
- modal dialogs will now reposition upon IDE window resize, and will scale smaller if content won't fit
- fixed: StrComp handling of empty strings now matches VBx [ https://github.com/WaynePhillipsEA/twinbasic/issues/767 ]
- changed: rearranged the toolbar icons, in preparation of becoming context-aware
BETA 5 is now available:
https://www.twinbasic.com/downloads/...IDE_0.15.5.zip
- fixed: resolution of UDTs problem, involving ordering of implicit ANSI<->UDT conversions, causing link-time failures [ https://github.com/WaynePhillipsEA/twinbasic/issues/777 ]
- fixed: resetting the compiler doesn't reset the total error count
- improved: F12 key is now mapped to go-to definition
BETA 6 is now available:
https://www.twinbasic.com/downloads/...IDE_0.15.6.zip
- improved: added IDE option of 'Restore State Of Code Editors On Opening Project'
- improved: added keybinding for CTRL+K: Comment Selection
- improved: added keybinding for SHIFT+CTRL+K: Uncomment Selection
- improved: added keybinding for SHIFT+CTRL+F: Find in files (project)
- fixed: Escape key not working in Find popup monaco dialog
- fixed: Enter key not working in Find popup monaco dialog
- improved: reduced the effect of the dimmed overlay when menus are visible
- improved: form designer control selector dropdown was glitching when focused
- fixed: problems with library references were not being reported
- fixed: unimplemented DAP message of "custom/buildUnregisterFailed" on DllUnregister failure
- added: experimental FULL SCREEN mode for the code/designer area, using F4 key to toggle
I'm very impressed.
This makes it really easy for someone like me to try out twinbasic.
One downside of that is that it's possible for me to find bugs such as code doesn't work quite as expected.
Code:Private Sub Command1_Click() Handles Command1.Click
If Me.BackColor = vbRed Then
Me.BackColor = vbBlue
Else
Me.BackColor = vbRed
End If
End Sub
Thanks @vbrad, glad you like it.
That bug did get reported a few days ago. It will be fixed in BETA 8 tomorrow, but here is a fix for now:
Code:Private Declare PtrSafe Function RedrawWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal lprcUpdate As LongPtr, ByVal hrgnUpdate As LongPtr, ByVal fuRedraw As Long) As Long
Private Sub Command1_Click() Handles Command1.Click
If Me.BackColor = vbRed Then
Me.BackColor = vbBlue
Else
Me.BackColor = vbRed
End If
RedrawWindow Me.hWnd, 0, 0, RDW_ERASE Or RDW_INVALIDATE
End Sub
twinBASIC status update:
twinBASIC update April 3,2022
Highlights include the release of the new IDE and an announcement about twinBASIC's role at the upcoming Access DevCon Vienna conference.
BETA 7 is now available:
https://www.twinbasic.com/downloads/...IDE_0.15.7.zip
- added: project setting of 'Startup Object'
- changed: F5 key behaviour to match VBx, invoking the designated Startup Object
- changed: F6 key now executes the code under the cursor when in the code editor, or previews the active form in the form designer
- removed: MainModule from 'Standard EXE' project, as we no longer require the Sub Main bootstrap
- improved: full screen mode (F4) now includes a titlebar with min/max/close and exit full screen buttons
- improved: rearranged toolbar icons and added undo/redo buttons
- fixed: global variables were not always reset by the debugger when a debug session was terminated [ https://github.com/WaynePhillipsEA/twinbasic/issues/778 ]
- fixed: (WinNativeForms) Form.Refresh now includes the RDW_ERASE flag in call to RedrawWindow
- fixed: RaiseEvent argument validation too strict [ https://github.com/WaynePhillipsEA/twinbasic/issues/773 ]
- fixed: missing Optional attribute on ListBox.AddItem and CheckBox.AddItem from original VB6.OLB [ https://github.com/WaynePhillipsEA/twinbasic/issues/776 ]
Great work, thanks