Arguably the time for that is when v1 is released.
Printable View
I think that would be reasonable. The hesitation in the beginning is definitely; so many promised VB replacements never going anywhere, no good gauge of how fast progress would be or whether it would start gaining traction. But revisiting the issue now, I think the case is a lot more clearer. tB is a real thing, not vaporware, it's already extremely far along, numerous people are using it, and the creator is clearly dedicated to keeping it moving at the same astounding pace it has over the past 2 years.
BETA 315 of the twinBASIC programming IDE is now available...
Download from here... https://github.com/twinbasic/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 that local folder
How to install https://nolongerset.com/how-to-install-twinbasic/
Mulitple threads is definitely a good idea, and moderators including myself have said it multiple times. For now, they should be placed in the "Other Basic" forum, like this thread... when a TwinBasic forum is made, moderators/admins will move the threads over.
This is actually baka's thread, so baka should get to choose a name change (and can do it by editing post #1, or asking a moderator).
Quote:
So tB forum when? :D
Quote:
Totally agree. It is clearly time for twinBASIC to have its own subforum (and Codebank) here.
The main factor is the number of threads... we currently have 5, but there would have been at least 5 more if they weren't merged into this thread.Quote:
Arguably the time for that is when v1 is released.
We might also decide to wait for the release of v1, but I don't know.
BETA 316 of the twinBASIC programming IDE is now available...
Download from here... https://github.com/twinbasic/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 that local folder
How to install https://nolongerset.com/how-to-install-twinbasic/
Recommend your favourite BASIC-like programming languages...
16 Best BASIC-like programming languages
https://www.slant.co/topics/9807/~ba...ming-languages
twinBASIC is in the list...
https://www.slant.co/topics/9807/vie...ages~twinbasic
BETA 317 of the twinBASIC programming IDE is now available...
Download from here... https://github.com/twinbasic/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 that local folder
How to install https://nolongerset.com/how-to-install-twinbasic/
Twinbasic allows you to set third-party OCX control properties in a form
This function is good, so you have a lot of controls, if. NET controls can also set properties here, so there are thousands of controls
But he can generate a form of DLL, and can generate dozens of K of standard DLL, a little wizard
Assuming he is VB.NET source code, debugging with VB.NET dynamic compilation function, and then compilation of EXE, with a form to be attached to a 1000KB or so of the LIB or runtime static compilation in it.
Some time ago testing, found a lot of problems, a stream of standard DLL can run for a while can not run, the latest version is much more stable.
Now the main problem is the generation of COM DLL and OCX control, in VB6 IDE can not run, to compile generated EXE can be called normally.
Anyway, this is a great product that does most of what we want. Generate 64-bit program, compatible with VB6 old project, if still can put. NET UI controls are also wrapped in for use with TWINBASIC.
If you can directly write some VB.NET simple code, JS code mixed programming, it is very convenient.
At least if you can quote. NET DLL component library is also very convenient, WEBSOCKET in VB has been a headache, I do not know TWINBASIC can really simple implementation of websocket server and client.
Compile-generated EXE with forms
VB6 is only 24 kilobytes,
twinbasic has 1MB
vfb generated form EXE 150KB
I do not know when you can have the Chinese version, set a file as a language package, such as the default is language_ini English, IDE can be set to choose language_cn.ini (Chinese language package)
use webview2 control need to install twinpack(packages
The simplest way to use a webview control is to be a hassle for VB6 programmers.
It would be convenient if references were divided into three types: OCX controls,COM DLLS, and Twinbasic's own virtual controls.
The complete tutorial
https://blog.csdn.net/xiaoyao961/art...ails/130926012
Since twinbasic must have the EDGE runtime installed first, the webview2 control should be displayed in the Controls toolbox by default, without requiring additional complex references to be added.
Assembly code support can also be developed. Inserting assembly code directly into the IDE can be wrapped as a function, module, or inserted directly into the compiled code.
In addition, a pure web interface can be developed.
Just as vb6 was the first to support the development of Windows 6.0 interfaces, it will load a specialized UI component, just like office forms2.0.
Only certain UI controls and code can be used in wince.
If you use web pages as interface elements, then changing to the server version is easy. In a few simple steps, you can turn the software into a direct operation on the phone, server running EXE or just a DLL.
This is also the VB6 function into the cloud a new way to play. After all, a Microsoft cloud can cost as little as $100 a year, or $20 in China. An operating system runs on the server 24 hours a day.
We can use software in the cloud directly from our phones, tablets, or other computers.
Web version IDE will come out, later open the web page can write code, support webpage drag and drop button, form control (visual form design), server code directly with JS, or any language implementation (.NET,JAVA,PYTHON, swift).
The web page just shows an operation interface and some interface changes.
vbsedit is also used to write 64-bit game scripts, which would be more convenient if twinbasic could put assembly code directly into it. It runs several times faster
Attachment 187727
First, TWINBASIC is almost 100% compatible with vb6 and has some of the syntax of VB.NET.
As a result, he cannot be queried and asked questions in VB6 and the code base, which is unfair and unreasonable.
In theory, if the IDE can also write VB.NET code, you can write VB6 code.
He should have two subject posts, one for VB6 and one for VB.NET.
It's better if the development company pays a little bit for this forum, otherwise it doesn't belong to VB6 or VB.NET,
It is like F# language, can never be searched.
Hope the forum administrator can pay attention to this problem. You can't let them advertise for free without paying, and you can't let VB6 fans have access to such a great tool.
Just a few months ago I tested generating standard DLLS and COM DLLS, sometimes can be called by VB6, next time not, extremely poor stability. The test was done today, and it can be used normally, and most of the problems have been solved.
VB3.0 is equivalent to entering the state, once reached VB5.0 is a commercially stable product.
It was a mistake to put it in the "K" language and put it in a new section. In fact, I think the best way is to ask and publish CODE snippets directly on VB6 and VB6 CODE BANK. The example project is fine, but it should be clearly stated that it should only work with TWINBASIC or with VB6.
For some of my VBA questions, I don't need to go to the EXCEL forum for help, it's completely VB6, just some data types need to be converted to LONGPTR and so on.
I hate long class names, like this UIA Automation, which I would do if I developed it:
Finditem(byname,bykeyid)
item.click
item.setvalue
50 word code, Microsoft makes us write 3000 word code, that is the root cause of IE's failure.
Code:Set UIA = New UIAutomationClient.CUIAutomation
Dim Root As UIAutomationClient.IUIAutomationElement
Set Root = UIA.GetRootElement
Debug.Print Root.CurrentName, Root.CurrentLocalizedControlType
'Shell "D:\Program Files\Tencent\WeChat\WeChat.exe", vbNormalFocus
'定位微信搜索框
Dim Condition1 As UIAutomationClient.IUIAutomationPropertyCondition
Set Condition1 = UIA.CreatePropertyCondition(UIAutomationClient.UIA_PropertyIds.UIA_ClassNamePropertyId, "WeChatMainWndForPC")
Dim AE_WeChat As UIAutomationClient.IUIAutomationElement
Set AE_WeChat = Root.FindFirst(TreeScope_Children, Condition1)
Debug.Print AE_WeChat.CurrentName
Dim PC1 As UIAutomationClient.IUIAutomationPropertyCondition
Dim PC2 As UIAutomationClient.IUIAutomationPropertyCondition
Dim PC3 As UIAutomationClient.IUIAutomationPropertyCondition
Set PC1 = UIA.CreatePropertyCondition(UIAutomationClient.UIA_PropertyIds.UIA_NamePropertyId, "搜索")
Set PC2 = UIA.CreatePropertyCondition(UIAutomationClient.UIA_PropertyIds.UIA_ControlTypePropertyId, UIAutomationClient.UIA_ControlTypeIds.UIA_EditControlTypeId) '50004
Dim AC As UIAutomationClient.IUIAutomationAndCondition
Set AC = UIA.CreateAndCondition(PC1, PC2)
Dim SearchBox As UIAutomationClient.IUIAutomationElement
Set SearchBox = AE_WeChat.FindFirst(TreeScope_Descendants, AC)
Debug.Print SearchBox.CurrentName
Dim VP As UIAutomationClient.IUIAutomationValuePattern
Set VP = SearchBox.GetCurrentPattern(UIAutomationClient.UIA_PatternIds.UIA_ValuePatternId)
VP.SetValue "马"
'定位发送消息按钮
Dim PD1 As UIAutomationClient.IUIAutomationPropertyCondition
Dim PD2 As UIAutomationClient.IUIAutomationPropertyCondition
Set PD1 = UIA.CreatePropertyCondition(UIAutomationClient.UIA_PropertyIds.UIA_NamePropertyId, "sendBtn")
Set PD2 = UIA.CreatePropertyCondition(UIAutomationClient.UIA_PropertyIds.UIA_ControlTypePropertyId, UIAutomationClient.UIA_ControlTypeIds.UIA_ButtonControlTypeId) '50000
Dim AC2 As UIAutomationClient.IUIAutomationAndCondition
Set AC2 = UIA.CreateAndCondition(PD1, PD2)
Dim SendBtn As UIAutomationClient.IUIAutomationElement
Set SendBtn = AE_WeChat.FindFirst(TreeScope_Descendants, AC2)
Debug.Print SendBtn.CurrentName
SendBtn.SetFocus
Dim IP As UIAutomationClient.IUIAutomationInvokePattern
Set IP = SendBtn.GetCurrentPattern(UIAutomationClient.UIA_PatternIds.UIA_InvokePatternId)
IP.Invoke
End Sub
I looked at some examples of the latest version and some of the controls are grotesque and completely transparent.
In fact, transparency is just a property, can be used to copy the background window graphics method to achieve. I have written several source code, can achieve 100% transparent effect.
It's just that there are conflicts when multiple controls overlap, and we can ignore these minor issues.
Like some people developed VBCCR or what a set of controls (including buttons, table controls, etc.), if you can not achieve transparency, just say you can replace Microsoft's enterprise version of controls or add some UNICODE text function, but can not make people feel very beautiful effect.
Attachment 187730
If you use all UI components such as cario or gtk, or directly use web elements as the UI, all button table controls are transparent, and the entire interface has only one handle.
So in theory you can support hundreds of thousands of controls, just like a web page, no one ever said, our page uses 3000 elements and the page doesn't display or crashes, right?
visual freebasic, winfbe,fbedit
a new ide ,can make The fact that he can use his own IDE to build an IDE like VSCODE is enough to show that he can implement relatively large projects. But whether it is easy to use is a difficult problem. Mostly, he's more like VB6, VC++, or VB.NET
VB6 source code can be used to achieve the service process. A DLL that is automatically loaded at startup and has SYSTEM permissions.
It would make a lot of sense to make it into a sample code.
Service procedures, standard DLL, COM DLL, ocx controls, EXE, web page before and after end integration, a variety of functions have, very convenient.
In addition, VB6 can controls.add ("BUTTON"),new form1, and other ways to achieve dynamic creation of CONTROLS, control arrays, form copies. I wonder if TWINBASIC implements these features?
Use.net control or VB6 form designer control properties, too long, if can add a search properties will be more convenient. Or you can put commonness first and automatically keep track of how many times an attribute is used.
Such as label1 caption, text1. Text, webview. Navagrit
For the control's calling methods, as well as events, it would be nice if you could also sort them by the most used.
Visual freebasic, for example, now has 30-50 controls, ICONS too small to find, if the user can replace the control icon, change the order, remove the internal standard control never used.
That would be more convenient.
If you turn the web control into a button, text box and other controls instead, the generated EXE can be implemented with 127.0.0.1 or directly open MAIN.HTM. If you change the IP, you can run it on a LAN server, or on a Microsoft cloud server.
Gawd ... please ...
STOP SPAMMING THIS FORUM!
Nearly everything you post is:
- in barely decipherable english
- in most cases totally unrelated to the given thread-topic
- contains codesnippets of other developers, who you don't mention as authors in your reposts
You come across as the guy who's "crashing the wedding" (by defecating on each table in his field of view).
Olaf
twinBASIC status update:
twinBASIC Update: May 28, 2023
Highlights include a new home for twinBASIC documentation (docs.twinbasic.com) and an update on twinBASIC's slant.co language ranking.
https://nolongerset.com/twinbasic-update-may-28-2023/
BETA 318 of the twinBASIC programming IDE is now available...
Download from here... https://github.com/twinbasic/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 that local folder
How to install https://nolongerset.com/how-to-install-twinbasic/
VB6 Programming, please post only in dedicated thread about tB releases. And please post some real "update" information like the change log as all your posts can be considered pure spam with useless info.
Well out of all that incoherent mess, I could at least find one thing I understood and definitely agree with :)
tB can't rival truly surpass VB in power until it has some mechanism to insert ASM, preferably inline, but at least linked in functions. Of course you can execute thunks in memory just like VB6, so long as you're not relying on VB6 internals that aren't replicated.
You've misunderstood what the WebView2 runtime is. It allows you to create e.g. a Browser control, but MS does not provide one itself. It's also not really a complex reference; it's one box to check in the references list, TWINPACK PACKAGES->WebView2 Package. That adds the basic implementation Wayne made. You want inline assembly but balk at needing to add a reference? :confused:Quote:
Since twinbasic must have the EDGE runtime installed first, the webview2 control should be displayed in the Controls toolbox by default, without requiring additional complex references to be added.
What I mean is that you can show a webview2 control like a text box, a button,make for basic control.
After the software is installed, it automatically shows that no additional additions are needed.
If the control is not referenced on the form, it does not bring in that entire webview folder.
Because I started by adding various OCX datagrid controls. The WebBrowser control,
The control cannot be displayed, and I need to close the IDe dep settings later.
This is not true. The "WebBrowser" control is an Internet Explorer based, ancient control, unrelated to WebView2. The WebView2 runtime contains no control.
And how do you determine what 3rd party controls are in the list? Why WebView but not any of the hundreds of others?
That's why I created the dedicated thread about tB releases https://www.vbforums.com/showthread....-Beta-releases
Now that VBForums are considering a dedicated forum and codebank for twinBASIC it makes sense to have threads about each topic (the mods will migrate the twinBasic threads to the new forum if and when it is created).
I'm sure users who have become accustomed to checking this thread for news of new twinBASIC releases will soon realise there is a new thread.
webview2,websocket(server and client),If some of the newer technologies are turned on Default Load, and it does not need complicated settings to use.This will make it easier to get started.
I just did the test today, and one person told me that there are three examples about this webview2 control, and I only found two.
I heard a long time ago that this might support Microsoft's edge browser.
Okay, the hard part is I'm going to add those third-party grid controls. Other OCX controls. By default, it cannot be loaded, only to see that it is loaded successfully, but it does not appear in the toolbox.
After a few more tries, he showed up again. Another control is missing. This grid control tells me that I need to turn off the dep option?
In fact, I have never been malicious.It just points out some problems and some good suggestions.
However, some methods are very difficult to implement.
Maybe the developer of this software may think that I am ordering him that you must complete this function, but I really don't mean that.
For example, we compile and generate a program in the form with a size of about 1000 kb.
This shows that our program itself, which has a static library, can actually be treated as a runtime DLl. If it can be separated. Multiple self-developed programs all point to the same directory, or put it in the system directory. In this way, the main program actually developed may be only 200 KB. If 10 gadgets are developed, he can also share the same runtime.
Great care must be taken with this because one of the stated goals of TwinBASIC is multiplatform targeting. Assuming this means to include targets like MAC and Android, hand-written assembly would reduce the portability of the code.
You could end up with situations where people release libraries that contain platform specific assembly and all hell would break loose when they try to compile it for another platform.
It seems that ambition is very powerful. It is possible to make development tools like b4a, b4I or swift.
It's just that for most of us, it's great to be able to replace vB6.
For many developers, what we need is a simple and small development tool like vscode.It's just that he doesn't do form design, and he has all kinds of debugging functions.
VB. Net, vs 2020, these development tools are so huge that they may take up 50 ~ 100g of space on the hard disk after installation.
If the original vs 2008, it can import VB6, the project is basically error-free, and then install the package as far as possible not more than 500 megabytes.And it can also be statically compiled like .net core. Generate a standalone exe, or put all the required files in a directory, which is only 50 to 100 megabytes.
The most important thing is that if it doesn't involve the runtime of .net, it only needs to use basic functions like VC + +, and it may not compile more than 10 megabytes at most.
Microsoft has continued VC + +, but the original VB6 is no longer available.The VB. Net is equivalent to Java and runs on a virtual machine.
Last I checked, TwinBASIC requires no runtime. Not even VB6 works like this. It's closer to C/C++ than VB6 in that regard.
Completely false. .Net applications run native code. Also, the latest versions of C# even allow you to write extremely fast allocation-free code, something only lower level languages like C/C++ and perhaps Rust can do.
As well as what Niya said in https://www.vbforums.com/showthread....=1#post5607201
Also consider that there is a big difference between writing ASM code and writing optimised ASM code. Modern CPUs are very complex when you take into account things like caching, branch prediction, return address prediction, and that isn't taking into account the various SIMD instruction sets (SSE, AVX, AVX2, AVX-512 just on x64 alone).
It would be much better having a compiler that can generate correct, optimised assembler instead; if the compiler / runtime / framework / whatever can also expose platform neutral wrappers over lower level functionality then you can get the best of both worlds.
+1
And in case TBs/Waynes intention, to finally use LLVM for (optimized) code-generation at some point -
will come to frution, then there's not much left over, what one could wish for in this regard -
(translating higher-level language-instructions into highly optimized Assembly for different arch-backends).
Olaf
I'd also add that hand-written assembly is great for overcoming the limits of a language, runtime or compiler. However, given that TwinBASIC is in active development, it would be better to just ask Wayne to address these limits himself before resorting to hand-written assembly.
VB6 hasn't been in active development for 20+ years so assembly is a such great fit for it. You can access things like real bit shifting, SIMD instructions or string instructions using assembly in VB6. Modern languages typically provide these things in one way or another than doesn't require hand-written assembly and it would usually be better than any thing we'd come up with ourselves anyway.
All that being said, having the ability to embed assembly in your code will be a nice feature to have but restraints MUST be placed on it so people don't end up throwing assembly around all willy nilly and creating a nightmare for people trying to compile your code on other platforms.
A good restriction might be to only allow it in DLL projects since DLLs are guaranteed to only run on Windows which itself only runs on x86 processors. You could also restrict the type of assembly allowed based on project type, for example only allowing ARM assembly for Android projects, assuming TwinBASIC will target Android one day.
There's already numerous aspect of tB that are Windows only... Iirc, Wayne has said the plan is to have a different project type with a restricted feature set. Beyond that it's up to the developers... Yes adding asm will limit cross platform use, but so would building a Windows exe. Adding a Windows API.
Having asm supported means being able to throw a compiler error if you include x86 asm for a non-x86 exe. Ideally you'd be able to emit asm conditionally in each target platform.
tB has already gotten rid of the need for a few asm hacks... But it can never cover 100% of the need, much less at the same speed potential.
Asm would be even more rare than vb6, especially if we could get a few common uses like call by pointer and atomic operations, but to take away the ultimate power of vb6? Nah, we need it.
SharpDevelop is an open source.NET IDE, developed in C , which supports C # development, VB. Net development, provides its own compiler, and other functions from the initial development to the present. What is more worth learning is that the core of SD is a plug-in management system, which does not implement any specific functions, but only reserves extended interfaces.
In SD, there are physically three items, which are ICSharpCode. Core, ICSharpCode. SharpDevelop, and StartUp First, the ICSharpCode. Core is the basic plug-in management system of the system, which provides the plug-in structure, plug-in hooking, predefined interfaces, plug-in tree, and various services of the system. This part is called the Core of SD. The ICSharpCode. SharpDevelop is each function module of SharpDevelop, which is the realization of the specific functions of SD, as well as the interface commands, called the Base part of SD. StartUP is responsible for the startup part of SD, as well as resource files such as characters and images.
It would be nice to be able to learn the way they frame things.
What's that have to do with tB?
You need to cut back on the random off topic comments.
再一次,请使用更好的翻译器。