Welcome to HotBasic™
The HotBasic compiler uses an extended BASIC language to produce CONSOLE, CGI, GUI, DLL, and OBJ application types. With HotBasic, software developers create truly compiled Windows and Linux applications with a tiny footprint and rock-solid stability. Featuring a clean and elegant syntax, HotBasic increases code maintainability and slashes development time.  More...

Latest News
Aug 4, 2022 New URL for this page is hotbasic.us
July 23, 2022 New HotBasic forum on groups.io. After tens of thousands of posts about coding on the now closed Yahoo! HotBasic Group, its content is available here.
July 12, 2020 Data shown below indicates that HotBasic is still the best -- not even a close contender for the Compiler Championship. Note that the simulator used by Binary Mechanics Lab -- the leading physics lab in the world -- is written in HotBasic. The best uses the best. Coincidence?


Sep 1, 2016 Stride -- Structured IDE for HotBasic developers - Version 2.4 has been recently upgraded. Written by an ace coder using HotBasic, this third-party IDE may be very useful for HotBasic users. Download Stride from the FILES section of this HotBasic group.
June 12 The compiler download server now resides on a x64 box with DSL connection. Seems the ISP has not yet implemented "fixed IP"; meanwhile, if you need to download the compiler, email me, and I'll send it to you via email attachment.
May 4, 2014 Great demo of HTTP/SSL Connections to remote web servers using WinHTTP, by Cyril Gigez (source code and .exe). Another example of HotBasic use in financial applications. [Note: may be used in any application type -- GUI, CONSOLE, DLL, OBJ, etc.] Click link or see Downloads: GUI.
Aug 31 HotBasic 7.2.2 for Windows adds dedicated buffer for file OPENDIALOG and SAVEDIALOG, eliminating possible conflicts seen previously due to buffer sharing.
Aug 20 Commander Keene 1.5 released; get it on Downloads page.
Aug 20 HotBasic 7.2.1 for Windows and Linux sets internal variable hbConsole=1 for $APPTYPE CONSOLE and fixes FPU.extract (thanks to fault report by Philip Bister).
Aug 15 HotBasic Linux 7.2 posted for download. This is a fixed version of the previous build.
Aug 6 HotBasic 7.2 adds ability for event routines (e.g., OnClick for MENUITEMS and FORM objects) to be declared SUBs in .obj or .dll modules. HotStrip source code shows an example.
July 28 HotStrip Browser 2.1. Go "underground" with script-free, anti-tracking, anti-surveillance browser. In other news, HotBasic Manual updated. Update with HotIDE:Tools:Update Help Files.
July 13 HotBasic 7.1a for Linux posted for download.
June 24, 2012 HotBasic 7.1a fixes a bug where a REDIM statement could prevent proper naming of "local" variables dimensioned in SUB or FUNCTION code blocks.
Dec 26 HotBasic 7.1 upgrade for modules with more than 65,535 relocation table entries.
Nov 25 HotBasic 7.0a fixes an arcane error due to the new v7.0 exception handling features when $APPTYPE OBJ modules are linked into main programs.
Oct 13 HotBasic 7.0 trial and registered versions add fatal error exception handling by two new internal variables: hbTrap and hbError. If hbTrap is assigned a label for error handling code -- e.g., hbTrap = codeptr(Fatal_Error), run-time fatal errors are redirected to that code. As an example in the HotBasic forum shows, upon entry to the error trap code, hbError contains the numeric error value per "Run-Time Errors" in the Manual and RETFUNC contains a pointer to error text.
Oct 4 HotBasic 6.8 now supports .ani file (animated cursor) files.
Aug 3 HotBasic 6.7 hopes to fix a global symbol decoration issue when linking .obj or .lib files written in some version of C accessed with CDECL declarations.
Mar 18 HotBasic 6.6 revises the SQLDATA object for thread-safe operation, which may be used to connect to multiple databases, where each connection is handled by a separate thread.
Feb 7, 2011 HotBasic 6.5 Trial and Registered versions add integer statements and functions IAND, IOR and IXOR which are coded as the existing IADD and ISUB statements and functions. Also, HotIDE 3.4 adds color coding for these new keywords and a Tools menu link to hbAPInator, a very useful tool.
Dec 13 HotBasic 6.4 upgrades .Invoke argument parsing to include VARIANTs.
Aug 15 HotBasic 6.3 libraries updated (Registered and Trial versions) to correct an arcane WORD array access error which may occur if bit 15 is set.
Aug 11 Our policy continues: all HotBasic registered users get all future upgrades for free.
June 7 "Linux for HotBasic application development" by Philip Bister published in Articles section.
Jan 25 HotBasic 6.3 adds a CREATEOBJ(arg) numeric function which returns the handle of the dynamically created object where arg is a FORM object type.
Example: defint hB1 = CreateObj(BUTTON). Now hB1 may be used with WINDOW(handle).something syntax.
Jan 22, 2010 HotBasic Setup Linux now contains the useful results of research by Philip Bister on installing HotBasic on various Linux distros -- this in the hbxsetup.txt file.
Sep 5 HotBasic 6.2b adds .Item(index) string function for RICHEDIT and RICHEDIT2 GUI objects.
Aug 24 HotBasic 6.2 (Registered Windows version) adds MEMORY Object and MEMORY Array support for .AppendUDT, .ReplaceUDT and .UDTItem. The mem_udts.bas demo is posted in the HotBasic Y! Forum.
Aug 23 A HotBasic Cash for Clunkers program, funded by a generous investor, will run until Sep 31 or until the money runs out! Get your cash now by simply ordering HotBasic Windows or Linux with 40% off. Turn in your "clunker compiler" now -- those legacy, out-dated tools (e.g., all versions of C, VB, Delphi, etc). Just multiply the posted price by 0.6 and give 21st Century computing a try! Match your state-of-the-art hardware with modern HotBasic development tools.
Aug 21 HotBasic 6.1 (Registered Windows version) adds (1) support for ARRAY of MEMORY objects which can dramatically increase efficiency in data management, and (2) a new .TAG property for STRING, LIST and MEMORY objects.
July 18 HotBasic 6.0 for Windows adds (1) FILE Object 64-bit .Size (R only), .Position (R/W) and .EOF (R only) properties for large files (greater than 2^32 - 2 bytes) and (2) new FILEREC numeric members .Creation, .LastRead and .LastChange with 64-bit precision (including .Size) for big files.
E.g., DEFINT64 LastChange = FILEREC.LastChange.
Also, HotIDE 3.1a adds the new keywords and updates keyword colors in source code displays.
Apr 6 HotBasic 5.9a Linux released.
Feb 14 HotBasic 5.9a adds support for more data types for the ARRAYREF() family of statements and functions, to facilitate array processing by pointer. Now STRING and all numeric types are supported. Further, the Trial version now supports DECLARE and CDECL statements with the LIB keyword, so one can link .obj or .lib modules into your HB test programs.
Feb 1 HotBasic 5.9 adds a NODE Object with .Data, .Next, .Prev, .Parent and .Children properties. Make "tree" or relational databases with NODE Arrays. And an arcane bug related to DWORD fixed.
Jan 23 HotIDE 3.1 released: hides compile window, saves modified files before debug and fixes "missing results" issue on Vista. Update with hbsetup with HotIDE checked.
Jan 12, 2009 HotBasic 5.8 with VAL() fixes released detailed in the forum.
Know Your Compilers: Run from undead software. Dec 13 Hotbasic 5.7d beta introduces (1) "direct VARIANT copy" syntax -- MyVariant1 = MyVariant2 -- which overrides the normal processing where the source expression is evaluated and then assigned to the destination value, automatically converting the expression result to a variant and (2) multiple $APPTYPE directive usage ERROR message. Know Your Compilers: With the unfolding worldwide economic crisis, there is good news for software developers. Once-sacred preferences in development tools have crossed a critical threshold and have now become irrelevant.
Present options have boiled down to two: HotBasic to upgrade your software technology or bust. This simplicity is the good news. If your company, no matter how "high and mighty" it may seem, has chosen the bust/bankruptsy option, suggest that you start now to get up to speed with HotBasic on your own time.
Nov 4 HotBasic 5.7c adds a .GetVariant function for Custom Objects, particularly useful in COM programming (please see ComHelper). Syntax:
MyVariant = MyObject.GetVariant(...optional arguments...)
where your GetVariant code returns a LONG pointer to the desired result variant and HotBasic takes care of the rest.
Oct 22 HotBasic 5.7b adds a .Replace method for LIST (or for STRING or MEMORY used as a LIST) and for FORM Objects which have both .DelItems and .InsertItem methods already (e.g., LISTBOX).
Oct 20 HotBasic 5.7a adds new features and error-checking: (1) use of $GUIOBJ directive in $APPTYPE DLL (thanks to MANY); (2) use of SELF for source values in CREATE blocks (thanks to Emmazle); (3) new block type nesting mismatch error-checking (thanks to enpsuedo); and (4) error-checking for repeat definitions of local variables within a SUB/FUNCTION (thanks to Emmazle).
Sep 8 HotBasic Linux adds a native FONT object for GUI applications.
Aug 25 HotBasic Linux adds (1) the MESSAGEBOX numeric function, coded exactly as in Windows usage, to get user response to any of six different dialogs and (2) GTK-mode SETGTK() statement, GETGTK() numeric function and GETGTK$() string function, which facilitate setting and getting object properties.
Know Your Compilers: If not using HotBasic, you have about 92 more years before your current choice will be two centuries behind the leader. Aug 17 HotBasic Linux adds native support for OPENDIALOG and SAVEDIALOG Objects. Install by running hbsetup with Compiler and Includes checked.
Jun 30 CPUID Object added. Returns CPU .VenderID, .Stepping, .Model, .Family, .Type, .ExtModel, .ExtFamily, .Brand and more! Get it in Downloads.
Jun 26 Before Oct 1, 2008, registration entitles users to future HotBasic upgrades without any further charge. Starting Oct 1, 2008, new registrants will be charged a fee for compiler updates.
Jun 21 HotBasic 5.6c sets default FORM .ClassStyle = 8 which improves resizing performance (Thanks to MANY!).
Apr 15 HotBasic 5.6b moves conversion of RQ types to HB types to Edit-to-HB (by adding the conversions to the replace.rq file), thereby fixing an unintended limitation on use of some user symbols starting with the letter Q.
Feb 14 HotBasic 5.6a: (1) upgrades .Hint so hints show properly if multiple forms are used and updated HotIDE 3.0b shows proper hint display in its Code Index and Keywords windows; (2) adds a new .Append method for MEMORY or STRING objects which is faster than the equivalent concatenation coding; (3) optimizes DECLARE/CDECL statements for multiple functions in the same .dll for shorter, faster .exe's; and (4) adds .ADDP, .SUBP, .MULP and .DIVP methods for the FPU object.
Feb 2 HotOptimize 1.0 released. Does not remove procedures with names ending in _Set, _Get or _Init and automatically runs additional pre-processing programs named hotoptn, where n is 0 to 9.
Jan 13 HotIDE 3.0 released featuring new Code Index window to navigate to CREATE, label, SUB, FUNCTION and $INCLUDE lines where the include file is opened in a new source code window.
Know Your Compilers: Only 21st Century technology is HotBasic. Jan 4, 2008 New CODER ALERT in Story by Pictures.   More...

Why HotBasic?
Tired of bloatware, buffer overflows, memory leaks, and application crashes? Ready for a programming language that you can actually read that compiles to true machine code? Are you looking for a full-featured compiler that allows you to quickly and easily build GUI applications for the 21st Century? If you answered yes, you need HotBasic!


Copyright © 2006-2022 James J Keene PhD
HotBasic™ is a trademark of James J Keene
Original Publication: Nov 17, 2006

Documentation
Reviews
Downloads
FAQ
Articles
Story by Pictures
Contact
Forums
Design
News
Linux
Purchase


The Gold Standard
of compilers