Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. i don't like object oriented programming

i don't like object oriented programming

Scheduled Pinned Locked Moved The Lounge
csharpc++wpfoop
94 Posts 18 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H honey the codewitch

    one example I'm running into right now is template specialization. I have a finite state machine engine and it works for any transition input type and any accept symbol type. However, there are additional features that can happen - significant ones that can only exist when the transition type is char - this specialization is effectively a regular expression engine, which means it can parse from a regular expression, and provide regex matching over string inputs. The other kind of FAs it wouldn't even make sense for that. So because of this I have two separate classes - one generic FA class, and one called CharFA where the TInput=char basically. It means more code to maintain because a lot of it is duplicated. To unduplicate a lot of which i could, I'd have to add another codefile with an interface, and another with static methods to share common functionality, which again, increases the code size. So it's not even that I can't do it with C#, it's that what is elegantly handled in C++ is clunky in C# to do the same thing, and requires more code.

    When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

    S Offline
    S Offline
    Slacker007
    wrote on last edited by
    #9

    Create an interface class called IFa (name it something esle for sure, but this is for ilustration purposes) and implement IFa in a new class CharFA using that interface. or Create an iterface called IFa and a default implementation for IFa and then create another class that implements the default implementation and then just override any methods, etc. It is object oriented programming, which you hate, but that is how this stuff is usually done, more or less, in C#. Would that work for you? Just a suggestion, I am not really trying to solve any problems here. I think your dislike of C# and generics, and object oriented programming may prevent you from seeing how things are done in this language, etc. Good luck.

    H 1 Reply Last reply
    0
    • S Slacker007

      Create an interface class called IFa (name it something esle for sure, but this is for ilustration purposes) and implement IFa in a new class CharFA using that interface. or Create an iterface called IFa and a default implementation for IFa and then create another class that implements the default implementation and then just override any methods, etc. It is object oriented programming, which you hate, but that is how this stuff is usually done, more or less, in C#. Would that work for you? Just a suggestion, I am not really trying to solve any problems here. I think your dislike of C# and generics, and object oriented programming may prevent you from seeing how things are done in this language, etc. Good luck.

      H Offline
      H Offline
      honey the codewitch
      wrote on last edited by
      #10

      which is what i mentioned in my other reply, after an edit though. it's not that I can't do it. It's that it's clunky and requires more code than the elegant specialization feature in C++ it reminds me of the limitation of lack of multiple inheritance - you can sort of emulate it, but it requires more code. like i said, i just wish generics could do more.

      When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

      S 1 Reply Last reply
      0
      • H honey the codewitch

        which is what i mentioned in my other reply, after an edit though. it's not that I can't do it. It's that it's clunky and requires more code than the elegant specialization feature in C++ it reminds me of the limitation of lack of multiple inheritance - you can sort of emulate it, but it requires more code. like i said, i just wish generics could do more.

        When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

        S Offline
        S Offline
        Slacker007
        wrote on last edited by
        #11

        I think the "clunky" is relative here, as I don't think it is clunky because I have limited exposure to other techniques.

        H 1 Reply Last reply
        0
        • S Slacker007

          I think the "clunky" is relative here, as I don't think it is clunky because I have limited exposure to other techniques.

          H Offline
          H Offline
          honey the codewitch
          wrote on last edited by
          #12

          that's definitely fair. and I come at C# from a C++ background. I like C#, don't get me wrong, and it's miles ahead of Java in terms of how it's put together, IMO, but I still miss aspects of C++ development with it, even as it has supplanted C++ as my primary development language and environment.

          When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

          F 1 Reply Last reply
          0
          • H honey the codewitch

            i never have. give me templates. or you may as well just give me something procedural. if i can't do generic programming i'm a sad honey bear. C# is barely adequate. And it's too object centric IMO. generics need to be able to do more. I want traits. I want the runtimes to do what i can make a C++ compiler do with templates. I probably just got the BAC up of this entire board saying that, but there it is.

            When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

            P Offline
            P Offline
            PIEBALDconsult
            wrote on last edited by
            #13

            There there. I agree that a multi-paradigm language is a better idea than one which insists on objects. One needs to use the right tool for the right job and OOP is not the right tool for a great many jobs.

            H 1 Reply Last reply
            0
            • P PIEBALDconsult

              There there. I agree that a multi-paradigm language is a better idea than one which insists on objects. One needs to use the right tool for the right job and OOP is not the right tool for a great many jobs.

              H Offline
              H Offline
              honey the codewitch
              wrote on last edited by
              #14

              it's one of the areas where C++ really shines and I kind of wish other, higher level imperative languages would catch up. though i'd also like to see C++ have more functional-programming constructs in the future.

              When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

              P 1 Reply Last reply
              0
              • H honey the codewitch

                that's definitely fair. and I come at C# from a C++ background. I like C#, don't get me wrong, and it's miles ahead of Java in terms of how it's put together, IMO, but I still miss aspects of C++ development with it, even as it has supplanted C++ as my primary development language and environment.

                When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                F Offline
                F Offline
                Forogar
                wrote on last edited by
                #15

                I miss the multiple inheritance of C++ as well. I know we can do it via Interfaces but it's not quite as straightforward. Perhaps by C#12 it will be there. :sigh:

                - I would love to change the world, but they won’t give me the source code.

                H 1 Reply Last reply
                0
                • F Forogar

                  I miss the multiple inheritance of C++ as well. I know we can do it via Interfaces but it's not quite as straightforward. Perhaps by C#12 it will be there. :sigh:

                  - I would love to change the world, but they won’t give me the source code.

                  H Offline
                  H Offline
                  honey the codewitch
                  wrote on last edited by
                  #16

                  i'm glad i'm not the only one! =)

                  When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                  1 Reply Last reply
                  0
                  • H honey the codewitch

                    it's one of the areas where C++ really shines and I kind of wish other, higher level imperative languages would catch up. though i'd also like to see C++ have more functional-programming constructs in the future.

                    When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                    P Offline
                    P Offline
                    PIEBALDconsult
                    wrote on last edited by
                    #17

                    I only ever dabbled in C++ (80s, 90s), so I never became familiar with what it can do. I went straight from C (mostly on OpenVMS) to C# (and .net) and it was like a Bob-send -- I'm glad I hadn't had to use C++ and the various libraries people talk about. A lot of the hype I heard turned me off of C++ anyway. But... I want multiple-inheritance and such. There are a number of facets of C# (.net languages) I don't like. Languages and frameworks should provide features and _allow_ developers to do what their particular task requires rather than dictating what the develop must or must not do. I may still need to look at D again.

                    H 1 Reply Last reply
                    0
                    • P PIEBALDconsult

                      I only ever dabbled in C++ (80s, 90s), so I never became familiar with what it can do. I went straight from C (mostly on OpenVMS) to C# (and .net) and it was like a Bob-send -- I'm glad I hadn't had to use C++ and the various libraries people talk about. A lot of the hype I heard turned me off of C++ anyway. But... I want multiple-inheritance and such. There are a number of facets of C# (.net languages) I don't like. Languages and frameworks should provide features and _allow_ developers to do what their particular task requires rather than dictating what the develop must or must not do. I may still need to look at D again.

                      H Offline
                      H Offline
                      honey the codewitch
                      wrote on last edited by
                      #18

                      Well the weird thing about C++ is by itself it's about 2/3 of a language, while the standard template libraries are (usually) the other 1/3 and it's strange to think of it that way, but that's how it ends up baking out - STL is so intrinsic to any significant C++ development that you really don't even want to do it without it, just like you wouldn't want to write an app without an operating system. It's not just about runtime libraries, although that's most of it. Because of the way templates work, you can use them to basically implement "language features" of a sort. So STL sort of folds itself into the language. And the cool thing about that is you can potentially make your own "domain specific" language superset from C++ just like STL does - the spirit framework does this, and boost kind of does. So that's something that's really hard to get used to at first because it's pretty unique to C++ after that, just learning how to use generic programming is the big learning curve, but I swear once you do, you'll fall in love.

                      When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                      P 1 Reply Last reply
                      0
                      • H honey the codewitch

                        i never have. give me templates. or you may as well just give me something procedural. if i can't do generic programming i'm a sad honey bear. C# is barely adequate. And it's too object centric IMO. generics need to be able to do more. I want traits. I want the runtimes to do what i can make a C++ compiler do with templates. I probably just got the BAC up of this entire board saying that, but there it is.

                        When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                        R Offline
                        R Offline
                        Ron Anders
                        wrote on last edited by
                        #19

                        At the risk of being even more wildly undesirable here, I'm with ya.

                        H 1 Reply Last reply
                        0
                        • R Ron Anders

                          At the risk of being even more wildly undesirable here, I'm with ya.

                          H Offline
                          H Offline
                          honey the codewitch
                          wrote on last edited by
                          #20

                          come sit at my table. we can totally be unpopular together :laugh:

                          When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                          1 Reply Last reply
                          0
                          • H honey the codewitch

                            Well the weird thing about C++ is by itself it's about 2/3 of a language, while the standard template libraries are (usually) the other 1/3 and it's strange to think of it that way, but that's how it ends up baking out - STL is so intrinsic to any significant C++ development that you really don't even want to do it without it, just like you wouldn't want to write an app without an operating system. It's not just about runtime libraries, although that's most of it. Because of the way templates work, you can use them to basically implement "language features" of a sort. So STL sort of folds itself into the language. And the cool thing about that is you can potentially make your own "domain specific" language superset from C++ just like STL does - the spirit framework does this, and boost kind of does. So that's something that's really hard to get used to at first because it's pretty unique to C++ after that, just learning how to use generic programming is the big learning curve, but I swear once you do, you'll fall in love.

                            When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                            P Offline
                            P Offline
                            PIEBALDconsult
                            wrote on last edited by
                            #21

                            Yeah, nope, hype hype hype...

                            H 1 Reply Last reply
                            0
                            • P PIEBALDconsult

                              Yeah, nope, hype hype hype...

                              H Offline
                              H Offline
                              honey the codewitch
                              wrote on last edited by
                              #22

                              i'm just telling you based on my experience using it. Very few teach it properly unfortunately.

                              When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                              1 Reply Last reply
                              0
                              • H honey the codewitch

                                i never have. give me templates. or you may as well just give me something procedural. if i can't do generic programming i'm a sad honey bear. C# is barely adequate. And it's too object centric IMO. generics need to be able to do more. I want traits. I want the runtimes to do what i can make a C++ compiler do with templates. I probably just got the BAC up of this entire board saying that, but there it is.

                                When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                                L Offline
                                L Offline
                                Lost User
                                wrote on last edited by
                                #23

                                honey the monster, codewitch wrote:

                                if i can't do generic programming i'm a sad honey bear.

                                Yuck. OO is procedural, but with structure and local variables. It doesn't limit a procedural programmer; you're free to put everything in a God-class and pretend to be procedural.

                                honey the monster, codewitch wrote:

                                generics need to be able to do more.

                                Again, yuck.

                                Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                                H P 2 Replies Last reply
                                0
                                • L Lost User

                                  honey the monster, codewitch wrote:

                                  if i can't do generic programming i'm a sad honey bear.

                                  Yuck. OO is procedural, but with structure and local variables. It doesn't limit a procedural programmer; you're free to put everything in a God-class and pretend to be procedural.

                                  honey the monster, codewitch wrote:

                                  generics need to be able to do more.

                                  Again, yuck.

                                  Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                                  H Offline
                                  H Offline
                                  honey the codewitch
                                  wrote on last edited by
                                  #24

                                  i mean procedural as in procedures rather than objects to divvy up code. If there's a better word for that I'm unaware of it. You could say that all imperative languages are procedural if they have functions/methods but that's almost too general to be useful. As far as your yucks, i come from a C++ background and happen to like generic programming. to each their own.

                                  When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                                  L 1 Reply Last reply
                                  0
                                  • L Lost User

                                    honey the monster, codewitch wrote:

                                    if i can't do generic programming i'm a sad honey bear.

                                    Yuck. OO is procedural, but with structure and local variables. It doesn't limit a procedural programmer; you're free to put everything in a God-class and pretend to be procedural.

                                    honey the monster, codewitch wrote:

                                    generics need to be able to do more.

                                    Again, yuck.

                                    Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                                    P Offline
                                    P Offline
                                    PIEBALDconsult
                                    wrote on last edited by
                                    #25

                                    But I want an atheistic classless society.

                                    L H 2 Replies Last reply
                                    0
                                    • H honey the codewitch

                                      i mean procedural as in procedures rather than objects to divvy up code. If there's a better word for that I'm unaware of it. You could say that all imperative languages are procedural if they have functions/methods but that's almost too general to be useful. As far as your yucks, i come from a C++ background and happen to like generic programming. to each their own.

                                      When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                                      L Offline
                                      L Offline
                                      Lost User
                                      wrote on last edited by
                                      #26

                                      honey the monster, codewitch wrote:

                                      i mean procedural as in procedures rather than objects to divvy up code.

                                      That's a non-complaint; like I said, you can put all your procedures in a God-object.

                                      honey the monster, codewitch wrote:

                                      If there's a better word for that I'm unaware of it. You could say that all imperative languages are procedural if they have functions/methods but that's almost too general to be useful.

                                      I'd say you haven't worked in a strict procedural language :thumbsup:

                                      honey the monster, codewitch wrote:

                                      As far as your yucks, i come from a C++ background and happen to like generic programming. to each their own.

                                      Haven't seen much of that, so not going to comment on it. But still, yuck. :)

                                      Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                                      H 1 Reply Last reply
                                      0
                                      • P PIEBALDconsult

                                        But I want an atheistic classless society.

                                        L Offline
                                        L Offline
                                        Lost User
                                        wrote on last edited by
                                        #27

                                        10 GOTO HELL

                                        :)

                                        Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                                        1 Reply Last reply
                                        0
                                        • L Lost User

                                          honey the monster, codewitch wrote:

                                          i mean procedural as in procedures rather than objects to divvy up code.

                                          That's a non-complaint; like I said, you can put all your procedures in a God-object.

                                          honey the monster, codewitch wrote:

                                          If there's a better word for that I'm unaware of it. You could say that all imperative languages are procedural if they have functions/methods but that's almost too general to be useful.

                                          I'd say you haven't worked in a strict procedural language :thumbsup:

                                          honey the monster, codewitch wrote:

                                          As far as your yucks, i come from a C++ background and happen to like generic programming. to each their own.

                                          Haven't seen much of that, so not going to comment on it. But still, yuck. :)

                                          Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.

                                          H Offline
                                          H Offline
                                          honey the codewitch
                                          wrote on last edited by
                                          #28

                                          Eddy Vluggen wrote:

                                          That's a non-complaint; like I said, you can put all your procedures in a God-object

                                          Not a complaint. Just attempting to clarify what i meant

                                          Eddy Vluggen wrote:

                                          I'd say you haven't worked in a strict procedural language

                                          Now I wonder what you'd consider procedural. Batch files? SQL? C?

                                          Eddy Vluggen wrote:

                                          Haven't seen much of that, so not going to comment on it. But still, yuck.

                                          Spoken like someone that's never used it. GP is lovely, elegant, concise and powerful. I wish it was more available in places other than C++.

                                          When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.

                                          L 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups