27 comments

  1. Looking forward to the OOP section of the course, I've found getting my head around it difficult in the past and think with your teaching style, I will finally grasp it!

  2. Great video, that joke, is almost an understatement, OOP can be over used and abused. It does not have to be that way, Functional Programming is a great choice. JQuery(everybody's favorite JavaScript framework) is based on Functional Programming. I love OOP, but over the years, I have learned that you should not over use it. Even when you are programming in language like C#, you don't need to create a class for everything.

  3. Hi, Stefan, very interesting video as usual 🙂 I am working as independent contractor and thinking of making a step forward in my career and start my own company. I know you had to make that step at some point as well, I would be interested to hear how did that go for you? What does it take to make that step?

  4. Object-oriented doesn't preclude other designs. For example, take your page of Java code to send an e-mail, and then create a helper method sendEmail(addr). The page of code is not long because of OOP per se, it is because the knowledge of the details of sending an e-mail are in that code.

  5. Stafan, please recommend the best sources to learn PHP, in your opinion. (Including the most suitable for Intermediate/Advanced PHP level your courses ).

  6. So functional programming is great for quick rough drafts of your program and testing. But OOP is better for when you finally want to completely run a more flexible, complex, and faster program? If what I said before is true that would mean it's like a New York hotdog stand (FP) who has just started selling with simple ingredients and then moving on over to a restaurant (OOP) with the addition of more employees and additional menu items?

  7. I have two questions about poineer Apps and having your own website or App?
    1- If you are not a programmer and you have ideas of Apps you think it is going to be successful and pioneer . What is better to learn programming or to higher a programmer?
    2- why there are millions of professionals programmers and not all of them have their own successful Apps ? Do they have the coding skills but no creative ideas?

  8. I think that we shouldn't subscribe to any one particular programming ideology. Take the best parts from each paradigm. In general I think minimizing state and using pure functions wherever possible, then using objects to encapsulate state if required.

  9. The problem with OOP is that the compartmentalization causes exponentially increasing complexity. I have a rule of thumb of no more than 3 layers of inheritance when using OOP. I find that more than 3 layers of inheritance causes the code base to be so complex that the majority of the time spent programming is spent just trying to figure out how to get the code to work with and fit into the code base.
    More than 5 layers of inheritance causes the code base to be so complex that a programming team of thousands of people needs to cut ideas out of the project purely because nobody can figure out how to fit the ideas into the code base.

    The problem with functional is that it's hard for each individual team member to work well with the rest of the team, but the benefit is that it allows for much greater complexity overall. OOP limits the complexity to what we consider to be medium-sized projects nowadays.

    As of yet, nobody has invented a good way to allow for extreme complexity while still making it easy for each individual member of a team to add to the project.

  10. Your terminology is broken, what you are calling 'functional' with relation to PHP3 is procedural programming, the same idea C is based on. Functional programming means using functions in the mathematical sense, given the same inputs they will always return the same output. That can be called referential transparency or a 'pure' function, side effects like reading or printing I/O are not allowed. Obviously this isn't completely practical as we need to interact with our programs. Consequently functional programming in practice identifies the 'pure' components and segregate them from the side-effect causing parts and state. This forces state to be minimized and usually centralized which is much easier to reason about.

  11. if someone came here to learn about functional programming please go watch another video first: Robert C Martin – Functional Programming; What? Why? When? … FP is not faster than OOP simply because in a pure FP language (haskell, erlang, clojure, scheme) you have immutable state so you need to copy the objects you want to change EVERY time you want them to change…so it is slower… OOP was created to solve this problem because in the 80's memory was precious

  12. static global public class (or whatever scopes are called in yr lang) … and you get yr banana 🙂 i use bananas all the time, the reason should be obvious.
    – i make lot of mistakes in my code, the lack of precision on a debug engine is highly annoying to me.
    – i tend to write 500 lines of oop faster than 50 functional. am i a slow thinker or does this have a meta which escapes me?

  13. Those paradigms are orthogonal. OOP can be used with both imperative and functional paradigms although it’s mostly used with the former. Scala offers a nice blend of OOP and functional programming. It’s a language worth learning, offers type-safety of statically typed language, performance, ecosystem, tools and libraries of JVM and thanks to a superb type inference – a brevity of dynamic language. It’s also possible to do functional and imperative programming independently from OOP.

Comments are closed.