Hacker Newsnew | past | comments | ask | show | jobs | submit | isityettime's commentslogin

Maybe also worth asking what he's doing along those lines as a father. Probably some interventions are in reach for the state, and there are some other things that parents are best positioned to do. He might have some insight into both.

(Lost my passwd to my throwaway so i had to create another, sorry) Me? I have nothing to offer. My elementary aged kids will be in middle school soon and I am not looking forward to having to try and keep them on the straight and narrow. At home my parents afforded me a long leash and I rejected most of what my superiors at school/etc fed me. As soon I was able, I GTFO. Took many risks and things worked out okay for me in the end. I could tell my kids to do the opposite but I'd be lying and they'd know it.

This is a good and balanced reply. My brother was much more rebellious than me when he was younger. Not as crazy as your first post, but crazy enough for our relatively conservative family. When he got married and had kids later, he is -- to my great surprise -- a very strict, conservative parent. He has his daughters on the straight and narrow path. Sometimes I wonder will they go crazy as soon as they got to uni (move away from home). I saw more than a few crack during my first year of uni, living in dorms. You can probably find some books or blogs that people have written about their own journey as a parent, especially when they had a rocky start in life as an adult.

I am not a parent, but I have observed that the best style of parents adapt to the natural personality of each child. For example, I was very contientious from early childhood (I assume that part was genetic), and my brother was exactly the opposite. My parents really had to work with him to get him to take school seriously. Fortunately, he has a naturally high IQ, so it wasn't so hard for him.


> I saw more than a few crack during my first year of uni, living in dorms. You can probably find some books or blogs that people have written about their own journey as a parent, especially when they had a rocky start in life as an adult.

grew up around the military, ended up enlisting out of HS.

buncha my friends, all army/navy brats from outside of DC, all went off to college. easily 1/3 drank themselves stupid or otherwise went nuts.

off the leash they decided they'd rather be in a band and work part-time at the grocery store than keep going down the path they were forced. Most of them have since graduated and several are doing pretty well. Had to do that freedom thing, tho.

better choice than the one I made, too


> Took many risks and things worked out okay for me in the end. I could tell my kids to do the opposite but I'd be lying and they'd know it.

"Do whatever you want and things will work out because it worked out for me" is not a good (or honest) message for children.

[survivor-bias-airplane.jpg]


> Took many risks and things worked out okay for me in the end. I could tell my kids to do the opposite but I'd be lying and they'd know it.

Why do you think they'd know it? Working out in the end for you was the less likely option. Everything is possible but if you manage to explain the likelihood of each outcome compared to the expected payoff it could make the case clearer. Not an easy thing when dealing with small kids. It's hard because even adults are blinded by survivorship bias. Kids are easy victims, they can all become Cristiano Ronaldo, they can all launch the unicorn startup after dropping out of school, etc.

> I have nothing to offer.

Kids need guidance whether you think they'll take it or not, especially at that age. It's up to you to strike the balance between guidance, trickery, heavy handed rules, something works. Your teachers probably didn't care enough and your parents couldn't find the right button because it's not an easy job but it doesn't mean you can't or worse, that you shouldn't even try because you "have nothing to offer".


Most of the internal docs I write are basically pointing people to canonical docs that already exist, and sometimes also summarizing docs that already exist.

It seems to help, perhaps somewhat surprisingly.


Yes and no. If people read the docs or performed good searches, the questions asked would primarily consist of underdocumented questions, or questions about relatively novel problems. You can still get a vibe for whether the docs are widely read that way.

On this topic, "Open-Source Isn't About You": https://gist.github.com/richhickey/1563cddea1002958f96e7ba95...

> homework is a chore that most people want to get done as fast as possible

Worksheets certainly are. But good homework, even if it's challenging, is what makes a reasonably fast-paced course even possible. In a well-paced university course you're typically spending proportionally several times as much time working on it out of class than you are in class. Then class time is both preparation and catch-up, similar to office hours.

This was true of my most demanding humanities courses (sometimes reading 100 pages a week directly from academic journals, not easy reading) as well as my most challenging math courses (group theory, ring theory). Once the pace gets fast, there just isn't enough time for you to learn everything you need to inside the classroom anyway.

And in those classes, where homework was really essential for learning at the required pace and depth of mastery, my instructors didn't even need to factor the homework into my grades at all. In some of them, we could get "feedback" on homework but it was never officially recorded in our grades... and yet, anyone who didn't do it would fail the next test. If homework doesn't have that characteristic, it probably doesn't need to be assigned at all.

If "flipped classroom" means that students are expected to do all of their homework in class, then indeed it'll feel like a waste of time to many of the smarter kids, and it will also just be unfeasible for advanced courses (which theoretically should be most courses in a university, though it currently isn't). But if it means "we don't even have time to lecture you on every single thing you need to learn, therefore you must arrive already having done the reading and the exercises, and we'll use this time to help clear up misunderstandings"... that's already how classes for grown-ups are in universities.


> I keep itching to design a compiled functional language for games

Jank wants to be this, right? IIRC its author and chief maintainer was a game dev before he dedicated himself to the language.

https://jank-lang.org/

Maybe porting your engine would be a great way to prove out Jank 1.0 when it arrives ;)


Thanks for the pointer, never heard of this!

Awesome! Maybe it's even a language you could enjoy contributing to. :D

How did Elixir manage to attach static type checking to a language after the fact without drastically revising the type system or incurring runtime validation costs? I don't know Elixir, but I have some impression that the BEAM's famous qualities played a role: immutability, "let it crash" philosophy, no inheritance malarkey, etc. Elixir itself had to have a type system that was already relatively orderly for it to be possible to write the relevant proofs way after the fact, right?

Maybe the things that made this transition feasible are the "magic" that used to make people say "Elixir doesn't really need types". Maybe what they meant was something like "Elixir is an orderly language in a bunch of ways that makes the lack of static typing less painful to me than usual".

And I guess we'll see how much people get out of this when they add type annotations later. Maybe the value add will be big after all, and then they'll really be proven wrong. But I can sort of imagine how the apparent contradiction fits together.


It has heavy reliance on pattern matching. In fact, `=` isn't even technically assignment, it's the match operator. Assignment is more of a consequence of matching (though it doesn't have to happen, eg: `1 = 1`). All that to say, most Elixir codebases are written with types in mind, and many are written with pattern matching that would cause a type error at runtime. The new type system just builds off that and moves these errors to compile time (well, not JUST that but ya, this is just meant to be a quick answer).

One important thing that is often not mentioned is the lack of operator overloading. In Elixir if you have "a + b" it means "a" and "b" must be numbers for the code to succeed, which narrows down the possibilities significantly. Compare that to Python, where "a + b" applies to numbers, string concatenation, and any object that implements the __add__ or __radd__ magic methods, it becomes a nightmare to type.

> I love everything about Elixir, but Elixir constantly makes me doubt myself like no other language. My brain isnt made for functional stuff, but this makes me want to try again.

I experienced this really painfully when I was in college and took a kind of "survey of programming paradigms" course and tried Haskell for the first time. I'd been programming for years by then, and I couldn't believe how helpless I was at trying to complete things that had long felt "basic" to me.

But I don't think it's about the brain not being suited, I think it's that contrast of your experience level in imperative languages vs. the fact that when working in a pure functional style, you start out as a newbie again.

I think you'll gradually improve. I think the thing that finally made functional programming feel comfy for me was realizing how much I love composing code that basically feels like more generously spaced Bash "one-liners". The data starts out in one shape, so you run a command to dump it. Then you think of a step that gets it closer to what you want, you pipe it to that next command, and you take another look. And you keep going and at the end what you're looking at is typically pretty close to a series of transformations of data that you never mutate!

Part of what makes this feel comfy in the shell is that you build up that vocabulary of commands just by puttering around your file system every day. Over the years my library of familiar "functions" in a Unix-like environment has grown quite large. In a pure functional programming environment, you have to do the same thing but it takes a little more effort to learn the vocabulary. Your most frequently used "commands" will be functions like map, fold, and zip instead of grep, cat, or sort. But the core of it is really the same, and what I love about building pipelines applies equally to both: you can build it piece by piece, and for each puzzle you're on, you can forget about the previous steps and just think about the next transformation of the data that's in front of you. There is something refreshingly, relaxingly low-context about that.

Anyway I hope you give it a try and enjoy it. When we can learn to enjoy being bad at something, that's how we finally get good at it.


> But I don't think it's about the brain not being suited, I think it's that contrast of your experience level in imperative languages vs. the fact that when working in a pure functional style, you start out as a newbie again.

When I was in university, the introductory class was about Java, and an advanced class in the next semester was about Haskell. There were many imperative/functional newbies in both classes, but the Haskell class still progressed much more slowly. Haskell is simply much harder to grasp, independently of experience.

You can also see this in the fact that even mathematicians use Python rather than Haskell for simulations. Despite the fact that there is no population that is better suited for Haskell than mathematicians.

Even cookbooks are always written in an imperative style, never in a functional one. Why is that? Human brains find imperative algorithms simply more intuitive, and this is not explained by not being used to functional ones.


Cookbooks are imperative, sure. But not every book is a cookbook.

Religious texts, philosophy, ethics, and even self-improvement books often don't provide a procedure to follow. They teach things like how to handle conflict, how to act fairly, how to navigate difficult situations, or how to reason about competing values.

People then take those ideas and apply them across many different situations in their daily lives. In a sense, they build a toolbox of reusable mental functions rather than memorizing a single algorithm.

That's also why many people finish a self-improvement book feeling like they didn't get much out of it. They were expecting a recipe. Instead, they absorbed a collection of abstractions that only reveal their value when applied later in real situations.

The fact that cookbooks are imperative mainly shows that procedural tasks are naturally expressed procedurally. It's not obvious that this generalizes to human reasoning as a whole.


Yeah with RPM and dpkg you're trusting the distro, or maybe individual distro maintainers, depending on how you consider it. But there are norms in the distro about what those scripts are for and how to use them, and there's some social enforcement around that.

The real issue for hooks in packaging formats like those is when you start adding third-party vendor repositories, e.g., Zoom, Google Chrome, Discord. None of the social enforcement mechanisms are there and the companies behind the products I just mentioned all have histories of abusing them.

That's why it's generally better to use Flatpak for things like that if your distro itself doesn't include them.


> Yeah with RPM and dpkg you're trusting the distro, or maybe individual distro maintainers, depending on how you consider it.

Not all packages come from the distro. People can and do enable external sources for software that isn't part of their OS.


Read the third sentence in the comment you're ostensibly replying to, friend.

The article mentions the book that lays out this thesis. Here's a direct link: https://www.versobooks.com/products/636-the-people-s-republi...

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: