Playing with Legos
Legos are fun, they are composable. Code is not composable, not at least in the way we learn to code. Different environments come with different constraints which end up with different designs.
Programming lacks the composability and rigid specifications that make LEGOs so effective as building tools. While LEGOs enforce strict physical constraints that prevent misuse, code lacks similar guardrails across different ecosystems and environments.
Block-based programming languages like Scratch, Minecraft, and Roblox demonstrate how "the blocks snap into each other" in ways that make creation accessible and intuitive. These platforms demonstrate how constrained systems can actually enhance creativity rather than limit it.
Cloud services like AWS and GCP, in contrast, obscure functionality with complexity. Developers must become experts in entire platforms before gaining real benefits, often at significant financial cost.
A Vision for Better Tools
A vision for ideal coding tools emerges: a browser-based platform where developers can write simple functions, connect dependencies with type safety, test inputs, deploy remotely, and share services through formal contracts (like gRPC).
Sustainable programming education should teach "composable" thinking rather than technology stacks dependent on legacy code. Technologies like Firecracker could make serverless functions exceptionally efficient.
As code solves increasing numbers of problems, the talent pipeline's ability to teach composition-based programming becomes critical to scaling solutions effectively.