Lingo
- scripting language for Macromedia Director
- predecessor to Flash/ActionScript & JavaScript - Designed for beginners
- Dynamic language -- untyped
- Auto memory management
- Objects
- Cross Platform
-- Example of Lingo syntax of Fibonacci sequence on fib n
if n <= 2 then return 1
return fib(n-2) + fib(n-1)
end
(Classic sequence attributed to Fibonacci should be called pingala)
Lingo influenced by...
BASIC - Beginner's All-purpose Symbolic Instruction Code
2030 ARRAY F 2040 LET F[0] = 0 2050 LET F[1] = 1 2060 LET N = 1 2080 LET F[N+1] = F[N] + F[N-1] 2090 LET N = N + 1 2100 PRINT F[N];", "; 2120 IF N < 50 THEN GOTO 2080
SmallTalk -- classes and objectsfib
^ self <= 2
ifTrue: [ 1 ]
ifFalse: [ (self - 2) fib + (self - 1) fib ]
Lisp -- symbolic -- atoms(symbols) and lists(defun fibonacci (n &optional (a 0) (b 1) (acc ()))
(if (zerop n)
(nreverse acc)
(fibonacci (1- n) b (+ a b) (cons a acc))))
(fibonacci 5) ; ==> (0 1 1 2 3)
HyperTalk
on mouseUp put "100,100" into pos repeat with x = 1 to the number of card buttons set the location of card button x to pos add 15 to item 1 of pos end repeat end mouseUp
other influences-peers:- ChatterBox Interpreter- ToolBook- ScriptX- mTropolis
What's happening recently?
ActionScript/Flash -- Retired https://theblog.adobe.com/adobe-flash-update/ "...stop updating and distributing the Flash Player at the end of 2020..."
Java
- strong typed - classes
Objective-C
Swift
Scratch - For beginners - Drag and drop blocks Scratch 1.0 Squeak -- dialect of Smalltalk Scratch 2.0 ActionScript Scratch 3.0 JavaScript
JavaScript
JavaScript ECMA-262 -- June 1997 ECMAScript 3 -- December 1999 ECMAScript 5 -- December 2009 ECMAScript 2015 -- June 2015 http://es6-features.org ECMAScript 2017 -- June 2017 nodejs
// fibonacci reclusive function fib(n) { if (n <= 2) return 1; return fib(n-2) + fib(n-1); }
// fibonacci iteration function fib_iter(num) { var a = 1, b = 0, temp; while (num >= 0){ temp = a; a = a + b; b = temp; num--; } return b; } Where to learn javascript
|
|