mudasobwa
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
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
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
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
Popular in Blog Posts
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









