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. |
-
-
Save G33kDude/f4c65a3dd35882126cd9cd35a89a90aa to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment