A little about this blog:
This blog is developed with Ruby on Rails (RoR), not hosted with services like Wix. I combined some online resources (that are rare nowadays for RoR) and my experience to design, develop, and host this website. I see many professional software engineers or data scientists I know have blogs or portfolio websites. Still, they usually host through web hosting services or blog services like Medium and GitHub. I know this would save much time and sometimes be more efficient in terms of adding new features and getting more viewers but developing my own website is what I still enjoy the most among any programming activities.Why RoR instead of React, Vue, Node, Flask, Django:
I started programming with RoR in 2016 and it's just been what I am good at and love.
Objectively saying, the most potent reason why RoR is that RoR has 176,189
(2023 APR) gems
available. Gems are readily programmed features that you can add to your website for free. You just have to follow their rules. Magically, most of the time, those gems do not conflict with each other.
This blog uses gems such as:
Stimulus Reflex: for component-based blog posting
impressionist: count views, and potentially data analysis
ransack: search function
and more.Pros and Cons of RoR:
RoR is known to be securer, faster (somewhat), and simpler (easier)
than some other competitors. In fact, although Twitter left, GitHub, Shopify, Airbnb, and more are still using Ruby on Rails. Some cons of RoR I heard are flexibility, cost, and speed
On top of that, according to information gathered to train ChatGPT until 2021, ChatGPT states:
Rapid Development: Ruby on Rails is known for its convention-over-configuration approach, which allows developers to build applications quickly and efficiently. It provides a set of conventions and best practices that can speed up development time significantly.
- Large and Active Community: Ruby on Rails has a large and vibrant community of developers. This means there are plenty of libraries, gems, and resources available, making it easier to find solutions to common problems.
- Mature Ecosystem: Rails has been around for many years, making it a mature framework with stable and well-tested libraries. This can contribute to a more stable development experience.
Convention over Configuration: The framework's "convention over configuration" philosophy reduces the need for developers to make decisions, as it automatically assumes the best default configuration based on the naming conventions they use.
- Good for Prototyping: Rails is excellent for building prototypes and minimum viable products (MVPs) due to its simplicity and ease of use.
Performance: While Ruby on Rails provides quick development, it might not be the best choice for highly performance-critical applications. Rails has historically been criticized for its performance compared to some other frameworks or languages.
Scalability: Scaling Rails applications can be a challenge. As the application grows and traffic increases, it might require careful optimization and architectural decisions to maintain performance.
Learning Curve: Though Rails is relatively beginner-friendly, learning the framework and the Ruby language might still take some time for developers who are new to the ecosystem.
Dependencies on Gems: Reliance on third-party gems might lead to maintenance issues and potential security vulnerabilities if those gems become outdated or unsupported.
Flexibility Constraints: The convention-over-configuration approach can be limiting in some cases, especially for developers who prefer more freedom in architectural choices.
If you want to learn RoR:
I learned RoR from RailsCasts(used to), GoRails, and many other resources on YouTube. Definitely check out GoRails because RailsCasts stopped posting a while back.
ChatGPT is a contributing writer for this post.