View Single Post
Join Date: May 2006
Posts: 1,582
Reputation: Infarction has a spectacular aura about Infarction has a spectacular aura about Infarction has a spectacular aura about 
Solved Threads: 52
Infarction's Avatar
Infarction Infarction is offline Offline
Battle Programmer

Re: Object Oriented Programming

 
0
  #7
Jan 22nd, 2007
Originally Posted by indienick View Post
From the way I was tought things, function programming is synonymous with procedural programming.
You were taught wrong. From wikipedia:
Originally Posted by Wikipedia
Functional programming is a programming paradigm that conceives computation as the evaluation of mathematical functions and avoids state and mutable data. Functional programming emphasizes the application of functions, in contrast with imperative programming, which emphasizes changes in state and the execution of sequential commands.[1]
The articles on procedural and imperative programming have notes mentioning that the two terms are mostly interchangeable.

As for the "complexities" of operator overloading and pre-processor commands, I consider those complexities, because if you overload an operator, and you are developing a large application, the operator overloading can be lost in the lines, and become a serious source of frustration - something I've experienced in the past, and which has led me to keep away from C and C++. As for pre-processor commands, I just don't see a point for them aside from incorporating header files.
Operator overloading is one of the things I wish Java had. Of course, there is a matter of when it's appropriate to use operator overloading. As to pre-processor commands, they definitely have a point if you know what they do.

I'm a Lisp (primarily), Python, Perl, Java, BASIC, Expect and shell programmer by trade, and am learning Linux-based x86 assembly - all languages which have no imminent focus on pre-processor calls.
Congrats on your trade. Hopefully your OS-specific assembly will get you far. The pre-processor calls from C(++) are compiler functions, before the code actually gets translated to machine code.

I know I didn't provide a complete definition of Object-Oriented Programming, but I got the ball rolling, and provided the OP with a direct link to information (Wikipedia), instead of just a "just google it" response.
You gave a basic explanation in terms of a small subset of keywords typically associated with OOP. You didn't actually answer the OP's question (admittedly, I didn't either).

Lisp is object-oriented, but not forcefully object-oriented, like Java. :cheesy: Not to mention, Lisp prides itself on not locking itself down to one solution per problem.
Lisp is better known as a functional language. While it might support objects, I don't know that it's really OO (see my previous statement about C). Only used it a very small amount though, so I could be wrong.

@OP: Sorry for the hijacking. As to your question, the drawbacks from OOP typically relate to system design, when an OO model doesn't match your data organization. There might also be issues if you need low level code, such as a kernel, since an OO model is done at a level with the hardware abstracted away.
Reply With Quote