4 ms·
Why AI is pushing developers toward typed languages
- empthought 10mo agoPython is at least as typed as Lua.
- tekacs 10mo agoIt's talking about Luau (gradually typed, https://luau.org/ https://luau.org/), not Lua. Hopefully https://github.com/astral-sh/ty https://github.com/astral-sh/ty will make the Python typing situation better, but absent that, Python typing is... not great. Honestly even with that it feels subjectively very finicky.
- westurner 10mo agoicontract or pycontracts -like DbC Design-by-Contract type and constraint checking at runtime with or as fast as astral-sh/ty would make type annotations useful at runtime "Support runtime checking" : https://github.com/astral-sh/ty/issues/867 https://github.com/astral-sh/ty/issues/867 : > [ typeguard, beartype, trycast; mypyc ] mypyc/mypyc: Compile type annotated Python to fast C extensions https://github.com/mypyc/mypyc https://github.com/mypyc/mypyc src: https://github.com/python/mypy/tree/master/mypyc https://github.com/python/mypy/tree/master/mypyc .. docs: https://mypyc.readthedocs.io/en/latest/ https://mypyc.readthedocs.io/en/latest/ : mypyc docs > Using type annotations > Strict runtime type checking: https://mypyc.readthedocs.io/en/latest/using_type_annotations.html#strict-runtime-type-checking https://mypyc.readthedocs.io/en/latest/using_type_annotation... : > Mypyc ensures type safety both statically and at runtime. [...] `Any` types and erased types in general can compromise type safety, and this is by design. Inserting strict runtime type checks for all possible values would be too expensive and against the goal of high performance.
- westurner 10mo agoOh my! beartype docs: https://beartype.readthedocs.io/en/latest/ https://beartype.readthedocs.io/en/latest/ : > Welcome to the Bearpedia trycast: https://github.com/davidfstr/trycast https://github.com/davidfstr/trycast : from typing import TypedDict, Literal
- Havoc 10mo agoBeen vibecoding in rust for this reason. Even with the smaller amount of training data it does seem to produce less fragile code.
- 9rx 10mo agoWhy Rust, which is just barely an improvement over a dynamically-typed language, when you can just as easily vibe to a language with a proper dependent type system?
- indemnity 10mo agoWhich languages would that be? Not being snarky, actually curious.
- 9rx 10mo agoRocq or another in that wheelhouse. Once you go down the spectrum then you have to start relying on tests, which end up indirectly validating the same things as the type system anyway, at which point you are no further ahead than having used a dynamically-typed language. Partial statically-typed languages like Rust are pretty cool for things like highlighting basic mistakes in your editor as you type, automatic refactoring, etc. That is all very useful for humans writing code, even if a bit redundant on some technical level. But if an LLM is doing the work, none of that matters.
- Havoc 10mo agoAre LLMs any good at generating rocq code?
- 9rx 10mo agoI asked several LLMs on your behalf and they all said "yes". But they might be a little biased. Why not put them to the test? It is only a prompt away. Rust is an available extraction target for Rocq, so you can even integrate it into your existing codebase.
- aitchnyu 10mo agoIn my Django+Vue/TS/Inertia side project, I was surprised to see my agent know to build (use ts compiler in this context) after each change and it iterates till it gets it right. The Django code is not as typed, so I have to feed it a few error messages myself. Gotta unbreak my Mypy (python type checker) to keep my sanity. In 2012, I felt the high of Scala programs working perfectly once it compiles. Now my TS code is almost there, and Django is somewhat behind.