<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="379490" data-post-id="379490">
  <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="thiagomajesk" data-post="10" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/thiagomajesk/48/31904_2.png" class="avatar"> thiagomajesk:</div>
<blockquote>
<p>I do appreciate Ruby for its impact on tech culture</p>
</blockquote>
</aside>
<p>Same. And not even only that. Ruby holds a special place in my heart because I was centimeters away from quitting programming back in the dark days of the Enterprise Java horrors. A colleague pointed me at Ruby on Rails and this alone made me decide to continue doing programming as a career.</p>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/warning.png?v=15" title=":warning:" class="emoji" alt=":warning:" loading="lazy" width="20" height="20"> <strong><em>HOWEVER</em></strong>. <img src="https://forum.elixirforum.com/images/emoji/apple/warning.png?v=15" title=":warning:" class="emoji" alt=":warning:" loading="lazy" width="20" height="20"></p>
<p>I have witnessed many people let themselves be influenced by a single such pivotal event and carry romantic feelings and nostalgia for much longer than it would be rational for the careers of the most other programmers who are forced to adapt – or can see the cracks and how certain PL quirks waste time and energy that they really should not and so they keep looking for something better.</p>
<p>Ruby helped me both professionally and personally. It showed me that programming can have quicker iteration and be more interesting and involve actual gradual problem solving. It rekindled my hope that it was not all only dreary toiling until retirement.</p>
<p>But it’s a highly unimpressive language and there are multiple items that can be raised – that I’ll skip as this reply became too big already and I am ashamed I semi-monopolised the thread – that demonstrate this.</p>
<p>Ruby should be like the “rebound partner” in the dating lingo: somebody you spend some time with after a toxic relationship, just to see how much different can things be, so you can heal and be open to love again… but in the future, and with another person.</p>
<p>Ruby should be a phase in one’s professional path. Not the final stop. It’s too primitive and raw to be a final stop.</p>
<aside class="quote no-group" data-username="thiagomajesk" data-post="10" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/thiagomajesk/48/31904_2.png" class="avatar"> thiagomajesk:</div>
<blockquote>
<p>people rarely care about correctness, or technology for what matters - and I think there’s an underlying lesson related to tech enshitification as well, but I digress.</p>
</blockquote>
</aside>
<p>Feel free to open a new thread! I love chatting about that in particular.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379490" 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/why-so-serious/73559/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-379490" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379490"
                     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 #11"></div>
  </section>
</div>
    <div class="postbit" id="379497" data-post-id="379497">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dimitarvp" data-post="12" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>Ruby should be like the “rebound partner” in the dating lingo: somebody you spend some time with after a toxic relationship, just to see how much different can things be, so you can heal and be open to love again… but in the future, and with another person.</p>
</blockquote>
</aside>
<p>Hehe. That blog post will get you to the top of Hacker News <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> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379497" 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/why-so-serious/73559/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-379497" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379497"
                     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="379501" data-post-id="379501">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="derek-zhou" data-post="11" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/derek-zhou/48/19943_2.png" class="avatar"> derek-zhou:</div>
<blockquote>
<p>Elixir gives you more leeway to deviate from the “one true way”, so you can “swim against the stream” here and there</p>
</blockquote>
</aside>
<p>This is a property for which I have yet to come up with a name but which I have come to appreciate is very important. I have tried “power” or “powerful”, but it’s not quite right. Maybe it’s easier to explain what I mean by example.</p>
<p>I would much rather write my build scripts in Python than YAML. I would prefer something like JSX to string templates. These are simple examples and should be obvious to most, but this concept can cut quite deep.</p>
<p>I very much like React’s engine and the way it models rewindable code. It’s easy to look at it and say, this is very unsophisticated, we can replace these blunt components with a fine-grained reactive graph. And at first this seems like a great idea, and everything is going fine and it’s very fast, and then you wake up one day and <a href="https://docs.solidjs.com/reference/components/show" rel="noopener nofollow ugc">your if statements are components</a>.</p>
<p>And I have picked on Solid here, but you might notice that Phoenix has gone down a similar path as of late with <code>:if</code> and <code>:for</code>. Really, it seems like most tools end up like this, as though it’s some sort of trap which takes very careful and deliberate design to avoid. I am truly impressed that React managed to consistently ship such elegant abstractions for so long (probably not anymore).</p>
<p>But perhaps the truly goated example of this is Erlang, which has delivered on its underlying message passing abstraction for nearly 40 years. Like, this thing has lived through personal computing, the rise of superscalar and multicore processors, the shift from mainframes to commodity hardware, the ossification of that model into “cloud computing”, the <em>entire history of the web</em>, and throughout <em>all of that</em> has maintained relevance as a useful abstraction. I cannot imagine how much wisdom and care must have gone into that.</p>
<p>I hope that, someday, I will be wise enough to design such things. Either way I will keep trying.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379501" 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/why-so-serious/73559/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-379501" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379501"
                     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="379517" data-post-id="379517">
  <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="cmo" data-post="13" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cmo/48/19618_2.png" class="avatar"> cmo:</div>
<blockquote>
<p>Hehe. That blog post will get you to the top of Hacker News <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>
</blockquote>
</aside>
<p>Will it? I’ve been downvoted to hell a few times as well. <img src="https://forum.elixirforum.com/images/emoji/apple/laughing.png?v=15" title=":laughing:" class="emoji" alt=":laughing:" loading="lazy" width="20" height="20"> Many HN-ers really don’t like their group-think challenged. I had cases where I was actually toxic and too bitter for such a civilized forum like theirs and I have chatted multiple times with their top moderator – <code>@dang</code> – about it; it was almost therapy and quite the interesting experience in itself. It helped me write my replies in better alignment of what I wanted to say, not what I felt in the moment.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379517" 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/why-so-serious/73559/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-379517" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379517"
                     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="379518" data-post-id="379518">
  <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
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I am not sure why we are even debating a rage-bait article tbh (something we will probably see more of over time because platforms like Wired depend on traffic and many of those platforms are currently suffering - not just because of AI, but because of all the dopamine-hit apps that have got a large chunk of people addicted).</p>
<p>But anyway..</p>
<aside class="quote no-group" data-username="dimitarvp" data-post="3" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>Unless those reasons are given in more detail and they are proven to demonstrate technical superiority compared to most other popular PLs out there, then the original statement stands. “Loving” a language does not have much correlation of how well it solves most problems out there. Many people love language either because of syntax (superficial and unimportant and not a “reason” at all) or because <em>it solved a particular set of problems they had at the time that were important to them</em> which, needless to say, is not “most problems that are important to solve with technology out there”.</p>
<p>I view Ruby as a glorified shell scripting language nowadays. That’s what it really is and it’s not an accident that Homebrew chose it; it fits what they need to do very well because dealing with weird bash-isms can make you want to hang yourself. So they went one abstraction layer above to get rid of endless pointless complexity churn. Ruby absolutely is a very solid choice for their use-case.</p>
</blockquote>
</aside>
<p>You just contradicted yourself over the course of two paragraphs Dimi… in one you are essentially saying Ruby has no technical merit, and in the other you provide a very solid example <img src="https://forum.elixirforum.com/uploads/default/original/2X/7/776053aa22968f83c10e90c98b23aa0ddd5c9d47.gif?v=15" title=":lol:" class="emoji emoji-custom" alt=":lol:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group quote-modified" data-username="dimitarvp" data-post="3" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>Unless those reasons are given in more detail…</p>
</blockquote>
</aside>
<p>I wrote a <a href="https://astonj.com/whats-special-about-ruby/" rel="nofollow">blog post going in to some of them nearly 15 years ago</a>, now there are even more reasons.</p>
<p>Some of them may or may not resonate with you, but it’s undeniable that Ruby has played an important role in shaping our industry with far-reaching impact and influence, one example is Rails - which many others are still copying or being influenced by to this day. Even our own Phoenix was inspired by and seen as a spiritual successor to Rails, and Elixir itself is influenced by and is widely considered as a child of Ruby.</p>
<p>The author downplaying the impact Ruby has had on the industry is kinda dumb, but like I said, rage-bait gets clicks and I expect they’re in desperate need of them of right now.</p>
<aside class="quote no-group" data-username="dimitarvp" data-post="12" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>Ruby should be like the “rebound partner” in the dating lingo: somebody you spend some time with after a toxic relationship, just to see how much different can things be, so you can heal and be open to love again… but in the future, and with another person.</p>
</blockquote>
</aside>
<aside class="quote no-group" data-username="cmo" data-post="13" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cmo/48/19618_2.png" class="avatar"> cmo:</div>
<blockquote>
<p>Hehe. That blog post will get you to the top of Hacker News <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>
</blockquote>
</aside>
<p>Well he’s almost there… many Rubyists say “I came for Rails but stayed for Ruby” <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>I see many similarities between Elixir and Ruby, especially on the things that aren’t just ‘technical’, things like community, philosophy, culture, intuitiveness, etc. These are all things that can grow a following, technical merit alone, cannot (otherwise we’d all be writing machine code or Assembly).</p>
<p>But each to their own. If that author wants to write-off Ruby (or Elixir), their loss <img src="https://forum.elixirforum.com/images/emoji/apple/upside_down_face.png?v=15" title=":upside_down_face:" class="emoji" alt=":upside_down_face:" 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="379518" 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/why-so-serious/73559/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-379518" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379518"
                     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="379520" data-post-id="379520">
  <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="16" data-topic="73559">
<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>You just contradicted yourself over the course of two paragraphs Dimi… in one you are essentially saying Ruby has no technical merit, and in the other you provide a very solid example <img src="https://forum.elixirforum.com/uploads/default/original/2X/7/776053aa22968f83c10e90c98b23aa0ddd5c9d47.gif?v=15" title=":lol:" class="emoji emoji-custom" alt=":lol:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>I did not say Ruby has <em>zero</em> merit. I said it barely has any niches left for it today, and pointed at one that is still very much valid.</p>
<aside class="quote no-group" data-username="AstonJ" data-post="16" data-topic="73559">
<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>Some of them may or may not resonate with you, but it’s undeniable that Ruby has played an important role in shaping our industry with far-reaching impact and influence</p>
</blockquote>
</aside>
<p>Yes, and I recognize that, and said so in following replies.</p>
<p>Crucial detail here being “has played”. Past tense. Time to move on. That’s my chief problem: people hold on to nostalgia and don’t move on. If you want us to argue – attack this one premise. IMO on everything else we can easily agree.</p>
<hr>
<p>The rest is you mostly appealing to “spiritual” influences that nobody has actually denied. But again, time to move on. I for one don’t plan to sit with my kids or grandkids one day and tell them: “And it all began with Ruby…”, do you? <img src="https://forum.elixirforum.com/uploads/default/original/2X/7/776053aa22968f83c10e90c98b23aa0ddd5c9d47.gif?v=15" title=":lol:" class="emoji emoji-custom" alt=":lol:" loading="lazy" width="20" height="20"></p>
<p>Would you start a new non-hobby / professional project in Ruby, today? If so, why exactly? What would be the technical and non-emotional justification? Stick to super cold facts only, I am interested.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379520" 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/why-so-serious/73559/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-379520" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379520"
                     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="379521" data-post-id="379521">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="thiagomajesk" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/thiagomajesk/120/31904_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  thiagomajesk
                    <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="AstonJ" data-post="16" data-topic="73559">
<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>I am not sure why we are even debating a rage-bait article tbh (something we will probably see more of over time because platforms like Wired depend on traffic and many of those platforms are currently suffering - not just because of AI, but because of all the dopamine-hit apps that have got a large chunk of people addicted).</p>
</blockquote>
</aside>
<p>BTW, I think it’s important to say that I wasn’t trying to promote the original rage-bait article; my intention was to use the reply post as a call for some introspection. I honestly didn’t expect the thread to get this much traction, haha. Still, I really appreciate the thoughtful replies <img src="https://forum.elixirforum.com/images/emoji/apple/folded_hands.png?v=15" title=":folded_hands:" class="emoji" alt=":folded_hands:" loading="lazy" width="20" height="20"><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"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379521" 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/why-so-serious/73559/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-379521" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379521"
                     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="379594" data-post-id="379594">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dimitarvp" data-post="17" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>Time to move on. That’s my chief problem: people hold on to nostalgia and don’t move on.</p>
</blockquote>
</aside>
<p>But that’s the thing: it’s <em>hard</em> to move on. Tools become entrenched both in systems and in the zeitgeist.</p>
<p>It doesn’t help that hype cycles lead to anti-hype cycles. MySQL was bad and everyone knew it, so along came MongoDB. But the creators of MongoDB were negligent and careless, and everyone found out, so the pendulum swung back to Postgres, a database which is ironically mostly worse than MySQL.</p>
<p>And really, I mean, what do you say to that? What do you say to the fact that we are a quarter way through the century and the most hyped tech around is a database with a 30-year-old MVCC storage engine that has to be carefully managed with VACUUMs or it will just randomly explode. Why has this happened?</p>
<p>Why is it that I can’t just spin up 3 or 4 copies of the database and have them network to teach other, form a consensus cluster, and smoothly balance load and tolerate failures? Why am I expected to shard my data by hand? Why do I have to manually fail over when the primary goes down? <em>Why is there a primary?</em> Why do I have to <em>think</em> about this?</p>
<p>Does this technology just not exist? News flash: this technology has existed <em>in production in the real world</em> for nearly 20 years. There have been fully open implementations that you can peek at and understand for nearly 10 years. There is nothing, <em>absolutely nothing</em> remarkable about any of this.</p>
<p>And yet, the other day I read a comment (on Lobsters) where someone lamented that distributed systems are too <em>complicated</em> and <em>brittle</em> and that single-master systems are better and then proceeded to unironically cite GFS as an example. The same GFS which happens to be my favorite distributed systems paper. The same GFS which despite its single master had by far and away the most cursed consistency model I have ever seen. The same GFS which built Google, but which became so legendary for its inability to tolerate faults that they led a massive company-wide initiative to migrate everything off of it, an initiative which was so wide-reaching and painful that their SRE team (the best in the world, at least then) went on to <em>write a literal book about how painful it was</em>.</p>
<p>But it takes time and energy to change the zeitgeist, and people don’t know any better. They don’t know the reason that distributed systems were so unreliable and brittle was that their designers didn’t understand how to properly test them, i.e. a pure skill issue. They don’t know that this problem was entirely solved by the pioneering work on practical Deterministic Simulation Testing by the FoundationDB team over 15 years ago, a torch carried today by the Tigerbeetle team, the Antithesis team, and, at least a little bit, by myself.</p>
<p>And yet I come onto this niche forum for a programming language which is (at least ostensibly) designed for building distributed systems, and I utter the accursed words “<a href="https://en.wikipedia.org/wiki/Software_testing#Property_testing" rel="noopener nofollow ugc">unit tests are bad actually</a>”, and immediately four people come out of the woodwork (including you Dimi!) to complain that they think that unit tests are good, and of course I cannot possibly blame any of you, because you don’t know any better, and I know that very recently I did not know any better, until I actually tried writing unit tests for a database and learned by suffering that <em>you cannot do that</em>.</p>
<p>Time to move on. Or perhaps, <em>it takes time to move on</em> <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="379594" 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/why-so-serious/73559/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-379594" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379594"
                     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 #18"></div>
  </section>
</div>
    <div class="postbit" id="379599" data-post-id="379599">
  <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="garrison" data-post="19" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>and I utter the accursed words “<a href="https://en.wikipedia.org/wiki/Software_testing#Property_testing" rel="noopener nofollow ugc">unit tests are bad actually</a>”, and immediately four people come out of the woodwork (including you Dimi!) to complain that they think that unit tests are good, and of course I cannot possibly blame any of you, because you don’t know any better</p>
</blockquote>
</aside>
<p>I share your frustration with the current state of affairs and it is very justified – but putting words in my mouth (or that of others) is undermining the rest of your argument. Show me where I “came out of the woodwork” and “complained that unit tests are good”. There is no such thing. I am fairly sure my tone was not outraged or defensive there. And I vaguely remember saying that for your work normal unit tests indeed are more or less indeed useless but that for normal CRUD work – one that most of us [are forced to] do – they are quite necessary. To what extent and if many people are overdoing them is an interesting discussion but not in this thread.</p>
<p>Probably the reason for your rather uncharitable statements is that there is context that is not dear to your heart and is not close to your mind, as demonstrated right here:</p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>They don’t know the reason that distributed systems were so unreliable and brittle was that their designers didn’t understand how to properly test them, i.e. a pure skill issue.</p>
</blockquote>
</aside>
<p>…which is definitely a part of the issue but it’s more like a consequence and not a root cause. A symptom of the sickness, not the actual sickness.</p>
<p>The root cause is the eternal race to the bottom that 99.99999% of people working in IT have to endure and just watch helplessly how the entire area sluggishly staggers and stumbles, making one drunken accidental step in 3 years, whereas just a few hundred talented individuals can make it jump 100 meters in a fraction of the time.</p>
<p>You think I and many others didn’t understand the limitations of the tech we worked with, and those we still work with? I knew Java was not fit for purpose of what was coming (apps with many parallel users)… back in 2005, after I worked with it for a year and half. Thousands of other examples exist. Including my unpopular opinion about Ruby in this very thread.</p>
<p>I am not Lara Croft. I can’t work on whatever tickles my fancy that season. I am forced to go where the money is because I want to eat, be able to travel every now and then and buy a house and at least not be afraid of banks seizing the property where I sleep, at the twilight of my life.</p>
<p>(Commercially and career-wise I started regretting picking Elixir. If I can’t find a stable employment with it in the next 1-2 years, I am jumping ship. You heard it here first!)</p>
<p>You seem to come from a privileged position, if you allow me an assumption that’s partially backed by observing your comments on this forum. It’s very easy to assume others are unskilled but you’d be missing the forest for the trees if you go down that (rather contemptuous) path.</p>
<p>And hey, look, I get it. You and I and many others seem to indeed come from the 575th century (sadly I am sure nobody will get that reference <img src="https://forum.elixirforum.com/images/emoji/apple/pensive_face.png?v=15" title=":pensive_face:" class="emoji" alt=":pensive_face:" loading="lazy" width="20" height="20">) and we are wondering WTF are we doing here in the barbaric ages. I struggle with this my entire life.</p>
<p>But I invite you to be our brother in arms, not an aristocrat scoffing to himself: “Hmph. Peasants!”</p>
<p>(And I know you’ll deny doing that. But I feel obliged to tell you what does it look like you are projecting outwards. I know you don’t mean ill but you should work on your presentation.)</p>
<hr>
<p><img src="https://forum.elixirforum.com/images/emoji/apple/notebook_with_decorative_cover.png?v=15" title=":notebook_with_decorative_cover:" class="emoji" alt=":notebook_with_decorative_cover:" loading="lazy" width="20" height="20"> BACK ON TOPIC FOR A MINUTE. <img src="https://forum.elixirforum.com/images/emoji/apple/notebook_with_decorative_cover.png?v=15" title=":notebook_with_decorative_cover:" class="emoji" alt=":notebook_with_decorative_cover:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>But that’s the thing: it’s <em>hard</em> to move on. Tools become entrenched both in systems and in the zeitgeist.</p>
</blockquote>
</aside>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>But it takes time and energy to change the zeitgeist</p>
</blockquote>
</aside>
<p>The latter part is IMO the root cause. Human brains are intrinsically extremely limited due to running on sugars and producing those in enough amounts for the brain to work even better will accidentally destroy all the machinery that keeps the brain alive so yeah, well, human brains do extreme inference and extrapolation in order to be energy-efficient (as mentioned in a previous comment). Which leads to them going with the flow and not caring. And doing sweeping generalizations. <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>
<p>Combine that with the fact that most people in IT are there just for the money which adds one more extremely strong temptation to just do the bare minimum and never rock the boat.</p>
<p><em>Et voila</em>, welcome to the state of IT come 2026. Oh well. <img src="https://forum.elixirforum.com/images/emoji/apple/confused.png?v=15" title=":confused:" class="emoji" alt=":confused:" 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="379599" 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/why-so-serious/73559/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-379599" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379599"
                     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="379602" data-post-id="379602">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="dimitarvp" data-post="20" data-topic="73559">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/48/38664_2.png" class="avatar"> dimitarvp:</div>
<blockquote>
<p>I am fairly sure my tone was not outraged or defensive there.</p>
</blockquote>
</aside>
<p>It absolutely was not. Your comment was very restrained and respectful, and I very much appreciated it. You also kinda dodged the testing discussion, which I didn’t fully recall (it was a while ago!).</p>
<p>What I’m trying to get at, though, is that even if you had committed to a more aggressive defense of unit testing (as some did!) I would <em>still</em> take no issue with that, because that’s totally normal and reasonable. If I criticize something and then someone else defends it, <em>that is normal</em>. I expect that to happen. Of course I will still reply in disagreement, because that is what you do when you disagree.</p>
<p>That is the theme of my post here: resistance to change is normal and healthy, but also sometimes wrong. And it’s actually <em>really hard</em> to tell when it’s wrong. It’s hard to tell when it’s time to move on. It’s hard to understand why Postgres is not a great database in 2025. It’s hard to tell why unit tests suck for finding bugs until you actually <em>have a need</em> to hunt deep bugs, and most simply do not!</p>
<p>Your quote leaves out the next line, which was actually very important: I was trying to suggest that I could just as easily have done the same thing (defended TDD) if I didn’t just so happen to have known better at that moment in time. And I have only <em>just discovered</em> how great PBT is! I would imagine someone who’s been writing property tests for decades would look at me and shake their head. I’m not even good at writing them yet! I am trying, though.</p>
<p>I remember a while ago, on here, I suggested that it would be nice to have computed properties in Phoenix, and someone replied that they didn’t like them, and I was all bitter because I thought they would solve some problems I was having. Except after further educating myself on the topic I think that person was right, and I was wrong. But how could I have known? That’s just how it is.</p>
<p>Maybe my tone was slightly off (“woodwork” was a choice) but I liked the prose. Apologies.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="379602" 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/why-so-serious/73559/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-379602" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="379602"
                     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>
</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/73559/load_more?page=3">Load more posts (20 remaining)</a>
</div></template></turbo-stream>