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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Its very hard to interact with Go natively (C-Port or NIF), many boilerplating that were done in C by a handfull of macros has to be done individually per go-package or targeted BEAM-module, just because there are no mechanics for abstracting it away.</p>
<p>This makes it unlikely to be a candidate to use it alongside erlang/elixir/lfe/alpaca/BEAM in my eyes.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="47523" 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/what-would-be-a-good-programming-language-to-speed-up-elixir/7989/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-47523" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="47523"
                     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 #21"></div>
  </section>
</div>
    <div class="postbit" id="47530" data-post-id="47530">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="macdougall" data-post="21" data-topic="7989">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/macdougall/48/6373_2.png" class="avatar"> macdougall:</div>
<blockquote>
<p>The OP was about performance. Go is by far one of the fastest performing languages out there.<br>
That’s not debatable, that’s documented</p>
</blockquote>
</aside>
<p>Yes, but for example Rust is faster, and have much nicer semantics and is way more declarative than Go. So if it’s really all about performance you’d probably go with pure C and some pointer magic, and if you want way safer and/or more declarative you’d choose Rust, OCaml or Haskell.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="47530" 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/what-would-be-a-good-programming-language-to-speed-up-elixir/7989/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-47530" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="47530"
                     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 #22"></div>
  </section>
</div>
    <div class="postbit" id="47559" data-post-id="47559">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think people’s perception of go depends on where they come from.</p>
<ul>
<li>If they come from C, well then anything feels safer and easier to use so<br>
they are happy.</li>
<li>If they come from a dynamic OO language like python or ruby then they<br>
think it is so fast and that the type system is the best thing since<br>
sliced bread.</li>
<li>If they come from Java or C# they think the tooling and speed of<br>
developing is amazing.</li>
<li>If they come from a dynamic functional language (like elixir) then golang<br>
feels shaky thanks to mutability everywhere.</li>
<li>If you come from ML based language the type system is just not good enough.</li>
</ul>
<p>I think go is going to lsat because it got 1 crucial thing right. It is<br>
super-easy to get started and write imperative code. That is why php was<br>
(is?) king of web. Anyone can get going and just write code, no matter<br>
how crappy the code is or the language is (and to be fair go is quite a<br>
big step up from php ;)).</p>
<p>For me, golang feels just like a dynamic OO system. The type system<br>
doesn’t give me enough help to rely on it and you still gets heaps of<br>
odd run-time behaviour that you do with python or ruby. Simply I don’t<br>
feel confident in the code I write in go.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="47559" 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/what-would-be-a-good-programming-language-to-speed-up-elixir/7989/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-47559" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="47559"
                     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 #23"></div>
  </section>
</div>
    <div class="postbit" id="47568" data-post-id="47568">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="cmkarlsson" data-post="24" data-topic="7989">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cmkarlsson/48/23000_2.png" class="avatar"> cmkarlsson:</div>
<blockquote>
<p>Anyone can get going and just write code, no matter how crappy the code is or the language is</p>
</blockquote>
</aside>
<p>Sounds like the “<a href="https://www.jwz.org/doc/worse-is-better.html" rel="noopener nofollow ugc">Worse</a> is <a href="http://dreamsongs.com/WIB.html" rel="noopener nofollow ugc">Better</a>” phenomenon (why should I be surprised - Go has C heritage).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="47568" 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/what-would-be-a-good-programming-language-to-speed-up-elixir/7989/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-47568" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="47568"
                     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 #24"></div>
  </section>
</div>
    <div class="postbit" id="47757" data-post-id="47757">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The development of Erlport is in coma since 2 years</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="47757" 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/what-would-be-a-good-programming-language-to-speed-up-elixir/7989/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-47757" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="47757"
                     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 #25"></div>
  </section>
</div>
    <div class="postbit" id="47763" data-post-id="47763">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Here is one example why choosing a ‘quick’ language to speed up your application is sometimes touchy to say: <a href="https://mail.mozilla.org/pipermail/heka/2016-May/001059.html" rel="noopener nofollow ugc">https://mail.mozilla.org/pipermail/heka/2016-May/001059.html</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="47763" 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/what-would-be-a-good-programming-language-to-speed-up-elixir/7989/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-47763" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="47763"
                     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 #26"></div>
  </section>
</div>
    <div class="postbit" id="47768" data-post-id="47768">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I think this is the correct answer IMO. Go is fast and from a concurrency standpoint it shares a lot with Elixir / Erlang in spirit…but it’s not for everyone.</p>
<p>The things that really write it off from a compatibility standpoint would be the real disqualifier.</p>
<p>To the original question though, it seems like there are really two things being asked: speed up with elixir vs number crunching.</p>
<p>It seems like Rust/Rustler is the answer on the “speed up” side but for number crunching I think you’d have to qualify about how heavy we are talking. Even though I haven’t used them, everything I read seems to indicate that Python has a lot of well played tooling for data analysis and the same goes for the machine learning side of things. If the crunching needs to be directly attached to Elixir, Rust is probably the answer. If it doesn’t, it seems like there’s a strong case to be made for Python.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="47768" 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/what-would-be-a-good-programming-language-to-speed-up-elixir/7989/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-47768" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="47768"
                     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 #27"></div>
  </section>
</div>
    <div class="postbit" id="47946" data-post-id="47946">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="ShalokShalom" data-post="26" data-topic="7989" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/shalokshalom/48/15829_2.png" class="avatar"> ShalokShalom:</div>
<blockquote>
<p>The development of Erlport is in coma since 2 years</p>
</blockquote>
</aside>
<p>There is no reason for more development.  Ports are very well set.  <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="brightball" data-post="28" data-topic="7989">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/brightball/48/17192_2.png" class="avatar"> brightball:</div>
<blockquote>
<p>It seems like Rust/Rustler is the answer on the “speed up” side but for number crunching I think you’d have to qualify about how heavy we are talking. Even though I haven’t used them, everything I read seems to indicate that Python has a lot of well played tooling for data analysis and the same goes for the machine learning side of things. If the crunching needs to be directly attached to Elixir, Rust is probably the answer. If it doesn’t, it seems like there’s a strong case to be made for Python.</p>
</blockquote>
</aside>
<p>Python has a lot of tools to munge data via ‘operations’ passed to BLAS and so forth.  However that only works if you are not marshalling the data between Python and the backend a lot (similar to marshalling data to/from NIF’s on the BEAM).  You could indeed do something similar via NIFs and Rust as you could with a Python backend, but with one less layer of marshalling.  ^.^</p>
<p>EDIT:  You can always use Terra too.  It has the full power of LLVM underneath it (same as C++ and Rust) and you could write, hmm, ‘kernels’ in Lua to run whatever functions you want.  ^.^</p>
<p>Heck, you could go the full microkernel route via OpenCL and process data massively on CPU (and GPU and others) too.  I think there is a BEAM library for OpenCL even?  <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>
<aside class="quote no-group" data-username="ShalokShalom" data-post="27" data-topic="7989" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/shalokshalom/48/15829_2.png" class="avatar"> ShalokShalom:</div>
<blockquote>
<p>Here is one example why choosing a ‘quick’ language to speed up your application is sometimes touchy to say: <a href="https://mail.mozilla.org/pipermail/heka/2016-May/001059.html" rel="noopener nofollow ugc">https://mail.mozilla.org/pipermail/heka/2016-May/001059.html</a></p>
</blockquote>
</aside>
<p>Huh, he seems to be a bit against using channels in Go.  Interesting…</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="47946" 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/what-would-be-a-good-programming-language-to-speed-up-elixir/7989/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-47946" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="47946"
                     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 #28"></div>
  </section>
</div>
    <div class="postbit" id="150063" data-post-id="150063">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ollran" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ollran
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="OvermindDL1" data-post="12" data-topic="7989">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>I’ve made NIF’s in C, C++, Rust, OCaml, and Terra (basic ‘hello world’ experiment there). Not hard at all. <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>
</blockquote>
</aside>
<p>I’d like to learn to create NIF’s in OCaml. Do you know any good learning resources or would you like to share some example code? Or should I go with rustler instead?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="150063" 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/what-would-be-a-good-programming-language-to-speed-up-elixir/7989/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-150063" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="150063"
                     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 #29"></div>
  </section>
</div>
    <div class="postbit" id="150152" data-post-id="150152">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I recommend Rustler.  If you use OCaml you need to know the ‘tricks’ to not accidentally pass managed memory across the interface or so and deal with them when you do, that’s a lot to learn to do it right (though if you already know OCaml that well then I can teach the NIF bindings easily enough).  Absolutely use Rust instead.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="150152" data-batch-url="/posts/batch_likers">
                        8
                      </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/what-would-be-a-good-programming-language-to-speed-up-elixir/7989/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-150152" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="150152"
                     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 #30"></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/7989/load_more?page=4">Load more posts (4 remaining)</a>
</div></template></turbo-stream>