HN user

erlich

335 karma
Posts22
Comments194
View on HN
news.ycombinator.com 2y ago

Ask HN: How is the Spotify app so bad?

erlich
73pts81
news.ycombinator.com 2y ago

Ask HN: Is Lisp Simple?

erlich
7pts17
news.ycombinator.com 2y ago

Ask HN: Where to discuss programming and software architecture?

erlich
4pts0
news.ycombinator.com 2y ago

Ask HN: What if we discovered LLMs 10 years ago?

erlich
1pts2
news.ycombinator.com 2y ago

Tell HN: Anyone else realize that Twitter has been in the news every single day

erlich
4pts6
news.ycombinator.com 2y ago

Tell HN: Unpopular opinion: All Meta's open source front end stuff sucks

erlich
27pts15
news.ycombinator.com 3y ago

Ask HN: Anyone as a technical startup founder wish they had a manager?

erlich
2pts1
news.ycombinator.com 3y ago

Completing tasks by time-boxing at several fixed intervals

erlich
3pts3
news.ycombinator.com 3y ago

Ask HN: Anyone else feel like their whole career will just be tech debt?

erlich
71pts63
news.ycombinator.com 3y ago

Ask HN: Best computer vision library for TypeScript?

erlich
1pts0
news.ycombinator.com 3y ago

Ask HN: Why is your company slow to ship features?

erlich
4pts12
news.ycombinator.com 3y ago

Ask HN: Overwhelmed by CSS Frameworks, Help

erlich
4pts5
news.ycombinator.com 3y ago

Ask HN: Where to have good discussions online?

erlich
43pts64
news.ycombinator.com 3y ago

Ask HN: How much of the stack will be rewritten from scratch this century?

erlich
5pts1
web.archive.org 3y ago

Twitter's rules and policies now forbid live location information sharing

erlich
77pts144
news.ycombinator.com 3y ago

Ask HN: Where can I discuss random ideas?

erlich
58pts63
www.youtube.com 4y ago

Arizona officials hold press conference on elections audit results

erlich
5pts2
brianschrader.com 5y ago

Unbounded Possibility Is Bad for Productivity

erlich
1pts0
news.ycombinator.com 5y ago

Ask HN: Is there a good GitHub Issues app?

erlich
1pts0
news.ycombinator.com 5y ago

Ask HN: How do you deploy your Node.js back end?

erlich
9pts6
news.ycombinator.com 5y ago

Ask HN: How do you decide what is a many-to-many vs. enums vs. array

erlich
9pts7
news.ycombinator.com 9y ago

Ask HN: What do you predict for front end web development for the next 5 years?

erlich
2pts0

Political discussions for me are like programming. I enjoy them because I like finding bugs in people's logic like I do in programming.

I find a lot of people's political arguments wouldn't compile because of basic logic errors, and I try to point this out. But not many people are interested in this kind of analysis, they instead prefer the tribalist point-scoring like the OP mentions.

I dream of a world where political debates can be syntax-checked. I'm sure you could do it with AI today.

But in the end its all about feelings.

I can't describe how many times I will just go along with someone's passionate ranting on something I disagree with and egg them along because its makes them happy. This is tribalism. I will disagree with the group, and if you saw me you'd think I was the strongest supporter, but I actually vehemently disagree with everything.

There are very few people it's worth having a real discussion with these days.

I don't change my opinion of people for what they think, but it's very rare to find people who reciprocate this.

to realize fundamentally different visions of the world, based on fundamentally different values

I think your use of the word "world" is telling.

Trump, the Republicans, and the global right are focused on their citizens.

The Democrats and the global left are more focused on the world and their role in it.

It's no longer just two approaches on how we can have the strongest economy. Each party has a weighting for how much to consider every issue across the world.

For example, there are people who would be happy with less growth, lower income, but more action on climate change.

So are these "specials" being parsed by a grammar?

Would be interesting to see how the interpreter works actually...

I would guess it checks what `defun` is, which is a macro...then expands it, and the expansion should ultimately result in an s-expression, which is then parses? Is this right?

CLOS looks really interesting. So many good ideas. A lot that I have been thinking about for a while.

https://lispcookbook.github.io/cl-cookbook/clos.html:

arguably one of the most powerful object systems available in any language.

https://en.wikipedia.org/wiki/Common_Lisp_Object_System:

Another unusual feature is that methods do not "belong" to classes; classes do not provide a namespace for generic functions or methods. Methods are defined separately from classes, and they have no special access (e.g. "this", "self", or "protected") to class slots.

Love this.

And the multiple dispatch.

:before, :after, and :around

Guess these are similar to aspect-oriented programming. Maybe useful for plugin systems.

change-class

This looks pretty cool for GUI apps. So many times you want to change a component to something else.

Water 3 years ago

When people talk about us living in a simulation...you have to wonder if they have ever tried to simulate real liquids (e.g. computation fluid dynamics).

Computer graphics in films gives people an unrealistic expectation of what we can do. I would think a lot of people look at this CGI and then think such things are possible in real-time gaming/simulation.

guessing your current state & figuring out the next one

I look at React from a Backbone lens. In Backbone, you had view with a model that managed a dom element tree. You could render whenever you wanted and exactly when needed.

functional components...reducing development complications

Hooks and the like just feel like an entirely different programming language. It's impossible to trace what is actually going on. Yet, everyone ends up having to learn all the nuances and rules and know somewhat how they are working under the hood, and then also contort their code to work with hooks too.

React and these big frameworks draw people in because under the hood they are so damn complex that people feel like they could never write something like this themselves. But they don't realize that the code they actually need is extremely simple and something they can easily step-through with their debugger.

we got directed data flow

We kind of didn't need it though. Think about your SQL database backend. It's a big ball of mutable state, and people get by fine with it. If I have an object, and just listen to changes to it, and re-render, its much easier than having some complicated event-sourcing thing going on.

So much of React's design is chasing this functional-programming purity kind of thing. Contrived examples can be made to look super elegant and clean, but then there are all these edge cases and the realities of interop with a big ball of DOM state. Instead of chasing these kind of concepts, the goal should rather be day-to-day developer experience. Which mostly involves debugging and tracing through code.

Flow

Ocaml was a terrible choice. Things moved so slowly. No one could contribute. There were just so many usability issues and waiting for things to compile. Just an excuse to use shiny tech. And oh boy did they tell you often about how Ocaml was a great choice for such a project.

...

The peeve I have is the distortion of the ecosystem. For many years to come, no one can stray too far for React to innovate because of the familiarity and risk. Look at projects like Solid, Qwik, etc. It's not Meta's fault but more the community hype machine.

It's amazing we don't have good personal content filtering yet. I would pay so much for an all-encompassing blocker.

There is so much content I would block if I actually could. Completely disable YouTube Shorts on mobile. All snarky/sarcastic/political/ad-hominem takes filtered.

In my experience, the experts love to get their hands dirty and make things.

Devs are gatekeeping way too much. More no-code/low-code is the way forward. It's always just a balance of how much abstraction to add.

they feel zero pressure

But then it's a question of whether they have the motivation to complete the projects they want to.

It's really easy not to ship things, and never know where they might have led.

Most of the time it's anxiety.

My first thought was: you're crazy.

But then I thought deeper and as an adult I realized that there is a cost/benefit to everything that somewhat didn't exist as a child. Most of us cannot escape triggers of anxiety anymore. If you have everything you need, and complete freedom, you still can't escape the arrow of time for example.

I still think zero pressure doesn't work in the way you think it does. It's exactly something someone says when they are pre-occupied most of the time. It's wishful thinking.

Everyone in charge are already extremely wealthy. They have zero skin in the game. J. Powell, 50MM. Yellen, 20MM. There is no ability for them to empathize with a regular taxpayer. Whatever happens their lifestyle will not be impacted one bit.

You have to ask: what drives someone in this position.

And this is a question that only the 200k ultra high net individuals (30mm+) in the world can answer.

I think people stop chasing material possessions and start chasing prestige and power. These people don’t interact with the average joe much so they don’t really care about their opinion, unless you are a populist like Trump for eg. They care about their family friends and peers. So I think it creates a broey kind of culture where you want your peers to be happy with the job you are doing. If you are in finance you want the bankers to be happy. Your political party to be happy etc.

I think it becomes more about making and keeping friends. This stage for life without need for material possessions is all about people and relationships and power.

You just have to imagine yourself with infinite wealth but no friends. You would quickly run out of things to spend it on, and you would just want people to love and respect you.

So much of coding is a simple SQL -> HTML string but its mind-blowing how far abstracted we are from this today. Give some credit to PHP for simplicity here.

Something I noticed too that when there is simplicity, there is so many abstracted layers beneath that makes things slow, impossible to debug, and god help you if you if it doesn't do what you need. Things like React + Next.js. If you tried to follow the actual stack traces of what is going on underneath you would die.

I agree with this. There is always such a blame game between devs and management/the-rest-of-the-company.

We've kind of conditioned every product manager that software is really hard and you can't just ask to change things without weeks/months of warnings or all the requirements up front.

At some point it is on us for over-complicating shit, and jumping from one new language/framework to the next. If you did more than what was necessary, and requirements change, then its on you.

Morale decline from oscillating priorities.

You are bug-free, start working on new feature, new bug reports come in, and you have to pause and work on them.

Fixing bugs is not fun work because there is usually a quick fix in an ugly way, and then a perfect fix via a large refactor and re-architecture. This results in that "soul-destorying" feeling of: if I had enough time I could fix this properly in the right way with clean code and avoid huge amounts of bugs, but alas I am just piling on tech debt.

aren't always doing good strategical thinking

So it's not about being good at strategic thinking. It's about motivation, boredom and self-discipline.

Here is what you are not seeing:

Dev sits down to work on an assigned task. They might be on the ADD spectrum, and the work feels incredibly boring and their mind cannot focus on it. They are interested in novelty though. This provides a rush of motivation and hyper-focus. It will usually involve the choice of some cutting-edge new technology or architecture. For someone without ADD, it's hard to understand the intense pull of this pursuit of novelty. Tugging at you constantly.

The problem is this motivation is derived from something that probably doesn't align with strategic goals of company. They will have super-human 10x levels of motivation. So they try to push the company in the direction of this novelty. They are just following a high for weeks on end. Eventually this high will run out though and the need to show progress towards business goals arrives, and they can't hide behind "rewrites", "tech debt", "unanticipated problems with new architecture", etc.

So then the survival kicks in and the blame game starts with management.

I think some of this is true for almost every developer.

So when I read your complaints they are all easily explained:

hung up on mistaken goals...ineffective ways of achieving them

They want to keep working on the novel thing that interests them. They try to shape the goals that allow them to do this. This can be subconscious.

aren't very good at communicating

Because they have become too side-tracked by this novel thing or the next novel thing.

looks like subconscious obfuscation

Yep. Exactly. It is often subconscious. To confront the reality of how far you have strayed from the strategic goals of the company would be like being out for a night drinking and at the height of the party, you have to leave and go immediately to bed.

Hung up on particular technical ideas - and claim these are strategic product or architecural decisions

Just chasing dopamine.

people getting hung up on ineffective project management

Survival. You went too far off track and need someone to blame.

---

I think if you view developers through the prism of chasing dopamine highs from the pursuit of novelty, you can much better manage them.

The only thing that can tackle this I think is having hard, concrete, and unavoidable deadlines. The survival system overpowers this creative exploration. But this usually only kicks in a couple of days before a deadline.

Your strategic goals are essentially always competing with emotions of a developer towards some other thing. I think a lot of people underestimate the mania feeling that comes from the other thing. So you need to make the the dev believe the current strategic goals and the achievement of them is really, really, really important. This is why visionary/bombastic founders and so important.

What could also help is allowing everyone to be open and honest about their true motivation and goals. But it would be hard for anyone to say: "I am only interested in playing with this new tech, and have no interest in the company". So there will always be a level of concealment. And usually, revealing such things will mean they are monitored more closely which they don't want so it doesn't make sense to reveal these things...or they will feel like they are being monitored which increases stress.

In summary, deadlines and no bullshit.

Very interesting, hadn't thought about this.

It's funny how humans try to simplify things to black and white all too often. Why do we do this? I'm sitting here trying to think why I do it, and I can't figure it out. Something maybe about needing someone to blame.

For example, when I think of the 2008 financial crisis, I always feel this need to find one group to blame, but really there wasn't one group.

hidden motivations

I guess you just have to ask why people have these motivations and why they hide them.

It feels like people would act dishonestly first to seek survival (job security), but then also to seek power (promotion/influence).

I wonder what the relationship is between survival and power. I guess at some point survival manifests into the desire to hold onto power. And the stakes get larger as the power accrued increases.

I also wonder how the human reward schedule plays into it. People are motivated by consistent rewards but at random intervals. If you take out the corporate power politics, you remove the randomness of the intervals, and it perhaps becomes less motivating. The chance for an early promotion provides motivation to play the game harder.

Ironically, I think more dependencies are actually better, because it means they are smaller. "Do one thing well".

The problem is large dependencies depending on other large dependencies.

Dependencies should advertise their transitive dependency tree size including LOC per dep.

Also, the fact that every dep has it's own non-standard build process, language, dir structure, and ESM/CJS legacy support, makes things not ideal.