<?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: Avery</title>
    <description>The latest articles on DEV Community by Avery (@kageyako).</description>
    <link>https://dev.to/kageyako</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%2F4115329%2F2c808e81-b75f-41a8-93ce-e374c91a14b9.png</url>
      <title>DEV Community: Avery</title>
      <link>https://dev.to/kageyako</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kageyako"/>
    <language>en</language>
    <item>
      <title>What Makes a Programming Language Beginner-Friendly?</title>
      <dc:creator>Avery</dc:creator>
      <pubDate>Wed, 09 Sep 2026 14:51:31 +0000</pubDate>
      <link>https://dev.to/kageyako/what-makes-a-programming-language-beginner-friendly-25bc</link>
      <guid>https://dev.to/kageyako/what-makes-a-programming-language-beginner-friendly-25bc</guid>
      <description>&lt;p&gt;When someone starts learning programming, one of the first things they have to deal with is syntax.&lt;/p&gt;

&lt;p&gt;Before they can build a game, automate something, or even make a simple calculator, they have to learn how to write the instructions in a way the computer understands.&lt;/p&gt;

&lt;p&gt;But how much does syntax actually affect the learning experience?&lt;/p&gt;

&lt;p&gt;I've been thinking about this while learning different programming languages and working on a small programming language of my own. It made me wonder:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What actually makes a programming language easy for beginners?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think there are several factors.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Syntax should communicate intent
&lt;/h2&gt;

&lt;p&gt;Consider a simple condition in Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are an adult.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you've learned Python, this is easy to understand.&lt;/p&gt;

&lt;p&gt;But a complete beginner has to learn what if means, what &amp;gt; means, why there's a :, and why indentation matters.&lt;/p&gt;

&lt;p&gt;Now consider a more English-oriented syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if age is greater than 18 then
    print "You are an adult."
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is still syntax to learn, but the syntax itself communicates more of the meaning.&lt;/p&gt;

&lt;p&gt;You don't necessarily need to remember that &amp;gt; means "greater than."&lt;/p&gt;

&lt;p&gt;You can read:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;age is greater than 18&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and understand the intention.&lt;/p&gt;

&lt;p&gt;This is something I've been experimenting with in a small programming language I'm developing called Avery.&lt;/p&gt;

&lt;p&gt;The goal isn't necessarily to make syntax longer. It's to make the syntax more obvious.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Beginners shouldn't have to memorise everything
&lt;/h2&gt;

&lt;p&gt;Another problem I think beginners encounter is having to remember the names of different functions and libraries.&lt;/p&gt;

&lt;p&gt;For example, generating a random number in Python might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;

&lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are several concepts here:&lt;br&gt;
&lt;strong&gt;import&lt;br&gt;
modules&lt;br&gt;
random&lt;br&gt;
randint&lt;br&gt;
arguments&lt;/strong&gt;&lt;br&gt;
None of these concepts are inherently bad. In fact, modules are extremely useful for larger programs.&lt;/p&gt;

&lt;p&gt;But for someone who has just started programming, it can feel like a lot.&lt;/p&gt;

&lt;p&gt;I've been experimenting with an alternative approach in Avery:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;set number to random number between 1 and 100&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The language itself provides the functionality.&lt;/p&gt;

&lt;p&gt;This doesn't mean imports are bad. They're extremely useful once a language becomes larger.&lt;/p&gt;

&lt;p&gt;It's more about asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What should a beginner have to learn before they can do something simple?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  3. Error messages matter
&lt;/h2&gt;

&lt;p&gt;Eventually, every programmer gets an error.&lt;/p&gt;

&lt;p&gt;Beginners probably encounter them even more often.&lt;/p&gt;

&lt;p&gt;Consider an error such as:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;NameError: name 'number' is not defined&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;An experienced programmer can immediately understand what's happening.&lt;/p&gt;

&lt;p&gt;A beginner might wonder:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's a NameError?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's "defined"?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where am I supposed to look?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Good error messages can make a huge difference.&lt;/p&gt;

&lt;p&gt;Instead of merely telling someone that something went wrong, a language can try to explain what went wrong and where.&lt;/p&gt;

&lt;p&gt;For example, an interpreter could say:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Avery Error: Line 4: "number" is not defined.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;That's a small difference, but when you're learning, small differences matter.&lt;/p&gt;
&lt;h2&gt;
  
  
  4. Installation is part of the learning experience
&lt;/h2&gt;

&lt;p&gt;Something that is often overlooked is what happens before you even write your first line of code.&lt;/p&gt;

&lt;p&gt;If someone wants to try a language, they might have to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download the language.&lt;br&gt;
Install it.&lt;br&gt;
Configure the environment.&lt;br&gt;
Install packages.&lt;br&gt;
Configure an editor.&lt;br&gt;
Figure out how to run the program.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For experienced developers, this may be completely normal.&lt;/p&gt;

&lt;p&gt;For a beginner, it can be the &lt;strong&gt;hardest&lt;/strong&gt; part.&lt;/p&gt;

&lt;p&gt;Ideally, getting from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want to try programming."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Hello, world!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;should be as &lt;strong&gt;short as possible.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is another area where I'm trying to keep Avery simple.&lt;/p&gt;
&lt;h2&gt;
  
  
  5. Simplicity doesn't mean lack of power
&lt;/h2&gt;

&lt;p&gt;There's an &lt;strong&gt;important&lt;/strong&gt; trade-off here.&lt;/p&gt;

&lt;p&gt;A language can be extremely easy to learn but become frustrating once you try to build something serious.&lt;/p&gt;

&lt;p&gt;On the other hand, a language can provide enormous amounts of power while having a steep learning curve.&lt;/p&gt;

&lt;p&gt;So I don't think the goal should be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make everything as simple as possible.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead, I'd say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make the simple things simple without making the complicated things impossible.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's a much harder problem.&lt;/p&gt;

&lt;p&gt;A calculator should be easy to write.&lt;/p&gt;

&lt;p&gt;A beginner should be able to make a guessing game without reading hundreds of pages of documentation.&lt;/p&gt;

&lt;p&gt;But if someone eventually wants to build something much more complicated, the language shouldn't suddenly become useless.&lt;/p&gt;

&lt;p&gt;That's one of the challenges I'm trying to solve with Avery.&lt;/p&gt;
&lt;h2&gt;
  
  
  6. Consistency is underrated
&lt;/h2&gt;

&lt;p&gt;Another thing that can make a language easier to learn is &lt;strong&gt;consistency&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If one part of a language works one way and another part works completely differently, beginners have to memorise more rules.&lt;/p&gt;

&lt;p&gt;For example, if you learn that Avery variables are created with:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;set name to "Alex"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;then the rest of the language should ideally follow similarly predictable patterns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The less arbitrary the language feels, the easier it becomes to build a mental model of how it works.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once you understand the pattern, you can start predicting how something works instead of memorising every individual feature.&lt;/p&gt;
&lt;h2&gt;
  
  
  My experiment with Avery
&lt;/h2&gt;

&lt;p&gt;These ideas are a major reason I'm building Avery.&lt;/p&gt;

&lt;p&gt;I'm experimenting with a language where code tries to resemble natural instructions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;set number to ask "Enter a number: "

if number % 2 is 0 then
    print "Even"
else
    print "Odd"
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is still programming knowledge involved.&lt;/p&gt;

&lt;p&gt;You still need to understand variables, conditions, arithmetic and loops.&lt;/p&gt;

&lt;p&gt;The difference is that I'm trying to make the syntax itself help explain those concepts.&lt;/p&gt;

&lt;p&gt;Avery is capable of a lot and is still updating, and I'm finding out that designing a language is considerably harder than simply designing its syntax.&lt;/p&gt;

&lt;p&gt;An idea can look great on paper and then turn into a completely different problem when you actually have to make an interpreter understand it.&lt;/p&gt;

&lt;p&gt;That's been one of the most interesting parts of the project.&lt;/p&gt;

&lt;p&gt;So, what actually makes a language &lt;strong&gt;beginner-friendly&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;If I had to summarise it, I'd say:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Readable syntax&lt;/strong&gt;&lt;br&gt;
The code should communicate what it's doing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good errors&lt;/strong&gt;&lt;br&gt;
When something goes wrong, the programmer should know what happened.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Low initial friction&lt;/strong&gt;&lt;br&gt;
Getting started shouldn't be a project by itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consistency&lt;/strong&gt;&lt;br&gt;
Learning one part of the language should help you understand another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Room to grow&lt;/strong&gt;&lt;br&gt;
The language shouldn't become useless once the beginner becomes an intermediate programmer.&lt;/p&gt;

&lt;p&gt;And perhaps most importantly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A beginner should be learning how to solve problems, not just learning how to fight the language.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the idea I'm exploring with Avery.&lt;/p&gt;

&lt;p&gt;I'm still figuring out where the line between simplicity and power should be.&lt;/p&gt;

&lt;p&gt;What do you think?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What makes a programming language genuinely beginner-friendly to you?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is English-like syntax actually useful, or does it just hide complexity?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And where do you think a language should draw the line between "easy to learn" and "powerful enough for serious development"?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>avery</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Why Some Programming Languages Feel Harder Than Others</title>
      <dc:creator>Avery</dc:creator>
      <pubDate>Wed, 09 Sep 2026 14:34:27 +0000</pubDate>
      <link>https://dev.to/kageyako/why-some-programming-languages-feel-harder-than-others-2d7n</link>
      <guid>https://dev.to/kageyako/why-some-programming-languages-feel-harder-than-others-2d7n</guid>
      <description>&lt;p&gt;Have you ever looked at a piece of code and thought:&lt;br&gt;
&lt;em&gt;"Why does this have to be so complicated?"&lt;/em&gt;&lt;br&gt;
Programming languages are supposed to help us communicate instructions to computers. But sometimes, the language itself can feel like another problem we have to solve.&lt;br&gt;
I've used and experimented with several programming languages, and one thing I've noticed is that the difficulty of programming isn't always the same as the difficulty of the language you're using.&lt;br&gt;
Two languages can perform the exact same task while making the programmer write completely different things.&lt;br&gt;
So what actually makes one programming language feel harder than another?&lt;br&gt;
Syntax plays a huge role&lt;br&gt;
Consider a simple condition.&lt;br&gt;
In Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The number is greater than 10&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The number is 10 or less&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you're familiar with Python, this is straightforward.&lt;br&gt;
But imagine you're completely new to programming.&lt;br&gt;
You now have to understand:&lt;br&gt;
&lt;em&gt;What if means&lt;br&gt;
What &amp;gt; means&lt;br&gt;
Why there's a :&lt;br&gt;
Why the code underneath is indented&lt;br&gt;
Why print() has parentheses&lt;/em&gt;&lt;br&gt;
None of these things are particularly difficult individually.&lt;br&gt;
But when you're learning programming for the first time, every additional piece of syntax is another thing you have to remember.&lt;br&gt;
Compare that with a more English-oriented approach:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if number is greater than 10 then
    print "The number is greater than 10"
else
    print "The number is 10 or less"
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second example is longer.&lt;br&gt;
But you can almost read it as a sentence.&lt;br&gt;
This is one of the ideas behind languages such as Python and Avery: making code readable instead of relying entirely on symbols.&lt;br&gt;
Symbols aren't necessarily bad&lt;br&gt;
This doesn't mean symbols are bad.&lt;br&gt;
Quite the opposite.&lt;br&gt;
Symbols can make code significantly shorter.&lt;br&gt;
For example:&lt;br&gt;
if x &amp;gt; 5:&lt;br&gt;
is much shorter than:&lt;br&gt;
if x is greater than 5 then&lt;br&gt;
For someone who already understands programming, the first version may actually be preferable.&lt;br&gt;
The problem isn't necessarily the syntax itself.&lt;br&gt;
The problem is how much knowledge the programmer needs before the syntax becomes intuitive.&lt;br&gt;
This is why experienced programmers can look at code that seems completely confusing to beginners and immediately understand it.&lt;br&gt;
They've already built the mental model.&lt;br&gt;
The "learning curve" isn't just about syntax&lt;br&gt;
Syntax is only one part of the problem.&lt;br&gt;
Another major factor is the number of concepts you need to understand before you can accomplish something.&lt;br&gt;
Take generating a random number.&lt;br&gt;
In Python, you might write:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;

&lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's perfectly reasonable.&lt;br&gt;
Python's module system is powerful and extremely useful.&lt;br&gt;
But for a beginner, there are multiple concepts involved:&lt;br&gt;
import&lt;br&gt;
   ↓&lt;br&gt;
module&lt;br&gt;
   ↓&lt;br&gt;
random&lt;br&gt;
   ↓&lt;br&gt;
function&lt;br&gt;
   ↓&lt;br&gt;
arguments&lt;br&gt;
Now compare that with an English-oriented approach:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;set number to random number between 1 and 100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The programmer doesn't necessarily need to understand modules before they can generate a random number.&lt;br&gt;
This is something I've been experimenting with in Avery.&lt;br&gt;
The idea is simple:&lt;br&gt;
If something is common enough, why make the beginner learn another concept before they can use it?&lt;br&gt;
Of course, this approach has its own disadvantages.&lt;br&gt;
Putting too much functionality directly into a language can make the language larger and harder to maintain.&lt;br&gt;
So there's a balance.&lt;br&gt;
Familiarity changes everything&lt;br&gt;
There's another interesting phenomenon:&lt;br&gt;
The language you're familiar with almost always feels easier.&lt;br&gt;
If you've been programming in JavaScript for five years, JavaScript probably doesn't feel complicated anymore.&lt;br&gt;
If you've been using Python for five years, Python probably feels natural.&lt;br&gt;
You stop thinking about the syntax.&lt;br&gt;
You just write it.&lt;br&gt;
This means that when programmers argue about which language is "easy," they're often comparing their own experiences.&lt;br&gt;
A beginner might look at:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;number&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Greater&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and think it looks complicated.&lt;br&gt;
A JavaScript developer might look at the exact same code and think:&lt;br&gt;
"That's incredibly simple."&lt;br&gt;
Neither person is necessarily wrong.&lt;br&gt;
They're just at different points on the learning curve.&lt;br&gt;
Good syntax can reduce the initial barrier.&lt;br&gt;
I think the most interesting question isn't:&lt;br&gt;
"Which syntax is objectively the easiest?"&lt;br&gt;
It's:&lt;br&gt;
"How quickly can someone become comfortable with this syntax?"&lt;br&gt;
That's a much more useful measurement.&lt;br&gt;
A language could have incredibly powerful features, but if a beginner needs to spend weeks learning its syntax before they can build anything, that creates a significant barrier.&lt;br&gt;
On the other hand, a language could have extremely simple syntax but become frustrating once you try to build larger programs.&lt;br&gt;
The ideal is somewhere in the middle.&lt;br&gt;
Easy to start.&lt;br&gt;
Hard to outgrow.&lt;br&gt;
This is something I'm experimenting with&lt;br&gt;
I've been working on a small programming language called Avery, partly to explore this exact question.&lt;br&gt;
The goal isn't to create "the best programming language."&lt;br&gt;
There are already thousands of languages, each with different strengths.&lt;br&gt;
Instead, I'm interested in exploring how far you can take readability-first language design.&lt;br&gt;
For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;set name to ask "What's your name? "

print "Hello, " + name + "!"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;set number to ask "Enter a number: "

if number % 2 is 0 then
    print "Even"
else
    print "Odd"
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code is still programming.&lt;br&gt;
You still need to understand variables, conditions and operators.&lt;br&gt;
But the syntax tries to make the intention obvious.&lt;br&gt;
And that's really the experiment.&lt;br&gt;
But there's a catch&lt;br&gt;
Making a language easy to read doesn't automatically make it easy to build.&lt;br&gt;
In fact, designing a programming language has made me realize how many things programmers normally take for granted.&lt;br&gt;
You need to deal with things like:&lt;br&gt;
Lexing&lt;br&gt;
Parsing&lt;br&gt;
Variables&lt;br&gt;
Scope&lt;br&gt;
Expressions&lt;br&gt;
Functions&lt;br&gt;
Runtime errors&lt;br&gt;
Type handling&lt;br&gt;
Loops&lt;br&gt;
Data structures&lt;br&gt;
File operations&lt;br&gt;
Tooling&lt;br&gt;
You can make the surface syntax look simple while having a surprisingly complicated system underneath it.&lt;br&gt;
That's probably one of the biggest lessons I've learned from building a language.&lt;br&gt;
Simple-looking code doesn't necessarily mean a simple language.&lt;br&gt;
So which approach is better?&lt;br&gt;
I don't think there's a single answer.&lt;br&gt;
Symbol-heavy syntax can be concise.&lt;br&gt;
English-like syntax can be readable.&lt;br&gt;
Minimal languages can be easier to learn.&lt;br&gt;
Large languages can provide enormous amounts of functionality.&lt;br&gt;
And languages with complex syntax can still be incredibly productive once you know them.&lt;br&gt;
Ultimately, programming languages are tools.&lt;br&gt;
The important question isn't:&lt;br&gt;
"Which language is the easiest?"&lt;br&gt;
It's:&lt;br&gt;
"Which language makes it easiest for me to express the ideas I have?"&lt;br&gt;
That's something I've been thinking about a lot while developing Avery.&lt;br&gt;
And I don't know yet whether an English-oriented approach is actually better.&lt;br&gt;
That's what I'm trying to find out.&lt;br&gt;
What do you think?&lt;br&gt;
What makes a programming language feel difficult to you?&lt;br&gt;
Is it syntax?&lt;br&gt;
The number of concepts you need to learn?&lt;br&gt;
The tooling?&lt;br&gt;
The documentation?&lt;br&gt;
Or something else entirely?&lt;br&gt;
And if you've designed or worked on a programming language before, what would you prioritise: readability, simplicity, conciseness, or power?&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>I Built My Own Programming Language Because I Wanted Code to Read Like English</title>
      <dc:creator>Avery</dc:creator>
      <pubDate>Tue, 08 Sep 2026 09:18:33 +0000</pubDate>
      <link>https://dev.to/kageyako/i-built-my-own-programming-language-because-i-wanted-code-to-read-like-english-4k7o</link>
      <guid>https://dev.to/kageyako/i-built-my-own-programming-language-because-i-wanted-code-to-read-like-english-4k7o</guid>
      <description>&lt;p&gt;I’ve always found programming interesting, but there’s something about programming languages that bothered me.&lt;/p&gt;

&lt;p&gt;You can know exactly what you want a program to do, yet sometimes the code required to express that idea feels much more complicated than the idea itself.&lt;/p&gt;

&lt;p&gt;So I decided to try something:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if I made my own programming language?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That language became Avery.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Avery?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Avery is a programming language I’m building with one main goal:&lt;br&gt;
To make programming as easy to read and understand as possible.&lt;/p&gt;

&lt;p&gt;I don't want someone learning Avery to constantly think about complicated syntax before they can even think about the problem they're trying to solve.&lt;/p&gt;

&lt;p&gt;For example, here's a simple Avery program:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;set name to ask "What's your name? "

print "Hello, " + name + "!"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The intention is pretty obvious even if you've never programmed before.&lt;/p&gt;

&lt;p&gt;Here's another example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;set number to ask "Enter a number: "

if number % 2 is 0 then
    print "Even"
else
    print "Odd"
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's still programming, but I'm trying to make the code itself explain what it is doing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No imports for common functionality&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the design decisions I'm experimenting with is making commonly needed functionality available directly in Avery.&lt;/p&gt;

&lt;p&gt;For example, generating a random number can simply be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;set number to random number between 1 and 100
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's no separate import statement to learn first.&lt;/p&gt;

&lt;p&gt;The idea is that if someone wants a random number, they should be able to simply ask Avery for a random number. The same philosophy applies to other built-in capabilities such as time and other functionality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why make another programming language?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are already countless programming languages. Python is beginner-friendly. JavaScript runs almost everywhere. C and C++ are incredibly powerful. Rust provides powerful safety guarantees. So I'm not trying to replace any of them.&lt;/p&gt;

&lt;p&gt;I'm interested in finding out how far I can take the idea of making programming syntax feel natural while still allowing people to create increasingly complex programs. I want to see whether simplicity can be a fundamental design principle rather than just a feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Avery is still young&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Avery is nowhere near the maturity of languages like Python, and I'm not pretending that it is. It's an actively developing project. Some features are incomplete. Some syntax will probably change. And I'm still figuring out what should and shouldn't be part of the language. But that's also what makes building it interesting.&lt;/p&gt;

&lt;p&gt;I've already been using Avery to test increasingly complicated programs, and those tests have exposed problems in my interpreter that I wouldn't have found with simple "Hello, World!" programs.&lt;/p&gt;

&lt;p&gt;Every time something breaks, I get to improve the language.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I want Avery to become&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My long-term goal isn't simply to create a language with a bunch of features. I want Avery to have an identity.&lt;/p&gt;

&lt;p&gt;Simple syntax.&lt;/p&gt;

&lt;p&gt;Readable code.&lt;/p&gt;

&lt;p&gt;Minimal setup.&lt;/p&gt;

&lt;p&gt;Useful built-in functionality.&lt;/p&gt;

&lt;p&gt;And eventually, enough power that people can build genuinely interesting programs with it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try Avery&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Avery is open source and I'm developing it publicly on GitHub.&lt;/p&gt;

&lt;p&gt;Check out the project on &lt;a href="https://github.com" rel="noopener noreferrer"&gt;GitHub: KageyaKo/Avery&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you're interested in programming languages, interpreters, or language design, I'd genuinely like to hear your thoughts.&lt;/p&gt;

&lt;p&gt;Especially criticism.&lt;/p&gt;

&lt;p&gt;What would you change about Avery's syntax?&lt;/p&gt;

&lt;p&gt;What functionality do you think should be built into the language?&lt;/p&gt;

&lt;p&gt;And most importantly:&lt;br&gt;
Would you actually want to program in a language like this?&lt;/p&gt;

</description>
      <category>avery</category>
      <category>python</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
