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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m early in my journey, both with actually attempting to write robust Elixir/OTP, and with LLM’s, but here are a few tips that have helped already:</p>
<ul>
<li>Hook up context7 MCP in Cursor. Then, in every new agent chat, instruct the agent to use context7 to read the latest Elixir docs.</li>
<li>Iterate on your docs. Focus on standards. Use dialyzer heavily. Keep warnings in check. Develop a robust strategy for OTP.  Use the LLM’s themselves to develop these standards for your document set, leaning on your knowledge of BEAM/OTP principles.</li>
<li>Be willing to throw away an attempted implementation, using it for lessons learned in feedback loops with Claude/Gemini/Grok/etc.</li>
</ul>
<p>I’m also focused on using this experience to enhance and accelerate learning Elixir/OTP development, rather than letting the LLM think without me.</p>
<p>LLM’s for coding are not going anywhere. It’s probably wise to start getting acclimated to using the latest AI tools, if you haven’t started already.</p>
<p>Bullish long term on Elixir for AI, both for development and as a platform. It’s still early.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366305" 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/llms-elixir-windfall-or-deathblow/71092/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-366305" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366305"
                     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="366309" data-post-id="366309">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="garrison" data-post="5" data-topic="71092">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>I am still somewhat surprised/skeptical about that result because I would expect the amount of, say, Python content to dwarf Elixir to the degree that Python code would still come out much better.</p>
</blockquote>
</aside>
<p>Yes, you would think so. However, I have had chatgpt o3 and gemini 2.5 produce absolute garbage Django Rest Framework code, even though this is a stack that is/was pretty popular.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366309" 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/llms-elixir-windfall-or-deathblow/71092/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-366309" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366309"
                     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="366363" data-post-id="366363">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I could be wrong, but i think LLM’s in the future will allow people to enjoy more esoteric languages, having to switch to a popular language for a library or a framework is such a downer. Future LLM’s will generate something close to the library in your programming language of choice, in which quality wise will be no different than an average engineer writing a library and sharing it on github</p>
<p>Right now I just use LLM’s for css stuff because I have 0 passion or patience to get good at FE design, claude spits out good enough boilerplate FE that i can tweak or ask it to tweak. I think elixir will thrive with LLM’s because of the saying “elixir is easy to learn and hard to master”. Imagine an LLM spitting idiomatic and correct elixir code with minimum effort and because the elixir syntax is simple to read, the programmer will have no issue following it</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366363" 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/llms-elixir-windfall-or-deathblow/71092/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-366363" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366363"
                     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="366387" data-post-id="366387">
  <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>Sadly the LLMs, even the excellent ones like Gemini Pro 2.5, still fumble with Elixir quite a lot. They think it’s a good idea to make a 20-clause <code>with</code> chain where <em>each statement is an if/else block</em>. Or <code>cond</code>. Hilarious to look at, and sad to check the compiler errors.</p>
<p>Generally you are right though, I just don’t think we are quite there yet as you also alluded to.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366387" 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/llms-elixir-windfall-or-deathblow/71092/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-366387" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366387"
                     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="366388" data-post-id="366388">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yeah it still has a long way to go, I imagine they work better for strong statically typed PL, than anything in dynamic lala land. We still have to remember that AI improves exponentially and with capitalist incentive being attached aka fortune 500 companies would rather pay 100s of million to an LLM that is good enough, than pay billions to retain workers, pay for healthcare etc etc all this means its inevitable</p>
<p>I think by the end of the decade it will be irresponsible not to use it to code</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366388" 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/llms-elixir-windfall-or-deathblow/71092/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-366388" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366388"
                     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="366534" data-post-id="366534">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>They are quite useful as rubber duckies though, and for learning. Or for thinking through a problem, such as software architecture, or refactoring.</p>
<p>Concrete example: <a href="https://breek.gr/en" rel="noopener nofollow ugc">Breek.gr</a> is built with PHP (backend) and NextJS (frontend). My skill in both parts of the stack was below-par (or rusty, for PHP) last September. After I picked up the frontend and backend codebases in October, I used ChatGPT to gradually explain general concepts of NextJS based on every TSX file I was touching, and so I gradually upskilled to “mid to OK”. Way easier than wading through the NextJS docs or using Google Search. I now use Grok a lot for new feature development in NextJS, but I don’t let it code from scratch.</p>
<p>After scaffolding the TSX, I gradually prompt Grok to add this or change that. Way more often than not, it works. It’s hopeless to give it the full target of what a complex page should do and expect it to spew out code that you can simply copy and paste into the IDE, because in a complex app there are too many interactions with other custom hooks etc. for any LLM to take into account. It’s great for refactoring some TSX files originally written by a junior dev in JSX and then “minimally converted” to TSX by using “any” etc.; so, I also use Grok to save time when defining interfaces.</p>
<p>Grok is passable to good in Elixir nowadays. However, I enjoy coding in Elixir, so I don’t use it much for that purpose. After all, half the fun of developing apps in Elixir is the “in Elixir” part! Or, perhaps I’m in this phase of my Elixir journey (and growing frustration with the complexity of NextJS) where every Elixir module I write feels like a breath of fresh air and an accomplishment.</p>
<p>With LLMs, my 2023 hunch remains valid: you need to understand enough about the subject matter to know when you’re being given BS. And you need to know enough about the codebase to provide guidance. Most of the context is in the user’s head, the rest is provided by the user to the chatbot. You need to do a lot of hand-holding, but in the process you also understand better, and sometimes redefine the problem; sometimes, it’s an “XY problem”.</p>
<p>My experience with LLMs so far has been very positive. It’s a boon both to development velocity (isn’t that what the Agilists call it?) and to my understanding of two pieces of the stack that I have no intention of building expertise in. With human QA (i.e., me) we end up with robust and performant code on both backend and frontend. For $30 per month, SuperGrok is a bargain.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366534" 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/llms-elixir-windfall-or-deathblow/71092/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-366534" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366534"
                     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="366535" data-post-id="366535">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Given how affordable monthly subscriptions are, I consider it irresponsible to not use LLMs already now. The value of work is not in the pain endured; and some parts of coding (especially in TypeScript, such as defining interfaces) are necessary pain that is best offloaded to an LLM. I personally don’t gain anything from defining yet another part of the code that is for “plumbing purposes” inherent to the language…</p>
<p>Time saved this way is invested in developing features and (even better) coding in and writing books about a language and ecosystem that I really enjoy <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" 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="366535" 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/llms-elixir-windfall-or-deathblow/71092/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-366535" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366535"
                     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="366537" data-post-id="366537">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I wonder about the possibility of taking a good-enough self-hostable LLM and fine-tuning it by providing it with the entire documentation of Elixir, Phoenix, Ecto and other Elixir packages often used together.</p>
<p>Has anyone done this and can provide some insights?</p>
<p>BTW, it may sound funny, but I sometimes pre-prompt it with “you are Jose Valim” <img src="https://forum.elixirforum.com/images/emoji/apple/rofl.png?v=15" title=":rofl:" class="emoji" alt=":rofl:" 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="366537" 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/llms-elixir-windfall-or-deathblow/71092/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-366537" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366537"
                     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="366538" data-post-id="366538">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Apologies, when you say grok you don’t mean twitters Ai model? I assumed grok was not a serious competitor</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366538" 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/llms-elixir-windfall-or-deathblow/71092/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-366538" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366538"
                     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="366540" data-post-id="366540">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>yeah LLM’s are great, I still have weird ego moments when I open up google or the documentations and I’m trying so hard to kill that bad habit, gpt and claude runs circles around any documentation as you can keep asking it to clarify and simplify until you reach a good base of understanding. The only flaw with an LLM is that it can confidently lie to you &amp; give you information or explanation that sounds reasonable and then it turns out it’s false , which always leaves me paranoid. But then again documentation can also lie cause of human error</p>
<p>I havent looked at local LLM’s I imagine they are even cheaper to train and run for local context</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="366540" 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/llms-elixir-windfall-or-deathblow/71092/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-366540" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="366540"
                     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/71092/load_more?page=3">Load more posts (5 remaining)</a>
</div></template></turbo-stream>