by seansh on 12/22/24, 8:27 AM with 58 comments
by russ on 12/22/24, 9:43 PM
Back when I was at Twitter, we used Review Board for code reviews (this was in 2009, before GH was a thing for most companies). It was tough to thoughtfully review large branches, especially for parts of the codebase that I wasn’t familiar with. I remember thinking, if I could somehow record the development process for a PR I was reviewing, it would be easier to understand what the submitter was trying to accomplish and how they went about doing so. I found myself more so reviewing code style instead of functionality, architecture, or design.
I watched most of the intro video, but didn’t go deeper on the site. Does CM integrate easily into the code review/PR process? I suppose I could just attach a link in any PR description?
Great work!
by wrs on 12/22/24, 7:47 PM
by divan on 12/22/24, 7:49 PM
- why is Doom gameplay is shown alongside recording of someone coding a player logic? Was it the developer recording the screen and narrating, explaining what he means with that line of code?
- I see appeal to "relive" your own code (so you have a mental model of problem domain and the code base in your head). But how is it supposed to work for onboarding new developers? Even in the code examples in video, how does one understands the thinking - like, what are those magic constants (dist == 200), for example? Is there audio narration or what?
Also, I believe that next year will be the true explosion of agentic code editors, so how is it gonna work here? Is it going to capture prompts in Cursor/Windsurf? Will it even be easy to follow what changes AI assistant made in bulk in multiple files. Since I switched to Windsurf, the speed and workflow is so dramatically different from that old-school person typing coding workflow.
by Groxx on 12/22/24, 7:53 PM
by brudgers on 12/22/24, 7:37 PM
by codetrotter on 12/22/24, 7:57 PM
I like the idea of CodeMic a lot. Will the mobile app or web player also allow you to explore the code like you would in the IDE? Perhaps something built on VS Code in the browser that integrates CodeMic? Similar to how GitHub has VS Code in the browser that you can use to explore and edit code from repos.
by gervwyk on 12/23/24, 3:43 PM
Would be super if the player can be embed in docs.
by vsharma-next on 12/22/24, 9:37 PM
One of the reasons I loved Scrimba for learning html/css/js was the fact that the lessons were integrated with an IDE and I could pause the teacher and tinker with the code right then and there.
CodeMic is going to be similarly useful for me.
by jl2718 on 12/22/24, 9:15 PM
One thing I’ve thought about is how AI assistants are actually turning code into literature, and literature into code.
In old-fashioned programming, you can roughly observe a correlation between programmer skill and linear composition of their programs, as in, writing it all out at once from top to bottom without breaks. There was then this pre-modern era where that practice was criticized in favor of things like TDD and doc-first and interfaces, but it still probably holds on the subtasks of those methods. Now there are LLM agents that basically operate the same way. A stronger model will write all at once, while a weaker model will have to be guided through many stages of refinement. Also, it turns the programmer into a literary agent, giving prose descriptions piece by piece to match the capabilities of the model, but still in linear fashion.
And I can’t help but think that this points to an inadequacy of the language. There should be a programming language that enables arbitrary complexity through deterministic linear code, as humans seem to have an innate comfort with. One question I have about this is why postfix notation is so unpopular versus infix or prefix, where complex expressions in postfix read more like literature where details build up to greater concepts. Is it just because of school? Could postfix fix the stem/humanities gap?
I see LLMs as translators, which is not new because that’s what they were built for, but in this case between two very different structures of language, which is why they must grow in parameters with the size of the task rather than process linearly along a task with limited memory, as in the original spoken language to spoken language task. If mathematics and programming were more like spoken language, it seems the task would be massively simpler. So maybe the problem for us too is the language and not the intelligence.
by otherayden on 12/22/24, 11:05 PM
by ivanjermakov on 12/23/24, 3:49 PM
With proper architecture (e.g. using LSP), all-editor support would have been (semi-)automatic.
More on the solution to the "M by N problem": https://matklad.github.io/2022/04/25/why-lsp.html#Standard-E...
by mstade on 12/23/24, 8:09 AM
by jesse__ on 12/23/24, 4:42 AM
by codetrotter on 12/22/24, 8:04 PM
<input type="email">
At the moment when I click to add my email, Safari on iPhone suggest putting my name into it. Usually Safari will suggest putting my email into email inputs. So maybe it’s missing the type attribute?by schneems on 12/22/24, 10:18 PM
I would appreciate any tip or hints on how to approach it.
by revskill on 12/22/24, 7:56 PM
by benatkin on 12/22/24, 8:24 PM
> He wrote about a peculiar observation: everyone says reading code is important, yet few of us actually do it.
This is an approximation of watching screencasts, just like watching games on Lichess is an approximation of watching chess on Twitch or YouTube.
While it’s a nice supplement to reading code, it is a tiny fraction of my code consumption. That “code is not literature” is just the non linear nature of reading code*, but still perusing the source code, documentation, commits, tests, data, etc is far more important way of consuming code than watching it being typed out. Talks are important but most of the utility is the author deliberately communicating something.
As for reading code in a way that reflects it being different from literature, it’s helpful to be able to quickly search the code and find references whether through searching or links. Running the tests or using the code in a repl or by making a program that uses it is also important and reflects the naturalist aspect mentioned in the article.
This seems like it could be quite cool but I think to help programmers to understand more codebases it would be better to try to streamline reading code in a non-linear way. Take reading the repo of LLVM for example. I think an LLM could be handy here. I could ask it to categorize the files.
* Reading literature is also not fully linear, especially after the first read.
by pomatic on 12/22/24, 8:56 PM
by blueberrychpstx on 12/22/24, 10:01 PM
by Beefin on 12/22/24, 8:53 PM
by awinter-py on 12/22/24, 9:01 PM