DeveloperTools
1.0.0

Contents:

  • Project Conventions
  • Design Documentation
    • Design Philosophy
    • NWChemEx Ecosystem
    • Overall Design
    • Overall Design Justification
      • Why Object-Oriented Programming?
      • Sure it Looks Pretty, But is it Going to Scale?
      • Why is C++ the Primary Language of NWChemEx?
      • Why is the NWChemEx API Written in Python?
      • Why not Just Have One Giant Repo?
      • Why Do We Need PluginPlay?
      • Why Do We Need SimDE?
      • Why Do We Need ChemCache?
      • Why Do We Need Mokup?
      • Why are the Repositories Partitioned this Way?
    • Energy Workflow
    • FAQs
  • Developing NWChemEx
  • Project Management
  • Additional Developer Resources
DeveloperTools
  • »
  • Design Documentation »
  • Overall Design Justification
  • View page source

Overall Design Justification

Now that we have introduced the overall design, the topics in this part attempt to justify the major decisions. If you don’t care why the decisions were made the way they were, feel free to skip these sections.

Contents:

  • Why Object-Oriented Programming?
    • FP vs OOP
    • So Why OOP?
  • Sure it Looks Pretty, But is it Going to Scale?
  • Why is C++ the Primary Language of NWChemEx?
    • Why Not Fortran?
    • Why Not Python?
    • Why Not Java?
    • Why Not XXX?
  • Why is the NWChemEx API Written in Python?
  • Why not Just Have One Giant Repo?
  • Why Do We Need PluginPlay?
    • How Most Electronic Structure Codes Work (and Why That is Bad)
    • The Current State of the Field
    • How PluginPlay Fixes This
  • Why Do We Need SimDE?
  • Why Do We Need ChemCache?
  • Why Do We Need Mokup?
  • Why are the Repositories Partitioned this Way?
Previous Next

© Copyright 2020, NWChemEx Team.

Built with Sphinx using a theme provided by Read the Docs.