3 ms·
Library/namespace is so low level as to be obvious. Breaking up code by internal boundaries is fairly well-explored territory - every language gives you a way t
by perrygeo 2y ago
Library/namespace is so low level as to be obvious. Breaking up code by internal boundaries is fairly well-explored territory - every language gives you a way to modularize. Clojure namespaces aren't unique here, though functional programming with immutable data makes it WAY easier to do so, it's not improssible in other languages..
The barriers to finishing most projects are the "final mile" - taking it to production. So in general I agree - package from the beginning.
I advocate for making that the first mile. If you think you might need tests, a website, a library, and a mobile app - set up CI, a VPS with an IPv4 address, and apply for a dev account on CentralizedLangRepo and ProprietaryAppPlatform from day 1. Make it a habit to release early and often. That's the only way to earn the muscle memory for rapid iteration in any language.
- geokon 2y agowith the move from `lein` to `deps.edn` it made local libs much easier to use. You can also push to your own github or pin to git hashes. It's all just incredibly easy - in a way that I haven't seen as smooth in a lot of languages (where there is more boilerplate involved). In effect it's just a extra namespace - but it's an namespace that's automatically shared across projects You're probably right about websites etc, but working this way I just don't feel too concerned about dropping a project b/c the code will live on and get reused