Both o1 (mini/preview) and Claude 3.5 Sonnet seem to be popular among devs, but opinions seem to be divided + all over the place. From my experience, both seem to have their strengths and weaknesses, and I find myself switching between both.<p>If you’ve used either — or ideally both — would love to hear your insights. Feel answers to the following questions will provide some context when you respond:<p>- What are the strengths & weaknesses of each from your experience?<p>- Any tips/tricks or prompting techniques you use to get the most from these models?<p>- How do you typically use them? (via. native apps like ChatGPT, Claude; or via Cursor, GitHub Copilot, etc.?)<p>- What programming language(s) do you primarily use them with?<p>Hopefully this thread provides a useful summary and some additional tips for readers.<p>(I’ll start with mine in the comments)
O1 for collabing on design docs, o1 for overall structure, break it into tasks per preference / sort; sonnet/o1 for executing each small tasks.<p>O1 is higher quality, more nuanced, and has deeper understanding; the biggest downside rn is the significantly higher latency (both due to thinking, and also, continue.dev doesn't support o1 streaming currently, so you're waiting until it's all done), and higher cost.<p>In terms of tools: either vscode with continue.dev / cline, or cursor<p>Languages: node.js / javascript, and lately c# / .net / unity
I prefer o1. I mostly use it as a knowledge system. Don't really care for the automatic code generation nonsense. Unless I'm really tired and the task is very simple, in which case I might decide to write a paragraph of text instead of 30 lines of Python.
My experience is that when ChatGPT fails, Claude fails too.
On some advanced coding tasks, I find ChatGPT's depth of reasoning ability to be better.
o1:<p>- better for when the response has to address many subgoals coherently<p>- usually will not undo previous bugfix progress that was made earlier in the conversation, whereas with Claude if you start having extremely long conversations I have noticed it allowing certain bugs it had already fixed to be reintroduced at much later times<p>Claude:<p>- image inputs are actually very complementary for debugging issues, esp if visual at all (eg debugging why a GUI framework rendered your UI in an unexpected way, just include a screenshot)<p>- surprisingly very good at taking descriptions of algorithmic or mathematical procedures and making captioned svg illustrations, then taking screenshots of those svgs + user feedback to enhance the next version of svg illustrations<p>- more recent knowledge cutoff, so generally speaking somewhat less likely to deny newer APIs/things exist (eg o1 told me tokenizer.apply_chat_template and meta-llama/Llama-3.2-1B-Instruct both did not exist and removed them both from the code I was feeding it)
My notes:<p>- Sonnet 3.5 seems good with code generation and o1-preview seems good with debugging<p>- Sonnet 3.5 struggles with long contexts whereas o1-preview seems good at identifying interdependencies between files in code repo in answering complex questions<p>- Breaking the problem into small steps seems to yield better results with Sonnet<p>- I’m using primarily in Cursor/GH Copilot and with Python
I like aider with the claude-3-5-sonnet-20241022, haven’t tried it with O1, though.<p>Also, <a href="https://aider.chat/docs/scripting.html" rel="nofollow">https://aider.chat/docs/scripting.html</a> offers some nice possibilities.
Started a small project to compare AI IDEs<p><a href="https://github.com/StephanSchmidt/ai-coding-comparison/">https://github.com/StephanSchmidt/ai-coding-comparison/</a><p>(no comparison there yet, just some code to play around with)
o1 if you're going to write full specs and not provide any context.<p>Sonnet 3.5 if you can provide context (e.g. with cursor)<p>gpt-4o for UI design. Also for solving screenshots of interviews