<story><title>GoodJob – a Postgres-based ActiveJob back end for Ruby on Rails</title><url>https://island94.org/2020/07/introducing-goodjob-1-0</url></story><parent_chain><item><author>rubber_duck</author><text>What&amp;#x27;s great about Rails ? Serious question from someone who landed into a mature Rails app and is now decidedly running away from that ecosystem after a year working in it.&lt;p&gt;Rails looks like an early take on MVC that was setup around fast project creation and encourages unmaintainable code - concerns are straight out retarded (a design pattern that encourages breaking encapsulation and makes dependencies impossible to trace) and fat models encourage coupling things that don&amp;#x27;t need to be coupled.&lt;p&gt;Then there&amp;#x27;s Ruby which in my opinion goes against Zen of Python which I&amp;#x27;m a fan of - aliases all over the place for same thing, pointless name shortening and stuff to sacrifice readability, rails breaking conventions of standard library...&lt;p&gt;In the context of when it got popular I understand why it got the hype - replacing the PHP SQL in views garbage and Java 6 verbosity with XML configure everything, and the horrible ASP monstrosity.&lt;p&gt;These days I&amp;#x27;d take Python as a more popular language, that I would say is better designed and has far better Windows support.&lt;p&gt;NPM&amp;#x2F;TypeScript and structural static typing is getting really good as well but is not as mature - but code sharing between client and server is a real thing.&lt;p&gt;Go emerged since the time of Rails hype.&lt;p&gt;.NET and JVM languages and frameworks got a lot better and scale far better with big code bases.&lt;p&gt;I don&amp;#x27;t really see where Rails is great compared to alternatives, it feels like legacy at this point. 
I&amp;#x27;m not saying you can&amp;#x27;t write good maintainable apps in Rails either - I&amp;#x27;m just saying other frameworks and languages will make it easier IMO.</text></item><item><author>WrtCdEvrydy</author><text>Rails was always great, JS just paid a lot more...&lt;p&gt;It felt great to get back into it having people pay to migrate their Rails apps to React and Node.</text></item><item><author>mhoad</author><text>I feel like Rails is really starting to see some new life that has felt a bit absent from it for a while now. It almost seems like there is a new generation of people extremely burned out from the constant churn of the “JS-all-the-things” movement that just took over most of web development for the past several years.&lt;p&gt;There is a lot of exciting stuff landing in Rails and it’s surrounding ecosystems at the moment and I think it’s still probably the best choice for many new SAAS &amp;#x2F; web app based companies and startups.</text></item></parent_chain><comment><author>dwheeler</author><text>&amp;gt; What&amp;#x27;s great about Rails ? Serious question from someone who landed into a mature Rails app and is now decidedly running away from that ecosystem after a year working in it.&lt;p&gt;Rails provides a mature system to quickly &amp;quot;get the job done&amp;quot; in a way that can be easily maintained and generally &amp;quot;just works&amp;quot;. It&amp;#x27;s especially good if you want to have a &lt;i&gt;small&lt;/i&gt; team manage an application. More details below.&lt;p&gt;&amp;gt; Rails looks like an early take on MVC that was setup around fast project creation and encourages unmaintainable code - concerns are straight out retarded (a design pattern that encourages breaking encapsulation and makes dependencies impossible to trace) and fat models encourage coupling things that don&amp;#x27;t need to be coupled.&lt;p&gt;That hasn&amp;#x27;t been my experience. Used well, Rails code tends to be relatively easy to follow. It&amp;#x27;s true that concerns can be easily overused. But that&amp;#x27;s true of many power tools; I use concerns sparingly, and then they work just fine.&lt;p&gt;&amp;gt; Then there&amp;#x27;s Ruby which in my opinion goes against Zen of Python which I&amp;#x27;m a fan of - aliases all over the place for same thing, pointless name shortening and stuff to sacrifice readability, rails breaking conventions of standard library...&lt;p&gt;This is an odd argument. I know both Ruby and Python. No, Ruby doesn&amp;#x27;t follow Python conventions. That&amp;#x27;s because Ruby is not Python. The shortening can in some places increase readability; YMMV.&lt;p&gt;Rails does extend the standard library in a few ways, but if you&amp;#x27;re using Rails, that&amp;#x27;s already baked in &amp;amp; you never see it otherwise. So again, that seems irrelevant. If you&amp;#x27;re using Rails... then you&amp;#x27;re using Rails.&lt;p&gt;&amp;gt; These days I&amp;#x27;d take Python as a more popular language, that I would say is better designed and has far better Windows support.&lt;p&gt;Python &amp;amp; Ruby are similar in many ways, it&amp;#x27;s hard to argue one is objectively far &amp;quot;better&amp;quot;.&lt;p&gt;I&amp;#x27;ve heard from others that Rails runs great on Windows 10, just use Windows Subsystem for Linux (WSL). I don&amp;#x27;t know how well Rails runs on native Windows. I know at one time that was important for many people. But for many people today, &amp;quot;run on native Windows&amp;quot; is irrelevant. The web application that I maintain that uses Rails runs on a Linux system, and while it would probably work on any Unix-like system, there&amp;#x27;s no interest in getting it to run on native Windows. Why do that? There&amp;#x27;s absolutely no justification for ever running that application on Windows, it would just cost more &amp;amp; crash more. If I want to run it on Windows for debugging, VirtualBox is great. Windows is disappearing completely from many server-side environments. Even Microsoft&amp;#x27;s own Azure runs Linux more than Windows: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.zdnet.com&amp;#x2F;article&amp;#x2F;microsoft-developer-reveals-linux-is-now-more-used-on-azure-than-windows-server&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.zdnet.com&amp;#x2F;article&amp;#x2F;microsoft-developer-reveals-li...&lt;/a&gt;&lt;p&gt;&amp;gt; NPM&amp;#x2F;TypeScript and structural static typing is getting really good as well but is not as mature - but code sharing between client and server is a real thing.&lt;p&gt;In many situations the sharing is so minimal as to be not worth it. I&amp;#x27;ve only found a &lt;i&gt;single&lt;/i&gt; function that would make sense on both client &amp;amp; server, and it was trivially implemented twice. That&amp;#x27;s not, by itself, a reason to force both sides to be the same language.&lt;p&gt;In many applications, &amp;quot;not as mature&amp;quot; means &amp;quot;don&amp;#x27;t use it&amp;quot;. I don&amp;#x27;t have time to waste debugging someone else&amp;#x27;s framework, especially when I&amp;#x27;m implementing a relatively straightforward CRUD application. I&amp;#x27;ll gladly use an immature system if it provides a vital capability unavailable elsewhere, but for simple CRUD applications that&amp;#x27;s absurd. I loathe fad-based engineering.&lt;p&gt;&amp;gt; I don&amp;#x27;t really see where Rails is great compared to alternatives, it feels like legacy at this point. I&amp;#x27;m not saying you can&amp;#x27;t write good maintainable apps in Rails either - I&amp;#x27;m just saying other frameworks and languages will make it easier IMO.&lt;p&gt;I think the main advantages of Rails are that it is:&lt;p&gt;- &lt;i&gt;mature&lt;/i&gt; - a lot of work has been spent to make sure the &amp;quot;special cases&amp;quot; work, and a large amount of functionality is there for immediate use. Like anything it has bugs &amp;amp; missing functions, but in general, if it&amp;#x27;s a common need it&amp;#x27;s easily available, easily works, and rarely has bugs.&lt;p&gt;- &lt;i&gt;integrated&lt;/i&gt; - while Rails is implemented as a set of libraries, they&amp;#x27;re conceived as a whole, so there&amp;#x27;s no effort to &amp;quot;make the parts work together&amp;quot; - they already work together.&lt;p&gt;- simplifies &amp;amp; speeds development by making a lot of convention decisions for you, via &amp;quot;convention over configuration&amp;quot;. For example, database tables use snake_case with plural names; model class names use CamelCase and are singular. Yes, Rails automatically does the singular&amp;#x2F;plural conversion! The conventions eliminates arguing &amp;amp; deciding conventions, doing the work to configure it, and makes the code more regular, but it&amp;#x27;s more painful if you hate their conventions &amp;amp; want to override them all.&lt;p&gt;Of course, there are many worthy alternatives. Rails isn&amp;#x27;t the be-all (what is?). But Rails is still a fine choice for many applications today; GitHub and GitLab are both Rails applications. E.g.: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;about.gitlab.com&amp;#x2F;blog&amp;#x2F;2018&amp;#x2F;10&amp;#x2F;29&amp;#x2F;why-we-use-rails-to-build-gitlab&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;about.gitlab.com&amp;#x2F;blog&amp;#x2F;2018&amp;#x2F;10&amp;#x2F;29&amp;#x2F;why-we-use-rails-to...&lt;/a&gt;&lt;p&gt;The biggest problem with Rails is that Ruby, like Python, is an extremely slow language. In most applications this is irrelevant; the correct way to speed things up is to cache things, and then it really isn&amp;#x27;t a problem. Rails comes with a very easy-to-use caching system. So folks, like GitLab, have found that they can identify just the hotspot &amp;amp; reimplement just that &lt;i&gt;small&lt;/i&gt; part. The same happens with Python, by the way; if you want fast Python, you either call &amp;quot;Python&amp;quot; code that&amp;#x27;s actually written in C, or rewrite your hotspot Python code into C. There&amp;#x27;s no such thing as a free lunch.&lt;p&gt;In particular, Rails has a large set of conventions. If you&amp;#x27;re willing to accept those conventions, a lot is done automatically for you. If you will continuously fight the conventions, then it&amp;#x27;s going to be a pain to work with.</text></comment>
<story><title>GoodJob – a Postgres-based ActiveJob back end for Ruby on Rails</title><url>https://island94.org/2020/07/introducing-goodjob-1-0</url></story><parent_chain><item><author>rubber_duck</author><text>What&amp;#x27;s great about Rails ? Serious question from someone who landed into a mature Rails app and is now decidedly running away from that ecosystem after a year working in it.&lt;p&gt;Rails looks like an early take on MVC that was setup around fast project creation and encourages unmaintainable code - concerns are straight out retarded (a design pattern that encourages breaking encapsulation and makes dependencies impossible to trace) and fat models encourage coupling things that don&amp;#x27;t need to be coupled.&lt;p&gt;Then there&amp;#x27;s Ruby which in my opinion goes against Zen of Python which I&amp;#x27;m a fan of - aliases all over the place for same thing, pointless name shortening and stuff to sacrifice readability, rails breaking conventions of standard library...&lt;p&gt;In the context of when it got popular I understand why it got the hype - replacing the PHP SQL in views garbage and Java 6 verbosity with XML configure everything, and the horrible ASP monstrosity.&lt;p&gt;These days I&amp;#x27;d take Python as a more popular language, that I would say is better designed and has far better Windows support.&lt;p&gt;NPM&amp;#x2F;TypeScript and structural static typing is getting really good as well but is not as mature - but code sharing between client and server is a real thing.&lt;p&gt;Go emerged since the time of Rails hype.&lt;p&gt;.NET and JVM languages and frameworks got a lot better and scale far better with big code bases.&lt;p&gt;I don&amp;#x27;t really see where Rails is great compared to alternatives, it feels like legacy at this point. 
I&amp;#x27;m not saying you can&amp;#x27;t write good maintainable apps in Rails either - I&amp;#x27;m just saying other frameworks and languages will make it easier IMO.</text></item><item><author>WrtCdEvrydy</author><text>Rails was always great, JS just paid a lot more...&lt;p&gt;It felt great to get back into it having people pay to migrate their Rails apps to React and Node.</text></item><item><author>mhoad</author><text>I feel like Rails is really starting to see some new life that has felt a bit absent from it for a while now. It almost seems like there is a new generation of people extremely burned out from the constant churn of the “JS-all-the-things” movement that just took over most of web development for the past several years.&lt;p&gt;There is a lot of exciting stuff landing in Rails and it’s surrounding ecosystems at the moment and I think it’s still probably the best choice for many new SAAS &amp;#x2F; web app based companies and startups.</text></item></parent_chain><comment><author>tomc1985</author><text>&amp;gt; Zen of Python&lt;p&gt;You lost me there. If you&amp;#x27;re coming from a Pythonic point of view you are doing Ruby wrong. It will never compare on that standard because it&amp;#x27;s not Python and it doesn&amp;#x27;t need to. Python&amp;#x27;s pillars are opinions, just like Ruby&amp;#x27;s.&lt;p&gt;Ruby&amp;#x27;s got it quirks but I consider Python to be the wrong one. Ruby&amp;#x27;s my zen (and luckily it pays good). Python syntax is wordy and awkward to me, and &amp;quot;Pythonic&amp;quot; might be great for newbies but I find its principles slow me down.&lt;p&gt;To each their own.</text></comment>