Readit News logoReadit News
ptttr commented on ClojureScript from First Principles [video]   youtube.com/watch?v=An-Im... · Posted by u/puredanger
dustingetz · 8 months ago
a problem with a repl-centric approach to crud apps is that the repl is not reactive. It is a good fit for request/response pure function backend programming. But UIs are not pure functions, they have a deeply effectful nature, and being reactive all those effects are highly “situated” if you will (to use Rich Hickey’s word). IMO this is a severe impedance mismatch at the core of Clojure’s design. We simultaneously want to write small functions that can be explored in the REPL and we also want to write in-situ functions with complex dependencies in scope. ClojureScript users are running in circles for a decade trying to turn the latter into the former to make the REPL work again but it’s a mirage, the REPL is just not a fit for a deeply situated problem domain. An example of this impedance surfacing in backend programming is a nontrivial map/reduce pipeline. What is the shape of the document at stage six? How do I manifest one to play at the REPL? Clojure doesn’t have great answers to this.
ptttr · 8 months ago
what great answers could look like here?

A one way to address that is via tooling (e.g. to visualize state across time) but maybe there’s something more fundamental to be solved here? Or is it more about current tooling capabilities?

ptttr commented on Where Are the AI Jobs?    · Posted by u/SMAAART
meiraleal · 2 years ago
If you can't get to create jobs using AI, why do you think people will create them for you? What revolution is this one that someone sold you?
ptttr · 2 years ago
What? Does the idea of employment seem kinda novel in this take?

You can gain significant impact multipliers by focusing human attention on a single goal. And not many things do that better than throwing money at a problem.

However with individual's reach extended, the complexity and frequency of collaboration only increases so naive approaches get overstretched and, eventually, break.

ptttr commented on How FoundationDB works and why it works (2021)   blog.the-pans.com/notes-o... · Posted by u/tim_sw
Dave_Rosenthal · 2 years ago
I think that’s a good and really fair summary.

- If you’re a developer wanting to build an application, you should really use a well designed layer between yourself and FDB. A few are out there.

- If you’re a dev thinking you want to build a database from scratch you probably should just use FDB as the storage engine and work on the other parts. To start, at very least!

(One last thing that I think is a bit overlooked with FDB is how easy it is to build basically any data structure you can in memory in FDB instead. Not that it solves the transaction timeout stuff, etc. but if you want to build skip list, or a quad tree, or a vector store, or whatever else, you can quite easily use FDB to build a durable, distributed, transactional, multi-user version of the same. You don’t have to stick to just boring tables.)

ptttr · 2 years ago
> you should really use a well designed layer between yourself and FDB. A few are out there.

Any recommendations? All I could find is https://github.com/FoundationDB/awesome-foundationdb#layers - not sure how complete and up-to-date that list is.

ptttr commented on No Other Options: Newly revealed documents depict Canadian euthanasia regime   thenewatlantis.com/public... · Posted by u/keithly
rayiner · 3 years ago
> Why are people forced to live if they don't want to?

Because we live in a society, not some libertarian utopia of sovereign citizens. Your life doesn’t belong only to yourself, but it belongs to all of us. Your parents, your kids, your friends, your acquaintances. We are all affected by what you do to yourself and, concomitantly, get a say in it.

ptttr · 3 years ago
If a person belongs to the society, then sick, suffering people are not a value but a cost and killing them becomes net gain for society. It's very dangerous to give away body autonomy freedom to the collective as it could be potentially weaponised to target not only sick, old and poor but political opponents as well.
ptttr commented on Ask HN: What is the job market like for niche languages (Nim, Crystal)?    · Posted by u/akudha
patrickthebold · 4 years ago
I love clojure, and would love a clojure job, BUT my hesitation comes from the companies choosing clojure or any niche language. Choosing a niche language seems like a very risky move, to me. My fear is that that its a small company and someone senior and technical (CTO?) just wants to have fun in a new cool language because they are bored.

Don't get me wrong, I also want to have fun in a new cool language because I'm bored, but that's not a good decision for a company to pick that as a tool.

Anyway, I'm worried that the culture is not entirely practical in their technical decisions, and that's my hesitation.

ptttr · 4 years ago
I understand your worry, but I've had a quite opposite take on this.

I think we can agree that it's not that hard to find ANY job as an experienced developer. However it's much more difficult to find a great, satisfying job. For that you need to navigate around a lot of corpo-bullshit type of projects, and Clojure has served me well as a useful filter in doing that. My reasoning is that Clojure is niche enough that when company is using it, you can assume that it's due to a deliberate technical choice, and not just because of its popularity. That tells me two things that are symptomatic, in my opinion, of a healthy tech company culture: - tech decisions are made by engineers, not by top-level executives, - their conclusions and bets align with mine because we all see and agree on Clojure's edge over more popular solutions.

Admittedly, there's always a risk that someone just followed the hype and got out of their depth but I think this risk is relatively small, because Clojure's no longer a new kid on a block and choosing a tech stack is a major decision and usually done by senior tech leadership, hopefully less hype driven.

Of course, Clojure is no silver bullet and it's just a tool that gives you enough rope to hang yourself. Messy codebases are just as possible as in other languages, especially when the team is new to lisps that are very different from mainstream languages, but that's a nature of software development - you learn with the experience. I do cringe when I look at the Clojure code I wrote when I was just starting and wasn't fully grasping Clojure's way of thinking, but the more I use it, the more I come to appreciate how powerful it is.

Great intro that made it click for me: https://www.youtube.com/watch?v=vK1DazRK_a0 (Solving Problems the Clojure Way - Rafal Dittwald, 2019)

Having said that, no software project is ever complete and so isn't Clojure as an ecosystem. The tooling is constantly evolving and new patterns are emerging. What's great about Clojure open-source community is that everyone seems to share the desire to harness complexity and Rich Hickey has convinced each one of us at some point that the way to do it is through simplicity https://www.infoq.com/presentations/Simple-Made-Easy/

Even within Clojure's community there's a diversity of approaches, and I think it's necessary to improve and evolve. The more recent trend, I've noticed is that the community is converging at Data Oriented Programming that's applicable in other languages as well, but has always been at the core of Clojure's mindset that is especially well suited for it.

Dropping some links relevant about DOP: https://youtu.be/8Kc55qOgGps?t=4175 (Rafal Dittwald, “Data Oriented Programming” 2022) - whole talk is valuable, but long so I'm linking to the most juicy snippets) https://blog.klipse.tech/dop/2022/06/22/principles-of-dop.ht...

Moreover, Clojure has already grown past the threshold of being just a niche toy and has sufficiently big market that it won't die off anytime soon. When you study history of programming languages, you'll notice that it's enormously difficult thing to do for an emerging player, especially without big corporate backing. And Clojure is as grassroot as it gets: https://clojure.org/about/history

ptttr commented on Ask HN: What is the job market like for niche languages (Nim, Crystal)?    · Posted by u/akudha
ptttr · 4 years ago
I do definitely recommend Clojure - I've switched to it in 2019 coming from Rails and JS and never looked back.

Clojure's job market is great, there's no shortage of offers, even for newcomers and it has been the top paying lang in stackoverflow surveys for years https://survey.stackoverflow.co/2022/#section-salary-salary-...

However, the most important part is that Clojure is a very powerful piece of technology that made me reevaluate what software engineering really is. You can efficiently use Clojure for both backend and frontend with easy access to libraries from JVM and npm so you will never run into the problem, common in other niche langs, of too few libraries. Nevertheless, Clojure's own ecosystem is filled with many great, cutting-edge ideas that you wouldn't find working so well elsewhere. The community is very welcoming, growing and diverse with people coming from all different programming backgrounds - all sharing the disillusionment with other programming languages and determination to find and build a better way.

https://jobs-blog.braveclojure.com/2022/03/24/long-term-cloj...

ptttr commented on Ask HN: Is Ruby on rails worth it to learn in 2022?    · Posted by u/ahmaman
ptttr · 4 years ago
I went from Ruby on Rails, then Javascript/Typescript to finally land at Clojure in 2019 and I'm not looking back.

Clojure has been a perfect fit for my needs, very similar to what you describe, and neither Rails nor JS have been able to match that.

With Clojure/Clojurescript you get:

- sane, single lang for both backend and frontend (much more seamless than JS/node),

- REPL-Driven-Development - immediate feedback loop translating to huge productivity boost,

- a very refreshing approach to programming,

- access to both two largest ecosystems JVM, npm and of course clojure's own amazing libraries,

- vibrant and diverse community, converging people from all different programming backgrounds,

- much, much more.

Rails and Django are a bit tied to 2005ish MVC paradigm and while it's reliable and gets job done, it comes with compromises on flexibility and user experience - making it hard to be competitive in 2022 as a solo founder. Clojure on the other hand is known for empowering single/few developers to outcompete much larger teams.

Seriously, forget about Rails and Django and just focus on Clojure.

ptttr commented on Ask HN: What is the fastest way to ramp up on DevOps, k8 and GCP?    · Posted by u/epimetheus2
busterarm · 4 years ago
This entirely.

And even then, I think it took our org a solid year of work from 3 dedicated engineering teams to be comfortably deploying on GKE & EKS.

And still after that investment, we ditched K8s in favor of Nomad.

Kubernetes is kind of like a steamroller where most of us are looking for a hammer.

People joke about Google releasing Kubernetes into the wild to slow down their competition. It's really not that far off from reality though.

ptttr · 4 years ago
Would you say, for someone starting in the same place as OP, that it's better to skip K8s entirely and just go with Nomad?
ptttr commented on Ask HN: (Why) do we often drop punctuation in messenger apps?    · Posted by u/meow112012
ptttr · 5 years ago
The punctuation serves a purpose of separating thoughts from each other and conveying the tone. In messaging apps you separate thoughts by sending them as separate messages and convey the tone through emojis.

In the time-stressed and client-diverse environment of synchronous text conversations punctuation becomes redundant.

u/ptttr

KarmaCake day65October 26, 2014
About
remote-first software dev
View Original