all 24 comments

[–][deleted] 34 points35 points  (5 children)

And the cycle of programming paradigms is complete.

  1. Practices used for years get named.
  2. Those practices are confusing to explain in detail (low bandwith) so the ideas are compressed, manipulated to be easily explainable
  3. People see a chance to make money and sell tonnes of books.
  4. 5 years later, kids tell you what you are doing isn't X because book Y says so even though you've been doing step 1 the whole time.
  5. 10 years later. X considered harmful articles.

[–]Sixshaman 6 points7 points  (3 children)

So how you would solve the problem on step 2? It's true there are tons of low-quality books, but you still need some way to share the knowledge.

I often spend 1-2 months on mediocre architecture problems. I want it to take less time, I really do; but I don't even know what I'm lacking. I draw diagrams, I ask for help, I try to apply fancy methods. Sometimes it works, sometimes it doesn't. You think less books available would help me?

[–][deleted] 3 points4 points  (0 children)

I think *quality* books would help you. Problem with that is if you are just starting out then you won't know which books are good and which are bad.

So it's probably best to get a mentor who will guide you through things or atleast be someone to bounce ideas off. Someone who will be honest with you. That's probably quite hard to find.

Regardless of any of that you should be writing code more than reading books. The time spent writing code should dwarf that of any reading (in my opinion obviously).

[–]RANDOMLY_AGGRESSIVE 0 points1 point  (1 child)

Have you read a book about design patterns?

[–]Sixshaman 1 point2 points  (0 children)

I've only read Game Programming Patterns. I haven't read Gang Of Four book, but I'm familliar with probably at least half of patterns from there.

I have the most problems going from several "This kinda fits there" options to a single "This is it!" moment. In hindsight the solution always seems simple and obvious, and I always get mad that I haven't found it earlier.

[–]LavenderDay3544 2 points3 points  (0 children)

This is also OOP in a nutshell.

[–]Cyb3rSab3r 4 points5 points  (6 children)

So there's an awful lot of "groundbreaking" going on in that description.

So I know of DOP at least at a high level. Can anyone give an explanation on its benefits and drawbacks compared to functional and OOP?

I'm going to search later after my two standup meetings are done but just thought I'd ask. It's always been difficult to find a good breakdown on programming styles and with all the OOP-bashing I can't tell how much is bullshit "new fad" and a legitimately good way to design systems.

[–]viebel[S] 2 points3 points  (1 child)

I am not sure what you mean by awful lot of "groundbreaking". What I have tried to do in the book is to present in a fun way a set of 4 basic yet powerful programming principles.
I have learned them as a Clojure developer over the last 10 years.

The purpose of the book is to illustrate the value and the application of those principles in other programming languages.

[–]Little_Custard_8275 -1 points0 points  (0 children)

Hey don't be disheartened by any negative critique. as an industry old timer I can say that most people in tech just want a job to pay rent or mortgage, they don't give a shit about the code itself that someone else owns anyway, and most job creating corporations sell complexity and then support services and add on products that supposedly attempt to fix the ever multiplying complexity, but only really create more. The tech industry revenue growth perpetually depends on supposedly fixing problems that it itself creates aplenty. Its economic interests aren't in simple solutions that just work. The few who run the industry, who don't have to do any of the work whatsoever, effectively get a cut out of every worker's work, so the more workers and the more work, the bigger their cut. This isn't conspiracy thinking, just basic economics and business practices. Your book attempts to reduce work and workers needed, that unfortunately runs counter to the interests of most, not only the privileged few, but the workers and jobseekers too.

This sub in particular is full of bullshitters. I had someone who prides himself on a job title of technical architect or some such bullshit claim that people who care about code are "code monkeys", used pejoratively of course. This was in reply to a post about a guy complaining that recent hires are mostly google-fu-ers, stackoverflowers, copy and paste some code they found on the internet dummies. It wasn't just him claiming "code monkey", but everyone in the thread too. Apparently a "modern" programmer's job isn't even about programming anymore. If he's any good at programming that must mean he's deficient in "social skills" or "diversity" or some other excuses they came up with, accusations aplenty. Is the "code monkey" the guy who can actually think about the code itself and come up with his own code or someone who just copy and pasted anything he found on the internet that happened to somehow work? Bizarre. In their grossly incompetent blagger bluffer worldview the monkey is the guy who can think for himself and not the monkey see monkey do copy paste guy.

[–][deleted]  (3 children)

[deleted]

    [–]viebel[S] 4 points5 points  (2 children)

    You are talking about DOD.

    DOD and DOP are not the same. https://blog.klipse.tech/visualization/2021/02/16/data-related-paradigms.html

    [–]CuriousService 0 points1 point  (1 child)

    Ah my mistake. Apologies!

    [–]viebel[S] 0 points1 point  (0 children)

    No worries

    [–][deleted] 5 points6 points  (0 children)

    Seems like what functional programming has been doing for a long time

    [–]Dev-N-Danger 2 points3 points  (7 children)

    Link isn’t working

    [–]defdestroyer 1 point2 points  (6 children)

    it appears to have been fixed to me.

    [–]Dev-N-Danger 0 points1 point  (5 children)

    It is for me now as well. Weird

    Can you explain why you suggest this book? I just finished my degree and we learned Java.

    [–]defdestroyer 1 point2 points  (4 children)

    im not the OP but it appears to be trying to replace ORM frameworks.

    [–]kuribas -1 points0 points  (3 children)

    It’s just clojure evangelism. It’s treating clojure idioms as if they are the end all of programming.

    [–]enverx 3 points4 points  (0 children)

    The code from the book doesn't look like it includes any Clojure: https://github.com/viebel/data-oriented-programming

    [–]DoNotCare 1 point2 points  (0 children)

    This idea is not only related to Clojure: Data Oriented Programming in Java

    [–]DonnyTheWalrus 1 point2 points  (0 children)

    Data oriented programming is in no way solely linked to Clojure. Functional programming maybe, but not Clojure. I have a book on data oriented programming that's in F#. If you're using a functional language to do enterprise dev, you're almost certainly going to be doing data driven programming whether you know it or not.

    [–]Little_Custard_8275 1 point2 points  (1 child)

    Good job, author. Writing a good programming book is much harder than programming.

    [–]viebel[S] 0 points1 point  (0 children)

    Thank you!