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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Sorry, my post was a bit off topic and more a reply to a reply rather than an answer to your question. <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"></p>
<aside class="quote no-group" data-username="QueenSveta" data-post="12" data-topic="14317">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/q/67e7ee/48.png" class="avatar"> QueenSveta:</div>
<blockquote>
<p>I just wanted to know if Elixir can be used for desktop development like C#/Python can, without touching the web (for example, can I create a GUI utility to read a file and preform calculations and save that file?)</p>
</blockquote>
</aside>
<p>You can, but GUI applications are probably not the most common use case. Elixir comes with Wx bindings but the API is a bit clunky. The built-in ‘observer’ application for example is done with Wx.</p>
<p>The problem with GUI is that most underlying libraries are C++ ones and being very object oriented. Hence the discomfort to use these in beam languages.</p>
<aside class="quote no-group" data-username="QueenSveta" data-post="12" data-topic="14317">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/q/67e7ee/48.png" class="avatar"> QueenSveta:</div>
<blockquote>
<p>. However, I realized that my question is misguided because I didn’t really understand Elixir and its user cases.</p>
</blockquote>
</aside>
<p>I don’t think it is. A lot of info you see on the web in relation to elixir is about web applications and phoenix.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="82544" 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/uses-for-elixir-programming/14317/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-82544" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="82544"
                     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="82548" data-post-id="82548">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="QueenSveta" data-post="12" data-topic="14317">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/q/67e7ee/48.png" class="avatar"> QueenSveta:</div>
<blockquote>
<p>Elixir can be used for desktop development like C#/Python can</p>
</blockquote>
</aside>
<p>The BEAM/Erlang was primarily designed to run <em>unattended systems</em> in a fault tolerant manner; concurrency and distribution were implemented in the service of fault tolerance. So working with Elixir(OTP) is quite a bit different than with mainstream desktop applications:</p>
<p><em>Designing for Scalability with Erlang/OTP Chapter 8: Supervisors - OTP Supervisors p.175:</em></p>
<aside class="quote no-group">
<blockquote>
<p>Note how we have grouped dependent processes together in one subset of the tree and related processes in another, starting them from left to right in order of dependency. This forms part of the supervision strategy of a system and in some situations is put in place not by the <strong>developer</strong>, who focuses only on what particular workers have to do, but by the <strong>architect</strong>, who has an overall view and understanding of the system and how the different components interact with each other.</p>
</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="82548" 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/uses-for-elixir-programming/14317/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-82548" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="82548"
                     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="84318" data-post-id="84318">
  <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>Elixir is pretty capable in many areas (as is Erlang). Me and others had private projects that do all sorts of other stuff – web crawlers, report generators, game bots – and Elixir has been very adequate.</p>
<p>That being said, Erlang / Elixir are very realistic about their use cases; if you want to do heavy number crunching and need every last penny out of your hardware, definitely do not go with them. If you need to code stuff like a DB index – which requires big and mutable data structures residing in fixed memory areas – then they might be a poor fit as well.</p>
<p>Outside of those scenarios though, Erlang / Elixir are very capable in almost whatever. Especially in the realm of distributed task orchestration, or transparently distributing work among all CPU cores, you will be very hard pressed to actually find something that is so good like Elixir.</p>
<p><em>(I’ve been voluntarily working on report generators in the last few months and the code that transparently distributes work among all CPU cores was 5 lines long… while the corresponding Java and Ruby sources were 30 - 100 lines long… and still didn’t get the job done well.)</em></p>
<p>A language’s “web popularity” is simply an artifact of what’s most sought after by the business people. The languages themselves remain quite flexible and able to do a lot regardless of what’s in popular demand.</p>
<p>You can achieve a lot in Elixir, as long as you don’t seek to replace C++ or Go or Rust with it.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="84318" 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/uses-for-elixir-programming/14317/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-84318" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="84318"
                     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>