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

tmartin8080
Sharing some articles I’ve written recently while working in Elixir. Some are how-to guides and others for reference. Will update this ...
New
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
AstonJ
Elixir Blog Posts How to use this section You can post links to your blog posts either in one of the Official Blog Posts threads, or, vi...
New
lawik
We all have varying degrees of exposure to Big Tech. Some of it seems fine, stable and can be relied on. Some of it feels like shifting s...
New
gaggle
This post explores different ways to do test automation in Elixir, focusing on how to handle dependency injection — covering patterns, li...
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
ConnorRigby
Just finished a post for Embedded Elixir and I thought it should be cross-posted here: https://embedded-elixir.com/post/2018-09-25-mocks...
New
mudasobwa
Blogged about the motivation and reasoning behind my idea to create yet another FSM library. Long story short: I did it in a proper way :...
New
paulanthonywilson
I had a bit of a mini-adventure following Sobelow’s advice on adding a CSP to a Phoenix App. If you want to follow along, or want to add ...
New

Other popular topics Top

AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
Lily
In templates/appointment/index.html.eex: <%= for appointment <- @appointments do %> <tr> <td><%= appoi...
New
RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
Brian
What is the proper way to load a module from a file in to IEX? In the python world, doing something like this pretty standard: from ....
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement