Fork me on GitHub
#off-topic
<
2023-10-07
>
Mario Trost09:10:45

Now that was a mind blowing plot twist at the end of an amazing talk: https://www.youtube.com/watch?v=XZ3w_jec1v8 Also great: introducing the term “getting Jeff’d” (spoiler of the mind blowing ending in thread, don’t read it if you want to be surprised)

💡 1
😁 1
Mario Trost09:10:08

He’s able to do these things now (second to last slide):

Mario Trost09:10:32

But he hasn’t published it yet, because of the Jeff problem: “I’m gonna get Jeff’d. I’m gonna get Jeff’d by everybody!” “Jeff’d” ~= A big company takes an open source project and makes big bucks while the open source author goes broke

Daniel Gerson11:10:21

> He’s able to do these things now (second to last slide): Seemingly similar achievements in the GraalVM talk at the conf.

Mario Trost13:10:21

@U0516053R perhaps this one, haven't watched it yet https://youtu.be/83le8YeejVU

1
Bobbi Towers19:10:44

I just found out about this guy yesterday so this is my first impression. It seems like he's just spouting off without even listening to the video!

Benjamin19:10:09

He gets stuck on the concept that Eric was asking us to relax... what fast really means. I don't think primagen was smart in this one yea

Bobbi Towers19:10:13

It was this thread that caused me to look him up: https://mastodon.social/@danluu/111190247561236766

Ellis20:10:45

His Clojure take was equally as blind, was posted here a few weeks ago

Bobbi Towers20:10:27

Oh my, he's getting Clojure through the lens of Uncle Bob? That sounds like a recipe for disaster... I'm going to have to watch that because apparently I need more negativity in my life

2
Bobbi Towers21:10:58

> "Programming will forever suck, that's just all there is to it. It's just always going to suck, why are you trying to make it not suck? Just accept the suck and determine which version of suck you would like to suck on." Genius. I might actually be starting to like him

Coby Tamayo01:10:28

I made it through about a minute and a half

Daniel Gerson14:10:59

Love the Primeagen 🧡! I think that Eric wasn't expecting a Primeagen dissection, therefore his examples were descriptive, instead of hard code examples. Also he provided no evidence that the C code he referenced in the benchmarks were written by experts. Due to this, AND due to the fact that the Primeagen was coming in for defence of C, this was bound to happen! At least he made it through the whole video.

👍 1
ehernacki09:10:13

IMO ThePrimagean is about the show persona, sometimes he puts off this mask and tells some solid stuff. He's a good dev, makes a living doing Twitch, so one could filter those stuff out

Bobbi Towers09:10:07

Yeah he ended up giving really big praise to Uncle Bob for making such a bold decision to learn Clojure

👍 1
ehernacki09:10:27

BTW, his courses on Frontend Masters are pretty solid 🙂 (I did the TS->Rust one)

Bobbi Towers09:10:34

It's kind of interesting to see that it's possible to present coding in such an entertaining way. I've tried streaming and have felt at a disadvantage when it comes to attracting viewers and figured it's likely because I'm not doing gaming or politics which lend themselves more naturally to that style of delivery.

Bobbi Towers09:10:55

I felt pretty bad for Eric though 😞 and the one I saw where he was actually going through Clojure code was extremely difficult to watch

ehernacki09:10:12

IMO it's good exposition for Eric in the end. I've understood functional and a different way of architecting software because of him (and his book) 🙂 It's good to get more people knowing his name

Benjamin09:10:42

nah this is good for Eric. Its exposure. Prime also sits through the end of the video where Eric mentions his channels etc. It's good manners by prime.

Bobbi Towers09:10:19

I did notice that

Benjamin09:10:10

@U050P0ACR waiting for your reaction vid now

Daniel Gerson09:10:51

> @U8LB00QMD t's kind of interesting to see that it's possible to present coding in such an entertaining way. This is largely due to his personality. He's also very aware that if he tries to "teach" code his videos will plummet. You'll see him and TeeJ laughing with each other if they made enough jokes in the first 5 minutes to justify some teaching in the later part of videos.

Bobbi Towers09:10:49

That's actually the part that frightens me, the social implications at play. I want to pretend that programmers are beyond that kind of mindset

Bobbi Towers09:10:34

I suppose it wouldn't come as a shock that I don't read Hacker News

ehernacki09:10:53

What's that? /s

ehernacki09:10:05

(I don't do either 😉)

Daniel Gerson09:10:45

@U8LB00QMD If you only just discovered him, then maybe you haven't seen this (posted previously here on slack). https://www.youtube.com/watch?v=SGBuBSXdtLY

Bobbi Towers09:10:31

That's the one I was referring to above that I found extremely difficult to watch

👍 1
Bobbi Towers09:10:59

in a strange way, it made me feel better about myself, as a mediocre Clojure programmer

Pavel Filipenco20:10:05

PrimeAgen is a fanboy for Zig's comptime, he even said something like "it's so good, it's almost like you write zig that writes zig", and when I heard that, I was like, come on man! that's the point of lisp!! But no, this man only makes lame "parens" jokes and "haha i don't get it". Also hates rust and swift macros (since his meme brain equates them with C preprocessor macros). He only has good takes when talking about stacks/architecture, but who knows, maybe it's because I myself know too little about these

👍 1
Daniel Gerson20:10:38

@U060FHA3K28 I thought he preferred Zig to Rust because of this case https://alic.dev/blog/dense-enums . My take is he still seems like much more a fan of Rust because of his background. To me it seems like he wants to jump on the Zig train, but can't quite make himself. Likes the features, but prefers the more mainstream nature of Rust. Edit: He also seems very negative on any async coding in Rust. I'm out of my comfort zone here though :-)

Daniel Gerson21:10:14

If you're in Rust/Zig/C world, you're already outside the area where Clojure excels. Hence the reason for libpython-clj etc, to make use of battle tested native numerical libs for Python.

Jason Bullers01:10:23

I haven't finished watching, but what's with the disdain from him and chat over "skill issue" being a part of the argument? That seems to me a very fair and very real argument. Like, if an average Haskell dev gets well-written and idiomatic code performing faster than an average C programmer because of compiler magic, that's not something to dismiss as a bad argument about performance. In real life, we aren't all working on teams where literally every developer has top tier coding chops and can hand optimize (using the kinds of bizarre tweaks that you have to document and then never touch) things to be as maximally performant as possible. Am I crazy thinking that the typical case is way more important than an apples to apples of the best case? It's basically big-O of language performance analysis.

👍 2
Pavel Filipenco05:10:47

Also, why is he such a rust fanboy? Rust promises safety because of its semantics, but what's the point anyway, writing unsafe C is just a skill issue:)

😂 2
ehernacki08:10:54

I am writing mostly Rust these days, coming from TS... and I see why people like Rust. But yeah, developing in a "systems language" (read: procedural) and in "functional languages" are IMO two completely different experiences.

ehernacki08:10:50

I think that what's good about Rust is that the compiler is very restraining (while being extremely helpful while developing), which seems to me like a different approach to solve the problems this community tries to tackle with "simplicity".

👍 1
ericnormand21:10:31

I woke up to seeing my video on The Primeagen the other day. I had to watch, being somewhat of a Prime watcher.

ericnormand21:10:45

It kind of wrecked my morning though!

🙁 3
ericnormand21:10:18

But I did process it quite thoroughly. So much so that I think I might not do a reaction. Not sure.

ericnormand21:10:28

But I'll share some thoughts here.

ericnormand21:10:12

1. I think a lot of his "reactions" are really him speaking to his audience. My audience I consider quite advanced. So I assume they know that C is way faster than Haskell almost all the time if you optimize. But his audience wants basically beginner friendly takes and teardowns of people on their high horses.

💯 3
ericnormand21:10:56

2. We basically are in agreement. But he did want to address my title, which admittedly is trolling. A more truthful title would have been "How is Haskell faster than C ever?" That's surprising, especially for C for loops vs Haskell folds over lists. There's compiler optimizations that do let it compile to fewer instructions, while maintaining the immutability semantics.

ericnormand21:10:52

I didn't like how he made me look like I was disagreeing. He scores points by guessing what I'm going to say, which makes him seem smart and somehow makes me seem wrong, even though we agree. Notice also that he had the idea that I was a Haskell fanboy. A couple of times he paused it and mimicked a nerd voice ranting about types or monads. But then I don't talk about those things and I wonder how it makes me seem to someone who doesn't know me.

Pavel Filipenco21:10:48

His "arguments" are typical examples of strawman arguments. He argues against the mythical Haskell nerd, and not against a sane person who is talking about developer experience and average language usage examples. It's also funny that he brought up the fact that you can implement a linked list more efficiently in C, but forgor 💀 to mention that with C you have 2000 chances to shoot yourself in the foot along the way (with a helpful Segmentation fault: core dumped error message nonetheless!). And then try doing exactly that with more sophisticated data structures. Naive implementations of doubly-linked lists in C already make me want to tear my eyes out of their sockets, but maybe that's just "skill issue"

😄 1
Jason Bullers21:10:48

I think the continuous pausing definitely doesn't help because it was harder to follow your take with so many interjections. In the end, he seemed kind of onboard with your first point more than your second, but it's typical of his style: he starts with a significant bias, roasts what he's reacting to while chat goes nuts, and then softens his view and gives a bit of credit by the end. I do kind of agree with him that personally, I thought the second argument was the weaker of the two, despite you noting it as the more impactful. It relies a little too much on the developer not coding the right thing for the task at hand. I do take your underlying point though: the harder it is to do a thing, or the more steps required, the less likely it is to get done. I think familiarity matters a lot: I've been slowly working through your large catalog of podcasts and so I have a bit more sense of your style. I think sometimes you throw out some hyperbolic arguments or argue against something you've personally encountered as if it were a general truth. None of that is a problem; the podcasts are very enjoyable and educational. In a one-off like that reacts video, though, especially with a big and loud persona talking over and in between, it's tough to have the point connect.

Jason Bullers21:10:07

And FWIW, I took the title to imply "how can Haskell be faster than C" rather than an authoritative numbers benchmark that holds true always. It was really interesting to hear about the leeway the compiler has. I heard one similar about Java yesterday too in a video about arraylist vs linkedlist performance: the guy mentioned some people are worried about for each loops because they use an iterator under the hood, and that's object allocation, and he basically says "are you sure there's actually an allocation? Nothing has a reference to it and it's confined to a very narrow scope, so how do you know the JVM is making the object?"

ericnormand22:10:09

My episodes are also very rough and unplanned. It's okay for keeping a long conversation with an intimate audience. But seeing this, I realize how much I could have informed people. If I do a response, I'd touch on these two interesting ideas that I barely dug into. 1) how can Haskell ever achieve higher speed than C? There are some cool compiler tricks going on. Could we get a plot of the cost of development vs the speed of the program? What does that curve look like? Does it change across languages, given different features and optimizations? Where is the tradeoff line? 2) Algorithmic complexity trumps language speed. How does the ease of developing custom data structures impact this curve? Would we see discontinuities in the curve where we invest in a new data structure and jump to a new level of speed? In the end, I do appreciate that he kind of defends me at the end. Just a little bit. He says "I see what he's saying though."

👍 1
ericnormand22:10:30

(and sorry that took so long, I had to drive)

Jason Bullers22:10:47

I'd certainly be interested in those topics 👍:skin-tone-2:

ericnormand22:10:43

Also, prime showed his ignorance on Haskell. Most people are ignorant, so that's okay, and it's great that he's transparent. But Haskell is compiled and there is a small runtime (for the GC and IO handling, probably other stuff). They're not mutually exclusive. And his dislike of closures is based on his JavaScript experience. Closures in Haskell often get compiled away. And in another video he wept when he learned about autocurrying. But again, they often get compiled away.