HN user

adamddev1

993 karma
Posts5
Comments332
View on HN

I see people talking about the negative experiences, and I'm sure they are real, but I also had some very positive experiences.

I remember being amazed that some internet stranger took the time to understand my question and provide some great solution where I was stuck. It gave me a little encouragement and social connection as I plugged away on a project alone.

I miss that feel good human connection when an LLM can quickly get me an answer.

The book takes you through simpler examples, but I found that the exercises did an excellent job of drilling a kind of recursive problem solving skill into your head. You represent the data in types, and then keep breaking the problem down into smaller functions until it is solved. It's almost magic. After being armed with this way of thinking (through lots of practice with the many exercises) I found that problems I didn't know where to begin with just melted away.

Natural language phrase generation in a very complex foreign language that follows recursive syntax trees. And making a GUI to handle and edit these syntax trees visually.

How to Design Programs with Racket was life changing.

https://htdp.org

That helped me to think about recursion, functional programming, and type driven development. After going through HTDP I was able to breeze through complex problems that were unsolvable before.

Using LLM is like hiring an unreliable translator when I already know the language.

Fantastic analogy. And when you don't really know the language that well you're just amazed at the translator, like "wow you can speak really well!"

I remember when I was just learning how to code and making some web app, I had to do a lot more blind guessing and running. "Ok let me try this... Will that work now?" I remember staying up really late, feeling stuck to the computer in that slot machine mode.

Then when I learned more I got less and less of that guessing feeling. I understood what I was building and what would work, I began using typed languages and could keep on track with the compiler/LSP. This brought me more into a satisfying flow state, and I had less of that addicting "wait let me see if this will work" magic.

It seems like coding with Claude etc is a lot like a trip back to the guesswork stage, and I don't want to go back there.

(Sometimes, when I'm doing some dev-opsy type stuff of stringing a bunch of messy components together or working with a pile of complex APIs, I can feel myself back in the blind guessing territory, and incidentally this is where I find a chat with an LLM most helpful.)

AI is a bad tool 9 days ago

All those things (handsaws, tracksaws, CNC saws) are analogous to deterministic, clearly designed tools (assemblers, compilers, language servers). The jump to LLMs is a jump to a completely different category.

AI is a bad tool 9 days ago

Thanks for the answer. From what I can see, most people who are enthusiastic and optimistic about AI use are producing end-user apps, internal tools (limited use) or just hobby libraries. The fuzziness may be tolerable on the edges of immediate use.

Creating something that is solid enough for widespread, reliable building is just in another category. And I wish people recognized this distinction more when they say we don't need to look at code anymore.

AI Is a Bad Tool 9 days ago

I still think internal tools are kind of in a category closer to end-user applications. They are limited in how widely they are used, and therefore they don't have to be as solid as say libraries used by millions.

AI Is a Bad Tool 9 days ago

I ask because I think there's a huge difference between the two.

People making end-user applications might think they can tolerate more errors and bloat from AI.

Just because they can get away with doing that with AI (and that's debatable) does not mean that people can also get away with that in developing tools, libraries, languages etc. The errors, bloat and instability bubbles up exponentially as people build on it.

There seems to be this fallacy of "I don't have to write code anymore, therefore nobody will have to write code anymore."

AI Is a Bad Tool 9 days ago

Are you writing code for end-user applications, or for tools or libraries that other stuff is built with?

AI Is a Bad Tool 9 days ago

Great article. Yes, often what's needed are better (rock-solid) abstractions that we can manipulate around quickly and confidently (think Abelson/Sussman SICP style), not a machine that can take good guesses at piles of spaghetti code.

In this whole discussion of what can be done with AI, I think a lot of people are missing the distinction between:

A. making consumer end-user apps, basic enterprise applications (making end products)

B. making tooling, libraries, languages (making things people build on top of)

What is the "software engineering" that AI will replace? A? Or both A and B?

Just because people can get away with using AI to make A apps that are "good enough" or pass test suites, does NOT meant that therefore people can get away with doing all software engineering with AI. B products require a whole other level of quality, stability, and extensibility.

I'm not saying doing A with AI is a good idea either, I just think that it's a fallacy to say that because you can do A with AI, you can do B.

The author talks about how Haskell needs to catch up to stay relevant in "the AI era."

That means taking AI seriously as a first-class user of the ecosystem.

Honestly for me any time a language or a tool markets itself as "for the AI era" or takes agents seriously as first class users, I run. It's a bad smell for me.

I'm happy that there are things like Haskell that are still focussed on correctness and sanity, and not pandering to the AI psychosis driven on by the market.

I am really disturbed by this ideological framing of "it's the AI era now" "we have to let the agents run" "speed, speed, speed" "if you don't learn to engineer with random garbage, you will be left behind!!"

Some of us will need to leave the cult of the empire of AI and live in caves like the desert fathers, committed to actually crafting correct things.

I think the big thing is that Lisp is (aside from mutable variable assignment) basically all declarative, rather than the imperative paradigm.

Even without static types, and even allowing macro craziness, there's just such a stronger baseline of declarative and functional thinking, you're off to such a good start in clearer thinking and reasoning about a program.

TypeScript 7 13 days ago

That sounds like people who don't understand anything about the messiness at the boundaries of the program. Just because there's a type defined, it doesn't mean that the data from the outside world will fit that type.

TypeScript 7 14 days ago

I'm a Haskell and FP nerd as well. I just meant the argument and the popularity inside the JS/TS world, which is fairly significant. I think the world is a better place because of the widespread adoption of TS over JS.

TypeScript 7 14 days ago

Remember when people would argue about how types weren't worth the effort?

I love TypeScript, if nothing else for how it's been able to popularize types.

Self-hosted. It runs great on a tiny VPS with other services. But I did have to get a cheaper Hetzner server (5 Euros-ish for 4GB RAM) to run the runner.

Forgejo feels like a refreshing blast from the past. No intrusive AI cramming. The Web Interface is snappy and responsive, not waiting for constant loaders and spinners. It takes almost no resources to run.

Excellent anecdote. I'm not sure if you're making a judgement about their behavior at the team event.

I'm an English native speaker, new in Germany, and learning German. I personally find it really annoying and awkward when other foreigners come into German social situations and expect or push them to speak English.

- What right do I have as the foreigner to intrude and get them to speak English?

- Social life in another language has it's own shared culture, jokes, and social cues. It's not fair or realistic to make people give that all up because some foreigner walked near the circle.

- It's my problem that I'm not yet fluent. It's not their problem that they're not speaking English.

- Some people are shy about their English skills, and they do not want to be pushed to speak English in front of others, in a group social setting.

- If you want exposure and practice, these are the golden opportunities! Take a humble learners position. Be quiet, understand as much as you can, and say what little bits you can, in German, not in English. Then study, study, study as much as you can in your time alone.

I hear fellow foreigners bemoaning the fact that they can't speak German yet, but these same people will inadvertently push English into every social situation they walk into. This just doesn't work. If you want to learn the language of the land, you have to let them speak it.

I find Germans are incredibly friendly and welcoming, especially when you come in humbly, trying to learn, and don't push everyone to speak English.

I'm done. Moving to Forgejo. It's wonderful and everything works better.

Seriously like everything is instant when you click around, and CI with a runner works beautifully. (The documentation for setting up the runner could be a tad clearer but otherwise everything was so painless.)