If you liked this video and want to support my channel, please consider buying me a coffee ☕. Your contribution helps me create more content like this. You can donate at: 👉 Ko-fi: ko-fi.com/andreyfadeev 👉 Buy Me a Coffee: www.buymeacoffee.com/andrey.fadeev I'm truly grateful for your support, and thank you for watching! 🙏
Great video, we need more stuff like this, providing somewhat of a "paved path" for newcomers. Learning Clojure can be demanding enough to do in your evenings if you don't have the luxury of doing it as a day job, and having to explore what libraries are safe to invest time in on top of that is a big ask. I agree with what some of the others have said; having names/links for the projects being discussed on the screen would be nice too. Good work!
Hi, thanks for the comment! Agree about the names of the libraries, that was one of my first attempts to record a video so it's far from ideal. I've covered most of the libraries in my other videos and will do more soon!
Well made video nice that it's in context of production with tips and concrete examples. Currently working on converting CI and kafka related stuff to babashka it's really nice.
Hi, thanks for watching! Regarding the template, we are literally building it right now on the channel, first part is already uploaded, second one will be uploaded today, also in the description you can find a link to GitHub repo were I push all changes done during those tutorials!
Hi, first of all, thanks for watching and commenting 👍 That's the first comment ever on my channel 😄 Yeah, I totally agree - the plan is to cover all the commonly used libraries with tutorials - and at the end combine them into a big video showing how to build a real-world application (simplified) with Clojure. So stay tuned!
Hi, I think it's not bad if you want to use a framework, there is also Biff. The thing about kit that I don't like is that it's using Selmer for HTML templating by default and also follow unnecessary complex structure for namespaces (eg controllers etc) I usually just prefer to create my own simple templates and at work, we just have a template for our backend services that evolves over time.
What's the package name at roughly 8:20? I thought it was "JT" but I couldn't find something by that name that looked relevant. EDIT: Ah I'm silly, it's Jetty... you can tell I haven't done enough JVM dev recently!
Hello! Mount is great, it does way more than just defining an order to start services, it lets you control the starting and the stopping of services during REPL development. It has nothing to do with global state as you mention, any `def` or `atom` is a very easy way of introducing global state into Clojure, nothing is stopping the developers from using those...
Integrant and component can start/stop the system (part of the system) in the REPL. If an atom is used as a global state it's usually a bad code and shouldn't be allowed. My problem with mount is that by design it introduced a global state in many namespaces and immediately makes a lot of functions not pure - making further refactoring a nightmare (from personal experience). But anyway, if it works for you that's great.
With all my respect to Clojure community I cannot Imagine Java having similar video mentioning good and bad frameworks 😅 I know some “bad” in Java: Struts, Liferay Portal, WebSphere, and even Akka (because of their licensing). But all listed are used in production by huge companies, including uglies hippo called Liferay.
@@andrey.fadeev I mean, can you imagine in Java world we will be discussing "do not use Hibernate, use iBatis instead", or, for example, "stop using Struts, use Spring Boot", or "use Vert.x, don't use Akka" - they are all good frameworks, and each has its' applicability. My main viewpoint was this: can you list 5-10 bad frameworks in Java which you don't recommend to use in production? I know one framework: SWING for desktop applications (use Eclipse instead). Hard to find more... maybe only most of Java internals, such as java.net.* classes (URLConnection), Executor framework, and so on. So I am laughing (as a Java developer learning Clojure)...
@@andrey.fadeev +JMS, +JSP, +Portlets, and, of course, Stateful & Stateless EJBs, and big heavy gorillas such as XYZ Application Server and so on. But all listed are in heavy use in production, and even power widgets & modules built in Clojure ;) Yes, I can put Hibernate and others listed on top, but those are "legacy" frameworks, they were best at the time of invention; comparison is unfair. In Clojure, you are comparing similar-by-age frameworks.
If you liked this video and want to support my channel, please consider buying me a coffee ☕. Your contribution helps me create more content like this. You can donate at:
👉 Ko-fi: ko-fi.com/andreyfadeev
👉 Buy Me a Coffee: www.buymeacoffee.com/andrey.fadeev
I'm truly grateful for your support, and thank you for watching! 🙏
This content on starting new projects in Clojure is so badly needed, and you did a great job. Thank you!
Glad it was helpful!
Great video, we need more stuff like this, providing somewhat of a "paved path" for newcomers. Learning Clojure can be demanding enough to do in your evenings if you don't have the luxury of doing it as a day job, and having to explore what libraries are safe to invest time in on top of that is a big ask. I agree with what some of the others have said; having names/links for the projects being discussed on the screen would be nice too. Good work!
Hi, thanks for the comment! Agree about the names of the libraries, that was one of my first attempts to record a video so it's far from ideal. I've covered most of the libraries in my other videos and will do more soon!
This is one of the best closure materials out there!
Clojure is too good to be true, i love it, wish the language come to be main stream (as python, js etc)
Way better than Python
Hi Andrew! Learning clojure with you.
Hi, nice - hope you'll have fun with the language!
Thank you Andrey! Please keep creating this content!
Thanks!
Thank you, this is really helpful. Please make more practical clojure tutorials.
Thanks for the comment! Doing my best :)
Well made video nice that it's in context of production with tips and concrete examples. Currently working on converting CI and kafka related stuff to babashka it's really nice.
Thak you for the video. I just found your videos and will be checking them out. Thanks for sharing you knoledeg with us. 😊🎉
Thanks! Getting started so this is perfect
please put all names of libraries on screen to overcome difficulties hearing. thanks for doing these intro videos.
awesome
Thank you for sharing your great experience. Any template project by assembling all the goodies perhaps a real-world TODO app?
Hi, thanks for watching! Regarding the template, we are literally building it right now on the channel, first part is already uploaded, second one will be uploaded today, also in the description you can find a link to GitHub repo were I push all changes done during those tutorials!
Glad I subscribed
Thank you
Hello, very good content! I think it would be great if you took each part of the system you described and made a tutorial for that.
Hi, first of all, thanks for watching and commenting 👍 That's the first comment ever on my channel 😄
Yeah, I totally agree - the plan is to cover all the commonly used libraries with tutorials - and at the end combine them into a big video showing how to build a real-world application (simplified) with Clojure.
So stay tuned!
@@andrey.fadeev My honour. Your timing is perfect for me! I am studying clojure and just finding my way through integrant, reinit, aero etc
❤
You missed logs and testing.
hi, I recently came across kit-clj. What are your thoughts on it?
Hi, I think it's not bad if you want to use a framework, there is also Biff. The thing about kit that I don't like is that it's using Selmer for HTML templating by default and also follow unnecessary complex structure for namespaces (eg controllers etc)
I usually just prefer to create my own simple templates and at work, we just have a template for our backend services that evolves over time.
What's the package name at roughly 8:20? I thought it was "JT" but I couldn't find something by that name that looked relevant.
EDIT: Ah I'm silly, it's Jetty... you can tell I haven't done enough JVM dev recently!
yeah, Jetty :)
Hello!
Mount is great, it does way more than just defining an order to start services, it lets you control the starting and the stopping of services during REPL development. It has nothing to do with global state as you mention, any `def` or `atom` is a very easy way of introducing global state into Clojure, nothing is stopping the developers from using those...
Integrant and component can start/stop the system (part of the system) in the REPL. If an atom is used as a global state it's usually a bad code and shouldn't be allowed. My problem with mount is that by design it introduced a global state in many namespaces and immediately makes a lot of functions not pure - making further refactoring a nightmare (from personal experience).
But anyway, if it works for you that's great.
With all my respect to Clojure community I cannot Imagine Java having similar video mentioning good and bad frameworks 😅
I know some “bad” in Java: Struts, Liferay Portal, WebSphere, and even Akka (because of their licensing). But all listed are used in production by huge companies, including uglies hippo called Liferay.
not sure ive got the idea fully
@@andrey.fadeev I mean, can you imagine in Java world we will be discussing "do not use Hibernate, use iBatis instead", or, for example, "stop using Struts, use Spring Boot", or "use Vert.x, don't use Akka" - they are all good frameworks, and each has its' applicability.
My main viewpoint was this: can you list 5-10 bad frameworks in Java which you don't recommend to use in production? I know one framework: SWING for desktop applications (use Eclipse instead). Hard to find more... maybe only most of Java internals, such as java.net.* classes (URLConnection), Executor framework, and so on.
So I am laughing (as a Java developer learning Clojure)...
@@TPITEOTG yeah, I can easily do that xD Hibernate will be at the top of the list :)
@@andrey.fadeev +JMS, +JSP, +Portlets, and, of course, Stateful & Stateless EJBs, and big heavy gorillas such as XYZ Application Server and so on. But all listed are in heavy use in production, and even power widgets & modules built in Clojure ;)
Yes, I can put Hibernate and others listed on top, but those are "legacy" frameworks, they were best at the time of invention; comparison is unfair. In Clojure, you are comparing similar-by-age frameworks.
@@andrey.fadeev - Anyway, Java times come to the end... don't use Java for new projects ;)