I am obsessed with making the machine do my bidding through written symbols.
I have professionally programmed for a decade, and more than that by adding the non-professional experience.
I like to delve into the details and innerworkings of software technologies, libraries, frameworks, etcetera, by creating a multitude of samples exploring all the questions that would pop into my mind in regards to that specific piece of technology.
I enjoy spending time evaluating programming languages and the differences between them.
I think of myself as being a pragmatic programmer by not focusing on a single paradigm but rather by trying to apply concepts from multiple paradigms, going beyond the "Gang of Four" collection of creational, structural and behavioral patterns, and into the realm of lambda calculus, deterministic functions, and patterns of functional composition and application.
I have a strong preference for the use of type systems and type hierarchies, because they help with:
- eliminating run-time errors that are likely to happen in dynamic typed programming languages
- defining clear interface for functions and procedures, making it obvious to the user what the expected input is and what will be received
I crave for the next generation of programming languages that have validation embedded into the type system: e.g. functions that receives for a parameter only non-negative numbers, and any abnormal call to that function would trigger a type error.