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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I would also say the benefits shine(at least for me) when supporting an app wrote in functional style. It is so much easier to debug/add existing features when everything is a pipeline of function compared to some of the messes I have seen in imperative code. So while it may be taking you more time to write your application with FP(although I suspect that will change once you use it more, I can write code in elixir way faster then any other languages due to familiarity) I am willing to bet you will see some nice pluses down the road when used.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="87690" 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/getting-things-done-with-elixir-tips/11196/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-87690" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="87690"
                     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="87699" data-post-id="87699">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I don’t know Scala at all (actually no FP language besides Elixir), so perhaps it’s more contrived in there, but my experience has been exactly the opposite. Doing changes in function based pipelines/actions is a breeze compared to other things, even with ruby/rails where you can do quite neat magical tricks.</p>
<p>I’ve been developing a game, <a href="https://aether-wars.com" rel="noopener nofollow ugc">https://aether-wars.com</a> , which basically uses resources to play “spells”, I had 6 different resources all exactly the same type (think of it as “energy” that is in a pool), then decided a cool resource to also use would be the total life-points you have, which is a total different type. The change in the rules engine in the back-end, in elixir, took me 5 min, the change in the front-end to allow that interaction took me an afternoon (and probably because it’s written with vuejs, otherwise…). The rules engine is currently at 3.4k lines. Ofc this isn’t always applicable, but I guess it would probably be a completely different case if it wasn’t a functional pipeline.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="87699" 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/getting-things-done-with-elixir-tips/11196/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-87699" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="87699"
                     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="87707" data-post-id="87707">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="amnu3387" data-post="23" data-topic="11196">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/a/ed8c4c/48.png" class="avatar"> amnu3387:</div>
<blockquote>
<p>I don’t know Scala at all (actually no FP language besides Elixir), so perhaps it’s more contrived in there, but my experience has been exactly the opposite. Doing changes in function based pipelines/actions is a breeze compared to other things, even with ruby/rails where you can do quite neat magical tricks.</p>
</blockquote>
</aside>
<p>To be fair, <a class="mention" href="/u/justin" rel="nofollow">@Justin</a> seems to be talking primarily about taking a project you already have a mental model for (presumably an imperative model) and translating it into FP from the start. Making changes in a primarily data based system that focuses on transformations is potentially something that he agrees completely with. I think you’re talking about two different scenarios.</p>
<p>On top of that everyone has a different level of familiarity with FP and this obviously will impact how well you find analogs to things you’ve already done before.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="87707" 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/getting-things-done-with-elixir-tips/11196/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-87707" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="87707"
                     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="87709" data-post-id="87709">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Fair, but in this particular case this game was started in Rails with Jquery, it was getting so out of hand and complex that I decided to learn elixir (mostly because of phoenix &amp; websockets at that point) and a front-end framework at the same time (vuejs), so it’s effectively my first project in elixir (and vue) and I still say that making changes to the back-end is fairly trivial compared to what I had before, and translating what I had from rails (I literally started with that as my “template”), although not totally painless was still very manageable. I don’t want this to sound like “you’re not getting how it’s done”/“you’re dumb”/patronising, rather share that I don’t agree with this, from my experience.</p>
<aside class="quote no-group" data-username="Justin" data-post="21" data-topic="11196">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/justin/48/11330_2.png" class="avatar"> Justin:</div>
<blockquote>
<p>Since this post, I wrote a tiny utility in functional Scala. It took a ridiculous amount of time. I guess for existing apps I need to think of the smallest possible app, rather than a “real” app.</p>
</blockquote>
</aside>
<p>Now that I re-read it, perhaps I misunderstood, and it means “doing a small part of each large app independently and not trying to translate the whole app immediately” and if so, I would agree.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="87709" 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/getting-things-done-with-elixir-tips/11196/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-87709" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="87709"
                     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="87724" data-post-id="87724">
  <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="Justin" data-post="21" data-topic="11196">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/justin/48/11330_2.png" class="avatar"> Justin:</div>
<blockquote>
<p>Since this post, I wrote a tiny utility in functional Scala. It took a ridiculous amount of time. I guess for existing apps I need to think of the smallest possible app, rather than a “real” app.</p>
</blockquote>
</aside>
<p>Scala is definitely not for small apps like that, but rather it has a higher initial overhead, but it has much better maintainability later, like most good statically strongly typed languages, though I’d prefer OCaml personally.  ^.^</p>
<p>Scala’s pretty good though, yeah is has some line-noisy stuff, but that’s because it is mixing HM+Extensions with Java’s ecosystem, I used Scala for a few years a long while ago (2.11 was brand new at about the time I stopped using it).</p>
<p>To learn a new language I like to make a new language in it as making a compiler tests <em>so</em> much stuff about language design that I find it a good way to learn.  <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="87724" 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/getting-things-done-with-elixir-tips/11196/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-87724" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="87724"
                     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="88105" data-post-id="88105">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Justin" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Justin/120/11330_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Justin
                    <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>The Scala app was from scratch and the code probably fit in a single screen. I did Scala because JVM is compatible and supported, while BEAM is neither.</p>
<p>Edit:<br>
For perspective, one of the apps I’m working on now at my day job facilitates loading various packages into different containers. It’s modular, imperative, procedural code, about 7.8k lines of code total.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="88105" 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/getting-things-done-with-elixir-tips/11196/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-88105" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="88105"
                     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="88109" data-post-id="88109">
  <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="Justin" data-post="27" data-topic="11196">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/justin/48/11330_2.png" class="avatar"> Justin:</div>
<blockquote>
<p>I did Scala because JVM is compatible and supported, while BEAM is neither.</p>
</blockquote>
</aside>
<p>BEAM is not compatible and not supported… by what or who? <img src="https://forum.elixirforum.com/uploads/default/original/2X/d/d78fdc44278ab2b293cea0372f9826c2c55a694a.gif?v=15" title=":107:" class="emoji emoji-custom" alt=":107:" 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="88109" 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/getting-things-done-with-elixir-tips/11196/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-88109" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="88109"
                     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="88528" data-post-id="88528">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Justin" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Justin/120/11330_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Justin
                    <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>AIX and IBMi.</p>
<aside class="quote" data-post="6" data-topic="1982">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/k/a88e57/48.png" class="avatar">
    <div class="quote-title__text-content">
      <a href="https://forum.elixirforum.com/t/elixir-and-os400-anyone/1982/6" rel="nofollow">Elixir and OS400 anyone?</a> <a class="badge-category__wrapper " href="/c/chat-discussions/chat-discussions/167" rel="nofollow"><span data-category-id="167" style="--category-badge-color: #cca771; --category-badge-text-color: #FFFFFF; --parent-category-badge-color: #cca771;" data-parent-category-id="165" data-drop-close="true" class="badge-category --style-square --has-parent"><span class="badge-category__name">Discussions</span></span></a>
    </div>
  </div>
  <blockquote>
    No mate, it’s like a modern tank <img width="20" height="20" src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title="wink" alt="wink" class="emoji"> Heavy but fast, almost self operating beast. 
As integrated environment it shines in many cases but well… IBM is doing terrible job with promotion of the platform. It’s amazing and yet, almost unknown to non enterprise class specialists. Which is a real shame. 
By the way, combining it with Elixir would be glorious <img width="20" height="20" src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title="smiley" alt="smiley" class="emoji">
  </blockquote>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="88528" 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/getting-things-done-with-elixir-tips/11196/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-88528" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="88528"
                     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="88530" data-post-id="88530">
  <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>Well that’s a case by case thing. If your project has to live in that environment then obviously you will optimize for that.</p>
<p>I think it’s fairly safe to say that the BEAM runs on a lot of hardware and operating systems. It <em>might</em> be safe to say that your case is pretty niche but I am not informed well enough to claim that; it might easily be a semi-hidden market with a lot of money in it as 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="88530" 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/getting-things-done-with-elixir-tips/11196/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-88530" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="88530"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>