Gryphon Philosophy

From Adam Colton
Jump to navigation Jump to search

What are the core values driving the project?

  • Maintenance and readability
    • Testing
    • Documentation (why and who)
    • Libraries not frameowrks
    • small libraries not large
  • SOC
  • Confidence
    • Testing
    • Assert
    • Debugging
    • Immutability
  • Use a few concepts well
  • Easy to get core logic up and running, reasonable to make bottle necks efficient
  • With great power comes great responsibility
  • One tool: the language should be able to run as a script to manage the build
    • reflection, unsafe and polymorphism are good for libraries but bad for applications
  • Package management should be simple and safe but not centralized

Reduce Code

Most C# projects have a class that does a thing as unit of work (a few methods) and some tests. But to support this we end up with

  • an interface
  • a serialization (DB) model
  • a message model

To reduce this we should derive an interface from it's methods. And a model should be able to be reasonably reused in many contexts.

Managing Abstraction

We have great tools for breaking things down into abstractions, but very poor tools for expressing those abstractions from a high level.