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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>Don’t write GenServers.  Use them.</p>
</blockquote>
<p>As in, like… never write your own GenServer?  Are you talking from scratch?  Or literally never type <code>use GenServer</code> and find a lib that does what you’re looking to do?</p>
<p>Sorry to pick apart your succinct point, but as a n00b I’m really curious 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="203008" 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/you-and-elixir-in-2021-22-23/36881/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-203008" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203008"
                     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="203009" data-post-id="203009">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I wish I could write as succinctly as this <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20">  Instead of my ramble I wish I had just written this because this is exactly how I feel too.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="203009" 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/you-and-elixir-in-2021-22-23/36881/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-203009" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203009"
                     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="203010" data-post-id="203010">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I wouldn’t say never, but they are really hard to get right, so I’d recommend waiting a bit until you write GenServers, like 1 year or so.  You should be using GenServers that other people have written with a clear api and usage examples (like liveview or broadway).  There are a few cases (like a game with state) that are exceptions</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="203010" 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/you-and-elixir-in-2021-22-23/36881/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-203010" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203010"
                     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="203016" data-post-id="203016">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I had only this weekend documented the Elixir related books that I have read (or intend to read):</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://devrants.blog/2021/02/07/my-elixir-education-in-a-series-of-books/">
  <header class="source">
      <img src="https://devrants.blog/wp-content/uploads/2018/07/1099999.png?w=32" class="site-icon" alt="" width="32" height="32">

      <a href="https://devrants.blog/2021/02/07/my-elixir-education-in-a-series-of-books/" target="_blank" rel="noopener nofollow ugc" title="12:43PM - 07 February 2021">Developer Rants – 7 Feb 21</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:249/330;"><img src="https://i0.wp.com/devrants.blog/wp-content/uploads/2021/02/screenshot-2021-02-07-at-10.03.39.png?fit=440%2C330&amp;ssl=1" class="thumbnail" alt="" width="249" height="330"></div>

<h3><a href="https://devrants.blog/2021/02/07/my-elixir-education-in-a-series-of-books/" target="_blank" rel="noopener nofollow ugc">My Elixir Education in a Series of Books</a></h3>

  <p>I have been collecting a small library of Elixir books.This is an introduction to the breadth of the topics covered by Elixir. A lot of these are tutorial style books that need to be worked through…</p>


  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<p>I found Elixir a few years ago (oddly while browsing a bookshop). It seemed to be a more accessible version of Erlang.</p>
<p>Now it’s my goto language for small utilities.</p>
<p>I spend some time each day mentoring on <a href="http://exercism.io" rel="noopener nofollow ugc">exercism.io</a> to keep my hand in.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="203016" 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/you-and-elixir-in-2021-22-23/36881/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-203016" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203016"
                     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="203018" data-post-id="203018">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I have been toying with Elixir time to time for some years now, but I think this year will be finally the year that I will go full ahead and put some of my ideas in practice and release them for the world to see, and all this in Elixir <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>
<p>All the knowledge I am acquiring in this process will be collected under Phoenix360 project:</p>
<ul>
<li>Automated Debian server setup with Docker and Traefik through Cloud Config or bash script.</li>
<li>Debian server Hardening.</li>
<li>Docker hardening.</li>
<li>Phoenix and Elixir Hardening.</li>
<li>Development with Docker.</li>
<li>Localhost production for staging.</li>
<li>Building Docker Releases, that can also be extracted as a normal release.</li>
<li>Deployments with bash, and without the need to use Gitlab runners, Github actions or something similar:
<ul>
<li>Security is top priority, and using CI.CD pipeline increases the attack surface, including on the sever itself.</li>
<li>Just <code>bash bin/deploy.sh</code> from your PC to build the Docker release, deploy it to the target, and start it on the target. All this without using any tooling like Ansible, Puppet or Chef.</li>
</ul>
</li>
<li>The Phoenix360 web apps concept to run several apps under the same domain or as separated domains, but always using the same Cowboy server.</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="203018" 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/you-and-elixir-in-2021-22-23/36881/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-203018" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203018"
                     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="203048" data-post-id="203048">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<ul>
<li>I got the Programming Elixir 1.6 book using my <code>.edu</code> email. It became my new Bible.</li>
<li>I’ve been solving coding challenges with Elixir. Time and again, using a functional approach makes things easier to digest.</li>
<li>I’m planning to build my final year project using Phoenix and LiveView. Maybe the whole PETAL stack… <img src="https://forum.elixirforum.com/images/emoji/apple/sweat_smile.png?v=15" title=":sweat_smile:" class="emoji" alt=":sweat_smile:" loading="lazy" width="20" height="20"></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="203048" 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/you-and-elixir-in-2021-22-23/36881/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-203048" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203048"
                     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="203067" data-post-id="203067">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p><strong>Maybe you’ve just discovered Elixir and Erlang?</strong></p>
<ul>
<li>What brought you to it? (Was there a specific article, talk or person that prompted you?)</li>
<li>Which language did you come from?</li>
<li>How are you finding it?</li>
<li>How do you think you’ll use it?</li>
<li>Which bits are you finding easy, which, not so much?</li>
<li>Is there anything missing that you’d like to see included?</li>
</ul>
</blockquote>
</aside>
<p>Answers in order of questions:</p>
<p>New to Elixir and Erlang as of this past year. I saw a talk that I feel terrible for not remembering the name of, but the speaker was talking about how discovering Elixir and Phoenix changed his whole perspective on programming, web dev in particular. Quarantine hit and I decided that I would spend the whole thing just absorbing the world of Elixir, learning about Erlang and what was/is so special about it. Never looked back.</p>
<p>I originally landed on that talk while looking for alternatives to plain JS/React. I certainly found what I was looking for in Elixir and Phoenix.</p>
<p>I had no experience with functional programming or anything non-OO, so I have found it both immensely challenging and hugely rewarding. Every time I break through another hazard on the road to learning Elixir, I’m generally rewarded with something that feels like a super power.</p>
<p>I’ll be using it primarily to develop a sales and information platform for a company in an industry full of people who are VERY tech-phobic.</p>
<p>I don’t think I find any of it easy, but it’s ALL rewarding. The hardest thing for me is seeing the plumbing of a piece of software. I guess I’m really looking for a purpose-built IDE that has shockingly good debug tools. I’ve heard IntelliJ is a favorite, but the plugin was a little wonky last time I used it.</p>
<p>I think a better IDE story is missing as stated above, but this is almost certainly because I haven’t learned to fully utilize debugging tools beyond IO.inspecting everything to within an inch of its life, lol.</p>
<p>Hope this is useful!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="203067" 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/you-and-elixir-in-2021-22-23/36881/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-203067" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203067"
                     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="203068" data-post-id="203068">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>What first drew you to it (how long ago!?) and what keeps you here?</p>
</blockquote>
</aside>
<p>I was brought by boredom in Ruby.</p>
<p>Stockholm syndrome is keeping me there <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="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>How have <em>you</em> changed, perhaps while using it?</p>
</blockquote>
</aside>
<p>I started to see more that closures == objects (in Java/Ruby sense).</p>
<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>What do you think were the biggest strengths of Elixir/Erlang when you got into it and what do you think are its biggest strengths now?</p>
</blockquote>
</aside>
<p>FP and FP. Additionally the idea that the VM is the OS you are running your applications is quite nice (BEAM is an OS).</p>
<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>Is there anything you’d like to see more of or improved or included?</p>
</blockquote>
</aside>
<p>Integration between Erlang and Elixir. The Mix (Elixir) and Rebar3 (all other BEAM languages) is quite irritating.</p>
<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>Which bits do you love the most</p>
</blockquote>
</aside>
<p>Binary pattern matching and new <code>socket</code> module.</p>
<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>What’s your single most important tip to newbies?</p>
</blockquote>
</aside>
<p><code>receive</code> is blocking and (almost) “free” in regards to CPU time.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="203068" data-batch-url="/posts/batch_likers">
                        4
                      </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/you-and-elixir-in-2021-22-23/36881/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-203068" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203068"
                     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>
    <div class="postbit" id="203076" data-post-id="203076">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="AstonJ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/AstonJ/120/15_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  AstonJ
                    <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">
								<aside class="quote no-group" data-username="sodapopcan" data-post="14" data-topic="36881" 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/sodapopcan/48/34668_2.png" class="avatar"> sodapopcan:</div>
<blockquote>
<p>I wish I could write as succinctly as this <img src="https://forum.elixirforum.com/images/emoji/apple/smiley.png?v=15" title=":smiley:" class="emoji" alt=":smiley:" loading="lazy" width="20" height="20"> Instead of my ramble I wish I had just written this because this is exactly how I feel too.</p>
</blockquote>
</aside>
<p>Well I for one have really enjoyed reading everyone’s input, <em>especially</em> the longer posts! <img src="https://forum.elixirforum.com/uploads/default/original/2X/6/6c3193d1dd46244da3c8c6f719c9f5e2abdd5ae8.gif?v=15" title=":003:" class="emoji emoji-custom" alt=":003:" loading="lazy" width="20" height="20"></p>
<p>And it’s awesome seeing so much excitement from some of our newbies (props to you all!!) and in fact it has made me want to hurry up and get a couple of Phoenix pet projects done that I’ve been meaning to do for a while …you may not realise it but even as a newbie all your enthusiasm and excitement is actually helping keep the passion alive for some of us older dogs, too. So thank <em>you</em>! <img src="https://forum.elixirforum.com/images/emoji/apple/purple_heart.png?v=15" title=":purple_heart:" class="emoji" alt=":purple_heart:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group quote-post-not-found" data-username="WestKeys" data-post="19" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/westkeys/48/21675_2.png" class="avatar"> WestKeys:</div>
<blockquote>
<p>However, the one thing that really sealed the deal was the responsiveness of the community on this forum.</p>
</blockquote>
</aside>
<p>That’s awesome to hear! We have a great bunch here and it’s brilliant seeing more and more cool people like you join everyday <img src="https://forum.elixirforum.com/images/emoji/apple/sunglasses.png?v=15" title=":sunglasses:" class="emoji" alt=":sunglasses:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="appdevnick" data-post="20" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/appdevnick/48/20664_2.png" class="avatar"> appdevnick:</div>
<blockquote>
<p>Hope this is useful!</p>
</blockquote>
</aside>
<p>Absolutely!</p>
<p>Thank you everyone who has taken the time to respond to this thread - these types of threads are some of my favourite <img src="https://forum.elixirforum.com/images/emoji/apple/orange_heart.png?v=15" title=":orange_heart:" class="emoji" alt=":orange_heart:" 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="203076" data-batch-url="/posts/batch_likers">
                        7
                      </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/you-and-elixir-in-2021-22-23/36881/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-203076" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203076"
                     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="203165" data-post-id="203165">
  <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="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>What brought you to it? (Was there a specific article, talk or person that prompted you?)</p>
</blockquote>
</aside>
<p>Wanted to make a very slow Ruby on Rails reporting system faster. I already started learning Elixir some months ago and looked for an opportunity to utilize it in real business context. I eventually reduced those Ruby on Rails reports times from 3.5-4.0h to 5-8 minutes. It was a huge success!</p>
<p>Elixir did very naturally fit into such an ETL-like data processing pipeline. I respect it ever since.</p>
<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>Which language did you come from?</p>
</blockquote>
</aside>
<p>C/C++, Java, Ruby, PHP, JS, Golang. Then Elixir and then Rust. I am only sticking to these two lately.</p>
<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>How are you finding it?</p>
</blockquote>
</aside>
<p>The language and the basic tooling themselves are absolutely excellent. There aren’t many drawbacks to find.</p>
<p>I believe the next phase for Elixir would be to commoditize parts of web dev in general – like having a tool actually analyzing and “understanding” your Phoenix code and allowing you to seamlessly move it around (which goes beyond simple refactorings). That might prove to be impossible however.</p>
<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>How do you think you’ll use it?</p>
</blockquote>
</aside>
<p>Erlang’s BEAM lends itself <em>excellently</em> to anything that needs to work in parallel. Even fantastic languages with dead-serious hardcore (and experienced!) fanbase like Rust still can’t catch up to OTP’s guarantees. They are inching closer, though!</p>
<p>If your project is <em><strong>NOT</strong></em> a CLI program or any sort of a server that needs every last bit of CPU power per watt – then it is very likely good fit for Elixir. We live in a world where CPU cores increase and CPU frequency hasn’t moved for a long time and likely will not anytime soon. Use technologies that utilize all CPU cores.</p>
<p>To me that’s Elixir’s strongest benefit. Its fantastic meta-programming is a close second.</p>
<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>Which bits are you finding easy, which, not so much?</p>
</blockquote>
</aside>
<p>Piping is both easy and makes code readable. Love it, always will.</p>
<p>Reducing compilation times has been a challenge. Analyzing dependency graphs has been getting easier (with Elixir 1.11) but I’d appreciate seeing a tool that can give you direct and immediate insights: “module X seems to depends on 100+ files, extracting this function to another module will help”. A note for future improvement.</p>
<p>Dialyzer and typespecs remain pain in the rear to this day. But I don’t think that will ever change. It’s more likely that Facebook will make statically typed Erlang, or languages like Caramel and Gleam will gain prominence (they are statically typed as well). I don’t think Erlang’s legacy tooling can be expected to change at this point.</p>
<aside class="quote no-group" data-username="AstonJ" data-post="1" data-topic="36881">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar"> AstonJ:</div>
<blockquote>
<p>Is there anything missing that you’d like to see included?</p>
</blockquote>
</aside>
<p>More commoditization of, well, anything.</p>
<ul>
<li>CLI tools with which you can directly add / remove all needed bits of code for a new functionality in your REST / GraphQL app; you’ll only have to write 10-50 lines of business logic and all plumbing is handled for you.</li>
<li>Mentioned above: insights about improving compile times.</li>
<li>A <code>compat</code> package that makes sure that all Elixir projects can use upcoming API like e.g. <code>Enum.product</code> (coming in Elixir 1.12) even if they are at Elixir 1.6 at the moment.</li>
</ul>
<p>I am sure I am forgetting at least 5 more but hey, can’t keep them in my head all the time.</p>
<p>I could answer the other questions but this comment is too long already.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="203165" 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/you-and-elixir-in-2021-22-23/36881/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-203165" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="203165"
                     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>
</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/36881/load_more?page=3">Load more posts (62 remaining)</a>
</div></template></turbo-stream>