Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Dependency injection is great for testability and awful for code clarity as far as I can see.

I started using dependency injection as f(x,y, z) where x and y were generally the same.

I changed the reference in my code to y.x = x y.f(z) and it got so much clearer and dryer despite losing the dependency injection. Perhaps I'm doing this wrong but dependency injection seems like cruft from the test department. I am not an OO fanatic but OO is extremely useful for juggling a bunch of information in the best bad way possible. And juggling information in that best bad way possible is a way different problem from functional programming paradigm of finding perfect, elegant solutions to well defined problems.



I am not an OO fanatic but OO is extremely useful for juggling a bunch of information in the best bad way possible. And juggling information in that best bad way possible is a way different problem from functional programming paradigm of finding perfect, elegant solutions to well defined problems.

What's the difference between:

    data Foo = Foo { a :: String, b :: String }
    doSomething :: Foo -> String
    doSomething foo = a foo ++ b foo
and

   class Foo {
       String a;
       String b;

       String doSomething(){
           return self.a ++ self.b;
       }
   }
If there's some deep fundamental difference between functional programming and OOP, it's not this.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: