<?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: Bryantad</title>
    <description>The latest articles on DEV Community by Bryantad (@bryantad).</description>
    <link>https://dev.to/bryantad</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3158402%2Fc71fd4e5-b820-4b93-a5a8-0a12c50336c7.png</url>
      <title>DEV Community: Bryantad</title>
      <link>https://dev.to/bryantad</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bryantad"/>
    <language>en</language>
    <item>
      <title>Sona v0.7.0 Is Live — Object-Oriented Power Unleashed</title>
      <dc:creator>Bryantad</dc:creator>
      <pubDate>Wed, 25 Jun 2025 23:50:49 +0000</pubDate>
      <link>https://dev.to/bryantad/sona-v070-is-live-object-oriented-power-unleashed-1h9p</link>
      <guid>https://dev.to/bryantad/sona-v070-is-live-object-oriented-power-unleashed-1h9p</guid>
      <description>&lt;p&gt;I Built a Language Where Objects and Dictionaries Are the Same Thing&lt;/p&gt;

&lt;p&gt;After two years of compiler development, I just shipped Sona v0.7.0—a language built around one core insight: objects and dictionaries should be unified, not separate concepts.&lt;br&gt;
The Problem I Kept Running Into&lt;br&gt;
I was constantly switching between languages for different parts of the same project:&lt;/p&gt;

&lt;p&gt;Python for data processing (great dicts, verbose classes)&lt;br&gt;
JavaScript for logic (great objects, weird edge cases)&lt;br&gt;
Go for performance (verbose everything)&lt;/p&gt;

&lt;p&gt;Each language had the right pieces, but never quite fit together. I wanted something that felt as natural as JavaScript's object model but with Python's clarity and none of the historical baggage.&lt;br&gt;
The Core Innovation: Unified Object/Dictionary Syntax&lt;br&gt;
In Sona, there's no distinction between object properties and dictionary keys:&lt;br&gt;
sona// This is a dictionary&lt;br&gt;
let config = {&lt;br&gt;
  "app_name": "MyApp",&lt;br&gt;
  "version": "1.0.0",&lt;br&gt;
  "features": {"auth": true, "analytics": false}&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;// But you can access it like an object&lt;br&gt;
config.debug = true&lt;br&gt;
config.features.logging = true&lt;br&gt;
print(config.app_name)  // "MyApp"&lt;br&gt;
Classes work the same way:&lt;br&gt;
sonaclass GamePlayer {&lt;br&gt;
  constructor(name) {&lt;br&gt;
    this.name = name&lt;br&gt;
    this.stats = {"hp": 100, "level": 1}&lt;br&gt;
    this.inventory = []&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;method levelUp() {&lt;br&gt;
    this.stats.level = this.stats.level + 1&lt;br&gt;
    this.stats.hp = this.stats.hp + 10&lt;br&gt;
    return this  // Enable chaining&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;let player = GamePlayer("Alice")&lt;br&gt;
player.levelUp().levelUp()&lt;br&gt;
print(player.stats.level)  // 3&lt;br&gt;
Why This Actually Matters&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;No context switching between syntaxes
sona// Same syntax for everything
user.profile.settings.theme = "dark"
config.database.host = "localhost"
api.endpoints.users.timeout = 5000&lt;/li&gt;
&lt;li&gt;Natural method chaining
sonaplayer.spawn()
  .move(10, 5)
  .attack("fireball")
  .collectLoot()&lt;/li&gt;
&lt;li&gt;Seamless data modeling
sonalet library = Library("City Central")
library.books = [
{"title": "1984", "author": "Orwell", "available": true},
{"title": "Dune", "author": "Herbert", "available": false}
]&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;// Add methods to existing data&lt;br&gt;
library.findAvailable = function() {&lt;br&gt;
  return this.books.filter(book =&amp;gt; book.available)&lt;br&gt;
}&lt;br&gt;
The Technical Implementation&lt;br&gt;
This isn't just syntactic sugar. The language is built with:&lt;/p&gt;

&lt;p&gt;LALR(1) parser with proper AST design using Lark&lt;br&gt;
Lexical scoping with full closure support&lt;br&gt;
Method resolution order for inheritance&lt;br&gt;
Unified property access across all object types&lt;br&gt;
Python ecosystem integration without Python's syntax quirks&lt;/p&gt;

&lt;p&gt;The object model treats everything as a dictionary with methods, but with proper OOP semantics for inheritance and method dispatch.&lt;br&gt;
Real-World Examples&lt;br&gt;
Configuration management:&lt;br&gt;
sonalet config = loadConfig("app.json")  // Returns a dict&lt;br&gt;
config.validateRequired()            // But has methods&lt;br&gt;
config.database.reconnect()          // Nested objects work naturally&lt;br&gt;
Game development:&lt;br&gt;
sonalet enemy = Enemy("goblin")&lt;br&gt;
enemy.ai = {"aggression": 0.7, "patrol_range": 50}&lt;br&gt;
enemy.ai.decision_tree = DecisionTree()&lt;br&gt;
enemy.think().move().attack()&lt;br&gt;
Data processing:&lt;br&gt;
sonalet data = parseCSV("sales.csv")&lt;br&gt;
data.forEach(row =&amp;gt; {&lt;br&gt;
  row.profit = row.revenue - row.costs&lt;br&gt;
  row.margin = row.profit / row.revenue&lt;br&gt;
})&lt;br&gt;
What's Next&lt;br&gt;
v0.8.0 roadmap:&lt;/p&gt;

&lt;p&gt;Enhanced class system with multiple inheritance&lt;br&gt;
Pattern matching for data structures&lt;br&gt;
LSP support for IDE integration&lt;br&gt;
Package manager for module distribution&lt;br&gt;
Performance optimizations&lt;/p&gt;

&lt;p&gt;Longer term:&lt;/p&gt;

&lt;p&gt;Bytecode compilation for performance-critical code&lt;br&gt;
Web assembly target for browser deployment&lt;br&gt;
GUI framework leveraging the unified object model&lt;/p&gt;

&lt;p&gt;Why I Built This&lt;br&gt;
I didn't build Sona because the world needed another language. I built it because I kept hitting the same friction points:&lt;/p&gt;

&lt;p&gt;Switching between obj.prop and dict["key"] syntax&lt;br&gt;
Verbose class definitions for simple data structures&lt;br&gt;
Inconsistent method chaining across different object types&lt;br&gt;
Context switching between languages for different parts of the same project&lt;/p&gt;

&lt;p&gt;Sona is my attempt to create a language that feels consistent and predictable while still being powerful enough for real work.&lt;br&gt;
Try It Out&lt;br&gt;
The language is mature enough for real experimentation:&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Bryantad/Sona" rel="noopener noreferrer"&gt;https://github.com/Bryantad/Sona&lt;/a&gt;&lt;br&gt;
Documentation: Comprehensive examples and language guide&lt;br&gt;
REPL: Interactive development environment&lt;br&gt;
Standard library: Math, string, I/O, HTTP client, JSON parsing&lt;/p&gt;

&lt;p&gt;The Bigger Picture&lt;br&gt;
This project taught me that small, consistent design decisions compound into something that feels completely different. Sona doesn't have any revolutionary features—it just makes a few things work the way you expect them to.&lt;br&gt;
If you've ever found yourself fighting with a language's object model or wishing for more consistent syntax, I'd love your feedback. The goal isn't to replace your production stack, but to offer a cleaner tool for prototyping, scripting, and learning.&lt;br&gt;
What do you think? Does unified object/dictionary syntax solve real problems, or is this just elegant complexity?&lt;/p&gt;

&lt;p&gt;Follow the project on GitHub and let me know what you build with it. The best way to validate a language design is to see what people create when they're not fighting the syntax.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I Built a New Programming Language for Neurodivergent Creators — Meet Sona (v0.7.0)</title>
      <dc:creator>Bryantad</dc:creator>
      <pubDate>Tue, 13 May 2025 14:04:57 +0000</pubDate>
      <link>https://dev.to/bryantad/i-built-a-new-programming-language-for-neurodivergent-creators-meet-sona-3402</link>
      <guid>https://dev.to/bryantad/i-built-a-new-programming-language-for-neurodivergent-creators-meet-sona-3402</guid>
      <description>&lt;h2&gt;
  
  
  Why I Built Sona
&lt;/h2&gt;

&lt;p&gt;I’m tired of jumping through hoops just to get “Hello, world!” on the screen—especially when syntax errors feel like hidden trapdoors for neurodivergent brains. After years of wrestling with tooling that wasn’t built for me, I created &lt;strong&gt;Sona&lt;/strong&gt;: an open-source language designed to remove friction, spark creativity, and let you code with confidence from day one.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Makes Sona Stand Out
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Minimal, readable syntax&lt;/strong&gt; (think Python + Rust + Go without the baggage)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REPL-first&lt;/strong&gt;—iterate in milliseconds (v0.4.3 brought multiline functions, &lt;code&gt;:env&lt;/code&gt;, &lt;code&gt;:clear&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native modules&lt;/strong&gt;—&lt;code&gt;import fs; stdin.input()&lt;/code&gt; just works
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility by design&lt;/strong&gt;—empathy baked in for neurodivergent devs
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;100% open source&lt;/strong&gt;—interpreter in Python + Lark, so you can inspect and contribute
&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;⚡️ &lt;strong&gt;[June 2025 Update]&lt;/strong&gt;: Sona v0.7.0 has officially launched!&lt;br&gt;&lt;br&gt;
This release brings &lt;strong&gt;complete object-oriented programming&lt;/strong&gt;, &lt;strong&gt;property access&lt;/strong&gt;, &lt;strong&gt;method chaining&lt;/strong&gt;, and much more.&lt;br&gt;&lt;br&gt;
📘 Read the full v0.7.0 release post here →&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🚀 v0.5.1 Highlights (2025-05-23)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🛠️ REPL Diagnostics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;:debug&lt;/code&gt; → dive into last error, parse tree &amp;amp; scopes
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:profile&lt;/code&gt; → benchmark your commands in real time
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:watch &amp;lt;var&amp;gt;&lt;/code&gt; → peek at variable value, type &amp;amp; defining scope
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:trace&lt;/code&gt; → toggle live function-call logging
&lt;/li&gt;
&lt;li&gt;New helper module: &lt;code&gt;sona/utils/debug_tools.py&lt;/code&gt; (docs included)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📂 Project Layout
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Streamlined directories for source, tests &amp;amp; release scripts
&lt;/li&gt;
&lt;li&gt;Tests grouped by feature area for faster onboarding
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DIRECTORY.md&lt;/strong&gt;—find anything in seconds
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;release-tools/&lt;/code&gt; folder with cleanup scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔒 Security Hardened
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;No more shadowed params—function scoping tightened
&lt;/li&gt;
&lt;li&gt;Import paths validated to block traversal attacks
&lt;/li&gt;
&lt;li&gt;Input-size limits to guard against DoS&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Squash
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Triple-quoted strings now span lines correctly
&lt;/li&gt;
&lt;li&gt;Numeric types behave in &lt;code&gt;if&lt;/code&gt;/&lt;code&gt;else&lt;/code&gt; blocks
&lt;/li&gt;
&lt;li&gt;Edge cases in &lt;code&gt;while&lt;/code&gt; loops patched
&lt;/li&gt;
&lt;li&gt;Error messages now include exact location info
&lt;/li&gt;
&lt;li&gt;Import-alias quirks fixed
&lt;/li&gt;
&lt;li&gt;Memory leaks exterminated
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:test&lt;/code&gt; command runs the full diagnostic suite reliably&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✨ REPL QOL
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mini &lt;code&gt;:calc&lt;/code&gt; &amp;amp; &lt;code&gt;:quiz&lt;/code&gt; apps right in the shell
&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;exit&lt;/code&gt; or &lt;code&gt;quit&lt;/code&gt; (no colon) to close the REPL
&lt;/li&gt;
&lt;li&gt;Polished &lt;code&gt;:test&lt;/code&gt; for one-shot test runs&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📚 Docs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;SECURITY.md updated with real-world best practices
&lt;/li&gt;
&lt;li&gt;Examples synced with the latest fixes&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;v1.0 Public Alpha&lt;/strong&gt;—rock-solid docs, examples &amp;amp; tutorials
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IDE plugins&lt;/strong&gt;—syntax highlighting &amp;amp; LSP support
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-powered tooling&lt;/strong&gt;—SonaCore LLM integrations incoming&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; v0.5.1 is all about diagnostics, security, cleanup &amp;amp; polish—your feedback is gold.  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you found this useful, I’d love your support:&lt;br&gt;&lt;br&gt;
⭐ Drop a star on GitHub: &lt;a href="https://github.com/Bryantad/Sona" rel="noopener noreferrer"&gt;github.com/Bryantad/Sona&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👥 Follow me on Dev.to for more low-friction language tooling deep dives  &lt;/p&gt;

&lt;p&gt;Your stars and follows keep Sona moving—thanks for being part of the journey!  &lt;/p&gt;

</description>
      <category>programming</category>
      <category>devtooling</category>
      <category>opensource</category>
      <category>neurodivergent</category>
    </item>
  </channel>
</rss>
