{"channel":"cities","content":"The second \"LLM coding app\" tried was Windsurf.\r\n\r\nAnd, while it is not a *knockout* decision, ZenCoder has clearly won on points.\r\n\r\n----\r\n\r\nThe biggest advantage of Windsurf over ZenCoder is the usage dashboard.  It is much clearer how many queries I have run, and what they have cost.\r\n\r\n<red> <<< Just because I'm not *paying* during a two-week trial doesn't mean that the queries didn't *cost* something to someone else. >>>\r\n\r\n----\r\n\r\nThe coding skill of Windsurf was substantially worse.\r\n\r\nWas this because it defaulted to their own (free) << SWE-1-Lite >> model, rather than a more effective one?  Maybe.\r\n\r\n<red> <<< Right now, *not* giving your users a choice of 7 different models, is a feature. >>>\r\n\r\n----\r\n\r\nBoth have a version of the \"accept changes\" diff-review tool.  Windsurf lets you accept part of the change.  But, in practice, this is more of an *inconvenience* than a convenience.  When the change is something like \"update the imports\", there are 8 separate things to accept.\r\n\r\n----\r\n\r\n*Vibecoding* is still slow enough that I can operate two sessions simultaneously.  So, perhaps, having Windsurf and Zencoder both running can double my productivity.\r\n\r\n----\r\n\r\nZencoder's \"advanced workflows\" do seem to have solved some of the basic problems.  Like << figure out which file the user is referring to >>.  The solution is not \"read everything\", but \"use a subcommand to << grep >> the file titles\".\r\n\r\n----\r\n\r\nUltimately, for an experienced coder, the key feature of these tools is to fail in a way that is easy to << detect and correct >>.","created_at":"2025-05-24T14:58:55.666729","id":503,"llm_annotations":{},"parent_id":501,"processed_content":"<p>The second \"LLM coding app\" tried was Windsurf.\r</p>\n<p>And, while it is not a <em>knockout</em> decision, ZenCoder has clearly won on points.\r</p>\n<hr class=\"section-break\" />\n<p>The biggest advantage of Windsurf over ZenCoder is the usage dashboard.  It is much clearer how many queries I have run, and what they have cost.\r</p>\n<div class=\"mlq color-red\"><button type=\"button\" class=\"mlq-collapse\" aria-label=\"Toggle visibility\"><span class=\"mlq-collapse-icon\">\ud83d\udca1</span></button><div class=\"mlq-content\"><p> Just because I'm not <em>paying</em> during a two-week trial doesn't mean that the queries didn't <em>cost</em> something to someone else. </p></div></div>\n<hr class=\"section-break\" />\n<p>The coding skill of Windsurf was substantially worse.\r</p>\n<p>Was this because it defaulted to their own (free) <span class=\"literal-text\">SWE-1-Lite</span> model, rather than a more effective one?  Maybe.\r</p>\n<div class=\"mlq color-red\"><button type=\"button\" class=\"mlq-collapse\" aria-label=\"Toggle visibility\"><span class=\"mlq-collapse-icon\">\ud83d\udca1</span></button><div class=\"mlq-content\"><p> Right now, <em>not</em> giving your users a choice of 7 different models, is a feature. </p></div></div>\n<hr class=\"section-break\" />\n<p>Both have a version of the \"accept changes\" diff-review tool.  Windsurf lets you accept part of the change.  But, in practice, this is more of an <em>inconvenience</em> than a convenience.  When the change is something like \"update the imports\", there are 8 separate things to accept.\r</p>\n<hr class=\"section-break\" />\n<p><em>Vibecoding</em> is still slow enough that I can operate two sessions simultaneously.  So, perhaps, having Windsurf and Zencoder both running can double my productivity.\r</p>\n<hr class=\"section-break\" />\n<p>Zencoder's \"advanced workflows\" do seem to have solved some of the basic problems.  Like <span class=\"literal-text\">figure out which file the user is referring to</span>.  The solution is not \"read everything\", but \"use a subcommand to <span class=\"literal-text\">grep</span> the file titles\".\r</p>\n<hr class=\"section-break\" />\n<p>Ultimately, for an experienced coder, the key feature of these tools is to fail in a way that is easy to <span class=\"literal-text\">detect and correct</span>.</p>","quotes":[],"subject":"watertown (part 2)"}
