Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
iLemming
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
34 ms
·
511.
▲
by
iLemming
11mo ago
> it is always preferable not to have a cost. Of course. That's why every programmer today is fluent in assembly. > like e-commerce. You're misinformed. I don't know where you're getting all this, but I have done e
512.
▲
by
iLemming
11mo ago
It's not hard. It's just annoying to deal with this shit on constant basis. Like just the other day, the tests wouldn't pass locally, while they're passing on CI. I was scratching my head for sometime, turns out there wa
513.
▲
by
iLemming
11mo ago
Clojurescript supports transients https://clojureverse.org/t/transients-in-clojurescript/9102/... Runtime cost of using Clojurescipt is undeniably there but for most applications is pretty negligible price to
514.
▲
by
iLemming
11mo ago
Are you saying that getting two different compile-to-JS languages to interoperate is messy and you have to go through multiple transpilation layers to make them talk to each other? The Clojurescript way isn't about transpiling between
515.
▲
by
iLemming
11mo ago
> you're not very good at computers. Yup, I guess I am not. Been coding for over 20 years, went through over a dozen different PLs and only Python - the best fucking friend who doesn't sugar coat it, tells you without stutterin
516.
▲
by
iLemming
11mo ago
Yeah, it's still shitty. So often I have to go through some weird hoops to even just run the tests for a project with commits made last week. I can't even ask Claude to explain something about any given repo, it naively tries to r
517.
▲
by
iLemming
11mo ago
> I just want a more stable Emacs is incredibly stable. Most problems happen in custom-made packages. I don't even remember Emacs ever segfaulting for me on Linux. On Mac it can happen, but very rarely. I don't ever remember lo
518.
▲
by
iLemming
11mo ago
> slowly get over the "must coexist with other software" I dunno, as a Lisper I don't even have to think very hard - virtually any platform available to me, I can write almost anything in Lisp - for JVM and .Net - with Clo
519.
▲
by
iLemming
11mo ago
There's 'FP stacks' and "FP stacks" and some aren't expressly similar. Volumes of money/data get handled by FP stacks - Jane Street famously uses OCaml; Cisco runs their entire cybersec backend on Clojure;
520.
▲
by
iLemming
11mo ago
Alright, I admit, I have not worked on teams where immutable.js was used a lot, so I don't have any insight specifically on its impact on performance. Still personally wouldn't call immutability a "trade-off", even in js
521.
▲
by
iLemming
11mo ago
You're just waving off the whole bag of benefits: Yes, js runs in a single-threaded environment for user code, but immutability still provides an immense value: predictability, simpler debugging, time-travel debugging, react/frame
522.
▲
by
iLemming
11mo ago
Without persistent data structures (structural sharing) - every change requires copying the entire data structure, memory usage explodes, time complexity suffers, GC pressure increases dramatically. With persistent data structures - only th
523.
▲
by
iLemming
11mo ago
> Why do we use the terms "mutable" and "immutable" to describe those concepts? Mutable is from Latin 'mutabilis' - (changeable), which derives from 'mutare' (to change) You can't call them re
524.
▲
by
iLemming
11mo ago
> We shouldn't forget that there are trade-offs Like @drob518 noted already - the only benefit of mutation is performance. That's all. That's the only, distinct, single, valid point for it. Everything else is nothing but p
525.
▲
by
iLemming
11mo ago
> Its quite rare to see interop between compile to js languages tho js interop in Clojurescript is dead simple. Moreover, you can have shared logic between different runtimes. The promise of Nodejs for code re-use, in practice turned out
526.
▲
by
iLemming
11mo ago
I am not being pedantic, there's critical fundamental conceptual difference that has real implications for how people write and reason about code. There's performance reasoning, different level of guarantees, and entirely differen
527.
▲
by
iLemming
1y ago
> Clojure is cool Clojure is not "cool". Matter of fact, for a novice it may look distasteful, it really does. Ask anyone with a prior programming experience - Python, JS, Java to read some Clojure code for the first time and t
528.
▲
by
iLemming
1y ago
> I didn't say that it does have exhaustive immutability support seal and freeze in js are not 'immutability'. You said what you said - "JavaScript itself has built in immutability features (seal, freeze)". I cor
529.
▲
by
iLemming
1y ago
One doesn't need to "wear a tie" to learn Clojure - syntax is so simple it can be explained on a napkin. You need to get: 1. An editor with structural editing features - google: "paredit vim/emacs/sublime/
530.
▲
by
iLemming
1y ago
> then that'd be perfect. There's no such thing as "perfect" for everyone and for every case. > feels like jumping through unnecessary hoops for little gain really. I dunno what you're talking about - Apple ru
531.
▲
by
iLemming
1y ago
> immense amount of work it took to understand code without static typing. I've used it almost a decade - only felt that way briefly at the start. Idiomatic Clojure data passing is straightforward once you internalize the patterns.
532.
▲
by
iLemming
1y ago
The allocation overhead rarely matters in practice - in some cases it does. For majority of "general-purpose" tasks like web-services, etc. it doesn't - GC is extremely fast; allocations are cheap on modern VMs. The second po
533.
▲
by
iLemming
1y ago
> I made a half-hearted attempt to learn Haskell Try Clojure(script) - everything that felt confusing in Haskell becomes crystal clear, I promise. > Consider a histogram function. You can absolutely do this efficiently with immutable
534.
▲
by
iLemming
1y ago
Ah, I've misinterpreted it then. > I too can't take a seriously an editor which doesn't have Vim keybindigns at least in a very basic form. tbh, I can't take any experienced programmer seriously if they never even tri
535.
▲
by
iLemming
1y ago
I think we're talking past each other. > I like immutable structures and use them frequently. Are you talking about immutable structures in Clojure(script)/Haskell/Elixir, or TS/JS? Because like I said - the differen
536.
▲
by
iLemming
1y ago
> No runtime cost in production is the goal Clojure's persistent data structures are extremely fast and memory efficient. Yes, it's technically not a complete zero-overhead, pragmatically speaking - the overhead is extremely ti
537.
▲
by
iLemming
1y ago
yeah, immutability.js is a solid engineering effort to retrofit immutability onto a mutable-first language. It works, but: it's never as ergonomic as language-native immutability and it just feels like you're swimming upstream aga
538.
▲
by
iLemming
1y ago
Immutability is really valuable for most application logic, especially: - State management - Concurrency - Testing - Reasoning about code flow Not a panacea, but calling it "overrated" usually means "I haven't felt its b
539.
▲
by
iLemming
1y ago
Javascript DOES NOT in fact have built-in immutability similar to Clojure's immutable structures - those are shallow, runtime-enforced restrictions, while Clojure immutable structures provide deep, structural immutability. They are bas
540.
▲
by
iLemming
1y ago
Also, interestingly Clojurescript compiler in many cases emits safer js code despite being dynamically typed. Typescript removes all the type info from emmitted js, while Clojure retains strong typing guarantees in compiled code.
More ›