Skip to content

Instantly share code, notes, and snippets.

@G33kDude
Created November 24, 2018 18:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save G33kDude/f4c65a3dd35882126cd9cd35a89a90aa to your computer and use it in GitHub Desktop.
Save G33kDude/f4c65a3dd35882126cd9cd35a89a90aa to your computer and use it in GitHub Desktop.
Axiom AutoHotkey's Implementation Façade's Implementation
Errors should be reported and propagated whenever possible Errors are ignored whenever execution can continue regardless of data integrity. Errors are reported and propagated whenever possible
Tools should have consistent internal syntax and behavior Syntax is a patchwork from years of unguided development and backwards compatibility All of the library functions are designed and kept up to follow consistent internal syntax and behavior
Function binding should be nestable to allow for more flexible composition BoundFuncs do not support the .Bind method Façade's BoundFuncs support the .Bind method
Languages should discourage verbosity AutoHotkey favors backwards compatibility and C++-like syntax, requiring programmers to write more code to describe the same behavior and makes reading code difficult by limiting how much of it the programmer can see at once. Façade is less verbose than native AutoHotkey.
Arrays should be 0-indexed AutoHotkey uses 1-indexed arrays to appeal to newcomers with less complex needs. It favors intuition for simple tasks over convenient behavior for more complex calculations. Façade provides functions that make array indexing unnecessary to consider for most common operations.
Arrays should ensure index integrity by preventing missing/null elements AutoHotkey supports a single object type for both indexed and associative arrays allowing you to treat an object as either at any given time. Façade supports pure arrays that require only sequential integer keys, preventing any accidential crossing of the streams.
Data should be immutable AutoHotkey's data structures are all very mutable, allowing for dynamic modification to the structure and increased flexibility at the cost of predictability Façade does not allow for mutable data structures.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment