the worst programming language ever. history cobol identification division. program-id. hello-world....
TRANSCRIPT
![Page 1: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/1.jpg)
THE WORST PROGRAMMING LANGUAGE EVER
![Page 2: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/2.jpg)
HISTORY
![Page 3: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/3.jpg)
COBOLIDENTIFICATION DIVISION.PROGRAM-ID. HELLO-WORLD.PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP RUN.
![Page 4: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/4.jpg)
IBM COBOL
//COBUCLG JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1)//HELOWRLD EXEC COBUCLG,PARM.COB='MAP,LIST,LET'//COB.SYSIN DD * 001 IDENTIFICATION DIVISION. 002 PROGRAM-ID. 'HELLO'. 003 ENVIRONMENT DIVISION. 004 CONFIGURATION SECTION. 005 SOURCE-COMPUTER. IBM-360. 006 OBJECT-COMPUTER. IBM-360. 0065 SPECIAL-NAMES. 0066 CONSOLE IS CNSL. 007 DATA DIVISION. 008 WORKING-STORAGE SECTION. 009 77 HELLO-CONST PIC X(12) VALUE 'HELLO, WORLD'. 075 PROCEDURE DIVISION. 090 000-DISPLAY. 100 DISPLAY HELLO-CONST UPON CNSL. 110 STOP RUN.//LKED.SYSLIB DD DSNAME=SYS1.COBLIB,DISP=SHR// DD DSNAME=SYS1.LINKLIB,DISP=SHR//GO.SYSPRINT DD SYSOUT=A//
![Page 5: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/5.jpg)
APL 'Hello, World!'(A Programming Language)
![Page 6: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/6.jpg)
APL life←↑1 ∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⊂
(A Programming Language)
![Page 7: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/7.jpg)
APL(A Programming Language)
![Page 8: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/8.jpg)
INTERCAL
DO ,1 <- #13PLEASE DO ,1 SUB #1 <- #238DO ,1 SUB #2 <- #108DO ,1 SUB #3 <- #112DO ,1 SUB #4 <- #0DO ,1 SUB #5 <- #64DO ,1 SUB #6 <- #194DO ,1 SUB #7 <- #48PLEASE DO ,1 SUB #8 <- #22DO ,1 SUB #9 <- #248DO ,1 SUB #10 <- #168DO ,1 SUB #11 <- #24DO ,1 SUB #12 <- #16DO ,1 SUB #13 <- #162PLEASE READ OUT ,1PLEASE GIVE UP
![Page 9: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/9.jpg)
Visual Basic
![Page 10: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/10.jpg)
Gupta SQLWindows
![Page 11: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/11.jpg)
…
![Page 12: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/12.jpg)
BS
![Page 13: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/13.jpg)
BSWhy?
Because F*** You, That's Why.
![Page 14: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/14.jpg)
PRINCIPLES
![Page 15: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/15.jpg)
BS Design Principles
• Create the "Pit of Success"
![Page 16: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/16.jpg)
BS Design Principles
• Create the "Pit of Fail"
![Page 17: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/17.jpg)
BS Design Principles
• Create the "Booby-trapped Aztec Temple of Fail"
![Page 18: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/18.jpg)
BS Design Principles
• Create the "Booby-trapped Aztec Temple of Fail"
• Don't trust the programmer to get simple things right
![Page 19: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/19.jpg)
BS Design Principles
• Create the "Booby-trapped Aztec Temple of Fail"
• Don't trust the programmer to get simple things right
• Leave all the really complicated stuff to the programmer to get right
![Page 20: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/20.jpg)
BS Design Principles
• Create the "Booby-trapped Aztec Temple of Fail"
• Don't trust the programmer to get simple things right
• Leave all the really complicated stuff to the programmer to get right
• Try to do everything:• Low-level systems, embedded, rich GUIs, Web, Devices, IoT, PVR,
Furby…
![Page 21: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/21.jpg)
INSPIRATION
![Page 22: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/22.jpg)
PHP
![Page 23: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/23.jpg)
PHP
PHPHatesProgrammers
![Page 24: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/24.jpg)
From PHP
Total inconsistency (naming, syntax, behaviour)
Pointless variable prefixing
The hassle of C/C++
The performance of ALTAIR BASIC
![Page 25: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/25.jpg)
BS
class Greeter public function __construct(€name) €this->name = €name;
public function say(€thing) echo €thing, ' ', €this->name, BS::EOL;
![Page 26: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/26.jpg)
BS
class Greeter public function __construct(€name) €this->name = €name;
public function say(€thing) echo €thing, ' ', €this->name, BS::EOL;
![Page 27: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/27.jpg)
Python
Broken:for root, sub, files in os.walk('.'):
if 'AssemblyInfo.cs' in files:
file = os.path.join(root, 'AssemblyInfo.cs')
for line in fileinput.input(file, inplace=1):
if aiv_pattern.search(line):
print(aiv)
else:
print(line, end='')
![Page 28: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/28.jpg)
Python
Broken:for root, sub, files in os.walk('.'):
if 'AssemblyInfo.cs' in files:
file = os.path.join(root, 'AssemblyInfo.cs')
for line in fileinput.input(file, inplace=1):
if aiv_pattern.search(line):
print(aiv)
else:
print(line, end='')
Fixed:for root, sub, files in os.walk('.'):
if 'AssemblyInfo.cs' in files:
file = os.path.join(root, 'AssemblyInfo.cs')
for line in fileinput.input(file, inplace=1):
if aiv_pattern.search(line):
print(aiv)
else:
print(line, end='')
![Page 29: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/29.jpg)
Python
Significant whitespace
![Page 30: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/30.jpg)
F#, Haskell, Occam
Significant whitespace
![Page 31: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/31.jpg)
BS
class Greeter: public function __construct(€name) €this->name = €name;
public function say(€thing) echo €thing, ' ', €this->name, BS::EOL;
![Page 32: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/32.jpg)
![Page 33: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/33.jpg)
Almost every language ever
null
Nothing
undefined
nada
Empty
![Page 34: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/34.jpg)
Ruby
raise InvalidFormat unless AllowedFormats.include?(format)
![Page 35: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/35.jpg)
Ruby
raise InvalidFormat unless AllowedFormats.include?(format)
![Page 36: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/36.jpg)
BS
class Greeter: public function __construct(€name) HALT_AND_CATCH_FIRE (unless €name != null) €this->name = €name;
public function say(€thing) echo €thing, ' ', €this->name, BS::EOL;
![Page 37: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/37.jpg)
Greek
;
![Page 38: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/38.jpg)
Greek
Question Mark
;Semi-colon
;
![Page 39: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/39.jpg)
BS
class Greeter: public function __construct(€name) HALT_AND_CATCH_FIRE (unless €name != null); €this->name = €name;
public function say(€thing) echo €thing, ' ', €this->name, BS::EOL;
![Page 40: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/40.jpg)
JavaScript
![Page 41: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/41.jpg)
JavaScript
'' == '0' // false
0 == '' // true
0 == '0' // true
false == undefined // false
false == null // false
null == undefined // true
from JavaScript: The Good Parts, by Douglas Crockford
![Page 42: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/42.jpg)
BS
'' == '0' // false
0 == '' // true
0 == '0' // true
0 == 'Zero' // true
22/7 == // true🍕
undefined !=! null // true
from BS: The Awesome Parts, by Hubert Entwhistle-Smythe
![Page 43: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/43.jpg)
Strings
![Page 44: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/44.jpg)
Strings
'Hello' // ASCII
''Hello'' // ANSI
"Hello" // DBCS
""Hello"" // EBCDIC
«Hello » // UTF-256 (patent pending)
««Hello $name»» // UTF-256 with interpolation
![Page 45: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/45.jpg)
Visual Basic (6.0)
Dim f(10) As Integer
Let f(0) = 2147483647 ' No! 16-bit integers! 2147483647
![Page 46: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/46.jpg)
BS (6.0)
Dim $f(10) As Integer
Let $f(0) = 131071 ' 17-bit integers, because we can
![Page 47: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/47.jpg)
C/C++
#define begin #define end #define say println
int main()begin say("Hello, world!\n");end
![Page 48: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/48.jpg)
BS
#define /^my (.*?) thing:$/class \1:/
my Greeter thing: public function __construct(€name) HALT_AND_CATCH_FIRE (unless €name != null); €this->name = €name;
public function say(€thing) echo €thing, « », €this->name, BS::EOL;
![Page 49: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/49.jpg)
LISP (also Clojure, Scheme…)
An intolerable air of smugness
![Page 50: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/50.jpg)
Static or Dynamic typing?
function writeLength(€var): echo €var.length;
writeLength(DateTime::Tomorrow);
![Page 51: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/51.jpg)
Gradual Typing
• Thank you, Facebook
![Page 52: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/52.jpg)
BS
#define /^my (.*?) thing:$/class \1:/
my Greeter thing: public function __construct(€name) HALT_AND_CATCH_FIRE (unless €name != null); €this->name = €name;
public function say(€thing isProbablyA String) echo €thing, « », €this->name, BS::EOL;
![Page 53: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/53.jpg)
Script or Compiled
![Page 54: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/54.jpg)
Script or Compiled (or semi-compiled)
![Page 55: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/55.jpg)
Script or Compiled (or semi-compiled)• N.B. Should obviously also compile to EcmaScript 3.
![Page 56: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/56.jpg)
VM or Native?
![Page 57: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/57.jpg)
Memory management
• Garbage Collector?
• Automatic Reference Counting?
• Manual?
![Page 58: THE WORST PROGRAMMING LANGUAGE EVER. HISTORY COBOL IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP](https://reader031.vdocuments.site/reader031/viewer/2022013101/56649d6f5503460f94a503cb/html5/thumbnails/58.jpg)
BS
#define /^my (.*?) thing:$/class \1:/
my Greeter thing: public function __construct(€name) HALT_AND_CATCH_FIRE (unless €name != null); €this->name = €name; Delete €name;
public function say(€thing isProbablyA String) echo €thing, « », €this->name, BS::EOL; Delete €thing;