<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: joshlemer</title><link>https://news.ycombinator.com/user?id=joshlemer</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 14 Apr 2026 20:45:11 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=joshlemer" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by joshlemer in "Bringing Clojure programming to Enterprise (2021)"]]></title><description><![CDATA[
<p>I think this is kind of misleading. Yes s-expressions have very simple syntax in and of themselves. But s-expressions are not all that's required to get all the control structures in Clojure. You need to memorize all the special forms and all the standard macros that people use on a day to day basis. And they're just as hard (actually IME harder) to memorize as any other syntax. let, cond, record, if, condp, let-if, fn, def, defn, loop, recur, if-some, when-let, for, ->, ->>, as->>, cond-> ...<p>To this day I have to look up whenever I get back into clojure what the "syntax" is of ns, require, import, etc.</p>
]]></description><pubDate>Thu, 02 Apr 2026 18:02:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47617935</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47617935</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47617935</guid></item><item><title><![CDATA[New comment by joshlemer in "Bringing Clojure programming to Enterprise (2021)"]]></title><description><![CDATA[
<p>Spinning dwindling adoption as a good thing because it "unburdens community from serving lowest common denominator use-cases" is exactly the kind of of downplaying/deflection of every issue that I'm talking about, which constantly happens in the Clojure community. It's such an unhealthy attitude to have as a community and it holds it back from actually clearly seeing what the issues are and coming up with solutions to them.<p>Every problem people face is "not a problem" or "actually a good thing" or, maybe if all else fails we can make users feel bad about themselves. Clojure is intended for "well experienced, very smart developers". Don't you know, our community skews towards very senior developers! So if you don't like something, maybe the problem is just that you're not well experienced enough? Or, maybe what you work on is just too low-brow for our very smart community!</p>
]]></description><pubDate>Thu, 02 Apr 2026 16:14:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47616413</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47616413</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47616413</guid></item><item><title><![CDATA[New comment by joshlemer in "Bringing Clojure programming to Enterprise (2021)"]]></title><description><![CDATA[
<p>Yeah to be honest after trying for many years to understand what is so special about this famous Clojure REPL I struggled to see how it was that different in practice from Python or other languages. In Python you can also highlight a section code and send it to the console to be evaluated.<p>I think debuggers are just better anyways. When I got into the weeds trying to do this interactive REPL workflow on an actually running webapp it was a big mess. You have to write custom code all the time to basically capture data and save it into global variables, so that you can inspect them (as opposed to a debugger where you can just set a breakpoint and inspect all the variables in the middle of the precise spot in the request-response cycle).<p>I think maybe this was ahead of its time when it came out in 2008 or got popular in 2010-2015, but nowadays I am not seeing what's specifically more productive about the Clojure REPL than the interactive development experiences available in Laravel, Python, JS, etc.</p>
]]></description><pubDate>Thu, 02 Apr 2026 16:06:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=47616312</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47616312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47616312</guid></item><item><title><![CDATA[New comment by joshlemer in "Clojure: The Documentary, official trailer [video]"]]></title><description><![CDATA[
<p>Yeah, Elixir's Pheonix if anything demonstrates how important a flagship framework/stack plays a huge role in driving language adoption. Despite Elixir coming out after Clojure, and running on a VM that is more esoteric/niche than the JVM, and having a host language which is 1000 times smaller in popularity and library ecosystem size, it still is probably more popular than Clojure at this point and almost all of that is from people picking up Elixir to use Pheonix. And Clojure's use is not just staying where it is, it seems to be in free fall. There used to be dozens of Clojure job postings in Canada, now without exaggeration I don't think there's a single one.</p>
]]></description><pubDate>Thu, 02 Apr 2026 15:39:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47615932</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47615932</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47615932</guid></item><item><title><![CDATA[New comment by joshlemer in "Clojure: The Documentary, official trailer [video]"]]></title><description><![CDATA[
<p>Rich's Simple Made Easy talk is really interesting and insightful and I still love it but I think now the distinction is brought out too often almost reflexively, and used as a crutch. Yes "simple" and "easy" are not the same thing, but nor are they opposites. Just because something is "not easy" doesn't mean it's "simple".<p>I think there are lots of well maintained Django projects. In fact, if I do a search on AI and on google for what one web stack probably has the lowest overall total cost of ownership including maintenance years down the line, Django usually is what comes up, without even specifically searching for/mentioning it.<p>> if you're very deep into "frameworks are clearly superior in every case"<p>This is a mischaracterization of what I have said, and is more like the extreme position that Clojure devs seem to take. The original commenter said that Clojure is wonderful, but it's too bad that [for the people who want it,] there isn't the option of a well maintained, all-in-one, batteries included framework. You deny that this is a problem, saying that actually a well-chosen set of libraries are superior (I guess in every case, because if not then it actually would be a problem sometimes).</p>
]]></description><pubDate>Tue, 31 Mar 2026 18:48:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47591750</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47591750</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47591750</guid></item><item><title><![CDATA[New comment by joshlemer in "Clojure: The Documentary, official trailer [video]"]]></title><description><![CDATA[
<p>Yep</p>
]]></description><pubDate>Tue, 31 Mar 2026 18:09:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47591282</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47591282</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47591282</guid></item><item><title><![CDATA[New comment by joshlemer in "Clojure: The Documentary, official trailer [video]"]]></title><description><![CDATA[
<p>I think it actually is a pretty big problem. "Once you absorb the ideas of Clojure" takes months or years to fully get. Composing libraries yourself, like your comment says, requires that they are "well-picked". Stitching together separate libraries is really time consuming and a distraction from the project you're trying to build. It also results in pointless thrashing within a team as everyone has become personally invested in their own mosaic of hand-selected libraries for every little thing. By the time a beginner learning Clojure has researched and put together their web stack and got it all hooked up and is ready to start, the Django developer already shipped their project last quarter, iterated on it a few times, and is on to the next thing.<p>One big library/framework has huge benefits and network effects, from enabling a big 3rd party plugin ecosystem, to a deeper documentation literature (including paid courses, books, and AI). It means that there's less or virtually zero getting up to speed when changing from one project to an other. It means that the upstream framework team takes care of upgrades whereas you have to consider, when a new technology comes up, how to integrate this into your stack. There's a reason that Laravel, Django, Rails, and Spring each have thousands or hundreds-of-thousands of times more websites in production than all of Clojure combined.<p>At a meta/discourse level, I also find the Clojure community's tendency to constantly deny and downplay any criticism or even just issue that people face to be really frustrating and counter productive.</p>
]]></description><pubDate>Tue, 31 Mar 2026 17:01:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47590312</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47590312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47590312</guid></item><item><title><![CDATA[New comment by joshlemer in "Canada's bill C-22 mandates mass metadata surveillance"]]></title><description><![CDATA[
<p>You say that I gain all the benefits from collective bargaining but I had no other choice. Maybe I don't even like the contract very much and would have bargained for other things than what the union negotiated for. The union claims to negotiate on my behalf but if they really respected me they would give me the ability to opt out.<p>Your hypothetical isn't even always the case. When unions form, usually there are employees there that don't want to subject themselves to the union, but are forced to, so they didn't "join a workplace with a union" at all.</p>
]]></description><pubDate>Mon, 16 Mar 2026 16:11:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47400935</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47400935</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47400935</guid></item><item><title><![CDATA[New comment by joshlemer in "Canada's bill C-22 mandates mass metadata surveillance"]]></title><description><![CDATA[
<p>It's not just the Notwithstanding clause. There's a general judicial tradition in Canada of utterly ignoring or dismissing or excusing blatant, objective violations of the constitution itself. Some examples:<p>1. in Cambie Surgeries Corporation v British Columbia (<a href="https://en.wikipedia.org/wiki/Cambie_Surgeries_Corporation_v_British_Columbia#Appeal" rel="nofollow">https://en.wikipedia.org/wiki/Cambie_Surgeries_Corporation_v...</a>), where a private clinic challenged the province's ban on any private care whatsoever for procedures that are provided by the public system on the grounds that if the province bans procedures but then also rations access to those procedures to the point that they're inaccessible for many patients, it constitutes a violation of our charter right to life and equal protection.<p>It seems they were able to successfully argue that this does constitute a violation of our rights, but the decision says it's okay because it's done with the intent to preserve the equitable access to healthcare for the general public.<p>2. Employees in union shops are forced to join the union. This is arguably a violation of our right to freedom of association, but the supreme court says that it's okay if it does because "the objective of this violation is to promote industrial peace through the encouragement of free collective bargaining". <a href="https://en.wikipedia.org/wiki/Rand_formula#Freedom_of_association_issue" rel="nofollow">https://en.wikipedia.org/wiki/Rand_formula#Freedom_of_associ...</a><p>3. <a href="https://en.wikipedia.org/wiki/R_v_Comeau" rel="nofollow">https://en.wikipedia.org/wiki/R_v_Comeau</a>, a famous case where a guy bought beer in Quebec and drove it to New Brunswick (for personal consumption) and was fined. His case argued that that's a violation of section 121 of the Canadian Constitution 1867 which states as black and white as can be:<p>121 All Articles of the Growth, Produce, or Manufacture of any one of the Provinces shall, from and after the Union, be admitted free into each of the other Provinces.<p>But the Supreme court ruled that it's not enough for provinces to ban goods from entering their province for it to count as a violation, it must be a ban which has no other purpose but to impede interprovincial trade. But that means that this section is completely useless because a justification for protectionism can always be found or made up on an ad-hoc basis.<p>Basically, Canadians have no rights whatsoever. Our entire legal system doesn't sit on anything fundamental it's all just vibes and arbitrary whims of the justices of the day. Our charter and constitution are so full of explicit holes like the notwithstanding clause, that they're rendered almost meaningless even on their own terms, and then any other violations will be excused on the flimsiest grounds.</p>
]]></description><pubDate>Mon, 16 Mar 2026 15:39:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47400461</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47400461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47400461</guid></item><item><title><![CDATA[New comment by joshlemer in "Judge orders government to begin refunding more than $130B in tariffs"]]></title><description><![CDATA[
<p>Hah, apologies, yes autocorrect got me.</p>
]]></description><pubDate>Thu, 05 Mar 2026 17:33:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47264608</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47264608</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47264608</guid></item><item><title><![CDATA[New comment by joshlemer in "Judge orders government to begin refunding more than $130B in tariffs"]]></title><description><![CDATA[
<p>Prices don’t monotonically go up forever, prices come down all the time<p>Edit: Sorry autocorrect thought I said moronically,</p>
]]></description><pubDate>Thu, 05 Mar 2026 15:37:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47262863</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47262863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47262863</guid></item><item><title><![CDATA[New comment by joshlemer in "Open source is not about you (2018)"]]></title><description><![CDATA[
<p>Yes. If A is correlated with B, is A more likely to cause B than if A is not correlated with B? Clearly yes.</p>
]]></description><pubDate>Fri, 13 Feb 2026 20:52:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47007662</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47007662</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47007662</guid></item><item><title><![CDATA[New comment by joshlemer in "Open source is not about you (2018)"]]></title><description><![CDATA[
<p>But it is evidence for causation.</p>
]]></description><pubDate>Fri, 13 Feb 2026 20:27:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47007405</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47007405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47007405</guid></item><item><title><![CDATA[New comment by joshlemer in "Open source is not about you (2018)"]]></title><description><![CDATA[
<p>Maybe that would be a good opportunity to offer them a quote for how much you could do the work for.</p>
]]></description><pubDate>Fri, 13 Feb 2026 16:11:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47004321</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=47004321</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47004321</guid></item><item><title><![CDATA[New comment by joshlemer in "We will ban you and ridicule you in public if you waste our time on crap reports"]]></title><description><![CDATA[
<p>Not really. They said in their comment they deleted their whole account and everything. They probably don't want to continue to be ridiculed and to link the identity of that account with this one.</p>
]]></description><pubDate>Thu, 22 Jan 2026 17:19:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46722166</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=46722166</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46722166</guid></item><item><title><![CDATA[New comment by joshlemer in "Clicks Communicator"]]></title><description><![CDATA[
<p>I agree about the marketing. I just heard about this phone now and was confused about if I could just use it as a primary phone. It would be nice if they talked more about what the phone is like to use, show what is the home screen and stuff. I'm wondering if I can use it well with some other utility apps that I don't think I'd want to do without like Maps, Parking payment apps, Podcasts and Spotify.</p>
]]></description><pubDate>Fri, 02 Jan 2026 18:57:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46468084</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=46468084</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46468084</guid></item><item><title><![CDATA[New comment by joshlemer in "Clicks Communicator"]]></title><description><![CDATA[
<p>What do you use for maps? Or paying for parking which maybe isn't the case for you but in my city requires use of a smartphone app. What about music and podcasts? Asking cause I would like to use a dumb phone if possible but it seems like it would actually introduce a lot of friction into daily life.</p>
]]></description><pubDate>Fri, 02 Jan 2026 18:29:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46467785</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=46467785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46467785</guid></item><item><title><![CDATA[New comment by joshlemer in "Canadian bill would strip internet access from 'specified persons', no warrant"]]></title><description><![CDATA[
<p>That's a huge exaggeration. National Post is absolutely not more unhinged than Fox News.</p>
]]></description><pubDate>Tue, 07 Oct 2025 23:38:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45510335</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=45510335</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45510335</guid></item><item><title><![CDATA[New comment by joshlemer in "The Theatre of Pull Requests and Code Review"]]></title><description><![CDATA[
<p>> nobody reads intermediate commit messages one by one on a PR<p>I think it's fine to have a whole bunch of "WIP" commit messages on intermediate commits while the PR is in a draft stage, but then all of those garbage commits should really be squashed down into one commit and you should at least write a one liner that describes what the whole change is doing. I think it does materially make repo history harder to understand to merge in PR's with 10 garbage commits in them.</p>
]]></description><pubDate>Thu, 25 Sep 2025 16:34:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45375022</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=45375022</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45375022</guid></item><item><title><![CDATA[New comment by joshlemer in "Samsung taking market share from Apple in U.S. as foldable phones gain momentum"]]></title><description><![CDATA[
<p>Which app do you use to read?</p>
]]></description><pubDate>Thu, 11 Sep 2025 20:18:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45215701</link><dc:creator>joshlemer</dc:creator><comments>https://news.ycombinator.com/item?id=45215701</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45215701</guid></item></channel></rss>