Draft: Items in italics are considered long-term goals...
1 Aspirations and Philosophies:
Principal Aspirations -- To provide a coding solution to both professional and occasional programmers for Microsoft Operating Systems, especially now that MS OS is being embedded into everything from smart phones to tablets through to desktops and servers.
To Simplify and Freshen -- avoid bloat, OOP, jargon, and other coding bureaucracy.
To Legitimise and life-extend hard earned skills and VB6, COM and the Microsoft API.
To Empower people who are capable of programming but choose not to be career programmers
To provide a Consistent coding solution that you can confidently invest your skills in (See ''Guarantee of Policy'').
To provide a Stable coding solution that keeps track of version changes and makes safe-stage backups.
To reach a Multi-Language cross section of programming skills from different disciplines (accepts syntax symbols and keywords from Java and C as well as Dartmouth & Visual basics)
To be Object Driven -- has a deep understanding of "Objects" on your system and allows access to a range of system facilities as diverse as serial comms through to speech synthesis.
To provide a roadmap to the future by including an evolving TransCompiler Engine..
... To provide a roadmap to 64 bit applications.
... To provide a roadmap for targeting different operating systems including lightweight PIC code, Android, iOS, Lynux, Lynux ARM (raspberry pi etc).
... To alleviate dependence on any one compiler or operating system. Eg: should the VB6 compiler be "made" incompatible.
To support Iterative and Incremental Development methodologies by continuing and improving tight variable checking and enabling very rapid "try and see" turnaround times.
2 Why compare to VB6? Isn't that dead?
No, VB6 is not dead. Microsoft Office's macro engine VBA uses it (the VB6 IDE is upgraded slightly, optimised for office, and included with it). VBScript is also very much based on it.
VB6 represented a paradigm shift in the way RAD enabled people to code, code well, code fast, and code for profit while exploiting the tremendous success of Microsoft Windows. This paradigm lost its way and we at "Project VB64" are determined to bring that paradigm back.
VB6 still allows people to access the power of Microsoft Operating Systems by enabling simple access through the COM layer (Microsoft's Component Object Model). VB6 also allows access to the Windows API via DLLs (See ''Terminology'').
In place of the COM layer and DLL structure, Microsoft created a new framework called Dot Net. It was and is a great innovation, but it also required a different skill set, and many would argue a different type of intellect. VB6 and C++ remain the only true Microsoft gateways to Microsoft's underlying interfaces, and VB6 alone is arguably the only professional RAD Microsoft offering. We look forward to working with Microsoft to reenable the VB6 RAD concept to the mutual benefit of all including the promotion of Microsoft Windows as the first point of application deployment.
3 Future features:
Multiple User Language Support
Mouse Scroll by mid button on all components
Simple 2D image manipulation functions (inc Paint, Rotate, Icon functions, etc)
Jpeg(jpg) file save with variable compression.
Simple audio(wav) manipulation functions
Intergrated 3D support.
Web App support.
MS Windows 10 App Store publication wizard.
Runtime basic interpreter (ie: can run scripts within your compiled application for example to provide a macro).
In-line break out to other languages including VBS for better system access.
Team Features and Unit-Test Features. Test-driven development support through integrated Unit Testing concepts.
Embed unique user ID with all released executables (typically an email address so proliferation can be traced).
Step Back (reverse execution trace -- limited)
English Spell Check for text and comments (auto underlines)
Semi folding -- allows a full-size reduction of areas bracketed by conditionals, loops, functions, etc.
Source Code encryption -- allows a project to be released for inspection with commercially sensitive files encrypted.
Overlay: Overlaid procedures (and Macros) work in this case (for compilers that do not support overlay) by creating an effective Macro out of the function(sub etc). The coder inserts compiletime conditionals within the procedure that determine what code is processed depending on the incoming parameters or parameter types. The pre-compiler works out which version of the procedures to use and passes it to the standard compiler object. This permits exceptionally fast difference-handling switching code.
Option to send Debug.Print information to a limited size log file when compiled. This has merit because most programmers put in small messages for test info, and yet generally look to prevent swamping the Immediate panel -- in other words, some care has already been made to ensure the output is "log-friendly".
Please note -- Any inventions and innovations initiated by QSL are hereby released herein as "prior art" under the principles of Defensive Publication( &(*)).
4 Non Limitations:
Things that are fully or largely Supported (that you might expect to be limited or not supported) are :
You can import your VB6 code and it WILL COMPILE provided you own a VB6 licence. (Extensibility is provided by the Trans Compiler whereupon VB6 compatibility will depend on the chosen compiler).
You will Not need to own MS VB6 if only using third-party TransCompiler extensions that do not use Microsoft ActiveXs, and do not require the Microsoft compiler.
If you choose the option to write in VB6 compatible code, your code will continue to be backward compatible with the VB6 IDE. T4 features that VB6 does not support are embedded in comments.
Supported: Option Explicit
Supported: Variable Content review (most variables on break point)
Supported: Control Break (assuming debugging is on)
Supported: CallStack Trace (on break or on error if debugging is on)
Supported: Intellisense (auto complete, browse) -- most COM objects browsable including intrinsic methods/properties and core.
You will need MS VB6 unless you will be limiting yourself to using it with third-party TransCompiler extensions (not included with the first release) that do not use Microsoft ActiveXs, and do not require the Microsoft compiler.
Ref: # *1
.. "the Visual Basic 6.0 IDE is available to all MSDN subscribers and can be downloaded at any time from the subscriber downloads section and installed. A generic subscriber key is provided for convenience if needed."
Code Compatibility to VB6? Yes. Because it uses the original VB6 compiler, there are no limits beyond that which VB6 would do (which is near limitless). However, some coding paradigms and some controls may not be directly supported by the Alum6 T4 IDE even if they were originally supported by the VB6 IDE which when imported might be flagged as an error. This can be managed as follows...
Limits to code: Code lines or code blocks which are rejected by the Alum6 T4 IDE can be marked by the new IDE so that they go straight to the compiler.
Limits to ActiiveX controls: None, but not all will appear in component browser, and Auto Complete will only work for commonly used controls. Those tyhat do not appear can be loaded through the original IDE and Alum6 T4 will show them as a blank template and allow their continued use.
Database Controls: No auto complete, no visual data manager.
Limits to VB6 Component Object Model handling: The Object Browser may not be as complete as in the existing IDE but offers improved search etc.
Limits to Code Auto Completion (IntelliSense): As above. Internal and user procedures will be looked up as normal (with minor changes)
IDE Compatibility to VB6:
DHTML, Addin -- not supported
Wizards, ActiveX, DLLs, samples -- supported but with different and/or limited similarity.
Visual Component Manager -- not supported
Data Manager -- not supported
Add In Manager -- unsupported directly but it similar functionality available through OCX and partial source code release for the IDE menu part (ie: tool bars, menus) this can be reprogrammed to suit your preferences, including making it very close to the VB6 IDE -- however you will have to comply with an EULA that prohibits resale of illegal OCX plug-ins, for example those that attempt to be a VB6 clone.
Custom Property Pages (the form designer will offer a more standardised properties dialogue).
The new designer may not behave exactly as the existing one.
Pause/Break and Edit: (Inline Editing, Click-And-Continue) -- Much reduced support .
64 Bit: Microsoft currently(Win10) supports seamless simple installation of 32-bit applications on the 64 bit operating systems. It is considered that the only applications that would need 64 bit applications that require large volume database and multimedia processing.
Res files (resource) limitations will exist to the extent that existing Res files will compile, but after changes will become a different format.
T4 (the IDE) is sold and supported only for use in conjunction with Microsoft Windows operating systems.