Hacker News Comments on
Tim Ewald - Clojure: Programming with Hand Tools
ClojureTV
·
Youtube
·
6
HN points
·
14
HN comments
- This course is unranked · view top recommended courses
Hacker News Stories and Comments
All the comments and stories posted to Hacker News that reference this video.Unless it's my tiny phone screen I'm surprised this video did not surface yet https://youtu.be/ShEez0JkOFw (Tim Ewald - Clojure: Programming with Hand Tools)
Good article! Two things popped into my head when reading it. First the talk "Programming with Hand Tools" by Tim Edwald[0]. It's a very cool, entertaining talk with emphasis on the craftsmanship side of things and provokes thinking about which parts to automate (or maybe abstract away) and which parts to craft by hand when we're building stuff. Aside: also reminds me of Casey Muratori's Handmade Hero project [1]. He is a strong advocate for structuring things bottom up and building them ourselves.[0] https://www.youtube.com/watch?v=ShEez0JkOFw
---
Secondly when reading this:
> Regardless, the basic idea is that companies are often faced with the decision of doing N units of shitty work or far fewer than N units of great work.
This is obviously oversimplified, but there is an important point that wants to emerge from this line of thought.
As someone who grew up on open source, standardized technologies and the Web, I have been empowered to build a livelihood on Web development, mostly "self-taught" (or rather self-directed). All of this Web stuff is very accessible and gives you actual _leverage_. You can build something useful very quickly and the community around it is happy to share so much knowledge and work. I'm _very_ thankful for that.
But I think as the wider web development community we're losing sight of what that essence is. We started to think of the Web as merely a vehicle for pure scale as in "how to reach the most people and annoy them with notifications" and "how to produce cheap software very fast".
Maybe we, or some of us, should slow the fuck down a notch and think about producing valuable things for the specific needs, pain points or taste of actual people. What the article describes is a process of thinking about the real people and building a human connection. The "top 100" costumers in the article are most likely people who _actually_ need/want/use the damn thing if they see your point. Instead of trying to manipulate the masses to buy a lot of crap (excuse my meta), we should be building relationships. One very good reason for this is that only the latter is sustainable - on all the axis of what "sustainable" means.
I'm writing this "out loud" partly because I started to drift into this abstraction/automation mindset myself more and more. But yes, leverage is solving real problems.
Learn Clojure. Then you can spend the rest of your life building with hand tools, lol: https://www.youtube.com/watch?v=ShEez0JkOFw(Seriously, though, Clojure is awesome—but occasionally I miss the guardrails of a framework.)
This is probably a good time to mention Tim Ewald's talk, Programming With Hand Tools:
⬐ SilasXFor those who want and abstract, the best I could find was this:https://old.reddit.com/r/Clojure/comments/4j3ani/with_all_of...
Interesting presentation that explores your question. +1 intersection from this commenter.Tim Ewald - Clojure: Programming with Hand Tools https://www.youtube.com/watch?v=ShEez0JkOFw
Must-see presentation (~1hour) for anyone interested in this topic is "Programming With Hand Tools" by Tim Ewald: https://www.youtube.com/watch?v=ShEez0JkOFw
I'm not a Closure coder but I loved this talk on how as your tooling becomes more complex and automated, you start to lose sight of simpler solutions to problems. It's all about woodworking!Tim Ewald - Clojure: Programming with Hand Tools https://www.youtube.com/watch?v=ShEez0JkOFw
⬐ chpillIt does take time before he starts drawing the parallel between woodworking and software, but it is well worth the wait!Thank you for reminding me of this great talk.
⬐ wool_gatherClojure people seem to give really good talks; it's starting to make me think I should look into learning the language.
I also think it seems pretty appealing. There have been some interesting things on HN over the years about it.I loved this talk about how the tools you use determine how you look at problems (Tim Ewald - Clojure: Programming with Hand Tools) https://www.youtube.com/watch?v=ShEez0JkOFw
And if you haven't seen him before, you're about to fall in love with Matthias Wandel: https://www.youtube.com/user/Matthiaswandel/videos http://woodgears.ca/
⬐ anabisengrinCool ! It is true that I haven't looked online to learn wood-working related stuff. I'll look into it
I gotta throw in one of my favorites, because I have not seen another that really speaks so directly to the value of craftsmanship in development. I also deeply enjoyed the allegory with woodworking tools.
Can't help but mention this great video where an enthusiast woodworking engineer makes a parallel between tools in the real world and tools in computing:
We build complicated software with simple tools where I work using Clojure. There's even a talk about Java:Powertools::Clojure:Handtools! [1]
The "wat" is a good first step in identifying problems. However, I see is people getting stuck on "wat" and not moving forward. People would rather win an argument than advance knowledge & the practice. Lot's of ego, programmers have.In the mean time, one can learn to appreciate & use javascript strengths. It can be quite fun, liberating, & useful. Anecdotally, I have not run into these crazy issues, and I program in javascript everyday. I also have a large app and the framework I built is custom.
I liken this to using C++, Unix, & bash as a base. Yes, you could say these tools suck and spend time creating, marketing, & community-building for a new tool. Or you can iterate & improve upon these existing tools. There's no wrong answer. What do you want to accomplish?
> Sushi knives don't decide to cut you because the rice came from a different origin.
That analogy seems like a stretch. Care to explain? Javascript works with different locales. There are many international websites that use javascript.
Also, javascript does not "decide" to create a bug in your program. You create that bug by misusing the tool. You will get further if you take some responsibility and improve your practice.
> And I'd guess that most craftsmen, outside of a ritual and tradition would love for their tools to have less disadvantages.
I agree with that. Usually the improvements are iterative. One could use a laser cutter (which does not need sharpening) to cut sushi, but that would also burn it. Here's a good talk (Clojure: Programming with Hand Tools).
https://www.youtube.com/watch?v=ShEez0JkOFw&safe=active
Ritual & tradition is a social tool to propagate knowledge, idioms, & practices across generations. It makes sense to challenge ritual & tradition to they improve over time. It does not make sense to whine about it without doing anything.
> it'd be like complaining that the only kind of spaghetti you can buy locally cooks only at a specific temperature, and even a bit more turns it to mush
Not getting your analogy. This seems like a stretch, similar to the person who cannot strain the spaghetti noodles on the video. Care to explain?
It's funny, even as someone who knows js really well, having worked with it for a decade (actually, longer!), the explosion in the ecosystem took me by surprise.I left my web agency role over a year ago to work on my start up with a friend so I've been in relative developmental isolation (lots of python and js, not so much keeping up with the latest trends). I came back to help out on a project recently and had to spend a day researching all the new tools. Particularly around package management, bower, grunt, yeoman, node, npm etc. A year ago a js lib was generally delivered as a js or min.js file. Now there's the whole system to sit around it; every project on github now seems to include the config for each of the different package managers. Even a vagrant file so you can get it all up and running on a brand new vm.
Something as simple as adding bootstrap to a project. It's not totally obvious when you first look at it. Where does the code go? How do you compile it in such a way that you don't touch the vendor src itself but you can customise it etc. I have a method that works for me, but I had to play around a little to figure out how to fit it to my needs.
Once I got through that stage I was really happy with where things were at. JS libs are nice and easy to install and version control now, dependency management with bower has worked really well for me so far. Grunt makes the automation side of development nice, contained and easily shared. All in all it's a really good transition.
I'm lucky in that I've been developing for the web since people were changing files in ultraedit and ftping to the live server to see the changes. When each new thing comes along I only have one new thing to learn. Step away for a year and suddenly there's a lot to figure out to get back in to it.
I can only imagine how daunting it could be for a complete newbie trying to find their way.
As ever these tools can be great, but you ultimately you really want to understand what goes on underneath so they don't limit you too much. Amazing talk on this subject posted by another HNer in a comment the other day - https://www.youtube.com/watch?v=ShEez0JkOFw
There was a talk at Clojure/conj by Tim Ewald on just that: https://www.youtube.com/watch?v=ShEez0JkOFw"Programming with hand tools"
Lots of conference reviews nominated it in their favourite talks too.
⬐ aidosAt the risk of "me too"ing - that was an hour really well spent. Thanks for that.⬐ _pmf_It's an amazing talk.⬐ the_cat_kittlesjust watched it- wonderful! thank you⬐ nickikI want to agree. Watched this just yesterday and really, really liked it. Its a bit slow in the beginning and but it really ties to getter in the end. Better then I first thought.Its a really important point and I often have trouble explaining this to people, now thanks to this talk I have a much clear handle on what the point is.
It can be used when arguing things like ORMs and things like that.
⬐ dekhnVery cool! I just recently discovered many of the joys that he talks about here. I switched to mostly using handheld tools, because it's just damn fun to work closely with wood.