Category:FutureBasic
This programming language may be used to instruct a computer to perform a task.
Official website |
---|
Execution method: | Compiled (machine code) |
---|---|
Garbage collected: | Yes |
Parameter passing methods: | By reference, By value |
Type safety: | Safe |
Type strength: | Strong |
Lang tag(s): | futurebasic |
See Also: |
|
FutureBasic began life as Zbasic, a commercial variant of BASIC for the early Macintoshes, but has grown far beyond that into a mature freeware IDE that, through its FBtoC translator, can be used to compile C and Objective-C object-oriented code using the clang compiler included with an Xcode installation. It is excellent as a educational tool and for fast prototyping -- especially in Objective-C (Cocoa) by those who prefer programmatic code without the overhead of Xcode. Among its enthusiasts are commercial developers, engineers, professors, doctors, musicians, writers and a host of amateurs who program with FB for the sheer joy of it.
FutureBasic Home Page & Download
http://www.brilorsoftware.com/fb
Here is where you can download your freeware copy of the FutureBasic IDE for macOS X 10.13 and newer, along with detailed installation instructions, programming examples and other information.
On 1 January 2008 Staz Software announced FB 4 would be freeware and all FB versions since then have also. Downloads and their executables are freeware, but FB 7's source code and rights of distribution are reserved to the authors (now the FBtoC team ). The IDE is continuously being improved.
FB 7.x builds macOS 64-bit Cocoa applications and command-line tools. Older FB versions for creating 32-bit Carbon apps are available on the FB web site but aren't supported.
The FB 7 IDE consists of a syntax-aware editor, project manager and internally translates ( formerly FBtoC ) FB code into C/Objective-C code. clang LLVM then compiles the translated source.
Here's a sample program:
local fn DoDialog( ev as long ) if ( ev == _btnClick ) then beep end fn window 1, @"Hello, world!", (0,0,550,400) button 1,,, @"Beep" on dialog fn DoDialog HandleEvents
FutureBasic Mailing List
The FutureBasic mailing list is currently a free service to the FB programming community. Application to join the list must be made via the Support tab on the FutureBasic website: http://www.brilorsoftware.com/fb/pages/support.html. List members include raw beginners through published commercial software authors. The FB development team and some long-time enthusiasts are knowledgeable and friendly and are very quick to respond to questions posted on the list. In addition, demonstration program code is frequently posted here.
Wikipedia
https://en.wikipedia.org/wiki/FutureBASIC
Discusses the history of FutureBasic and its predecessor, ZBasic, from the early days of the Macintosh when it was a commercial product, until its morph into today's robust front end to the clang compiler. Information on this page can be outdated, so a better source of the most current information about FB can be found at the web sites above.
Why FutureBasic?
Considering the contempt some programmers have for the BASIC language -- "BASIC ruins programmers" -- it's almost a shame FB has the word "Basic" in its official name. Not only can FB handle BASIC source code, but since it's a front end to clang, it can translate C, Apple's Core Foundation, Objective-C (Cocoa), HTML, XML, SOAP, UNIX Shell, Open GL, etc. This makes it an excellent tool for prototyping -- especially for programmatic Objective-C when the overhead of Xcode is not needed.
And best of all it's free with no hidden costs.
According to Wikipedia, FutureBasic began life at the dawn of Apple's Macintosh in the mid-1980s as ZBasic, an implementation of "BASIC" -- the "Beginner's All-purpose Symbolic Instruction Code" -- which had been around since the language was invented by John G. Kemeny and Thomas E. Kurtz at Dartmouth College during 1963 and 1964.
ZBasic acquired a devoted following of developers who praised its ease of use and the tight, fast code produced by the compiler (a legendary labor involving extensive use of hand-built 68K assembly language code and the brainchild of Andrew Gariepy).
In 1992, Zedcor Inc., the company of the Gariepy brothers Andy, Mike, Peter and friends based in Tucson, Arizona announced their reworked compiler called FutureBASIC.
In 1995 Staz Software, led by Chris Stasny based in Diamondhead, Miss., acquired the rights to market FutureBASIC. Stasny started this business with an upgraded version, namely FBII, and with his own development, the Program Generator (PG PRO), a CASE tool.
When Apple transitioned the Mac from 68k to PowerPC, the FB editor was rewritten by Stasny and was coupled with an adaptation of the compiler by Andy Gariepy. The result of their efforts, a dramatically enhanced IDE called FB^3 (FB-cubed) was released in September 1999.
Major update releases introduced a full-featured Appearance Compliant runtime written by the late New Zealander Robert Purves renown for his brilliant programming. Once completely carbonized to run natively on the Mac OS X, the FutureBASIC Integrated Development Environment (FB IDE) was called FB4 and released in July 2004.
In August 2005, Staz Software was devastated by Hurricane Katrina just at the time Apple was transitioning from Motorola PPC microprocessors to Intel chips. FB development slowed almost to a standstill. On January 1, 2008, Staz Software announced that FB would henceforth be freeware and FB4 with FBtoC 1.0 was made available.
Since that time, an independent team of volunteer developers initially lead by Purves continued to improve FBtoC, which took code produced by the FB Editor and translated it to C for processing by gcc which was eventually transitioned to the more robust clang.
On Sunday, June 3, 2012, members of the FB List Serve were notified that Robert Purves had died after a long bout with cancer. The news came as a surprise to many FB developers who were unaware of Purves' illness. While coping with cancer, he continued as an active member of the FB community, improving FB, answering questions, solving problems, and posting exquisitely terse code often salted with pithy remarks from his wonderfully dry humor. He never mentioned his health problems and never complained. A tribute to Purves can be found at the bottom of the FB Home Page
A team of skilled developers who worked on the FB editor, who were also tutored at Purves' knee on his pet FB project, the FBtoC translator, continued his work keeping the Macintosh's oldest compiler viable for a new generation of coders and Apple's macOS changes.
CocoaUI, a collection of header classes brought Apple's Cocoa(Foundation + AppKit) to FB, and a fast 64-bit Editor offering syntax highlighting, line numbers and variety of programmer conveniences have since been added to the IDE.
When Apple released Macs running on the ARM M1 chips in early 2021, FB and FBtoC were integrated into a single app that is frequently updated with new features. The most recent version allows Universal code to be compiled as standalone applications on M1, M2 and Intel Macs.
FB has a small but dedicated group of programmers ranging from amateurs to commercial developers. For more information visit the FB home page at:
Also, there is an active and friendly support list where questions are welcomed and help readily available without a critical eye. Registration is required to post to the list:
Todo
Subcategories
This category has the following 2 subcategories, out of 2 total.
@
- FutureBasic User (5 P)
Pages in category "FutureBasic"
The following 200 pages are in this category, out of 587 total.
(previous page) (next page)A
- A+B
- Abbreviations, automatic
- Abbreviations, easy
- Abbreviations, simple
- ABC correlation
- ABC problem
- ABC words
- Abelian sandpile model
- Abelian sandpile model/Identity
- Abundant odd numbers
- Abundant, deficient and perfect number classifications
- Ackermann function
- Additive primes
- Address of a variable
- ADFGVX cipher
- AKS test for primes
- Align columns
- Aliquot sequence classifications
- Almost prime
- Alternade words
- Amb
- Amicable pairs
- Anadromes
- Anagrams
- Anagrams/Deranged anagrams
- Anaprimes
- Angle difference between two bearings
- Animate a pendulum
- Animation
- Anonymous recursion
- Anti-primes
- Append a record to the end of a text file
- Append numbers at same position in strings
- Apply a callback to an array
- Approximate equality
- Arbitrary-precision integers (included)
- Archimedean spiral
- Arithmetic evaluation
- Arithmetic numbers
- Arithmetic-geometric mean
- Arithmetic-geometric mean/Calculate Pi
- Arithmetic/Integer
- Array concatenation
- Array length
- Arrays
- Ascending primes
- ASCII art diagram converter
- ASCII control characters
- Associative array/Creation
- Associative array/Iteration
- Associative array/Merging
- Atomic updates
- Attractive numbers
- Audio alarm
- Audio frequency generator
- Average loop length
- Averages/Arithmetic mean
- Averages/Mean angle
- Averages/Median
- Averages/Mode
- Averages/Pythagorean means
- Averages/Root mean square
B
- Babbage problem
- Bacon cipher
- Balanced brackets
- Barnsley fern
- Base64 decode data
- Base64 encode data
- Bell numbers
- Benford's law
- Best shuffle
- Bifid cipher
- Bin given limits
- Binary digits
- Binary search
- Binary strings
- Bioinformatics/base count
- Biorhythms
- Bitmap
- Bitmap/Bézier curves/Cubic
- Bitmap/Bézier curves/Quadratic
- Bitmap/Midpoint circle algorithm
- Bitwise operations
- Blum integer
- Boolean values
- Box the compass
- Brazilian numbers
- Brilliant numbers
- Brownian tree
- Bulls and cows
- Bulls and cows/Player
C
- Caesar cipher
- Calculating the value of e
- Calendar
- Calendar - for "REAL" programmers
- Call a foreign-language function
- Call a function
- Call a function in a shared library
- Call an object method
- Calmo numbers
- Camel case and snake case
- Cantor set
- Case-sensitivity of identifiers
- Casting out nines
- Catalan numbers
- Catamorphism
- Centre and radius of a circle passing through 3 points in a plane
- Change e letters to i in words
- Changeable words
- Chaocipher
- Chaos game
- Character codes
- Check input device is a terminal
- Check output device is a terminal
- Check that file exists
- Chinese zodiac
- Chowla numbers
- Circular primes
- Cistercian numerals
- Closest-pair problem
- Code Golf: Code Golf
- Collections
- Color of a screen pixel
- Color wheel
- Colorful numbers
- Colour bars/Display
- Colour pinstripe/Display
- Colour pinstripe/Printer
- Combinations
- Comma quibbling
- Commatizing numbers
- Comments
- Common list elements
- Compare a list of strings
- Compare length of two strings
- Compile-time calculation
- Composite numbers k with no single digit factors whose factors are all substrings of k
- Compound data type
- Concatenate two primes is also prime
- Concurrent computing
- Conditional structures
- Conjugate a Latin verb
- Consecutive primes with ascending or descending differences
- Constrained random points on a circle
- Convert seconds to compound duration
- Conway's Game of Life
- Copy a string
- Copy stdin to stdout
- Count how many vowels and consonants occur in a string
- Count in factors
- Count in octal
- Count occurrences of a substring
- Count the coins
- Cousin primes
- Create a file
- Create a two-dimensional array at runtime
- Create an HTML table
- Create an object at a given address
- CSV data manipulation
- CSV to HTML translation
- Cullen and Woodall numbers
- Cumulative standard deviation
- Currency
- Curzon numbers
- CUSIP
- Cyclops numbers
D
- Damm algorithm
- Date format
- Date manipulation
- Day of the week
- Deepcopy
- Delete a file
- Department numbers
- Descending primes
- Detect division by zero
- Determine if a string has all the same characters
- Determine if a string has all unique characters
- Determine if a string is collapsible
- Determine if a string is numeric
- Determine if a string is squeezable
- Determine if only one instance is running
- Determine if two triangles overlap
- Determine sentence type
- Dice game probabilities
- Digital root
- Dinesman's multiple-dwelling problem
- Disarium numbers
- DNS query