Skip to content

Instantly share code, notes, and snippets.

@G33kDude

G33kDude/facade.md Secret

Created Nov 24, 2018
Embed
What would you like to do?
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