<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alex Netkachov</title>
    <description>The latest articles on DEV Community by Alex Netkachov (@alex_netkachov_5306c2df5d).</description>
    <link>https://dev.to/alex_netkachov_5306c2df5d</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2630646%2Fc7c2db45-41a2-47b6-9920-55852f076ff1.jpg</url>
      <title>DEV Community: Alex Netkachov</title>
      <link>https://dev.to/alex_netkachov_5306c2df5d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alex_netkachov_5306c2df5d"/>
    <language>en</language>
    <item>
      <title>Readability in the age of AI-assisted programming</title>
      <dc:creator>Alex Netkachov</dc:creator>
      <pubDate>Fri, 14 Aug 2026 13:05:31 +0000</pubDate>
      <link>https://dev.to/alex_netkachov_5306c2df5d/readability-in-the-age-of-ai-assisted-programming-4b35</link>
      <guid>https://dev.to/alex_netkachov_5306c2df5d/readability-in-the-age-of-ai-assisted-programming-4b35</guid>
      <description>&lt;p&gt;With the recent shift toward AI-assisted programming, the readability of code&lt;br&gt;
has become even more important. AI agents can read and modify code much faster&lt;br&gt;
than humans, but they are not as good at understanding the intent of the code.&lt;/p&gt;

&lt;p&gt;Adding human reviewers to the process can help, but given the volume of code&lt;br&gt;
being written, it is crucial to have code that is easy to read and understand.&lt;/p&gt;

&lt;p&gt;I'm working on a project that aims to improve the readability of TypeScript&lt;br&gt;
code. These are some of the problems that I have identified as making code less&lt;br&gt;
readable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code does not fit in the editor
&lt;/h2&gt;

&lt;p&gt;Modern IDEs have a lot of features that are controlled from the IDE window.&lt;br&gt;
These controls occupy a lot of screen space, leaving less space for the code&lt;br&gt;
itself.&lt;/p&gt;

&lt;p&gt;This becomes worse when the IDE is used on a laptop or when source code control&lt;br&gt;
operations are performed, such as viewing diffs or resolving merge conflicts.&lt;/p&gt;

&lt;p&gt;A typical IDE window now has a file tree, a code editor, and an AI agent or chat&lt;br&gt;
panel. Additional tasks such as viewing diffs or resolving merge conflicts can&lt;br&gt;
result in the code editor being split into multiple panes, leaving very little&lt;br&gt;
space for the code itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Diffs have unnecessary noise
&lt;/h2&gt;

&lt;p&gt;When code is modified, the diff shows all the changes made to the code. However,&lt;br&gt;
sometimes the changes are not directly related to the change being made, but are&lt;br&gt;
triggered by formatting rules.&lt;/p&gt;

&lt;p&gt;A method rename can change the line length, triggering formatting rules that&lt;br&gt;
alter code unrelated to the change being made. This can even change the&lt;br&gt;
indentation of large code blocks, making it difficult to understand the actual&lt;br&gt;
change being made.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code is too dense
&lt;/h2&gt;

&lt;p&gt;An important factor in readability is code density. Long lines with many&lt;br&gt;
statements and expressions are hard to read.&lt;/p&gt;

&lt;p&gt;When code is not spaced properly, it becomes difficult to identify control&lt;br&gt;
structures and understand the flow of the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Formatting rules are too complex
&lt;/h2&gt;

&lt;p&gt;Developers writing or modifying code for others to read are generally willing&lt;br&gt;
to follow formatting rules. However, when the rules are too complex, they can&lt;br&gt;
be difficult to follow, resulting in inconsistent formatting, frustration, and&lt;br&gt;
lost productivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Formatting is inconsistent
&lt;/h2&gt;

&lt;p&gt;When code structures are formatted in different styles, it becomes difficult to&lt;br&gt;
identify control structures and understand the flow of the code.&lt;/p&gt;

&lt;p&gt;This can be caused either by a lack of formatting rules or by rules that are not&lt;br&gt;
deterministic (i.e., the same code structure can be formatted in different&lt;br&gt;
ways).&lt;/p&gt;

&lt;h2&gt;
  
  
  Solutions
&lt;/h2&gt;

&lt;p&gt;There are common solutions and mitigation actions that can be taken to address&lt;br&gt;
these problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use an automatic code formatter that is deterministic, consistent, and has
simple formatting rules. There are plenty of these tools, so automation itself
is not a problem. However, designing a set of rules that is simple,
deterministic, and consistent is a challenge.&lt;/li&gt;
&lt;li&gt;Use a code linter that can detect and report code that is too complex, such as
long statements, too many nested structures, or too many parameters. Again,
there are plenty of these tools, but designing a set of rules for a particular
project or team is still a challenge.&lt;/li&gt;
&lt;li&gt;Review the code manually, especially when the code is being modified. This can
be done by peers or by AI agents, but it is important to have an experienced
human in the loop to ensure that the code is readable and understandable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've started with the first step, which is to design a set of formatting rules&lt;br&gt;
for TypeScript and implement them in a code formatter: &lt;a href="https://github.com/AlexandriteSoftware/asljs/blob/main/sfmt/README.md" rel="noopener noreferrer"&gt;sfmt&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'm building it by studying popular formatting tools and linters for TypeScript&lt;br&gt;
and adding custom rules on top of them. Some of the tools that I have learned&lt;br&gt;
from are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://oxc.rs/docs/guide/usage/formatter.html" rel="noopener noreferrer"&gt;Oxfmt&lt;/a&gt; - performant formatter for TypeScript and JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://oxc.rs/docs/guide/usage/linter.html" rel="noopener noreferrer"&gt;Oxlint&lt;/a&gt; - a linter for TypeScript and JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://prettier.io" rel="noopener noreferrer"&gt;Prettier&lt;/a&gt; - an opinionated code formatter for many languages, including TypeScript and JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dprint.dev" rel="noopener noreferrer"&gt;dprint&lt;/a&gt; - a pluggable and configurable code formatting platform for many languages, including TypeScript and JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://biomejs.dev/formatter" rel="noopener noreferrer"&gt;Biome&lt;/a&gt; - a code formatter and linter for many languages, including TypeScript and JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://eslint.org" rel="noopener noreferrer"&gt;ESLint&lt;/a&gt; - a pluggable and configurable linter tool.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are interested in this project, please check it out and provide feedback&lt;br&gt;
or subscribe for updates. If you prefer to follow along and want to support the&lt;br&gt;
project, I would appreciate &lt;a href="https://github.com/AlexandriteSoftware/asljs/blob/main/sfmt/README.md" rel="noopener noreferrer"&gt;a star on GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>softwareengineering</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
