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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Qqwy" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Qqwy/120/1349_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Qqwy
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>TypeCheck Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>‘Moving away’ makes it sound like someone will never use the language again.</p>
<p>This is something that is definitely not true for me/my company: We most definitely use other languages besides Elixir. Even though we are using Elixir in some projects, we are still using Ruby/Rails because it is in some cases faster during prototyping (for the same reasons that make Elixir better suited for maintaining longer-lasting projects) and because of the larger pool of people who already know/use it.<br>
I am using Haskell as web-development language in a personal project, and also really liking it.<br>
Rust is something I’d love to be able to finally use in a real project as well.</p>
<p>However, neither of these have ‘replaced’ Elixir. Rather, they are separate tools with separate strengths/weaknesses, and each has its own purpose.</p>
<hr>
<p>To be honest, I don’t think I have ever ‘moved away’ from any language. There are definitely languages I enjoy less working in (C and Java come to mind) because of some design decisions that are now (arguably) viewed as dated. However, I still (have to…) work with those languages because not everything can be evergreen in this world. And I do like the intellectual challenge of writing clean code in Java, or <a href="https://github.com/Qqwy/c_treat" rel="noopener nofollow ugc">building my own Trait-system in C</a>.<br>
And another side note would be that there are also languages out there that I shun to touch with my ‘bare hands’: Rather than writing plain HTML/CSS/JS, I much prefer HAML/SCSS/ES6 (or even replacing ES6 with Elm) because of the tremendously improved development experience of these higher abstraction languages.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="118984" 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/have-you-moved-away-from-elixir-if-so-why/20302/174">Post #173</a>
	                </div>
	            </div>
              <div id="likers-container-118984" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="118984"
                     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 #173"></div>
  </section>
</div>
    <div class="postbit" id="119155" data-post-id="119155">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="gausby" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/gausby/120/1189_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  gausby
                    <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>«Moving away»…I am not a native english speaker, so perhaps I worded it poorly. I asked this question because I wanted to hear about the painpoints people feel when the honeymoon phase is over. I think the thread was somehow successful, because though it spun off into multiple directions, the answers still highlighted some interesting points.</p>
<p>Moving away from a language; I used to do NodeJS. Personally I will never use it again for anything—so I think there is such a thing as moving away from a language/thing/etc. But then again, I have moved away from Denmark, but I will most likely move back to Denmark at some point in the future <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="119155" 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/have-you-moved-away-from-elixir-if-so-why/20302/175">Post #174</a>
	                </div>
	            </div>
              <div id="likers-container-119155" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="119155"
                     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 #174"></div>
  </section>
</div>
    <div class="postbit" id="119174" data-post-id="119174">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="gausby" data-post="175" data-topic="20302">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/gausby/48/1189_2.png" class="avatar"> gausby:</div>
<blockquote>
<p>…so I think there is such a thing as moving away from a language…</p>
</blockquote>
</aside>
<p>Oh, absolutely yes. I have moved away from multiple languages. More often than not, it is a slow process. But there can come a point when you decide that a language is no longer useful enough to justify its pain points, that there are better options available, and stop taking new work in that language, while considering how to get out of maintenance work.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="119174" 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/have-you-moved-away-from-elixir-if-so-why/20302/176">Post #175</a>
	                </div>
	            </div>
              <div id="likers-container-119174" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="119174"
                     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 #175"></div>
  </section>
</div>
    <div class="postbit" id="119249" data-post-id="119249">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dogweather" data-post="134" data-topic="20302">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dogweather/48/1906_2.png" class="avatar"> dogweather:</div>
<blockquote>
<p>A big reason I’ve slowed down my Elixir use is because of the library designs which try to reduce compilation on code changes. Personally, I like the opposite: to make my compiler and tools do <em>more</em> work, not less. E.g., <a href="https://forum.elixirforum.com/t/i-want-compile-errors-from-router-ex-but-everything-compiles-fine/12153" rel="nofollow">I’d like the compiler/linker to tell me if I misspelled a Phoenix route, but it can’t </a>. The framework was <a href="https://forum.elixirforum.com/t/i-want-compile-errors-from-router-ex-but-everything-compiles-fine/12153/6" rel="nofollow">designed to avoid the implementation issue of compilation speed at the expense of safety </a>. Plus, I’ve heard that this “late linking” is desirable when you want to hot-swap updated modules into a running system.</p>
</blockquote>
</aside>
<p>It is not that late-linking is desirable for hot-swap. It is rather that, as a dynamic language, Elixir does not require a module to be available at compile time. This brings some nice properties too, such as straight-forward parallel compilation of modules.</p>
<p>But Elixir does come with a cross-reference tool and you could easily make all of those become errors by enabling <code>warnings_as_errors</code> in your project:</p>
<pre><code>[elixirc_options: [warnings_as_errors: true]]
</code></pre>
<p>Or if you want to enable it only for xref:</p>
<pre><code>[aliases: ["compile.xref": "compile.xref --warnings-as-errors"]]
</code></pre>
<p>So the tooling is there and it can do what you want, you just need to tell it to. <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="119249" data-batch-url="/posts/batch_likers">
                        20
                      </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/have-you-moved-away-from-elixir-if-so-why/20302/177">Post #176</a>
	                </div>
	            </div>
              <div id="likers-container-119249" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="119249"
                     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 #176"></div>
  </section>
</div>
    <div class="postbit" id="119268" data-post-id="119268">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you for you opinion!</p>
<p>Well, to discuss exact semantics, it may be true that Stream should be used instead of Enum, though we can get correct results in this case.</p>
<p>I agree it. Thank you.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="119268" 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/have-you-moved-away-from-elixir-if-so-why/20302/178">Post #177</a>
	                </div>
	            </div>
              <div id="likers-container-119268" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="119268"
                     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 #177"></div>
  </section>
</div>
    <div class="postbit" id="119292" data-post-id="119292">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you, Jose! I didn’t know about that tool/config, I’ll check it out.</p>
<p>I’m not sure that it would help here, though: There are no warnings for cases like this one.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="119292" 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/have-you-moved-away-from-elixir-if-so-why/20302/179">Post #178</a>
	                </div>
	            </div>
              <div id="likers-container-119292" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="119292"
                     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 #178"></div>
  </section>
</div>
    <div class="postbit" id="119295" data-post-id="119295">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It should. Generally speaking, if you invoke a module or a function that does not exist, Elixir will emit a warning.</p>
<p>In the router, the action is invoked dynamically (not because of performance but because of how the pipeline is designed), but you should catch mismatched module names as you mentioned in the issue.</p>
<p>EDIT: Pushed a fix to Phoenix to guarantee it happens: <a href="https://github.com/phoenixframework/phoenix/commit/e4378c3bc8ea6478bc80f2fe41f0516424ee106c" class="inline-onebox" rel="nofollow">Emit runtime checks for plugs in router · phoenixframework/phoenix@e4378c3 · GitHub</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="119295" data-batch-url="/posts/batch_likers">
                        11
                      </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/have-you-moved-away-from-elixir-if-so-why/20302/180">Post #179</a>
	                </div>
	            </div>
              <div id="likers-container-119295" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="119295"
                     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 #179"></div>
  </section>
</div>
    <div class="postbit" id="119298" data-post-id="119298">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you! IMO it’s a win when we give feedback like that. Here’s my use case, though:</p>
<p>I add a failing route:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">    get("/nothing", NoController, :no_action)
</code></pre>
<p>..and <code>mix test</code> compiles and runs with no warnings. (In real life, this would manifest as a broken refactoring, or a misspelled controller or action.)</p>
<p>I’d love to get a warning for a reference like this.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="119298" 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/have-you-moved-away-from-elixir-if-so-why/20302/181">Post #180</a>
	                </div>
	            </div>
              <div id="likers-container-119298" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="119298"
                     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 #180"></div>
  </section>
</div>
    <div class="postbit" id="119330" data-post-id="119330">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I edited my comment above and it links to a commit that does exactly that. It was used to emit the warning but it was accidentally removed once we added some optimizations. It will emit the warning in the next Phoenix version.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="119330" data-batch-url="/posts/batch_likers">
                        9
                      </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/have-you-moved-away-from-elixir-if-so-why/20302/182">Post #181</a>
	                </div>
	            </div>
              <div id="likers-container-119330" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="119330"
                     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 #181"></div>
  </section>
</div>
    <div class="postbit" id="119335" data-post-id="119335">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Awesome! That’s huge. Thank you.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="119335" 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/have-you-moved-away-from-elixir-if-so-why/20302/183">Post #182</a>
	                </div>
	            </div>
              <div id="likers-container-119335" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="119335"
                     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 #182"></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/20302/load_more?page=19">Load more posts (29 remaining)</a>
</div></template></turbo-stream>