José Valim

2.5K posts

José Valim

José Valim

@josevalim

Creator of @elixirlang. Chief Adoption Officer at @dashbit, where we build https://t.co/FK8F4URbVG and https://t.co/xncEVrvWml.

Kraków, Poland Katılım Kasım 2007
97 Takip Edilen55.2K Takipçiler
Sabitlenmiş Tweet
José Valim
José Valim@josevalim·
It is finally here: Tidewave now supports Claude Code and OpenAI Codex. Tidewave unlocks the full-stack potential of your favorite coding agent by tightly integrating it with your web app and web framework at every layer, from UI to database. More info 👇
English
13
48
322
89.2K
José Valim retweetledi
ElixirConf Europe
ElixirConf Europe@ElixirConfEU·
Back in April, @josevalim keynoted about "Precision in Type System Design" 🎥 youtu.be/Ay-gnCqDw9o This September he's back as a keynote speaker - this time at ElixirConf US in Chicago (Sept 10-11). Register here: #register" target="_blank" rel="nofollow noopener">elixirconf.com/#register
YouTube video
YouTube
ElixirConf Europe tweet media
English
0
2
9
936
José Valim
José Valim@josevalim·
I am not quite sure yet what to talk about. One possibility is to live code a set-theoretic type system from scratch, explaining the core data structures and type checking algorithms (which are surprisingly straight-forward). Thoughts? :D
ElixirConf@ElixirConf

The ElixirConf US 2026 schedule is live! 🎉 Two days, two tracks, 30+ talks - keynotes from @josevalim , @chris_mccord, Quinn Wilton & @ZachSDaniel1. 📅 Sept 10-11 · Chicago & online #schedule" target="_blank" rel="nofollow noopener">elixirconf.com/#schedule

English
15
1
44
4.9K
Navin Peiris
Navin Peiris@navinpeiris·
Hey @josevalim @hugobarauna any plans on enabling grok build in Tidewave? It’s been so fast and so good, it’ll be awesome to have that speed when doing UI stuff via Tide 🙏
English
1
0
7
1.7K
José Valim
José Valim@josevalim·
We need something like Makefile but for software verification: each rule specifies a file/glob that, when changed, runs linters, custom AST checks, and coding agents with custom prompts for adversarial reviews. Then you can plug it into your CI and into your agentic loops.
English
28
7
146
24.5K
José Valim
José Valim@josevalim·
So all commands by definition have their execution tracked by Nix, you don't need an explicit target like make. I see, thanks! Quick question: what happens when the command itself go stale? For example, I know to run "mix test" when a test file changes, but how do I force it to re-run when I update the test framework itself?
English
1
0
1
43
Bruno Rodrigues
Bruno Rodrigues@brodriguesco·
Nix tracks all declared inputs to a derivation. If any of those inputs change, the derivation receives a new hash and is rebuilt. By organizing a project into smaller, modular derivations, only the derivations whose inputs changed (and its children) need to be rebuilt, while unaffected outputs are reused from the Nix store.
English
1
0
2
38
José Valim
José Valim@josevalim·
I am biased (by my own experiences) but I don't think paid programming languages work long term, even Microsoft lost this battle. :( You could build a product around the language, such as Posit’s RStudio or Verum’s Dezyne tooling. Which is annoying because you have to develop, market, and sell something else. The language can be the moat, but it usually can't be the product. In any case, I'd be more than happy to see you prove me wrong if you go down this road! Best of luck!
English
1
0
1
42
Taelin
Taelin@VictorTaelin·
Bend2: - Programming language - Near C speed (on CPU) - Near CUDA speed (on GPU) - High-level (JS-like closures, objects, recursion) - Lean-like proofs (force AI to write proofs = you get 0 bugs) Everyone is using it. How much would you pay to use it? Be *honest* either way
English
264
6
362
125.7K
Bruno Rodrigues
Bruno Rodrigues@brodriguesco·
@josevalim no any file that was changed would get targeted and trigger a new build
English
1
0
1
28
José Valim
José Valim@josevalim·
@brodriguesco That much is clear! But I thought Nix rules require a target/output to determine which files have changed? You can't say "rerun the files affected by this git diff" or "rerun the files that changed compared to main", right? Think more CI rules vs build system rules.
English
1
0
1
48
Bruno Rodrigues
Bruno Rodrigues@brodriguesco·
Model verification as a Nix build, each verification rule becomes a derivation over a filtered set of source files (e.g., `src/**/*.rs`, `docs/**`). If only those files change, only the corresponding checks (linters, AST analyzers, LLM reviewers, etc.) are rebuilt (rerun). You get reproducibility, caching, parallelism, and seamless CI integration essentially for free.
English
1
0
1
42
José Valim
José Valim@josevalim·
@brodriguesco Can you expand how Nix solves this, since those commands do not build something? For example, when you run a linter, there isn't an artifact created. I guess you could write the output of the linter somewhere and use that as a signal, but I'm unsure if that's a good idea.
English
1
0
1
64
José Valim retweetledi
Francesco Cesarini
Francesco Cesarini@FrancescoC·
Three research attempts to build a JIT for the BEAM failed. The one that shipped started as an experiment with zero optimizations: parse bytecode, emit native code, run. That's BeamAsm, it's been the default since OTP 24. New @BeamThereDT with @garazdawi: youtu.be/dT-VmfYz98Q
YouTube video
YouTube
English
1
5
28
4.4K
José Valim
José Valim@josevalim·
Right! Now imagine you have a codebase where you have a backend and front-end app. Would you run *all* tests locally for both on every commit? Or only the ones specific to each app? What if you want to trigger an agent for security review in some sensitive files, how do you trigger that only when said files change? So I agree the git hook is a good dispatch mechanism, what is missing is a way to encode what runs when files change. It could be a regular script. It could be a higher level abstraction. Then you just tell your git hook to invoke it!
English
1
0
1
85
Scott Ratigan
Scott Ratigan@scott1634·
@josevalim Just commit after every change. Git hooks solve this and provide other benefits as well.
English
1
0
0
74
José Valim
José Valim@josevalim·
The agent can run them but it is important to have a deterministic entry point to run them at the end of turn, before you commit, on CI, etc. if you are relying only on the agent to call it with PATH, then you can’t be sure it actually ran unless you review the convo (or you introduce sign offs and other ways to verify these).
English
0
0
0
47
Kok-Jin Sam
Kok-Jin Sam@kokjinsam·
@josevalim Yes, I’m thinking along the same lines. I have a command `just review [PATH...]` where I have a list checks for TS/JS/Elixir/etc.. Just curious how does your agent work if they aren’t allowed to invoke the checks themselves?
English
1
0
0
42
José Valim
José Valim@josevalim·
@kokjinsam I don't want the agent to invoke it! I want the agent to write the code and, once it is done, we run a series of checks based on the changed files. The goal is to make it more deterministic instead of trusting the agent will run it all properly. Does it make sense?
English
1
0
0
64
Kok-Jin Sam
Kok-Jin Sam@kokjinsam·
@josevalim I think` just <command> [PATH...]` would be a much better fit for coding agents. I had commands like `just <command> --[staged|changed]` but agents somehow never used them much.
English
1
0
0
46
José Valim
José Valim@josevalim·
@kokjinsam Yeah, I have been thinking about it and perhaps a Justfile with attributes like: [verify(lib/*, assets/*)] or comments like: # verify: lib/*, assets/* would probably be enough. Then you give the output of "git diff" to it so it figures out which commands to run.
English
1
0
1
162
José Valim
José Valim@josevalim·
@patrickgwsmith Together. In my mind, you use a git diff or similar to detect which files changed, then you figure out which commands to run passing the group of files for that particular command as input. If the command then prefers to run at a time, it can do it by itself.
English
0
0
1
238
Patrick Smith
Patrick Smith@patrickgwsmith·
@josevalim Would you want it to analyze everything that changed together or each file in isolation? e.g. if I change both level.ex and enemy.ex and one imports the other, should it analyze as a whole or review each file independently?
English
1
0
0
288
José Valim retweetledi
Chris Bell | knock.app
5/ One problem: just-bash is TypeScript. Knock is Elixir. But a bash interpreter with a thorough test suite is a perfect target for an agent-assisted port. @ivarvong took the bait. Many tokens later: just_bash, a full bash + virtual FS in Elixir. github.com/elixir-ai-tool…
English
2
4
22
2.3K
José Valim retweetledi
Dave Lucia
Dave Lucia@davydog187·
This is why the BEAM is the perfect substrate for agents. Each one runs in an isolated, supervised process with a GC-enforced memory cap and a wall-clock kill. A runaway loop kills one struct, not your node. 100k concurrent agents is a struct each, not a fleet of VMs.
English
2
3
22
2.1K
José Valim retweetledi
Dave Lucia
Dave Lucia@davydog187·
PSA that my good friend @ivarvong has been quietly shipping the ultimate toolkit for building agents in @elixirlang A virtual bash environment, Python3 interpreter, virtual filesystem, and git client. All in 100% Elixir. 🧵
English
1
12
39
2.9K
José Valim
José Valim@josevalim·
@ZachSDaniel1 100%. Plus kick it off on CI as well and have it only check things that changed compared to baseline, instead of duplicating the same checks and conditions, etc.
English
0
0
1
209
Zach Daniel
Zach Daniel@ZachSDaniel1·
@josevalim Yeah those are good points. You could also then have `this_thing install claude` and `this_thing install codex` etc. to centralize how to best integrate it into any given harness.
English
1
0
0
245