mudasobwa

mudasobwa

Creator of Cure

How Many Paradigms Does It Take to Screw In a Lightbulb?

Wrote a rant on why knowing at least five main paradigms of software development is a must for a decent coder.

Most Liked

ausimian

ausimian

I’m glad you acknowledge it as a ‘rant’. I’m a native English speaker so I reckon I understand the term, but for others, Google thinks it means ‘a loud, uncontrolled, or angry outburst, often involving lengthy complaints or exaggerated, irrational statements’. I don’t disagree.

This kind of invective is not helpful and, whether intentioned or not, ends up reflecting poorly on the community here in my opinion.

For the record, I’m invested in Elixir (literally), and have a full time team of 4 working on an Elixir product. I’ve been following Erlang and then Elixir for nearly 25 years now all up. I think, for the right problem spaces, it has clear advantages.

The issue I have is that, your ‘rant’ comes off as a purity spiral. I’ve been fortunate enough in my career to work with some genuinely great engineers, people who’ve solved hard problems and not only shipped, but shipped at scale.

From the Windows USB3 kernel stack, the DotNet Task Parallel Library or even Real Time Pose Estimation (HoloLens), these were - I observed - all problems solved by people totally immersed in only one paradigm - the most common one, imperative. They were open to ideas from maybe one other paradigm, notably functional, but would reasonably reject these ideas on solid engineering grounds e.g performance or ‘fit’.

Many extremely competent engineers never leave the ‘imperative’ paradigm in their entire career. The idea that you need to know other approaches to be classified as such is frankly bunk.

gregvaughn

gregvaughn

This is probably a nice thread to mention a couple of Pragmatic Bookshelf titles: Seven Languages in Seven Weeks and Seven More Languages in Seven Weeks. They give you a taste of multiple paradigms for those who want broader exposure.

tfwright

tfwright

that Wikipedia article isn’t helping me with my question unfortunately, because not only is its definition supremely vague in a way that makes it indistinguishable from much more obviously ad hoc terms like “style” (“relatively high-level way to conceptualize and structure the implementation”), the examples now are ordered in a semi hierarchical way that only raises more questions. So rather than choosing between imperative and object oriented programming, the latter is just a more specific kind of the former? But then what could it possibly mean to “choose between” them?

And let’s not even discuss the fact that “vibe-coding” is apparently a peer here

Where Next?

Popular in Blog Posts Top

biportal
Hi, I recently thought about a name for this Stack: Rust + Elixir + Phoenix. I came up with Runix (RuNix) and blogged about it on Medium....
New
jordiee
https://medium.com/@jpiepkow/team-based-login-with-accesspass-be236d4bd7dd
New
MarcinKasprowicz
What I genuinely value at my workplace is that I can easily explore new languages through internal mobility. Throughout my career within ...
New
Paradox
Testing is an important part of any modern piece of software. But writing tests can quickly become an exercise in frustration, with tons ...
New
mssantosdev
Our take on how to build a frontend style guide with Phoenix Components, Atomic Design and plain CSS, with focus on reusability and code ...
New
zachdaniel
In this post I explore the silos that exist in the Elixir ecosystem, the pros and cons, and what we can improve.
New
brainlid
You are storing some Phoenix LiveView state in the browser. You want to retrieve that saved state as early as possible to improve the use...
New
brainlid
I love LiveView. Navigating between views is so fast! This quick tip makes navigating feel instantaneous by adding a split-second delay b...
New
brainlid
Dialyzer is a tool that you’ve probably heard about in the Elixir community. You may have even used it. However, adding Dialyzer to an ex...
New
davydog187
Hello all! I wrote a blog post called Elixir Observability: OpenTelemetry, Lightstep, Honeycomb. The post post covers how to integrate ...
New

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36352 110
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New
jaysoifer
Is there a way to rollback a specific migration and only that one (“skipping” all the other ones)? Would mix ecto.rollback -v 200809061...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement