Thinking about the current and future state of software development: languages, frameworks, tooling, etc.