Without agreeing (or disagreeing) with their larger point, dynamic types become more of liability as a project gets larger
Like "schemaless" database applications, there's always types/schema somewhere: the choice is if they'll be explicitly defined at the place of construction, or implicitly spread out across all the places data happens to flow in your application. And the more places there are, the more spread out they'll be.
Static typing is also really nice for game dev since proper unit tests are harder (but not impossible) compared to your average CRUD app.
The other side of the argument is that dynamic typing is great for prototyping and can allow for more compact code.
The discussion is exhausting because many people don't understand the difference between weak typing and dynamic typing. You basically never want weak typing but dynamic typing has legit uses. Yes JS is both weakly and dynamically typed and that sucks but Common Lisp shows you can have very strong typing and dynamic types.
Lots of very complex software has been writing in dynamically typed languages. The whole Erlang/Elixir world is dynamically typed though Elixir is getting gradual typing.
There is a good reason gradual typing is getting popular, you get the best of both world. You can prototype quickly and then add types and make everything more solid later.
(Which also why you want to always use a statically typed language in the corporate world because there is never a "later" and the bigger the team the more important it is to have the lang enforcing discipline. But not every programming is corporate.)
People that are dogmatic about static typing show their immaturity. The older I get the more I realize that there is no right or wrong way to program, everything it tradeoffs and "it depends".
> there's always types/schema somewhere: the choice is if they'll be explicitly defined at the place of construction, or implicitly spread out across all the places data happens to flow in your application.
> And the more places there are, the more spread out they'll be.
You can still have schema validation at the borders of the application(data in/out) without static typing.
I think there are many other factors that come into play when it comes to maintaniblity of large projects. I'd easily choose to maintain a large Elixir or Common Lisp codebase over a Java one, assuming they were all using the Best Practices™ of their respective languages.
There is research out there, and there is absolutely zero evidence that static typing catches more bugs than dynamic types. My experience is that immutability, functional programming, simplicity and testing pays a MUCH bigger role in maintainability than static typing.
Dynamic typing has trade-offs, and so does static typing, HUGE trade-offs by the way. But for some reason, no one seems to mention them... ever.
Silly me for falling for the bait after two one-word replies in a row.
If I need to specify this is about data flow inside your application when we're talking about typing, I don't want think we're having the same conversation.
Hopefully someone else will want to mud wrestle on this.
Maybe ill have to give it another try, but each time I've tried it, it wasn't particularly intuitive. I couldn't figure out how to turn off the bullet points on all notes. I'm sure there's a setting somewhere but that's such an odd default that I never investigated further.
Logseq raised a lot of VC money and has started turning the screws. They switched from Markdown files to and database, and their sync is paid and closed source.
It has no Pro version, and I believe their plan is to monetize it through an optional Sync service, which is fair, since it actually costs money to keep it running.
> 1 Samuel said to Saul, “I am the one the Lord sent to anoint you king over his people Israel; so listen now to the message from the Lord. 2 This is what the Lord Almighty says: ‘I will punish the Amalekites for what they did to Israel when they waylaid them as they came up from Egypt. 3 Now go, attack the Amalekites and totally destroy all that belongs to them. Do not spare them; put to death men and women, children and infants, cattle and sheep, camels and donkeys.’”
Since you said in another comment that the ten commandments would be a good starting point for moral absolutes, and that lying is sinful, I'm assuming you take your morals from God. I'd like to add that slavery seemed to be okay on Leviticus 25:44-46. Is the bible atrocious too, according to your own view?
Slavery in the time of Leviticus was not always the chattel slavery most people think of from the 18th century. For fellow Israelites, it was typically a form of indentured servitude, often willingly entered into to pay off a debt.
Just because something was reported to have happened in the Bible, doesn't always mean it condones it. I see you left off many of the newer passages about slavery that would refute your suggestion that the Bible condones it.
> Slavery in the time of Leviticus was not always the chattel slavery most people think of from the 18th century. For fellow Israelites, it was typically a form of indentured servitude, often willingly entered into to pay off a debt.
If you were an indentured slave and gave birth to children, those children were not indentured slaves, they were chattel slaves. Exodus 21:4:
> If his master gives him a wife and she bears him sons or daughters, the woman and her children shall belong to her master, and only the man shall go free.
The children remained the master's permanent property, and they could not participate in Jubilee. Also, three verses later:
> When a man sells his daughter as a slave...
The daughter had no say in this. By "fellow Israelites," you actually mean adult male Israelites in clean legal standing. If you were a woman, or accused of a crime, or the subject of Israelite war conquests, you're out of luck. Let me know if you would like to debate this in greater academic depth.
It's also debatable then as now whether anyone ever "willingly" became a slave to pay off their debts. Debtors' prisons don't have a great ethical record, historically speaking.
Cherry picking the bible isn't going to get you any closer to understanding. There are a lot of reasons God ordained society in a certain way. Keep reading and you'll discover that is a much more complex situation than you let on. Also don't let your modern ideals get in the way of understanding an ancient culture and a loving God.
So it was a different kind of slavery. Still, God seemed okay with the idea that humans could be bought and sold, and said the fellow humans would then become your property. I can't see how that isn't the bible allowing slavery. And if the newer passages disallows it, does that mean God's moral changed over time?
You mean well in ignoring their argument, but please don't let people get away with whitewashing history! It was not a "different kind of slavery." See my comment. The chattel slavery incurred by the Israelites on foreign peoples was significant. Pointing out that standards of slavery toward other (male, noncriminal) Israelites were different than toward foreigners is the same rhetoric as pointing out that from 1600-1800, Britain may have engaged in chattel slavery across the African continent, but at least they only threw their fellow British citizens in debtors' prisons.
Good point. That wasn't my intention. I meant to steelman his argument, to show that even under those conditions, his argument makes absolute no sense.
You are still selecting one verse to interpret an entire culture. Misleading at best. And saying this is "white washing history" is silly. Continue reading the Bible and you'll see that it is the Christian Worldview that eventually ended slavery.
Have you ever read any treatment of a subject, or any somewhat comprehensive text, or anything that at least tries to be, and not found anything you disagreed with, anything that was at least questionable.
Are you proposing we cancel the entire scientific endeavour because its practitioners are often wrong and not infrequently, and increasingly so, intentionally deceptive.
Should we burn libraries because they contain books you don’t like.
What I agree or disagree with the bible is irrelevant. He is claiming moral is objective, unchanging and comes from God. God allowed slavery at some point, as that bible passage shows. So his options are to admit that either slavery is moral, or morality is not objective/unchanging. That's the point I was trying to make.
Why would it be a good starting point? And why only some of them? What is the process behind objectively finding out which ones are good and which ones are bad?
It's a good starting point because the commandments were given by God. And without God, there is no objective moral standard. Everything, including your opinion on my point of view, is subjective and relative. Whatever one would want to call "good" or "evil" would just be a matter of opinion.
Let's not forget there are actual people behind open source projects. I think it is extremely rude to say those people should SERVE the users of their open source projects for free. The project "serve" the needs of the maintainers. If you as a user don't like something, that is entirely YOUR problem. Feel free to fork it and fix the bugs you think are worthy fixing.
Arrogance? Those people are spending their time and effort on an open source project, without asking a penny in return. I think they are entitled to have restrictions on how bugs should be reported.
I think I've been using AI wrong. I can't understand testimonies like this. Most times I try to use AI for a task, it is a shitshow, and I have to rewrite everything anyway.
Ok, but have you tried claude-sonnet-GPT-codex-4.5-thinking-fast? That's the game changer. Anyone saying bad things about vibe coding without trying claude-sonnet-GPT-codex-4.5-thinking-fast is like a dinosaur to me, doomed to extinction. Seriously, give claude-sonnet-GPT-codex-4.5-thinking-fast a try, you'll thank me ;)
I don’t know about right/wrong. You need to use the tools that make you productive. I personally find that in my work there are dozens of little scripts or helper functions that accelerate my work. However I usually don’t write them because I don’t have the time. AI can generate these little scripts very consistently. That accelerates my work. Perhaps just start simple.
> there are dozens of little scripts or helper functions that accelerate my work. However I usually don’t write them because I don’t have the time
People who write things like this can't expect to be taken seriously.
Before AI you didn't have time to write things that saved you time? So you just ended up spending (wasting) more time by going the long way? That was a better choice than just doing the thing that would have saved you time?
Do you tell AI the patterns/tools/architecture you want? Telling agents to "build me XYZ, make it gud!" is likely to precede a mess, telling it to build a modular monolith using your library/tool list, your preferred folder structure, other patterns/algorithms you use, etc will end you up with something that might have some minor style issues or not be perfectly canonical, but will be approximately correct within a reasonable margin, or is within 1-2 turns of being so.
You have to let go of the code looking exactly a certain way, but having code _work_ a certain way at a coarse level is doable and fairly easy.
Kiro is just trying to build a product around exactly what I'm talking about. I'm not a fan, because it's simultaneously too heavyweight and agents don't respect all the details of the specs it creates enough to make the time investment in super-detailed specs worthwhile.
I have a spec driven development tool I've been working on that generates structured specs that can be used to do automatic code generation. This is both faster and more robust.
Honestly, even this isn't really true anymore. With Opus 4.5 and 5.2 Codex in tools like Cursor, Claude Code, or Codex CLI, "just do the thing" is a viable strategy for a shockingly large category of tasks.
Just do the thing can produce functional code, but even with Opus4.5/Codex5.2, there are still plenty of moments where the way it decides to do something is cringe.
Agree. But it's increasingly the case, IME, that for a a lot of tasks, you can start with that. If it does it well, great. If it does something stupid, it's easy enough to ask it to completely rework the stupid thing in a better way, and it can do it quickly. That's still a huge shift compared to the olden days (three months ago) where you needed to really break things down into small chunks for it to get to a success state.
A lot of code smells matter more for humans than LLMs (and LLMs have their own unique code smells). For example, nested ternary operators are a great source of bugs in human code, but agents could care less, but humans handle multiple files with the same variable names and lots of duplicated code well, whereas this stuff confuses agents.
The phrase is "couldn't care less". If you "could care less" then you actually care about it. If you "couldn't care less" then there's no caring at all.
It’s because depending on the person the newest model crossed the line into being useful for them personally. It’s not like a new version crosses the line for everyone. It happens gradually. Each version more and more people come into the fold.
You get new people recommending the latest version all the time to people who are unconvinced because that version is usually what brought them into the fold.
What you’re mocking is somewhat of a signal of actual improvement of the models and that improvement as a result becoming useful to more and more people.
how much time/effort have you put in to educate yourself about how they work, what they excel at, what they suck at, what is your responsibility when you use them…? this effort is directly proportional to how well they will serve you
reply