Development Philosophy - djphazer/O_C-Phazerville GitHub Wiki

Allow me to explain my motives behind this project...

A Brief History

As a youth, I first learned the BASIC programming language on an old Apple IIc - a very procedural programming paradigm. After highschool, I studied Computer Science in undergraduate programs from 2005 to 2009, when the focus was on Object-Oriented paradigms using languages like Java. I became increasingly disenchanted with the state of the industry and job prospects, and financial troubles prevented me from completing my degree. For many years I gave up on software development entirely.

Renewed Interest

Sometime after 2020, I encountered the notion that Object-Oriented Programming is GARBAGE - the spark of enlightenment necessary to restore my hope for good software design. It validated my previous disenchantment with industry practices in a profound way. Maybe my intuitions were right all along? Inheritance and encapsulation always felt excessively complicated, and the whole mess violated my desires for simplicity and efficiency. I'd be happy to never touch a piece of Java code ever again!

I discovered a renewed interest in coding for the sake of building confidence in my programming intuition, and the O_C firmware became my hyperfixation.

Goals

Henceforth, my development efforts are driven by a few core desires:

  • Simplify & Optimize by using Functional design paradigms instead of OOP
  • Explore ways of using Git collaboratively
    • Exercise social coordination, encourage team efforts
    • Good communication - code readability, atomic commits, effective documentation
  • Learn advanced C++ language features
  • Gain a deeper understanding of Music Theory and Sound Synthesis fundamentals through software implementation
  • Explore ways to improve UI/UX design
    • Never blame users for misunderstanding an interface! If something is not naturally intuitive, change it.
  • "What's the worst that could happen?"
    • Don't be afraid to try stuff, especially if it might bother some people... Open Source is all about flexibility and choices.
    • A bug or broken feature might just bother someone else enough to join in and fix it - this one could be wishful thinking ;)

I hope to educate and inspire others along the way!

Cheers, ~Nick