<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="341676" data-post-id="341676">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sbuttgereit" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sbuttgereit/120/30162_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sbuttgereit
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="j1fig" data-post="9" data-topic="66465">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/j1fig/48/36194_2.png" class="avatar"> j1fig:</div>
<blockquote>
<p>This is because I want to ingrain in my muscle and visual memory the language, libraries, idioms</p>
</blockquote>
</aside>
<p>Yeah, I agree with much (all?) of what you say here and would go further in that one of the big concerns for me is that even experienced developers’ knowledge/ability can atrophy without regular exercise.  While I find that I get to my larger goals faster with the LLM, in part that’s because I don’t have to work or think as hard… but I am losing that regular exercise and expect that writing without the LLM will result in my being slower than I was before just because I’d have to rebuild that knowledge of language minutiae to be as effective as I was pre-LLM.</p>
<p>I think what it means to be a developer will be an interesting topic over the coming years as these tools and workflows improve.  How do juniors obtain experience and will the art become more and more about extracting a given result from the tool rather than not needing the tools at all?  Are there analogies from other industries about how, for example, we moved from designing things like airplanes very manually with actual pen and paper drawings and slide rules to using advanced CAD systems which can even simulate the complex aerodynamics of the system?  Surely, we lost skills when these very manual tasks of drafting and calculation were taken on by the computer, but we also gained a lot too.   (And to be clear, I’m think in terms of professional software development, not recreational software development where a more “artisanal” approach to coding can very well be more desirable.)</p>
<p>Anyway, interesting times ahead and it will be interesting to watch as it evolves.  In the meantime, I’ll continue to use the LLM because it allows me a real shot of completing a project that otherwise is too foolishly large for an indy developer like me to complete without such aids.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="341676" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/current-status-of-llms-writing-elixir-code/66465/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-341676" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="341676"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="341677" data-post-id="341677">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="sbuttgereit" data-post="12" data-topic="66465">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sbuttgereit/48/30162_2.png" class="avatar"> sbuttgereit:</div>
<blockquote>
<p>Surely, we lost skills when these very manual tasks of drafting and calculation were taken on by the computer, but we also gained a lot too.</p>
</blockquote>
</aside>
<p>There’s a balance. We should not do annoying stuff 100% of the time just so we don’t lose shape or whatever other nebulous goal that is, but we also shouldn’t strive to become nepotism-hired orchestra conductors who don’t even know how to actually code stuff manually anymore.</p>
<p>I for one am looking into – and working on – boilerplate generation without using “AI” but I also don’t want to try and outsource f.ex. a complex Ecto / SQL query with recursive CTEs or window functions or lateral joins etc.</p>
<p>My view is: humans work on the logic and the coherence of the whole thing, machines write the annoying manual parts of the code, f.ex. <code>Ecto.Schema</code> definitions and migrations are theoretically able to be generated from a singular source of truth that describes the names, the types and various constraints (written in some mythical DSL that either does not exist or I don’t know about it). So yeah, manually writing Ecto schemas and migrations gets old and annoying really fast and the Ecto’s CLI generator leaves stuff to be desired, sadly (two random examples: integer ranges, ability to generate DB constraints and not only Ecto validations).</p>
<p>In this example: I want to be able to describe types of data and leave the details to the machine. The typing DSL should be able to generate code in most programming languages as well and I am actually disappointed that nobody ever did this well.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="341677" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/current-status-of-llms-writing-elixir-code/66465/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-341677" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="341677"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="341682" data-post-id="341682">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dimitarvp" data-post="13" data-topic="66465">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>(written in some mythical DSL that either does not exist or I don’t know about it).</p>
</blockquote>
</aside>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/eyes.png?v=15" title=":eyes:" class="emoji only-emoji" alt=":eyes:" loading="lazy" width="20" height="20"> <img src="https://forum.elixirforum.com/images/emoji/apple/thinking.png?v=15" title=":thinking:" class="emoji only-emoji" alt=":thinking:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="341682" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/current-status-of-llms-writing-elixir-code/66465/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-341682" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="341682"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="341683" data-post-id="341683">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hm? Roast me, I won’t mind it, not like I stay on top of the entire IT area 24/7.</p>
<p>But again, I am looking for something that can be used to generate code for many different programming languages AND different ORM / DataMapper frameworks inside them.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="341683" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/current-status-of-llms-writing-elixir-code/66465/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-341683" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="341683"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="341685" data-post-id="341685">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Ah, sorry I was not trying to roast you I promise <img src="https://forum.elixirforum.com/images/emoji/apple/laughing.png?v=15" title=":laughing:" class="emoji" alt=":laughing:" loading="lazy" width="20" height="20">. I didn’t mean for that to sound rude. Only that this is the essentially the foundation of what I’m trying to do.</p>
<p>Ash doesn’t come with any cross-language code generation tools, but it is the general programming pattern with Ash. You describe your domain using data structures (i.e <code>Ash.Resource</code>). It acts simultaneously as a tool to interact with your domain, and the source of truth for anything you project from it.</p>
<p>We generate migrations, for example, automatically. You can see for yourself:</p>
<h2><a name="p-341685-generate-a-scaffold-of-an-app-1" class="anchor" href="#p-341685-generate-a-scaffold-of-an-app-1" aria-label="Heading link" rel="nofollow"></a>Generate a scaffold of an app</h2>
<pre data-code-wrap="sh"><code class="lang-sh">mix archive.install hex igniter_new

mix igniter.new your_app --install ash,ash_postgres

cd your_app

mix ash.gen.resource YourApp.Accounts.User \
  --uuid-v7-primary-key id \
  --attribute username:string:required \
  --default-actions create,read,update,destroy \
  --timestamps \
  --extend postgres

mix ash.gen.resource YourApp.Twitter.Tweet \
  --uuid-v7-primary-key id \
  --attribute text:string:required \
  --relationship belongs_to:author:YourApp.Accounts.User \
  --timestamps \
  --extend postgres
</code></pre>
<h2><a name="p-341685-run-codegen-2" class="anchor" href="#p-341685-run-codegen-2" aria-label="Heading link" rel="nofollow"></a>Run codegen</h2>
<p>Codegen by default only will generate the required migrations, but any extension can tap into the codegen step to add its own behavior.</p>
<pre data-code-wrap="sh"><code class="lang-sh">mix ash.codegen initial_setup
</code></pre>
<p>That command generates:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule YourApp.Repo.Migrations.InitialSetup do
  @moduledoc """
  Updates resources based on their most recent snapshots.

  This file was autogenerated with `mix ash_postgres.generate_migrations`
  """

  use Ecto.Migration

  def up do
    create table(:users, primary_key: false) do
      add(:id, :uuid, null: false, default: fragment("uuid_generate_v7()"), primary_key: true)
      add(:username, :text, null: false)

      add(:inserted_at, :utc_datetime_usec,
        null: false,
        default: fragment("(now() AT TIME ZONE 'utc')")
      )

      add(:updated_at, :utc_datetime_usec,
        null: false,
        default: fragment("(now() AT TIME ZONE 'utc')")
      )
    end

    create table(:tweets, primary_key: false) do
      add(:id, :uuid, null: false, default: fragment("uuid_generate_v7()"), primary_key: true)
      add(:text, :text, null: false)

      add(:inserted_at, :utc_datetime_usec,
        null: false,
        default: fragment("(now() AT TIME ZONE 'utc')")
      )

      add(:updated_at, :utc_datetime_usec,
        null: false,
        default: fragment("(now() AT TIME ZONE 'utc')")
      )

      add(
        :author_id,
        references(:users,
          column: :id,
          name: "tweets_author_id_fkey",
          type: :uuid,
          prefix: "public"
        )
      )
    end
  end

  def down do
    drop(constraint(:tweets, "tweets_author_id_fkey"))

    drop(table(:tweets))

    drop(table(:users))
  end
end
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="341685" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/current-status-of-llms-writing-elixir-code/66465/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-341685" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="341685"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="341686" data-post-id="341686">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>That looks like a solid start, thank you.</p>
<p>What about the two examples I gave you? (1) integer ranges and (2) optional toggle for any of the validations to also introduce a DB constraint?</p>
<p>…Oh, and while we’re at it: (3) string regex validations, (4) string / enum / integer <code>inclusion</code> validations (f.ex. <code>color</code> in the DB can only be “red”, “green” or “blue”)?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="341686" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/current-status-of-llms-writing-elixir-code/66465/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-341686" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="341686"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="341687" data-post-id="341687">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>That is on the roadmap, but not implemented currently. You can do them both in the DSL though.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">attribute :score, :integer do
  constraints min: 1, max: 100 # not lowered to DB, but can easily be in the future if desired
  allow_nil? false
end
</code></pre>
<p>and</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">postgres do
  check_constraints do
    check_constraint :price, "price_must_be_positive", check: "price &gt; 0", message: "price must be positive"
  end
end
</code></pre>
<p>The resource is the source of truth, and if the check constraint in the resource changes, migrations will be generated to reflect the change. So a tool that translates constraints to check constraints defined on the resource would be all that is necessary. We have an entire system for this using transformers.</p>
<p>Same goes for your “while we’re at it” steps.</p>
<p><code>attribute :email, :string, constraints: [match: ~r/.*@.*/]</code> etc.</p>
<p>We’re just a stones throw away from lowering any of that to the db. Regexes are harder, may require manual translation for now.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="341687" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/current-status-of-llms-writing-elixir-code/66465/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-341687" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="341687"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="341688" data-post-id="341688">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="restlessronin" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/restlessronin/120/24826_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  restlessronin
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>In the recent past, I have mostly been working with Claude-3.5 Sonnet w Projects (and before that Claude 3 Opus). In between, I worked a bit with GPT-4o, but shifted to Claude 3.5 when that came out. I’ve heard good things about o1-mini, but only had one (really impressive debug) interaction with it. I plan on working with it exclusively for the next few months if it turns out to be Claude 3.5 level or better. Both Claude 3 Opus and Claude 3.5 Sonnet produce good elixir code.</p>
<p>I have tried Cursor / Continue etc. I was inspired enough by the potential of these projects that I contributed PRs to a couple of them (Rubberduck and Continue). Eventually I figured out that they are not for me.</p>
<p>My personal approach to working with LLMs is the same for coding as for writing. I chat with it, get an initial idea, usually convince it there’s a better way, work with it’s mods, tweak the code a lot, and finally paste it into the text editor in the IDE. The final code is as much my doing (or more) than the LLMs. It’s still super productive though.</p>
<p>To streamline this workflow, I’ve recently released a tool designed to facilitate this kind of interaction with Claude projects and GPTs directly in the chat window. It’s an open-source project that I’m continually refining based on real-world usage and feedback.</p>
<p>For anyone interested in exploring this approach:</p>
<ul>
<li>GitHub Repository: <a href="https://github.com/cyberchitta/llm-context.py" class="inline-onebox" rel="noopener nofollow ugc">GitHub - cyberchitta/llm-context.py: Share code with LLMs via Model Context Protocol or clipboard. Rule-based customization enables easy switching between different tasks (like code review and documentation). Includes smart code outlining. · GitHub</a></li>
<li>Why LLM Context? Article: <a href="https://www.cyberchitta.cc/articles/llm-ctx-why.html" class="inline-onebox" rel="noopener nofollow ugc">LLM Context: Harnessing Vanilla AI Chats for Development - CyberChitta</a></li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="341688" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/current-status-of-llms-writing-elixir-code/66465/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-341688" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="341688"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="341751" data-post-id="341751">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="cro" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cro/120/1992_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  cro
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Wow, thanks to everyone in this thread!  There’s so much great information here!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="341751" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/current-status-of-llms-writing-elixir-code/66465/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-341751" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="341751"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="341794" data-post-id="341794">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mikesax" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mikesax/120/34297_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mikesax
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>FWIW, it has helped me to add “write the most concise and idiomatic elixir code possible” to any prompt (or to the project’s general instructions). Especially when learning Elixir, I often was writing code based on old habits (too many if statements etc), and the AI code really accelerated my learning. Also, asking it to write my own “bad” code using more idiomatic Elixir was often enlightening.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="341794" data-batch-url="/posts/batch_likers">
                        6
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/current-status-of-llms-writing-elixir-code/66465/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-341794" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="341794"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/66465/load_more?page=3">Load more posts (13 remaining)</a>
</div></template></turbo-stream>