3 ms·
> Dynamic typing allows you to quickly build and iterate but lacks the static-analysis tooling needed for larger codebases Large codebases, ewww. Instead separ
by welder 11y ago
> Dynamic typing allows you to quickly build and iterate but lacks the static-analysis tooling needed for larger codebases
Large codebases, ewww. Instead separate things into smaller projects, each easily maintainable on it's own.
- Manishearth 11y agoThat's still a large codebase, now you need to jump back and forth between API docs to be sure you're giving it the correct type.
- viraptor 11y agoOpenstack is a very good example of a very large python codebase split into smaller projects. But it's still a large codebase. It's still hard to work with different components and the only thing that happens to hold it together are loads and loads of tests and lints which try to come close to what static analysis could provide.
- NateDad 11y agoRelated - Openstack Swift investigating using Go: http://lists.openstack.org/pipermail/openstack-dev/2015-April/063019.html http://lists.openstack.org/pipermail/openstack-dev/2015-Apri...
- viraptor 11y agoSwift has a very fortunate position here. Specifically, the interaction surface is very low (mainly user app<->Swift and Glance<->Swift) and the interface is very restricted. It's just an object store. It may be a great project for migration, just like Glance (although that one doesn't need that much performance). The projects I don't think will ever be able to move are Neutron and Nova. Even parts of Nova are so tightly connected that it would need a major redesign before rpc can really split scheduler and other pieces into different projects. Also Keystone probably has too many integration layers / plugins by now to migrate to anything. (I'm glad that this happened BTW, the more languages in OpenStack, the better isolated and simpler the interfaces will become)