Em0nM4stodon,

Is being a "minimalist programmer" a thing? 👀

As in a programmer who specializes in coding with as few external dependencies as possible. Or is this just generally frown upon?

jochie,
@jochie@strangeweb.page avatar

@Em0nM4stodon I don't know if there is a name for it, but I imagine that for anyone who has been bitten by dependency hell in some form or another, the pendulum has swung in that direction: "I can add library XYZ, and who knows when that is going to bite me, because it's no longer maintained, has a security vulnerability in some unrelated part, etc, or I can write just what I need in 10-50 lines of code.”

Em0nM4stodon,

deleted_by_author

  • Loading...
  • jochie,
    @jochie@strangeweb.page avatar

    @Em0nM4stodon Fffffff, I'd happily suppressed that memory. I'm not responsibly for any Java code directly but we had a few agents on our EC2 instances that turned into moving targets as they stacked almost-fix upon almost-fix that we were pushing as quickly as we reasonably could. 😒

    My own experience with dependency hell is more in the realm of Perl, Python, how many versions of jquery we pull in, and groaning at Go source code repos that pull in the kitchen sink and them some more, it seems.

    BradRubenstein,

    IMHO "dependency discipline" is at the core of responsible system design.

    @Em0nM4stodon

    irenes,
    @irenes@mastodon.social avatar

    @Em0nM4stodon well it's a thing we do

    we see it as just good design sense. every dependency is a point of failure, every dependency is cognitive burden we'll have to deal with forever

    lispi314,
    @lispi314@udongein.xyz avatar

    @Em0nM4stodon It's kind of the default way to do things in Common Lisp as far as I can see.

    lispi314,
    @lispi314@udongein.xyz avatar

    @irenes @Em0nM4stodon Oh I see, yeah that makes sense.

    Unfortunate regarding the rudeness.

    irenes,
    @irenes@mastodon.social avatar
    irenes,
    @irenes@mastodon.social avatar

    @lispi314 @Em0nM4stodon we think you replied to the wrong thread though

    dalias,
    @dalias@hachyderm.io avatar

    @Em0nM4stodon It's a very good thing, but bad programmers don't recognize it and they dominate the industry.

    WPalant,

    @Em0nM4stodon It’s also called the Not Invented Here Syndrome, causing people to reinvent the wheel rather than use an external dependency.

    I definitely have this tendency. On the bright side: I realize by now that other people’s code will never look as bright and shiny as mine simply because it isn’t my code. Unfortunately, this realization doesn’t always stop me from wasting effort. I comfort myself with promises of benefits down the line, which might or might not actually occur.

    Em0nM4stodon,

    deleted_by_author

  • Loading...
  • WPalant,

    @Em0nM4stodon Being able to trust the code is one of those benefits that might or might not actually manifest somewhere down the line. It largely depends on your ability to produce code that does what it is supposed to do. 😀

    I’ve seen way too many codebases that would have clearly benefited from using an established solution. Way more than got into trouble because of using some third-party library which turned out problematic.

    WPalant,

    @Em0nM4stodon Case in question: somewhere someone decided that HTTP was so simple, they didn’t need an external dependency for it. So now I am looking at their implementation which parses HTTP responses via substring searches and recognizes exactly the two status codes 400 and 404. Oh, and it isn’t SSL-capable either, which might be the reason they download application updates via plain HTTP. So I’ve got to somehow convince them to throw that thing away and use some decent third-party solution. Preferable by demonstrating a critical buffer overflow, since they also allocate memory in an extremely manual way (no, mere MITM attack likely won’t cut it).

    Ohopstad,

    @Em0nM4stodon

    I apologize for my ignorance, but I think you may be talking about an embedded programmer? Though I may be wrong hahah

    Em0nM4stodon,

    deleted_by_author

  • Loading...
  • Ohopstad,

    @Em0nM4stodon

    so sorry, I just wanted to comment since I felt like I could contribute something, but I see you've been made aware of embedded programming elsewhere. so sorry, I love your content

    funes,

    @Em0nM4stodon I guess I always thought that was what you were supposed to do. Never thought it would be named something specific. Wikipedia has a whole article on minimalism in computing though: https://en.wikipedia.org/wiki/Minimalism_%28computing%29?wprov=sfla1

    khorwood,

    @Em0nM4stodon
    Not sure if there's a term for what you're describing, but a lot of us old-timers follow this practice.
    With the modern dependency hell cough nodejs cough, it can actually be beneficial for maintenance and security.

    Em0nM4stodon,

    deleted_by_author

  • Loading...
  • khorwood,

    @Em0nM4stodon
    To use an inclusive term I sometimes refer to it as being a craftsperson. Taking that extra time to craft your project or solution with care and discipline.
    It also seems to vary by ecosystem. Some favour reusing many small pieces of code, others prefer a more frugal approach to library reuse.
    Neither is inherently bad as long as the developer is taking the time to maintain their product.

    SpaceLifeForm,

    @Em0nM4stodon

    De0endency Hell is a thing. Avoid it.

    Ylfingr,

    @Em0nM4stodon Oh hey we do that.

    lobau,
    @lobau@noodle.social avatar

    @Em0nM4stodon
    I LOVE to minmax everything. Code with no dependencies, tiny stable ecospheres, tiny houses, demoscene, and so much more. Doing as much as possible with as little as possible is my favorite design constraint!

    RandomDamage,

    @Em0nM4stodon in some environments it's not just ecouraged but required, because of supply chain vulnerabilities

    lambda,
    @lambda@chaosfurs.social avatar

    @Em0nM4stodon I don't think there's a particular job title for this, but it feels like it'd be relatively common in any compliance-heavy industry. Certainly takes a particular kind of person.

    eniko,
    @eniko@peoplemaking.games avatar

    @Em0nM4stodon If it is I think I might be one

    Em0nM4stodon,

    deleted_by_author

  • Loading...
  • eniko,
    @eniko@peoplemaking.games avatar

    @Em0nM4stodon I feel like minimalist programmer might conjure ideas of code golfing instead. While having few dependencies can still mean you have lots of code, even verbose code. Independent programmer? >_>

    graves501,
    @graves501@fosstodon.org avatar

    @Em0nM4stodon Aren't embedded software developers kinda forced to be minimalist due to resource/hardware restrictions and limits? 🤔

    vestige,
    @vestige@mastodon.sdf.org avatar

    @graves501 @Em0nM4stodon

    That's true, and a lot of embedded devices are for automotive, aerospace, and medical equipment that are "safety critical" and using unvetted dependencies is irresponsible. Engineers might only be using CMSIS and a lightweight DO-178C/MISRA-compliant RTOS.

    waldschnecke,
    @waldschnecke@chaos.social avatar

    @Em0nM4stodon It dould be a thing. It should not even be special - everything is bloated these days it’s mindblowing

    wmd,
    @wmd@chaos.social avatar

    @Em0nM4stodon This is very much a thing. I also think it can be quite under valued.

    Em0nM4stodon,

    deleted_by_author

  • Loading...
  • wmd,
    @wmd@chaos.social avatar

    @Em0nM4stodon I'm not widely experienced in developer cultures. In the Perl community where I frequent it's a known approach that isn't frowned upon by everyone (people are mostly respectful of each other styles).

    Not sure about other terms, will give it some thought.

    bob_zim,

    @Em0nM4stodon @wmd Reminds me of what Wil Shipley described as a “coding insect”:

    http://blog.wilshipley.com/2013/12/my-doom-20th-anniversary-stories.html

  • All
  • Subscribed
  • Moderated
  • Favorites
  • programming
  • ngwrru68w68
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • anitta
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • provamag3
  • tester
  • Leos
  • megavids
  • JUstTest
  • All magazines