3 ms·
No tools or frameworks. Minimum viable (no particular order): 1. Know Clojure (duh...) You should know language and most features of most standard functions.
by lmilcin 6y ago
No tools or frameworks.
Minimum viable (no particular order):
1. Know Clojure (duh...) You should know language and most features of most standard functions.
2. Know Java VERY well. You will be debugging system with JVM underneath and Java libraries but programming Clojure. If you don't know Java you are not going to learn it while programming Clojure but you will be needing it nevertheless.
3. Have mature understanding of various approaches, patterns, paradigms, development practices and most importantly, importance of simplicity and how to write maintainable code. Clojure allows you to do basically anything and will not handhold you on how to structure your application. Therefore, if you don't already have that knowledge and maturity with you, more likely than not you are going create an unmaintainable monstrosity.
- harperlee 6y agoYou don't need to "know Java very well", adding that to a minimal clojure curriculum is a very misguided recommendation. You can do loads of things without needing more knowledge from java than: a) it exists, b) it has stacktraces, that you will read on errors, and c) that you pack it in a .jar. You can even easily do with less, as you can use e.g. heroku without knowing how to create a jar file, just pushing a repo, and you can start working with clojurescript and avoid java whatsoever.
- fulafel 6y agoI think you have a very high bar of "minimum viable"! IME you don't need to have Java experience previously, you can just pick up needed bits of JVM as you go - which is less than you make out. I'm sure you can approach things from a Java expert angle as well and leverage your tooling etc knowledge from there, no doubt it helps a bit in the beginning. I think (3) would be an equally valid requirement for a Python, JS, C++, or Java developer.
- lmilcin 6y agoI say this after observing Clojure project at the bank I work for and from other projects I observed in the past. The guys knew a lot but left a big pile of unmaintainable crap. IMO minimum viable developer should be able to not trip on their own feet. Generally be able to produce working, maintainable application. In Clojure (and other Lisps) this absolutely requires you to be able to structure application. If you use other languages, the frameworks that are there do the work of structuring for you. That's why when you are Java developer, every web app largely looks the same. That's because you don't actually structure application, as much as use structure that is offered with Spring ecosystem.