View Poll Results: Should OOP be in every new language??

Voters
22. You may not vote on this poll
  • Yes, OOP is aboslutely important in developing any new language

    6 27.27%
  • No, new languages could be popular and live long-time without OOP

    16 72.73%

Thread: Should OOP be any new language priority??

  1. #16
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Is it that the question is too vague that most people vote no?
    It's certainly possible use use OOP in languages such as C, sure, but if a language supports such as a paradigm, it becomes easier to utilitize these tools faster and more efficiently.
    Every program or software may not be suited to be made in OOP-style, but the language should have the tools for the programmer to make it OOP easily and efficiently should they need to do so.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  2. #17
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    Quote Originally Posted by cyberfish View Post
    Magic-oriented programming .

    C++ proof-of-concept code -
    Code:
    int main() {
    	std::string fragments[6] = { "int main() {", "return 0;", "std::cout << \"Hello world!\" << std::endl;", "}", "#include <iostream>" };
    
    	while (!compile(fragments)) {
    		std::next_permutation(&fragments[0], &fragments[5]);
    	}
    }
    That (with a few more elements) resembles what some of the beginners do here, right?
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  3. #18
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    Quote Originally Posted by Elysia View Post
    Is it that the question is too vague that most people vote no?
    It's certainly possible use use OOP in languages such as C, sure, but if a language supports such as a paradigm, it becomes easier to utilitize these tools faster and more efficiently.
    Every program or software may not be suited to be made in OOP-style, but the language should have the tools for the programmer to make it OOP easily and efficiently should they need to do so.
    First of all, I don't think object orientation in the language itself is necessary for a language to be viable.

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  4. #19
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Perhaps not, but it would help, no?
    If you don't have a hammer and need one, you'll have to improvise and make one yourself. Surely having an already finished hammer would be better? I apply that analogy to languages.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  5. #20
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by Elysia View Post
    Is it that the question is too vague that most people vote no?
    It's certainly possible use use OOP in languages such as C, sure, but if a language supports such as a paradigm, it becomes easier to utilitize these tools faster and more efficiently.
    Every program or software may not be suited to be made in OOP-style, but the language should have the tools for the programmer to make it OOP easily and efficiently should they need to do so.
    But the argument that "Language X should support paradigm Y because the programmer might want it" goes for any Y. Why does OOP get singled out as the one thing that absolutely has to be there?

    I really like generators and continuations -- so do a lot of other programmers. But that's not sufficient to say that all languages should therefore support these concepts directly.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  6. #21
    Registered User
    Join Date
    Sep 2001
    Posts
    4,912
    If you don't have a hammer and need one, you'll have to improvise and make one yourself. Surely having an already finished hammer would be better?
    But if I wanted to go skiing, I wouldn't take a hammer with me. If I was making a small scripting language specifically for a certain application, I wouldn't implement OO unless there was a real need for it, because it would probably add overhead that I would rather do with out.

  7. #22
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    But you have to start somewhere, right? A language needs to support something, and preferably everything, but that's not plausible. So then perhaps they would add support for popular paradigms, if the effort is not too much? Even limited support is better than none.
    I like to see it this way. A language should do what it was designed to do and it should do that well, but a language should not say how that is accomplished, I think. That is up to the developers (hence the support for as diverse set of tools as possible).
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  8. #23
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    Quote Originally Posted by Elysia View Post
    But you have to start somewhere, right?
    You always start with procedural or functional. Object orientation is a higher-level concept than those. A language that supports procedural or functional programming can do everything, although organization may suffer. A language that supports classes but no functions is screwed.

    A language needs to support something, and preferably everything,
    I'm not so sure about that. There are certainly people who think that C++ already supports too much. I don't think so, but C++ is harder to learn completely than other languages - a language that supports everything would be unlearnable.
    All the buzzt!
    CornedBee

    "There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
    - Flon's Law

  9. #24
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by CornedBee View Post
    You always start with procedural or functional. Object orientation is a higher-level concept than those. A language that supports procedural or functional programming can do everything, although organization may suffer. A language that supports classes but no functions is screwed.
    Thanks CornedBee for a terrific example of what I meant by:
    the traditional discourse which would present a number of "programming paradigms" is not worth that much
    [...]
    1) the bones of arguments and discussions that don't merit continuing. 2) attempts to brown bag a set of observations and fit them into a lunch schedule.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  10. #25
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by CornedBee View Post
    You always start with procedural or functional. Object orientation is a higher-level concept than those. A language that supports procedural or functional programming can do everything, although organization may suffer. A language that supports classes but no functions is screwed.
    This is true. I agree that procedural should be good for any language.
    But perhaps it's time to step it up a bit? To include both procedural and object oriented, given that both paradigms are popular today?

    I'm not so sure about that. There are certainly people who think that C++ already supports too much. I don't think so, but C++ is harder to learn completely than other languages - a language that supports everything would be unlearnable.
    Of course, supporting everything isn't practical, and there are always downsides, but this is the "ideal" scenario.
    Besides, you don't have to learn everything. I digress on that point, though.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  11. #26
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    We get this all the time, right? Someone asks a simple question, and then the discussion starts on what that question actually means, but the original poster is not even returning to clarify.

    In this case, the question is vague in the sense that it doesn't explain what sort of language is intended. A language to operate on images (say making a language to modify images in GIMP), then perhaps object orientation isn't necessary. (Not saying that it wouldn't, perhaps, benefit from object oriented).

    If we are going to produce a general purpose language to make GUI applications, then objecct orientation, particular inheritance to provide interfaces and extension of existing GUI features would be required - anything else is daft.

    And of course, there are many different examples for and against either solution.

    So to simply as "Is object orientation a required for a new language" is not sufficient qualification to determine whether the answer for a particular scenario should be YES or NO - but as a generic answer, NO it is not NECESSARY for a language.

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  12. #27
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    I believe the question was intended for all new languages, regardless of what they were designed for. At least, this is what I had in mind when I voted.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  13. #28
    and the hat of sweating
    Join Date
    Aug 2007
    Location
    Toronto, ON
    Posts
    3,545
    Quote Originally Posted by Elysia View Post
    Yet you would not like to see OOP even if it is a simple language for simple tasks?
    No, if I want OOP I'd use a language that has it.
    You wouldn't want to try to write a client/server based application in MS Batch script would you? But for simple tasks like copying a few files around, it works perfectly without OOP.
    If someone comes out with a new simple scripting language that's fast to learn and easy to write, adding OOP would increase its complexity and time to learn... Plus it would be too slow for a large application. But for simple tasks, it's fine.
    "I am probably the laziest programmer on the planet, a fact with which anyone who has ever seen my code will agree." - esbo, 11/15/2008

    "the internet is a scary place to be thats why i dont use it much." - billet, 03/17/2010

  14. #29
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    Quote Originally Posted by Elysia View Post
    I believe the question was intended for all new languages, regardless of what they were designed for. At least, this is what I had in mind when I voted.
    And that was EXACTLY why I answered NO.

    I have been working on the Minibasic project - it has no object orientation. It is an adequate language for writing simple applications (and games) in. It is not a "does everything language", and it would definitely benefit from having string variables. Object oriented it will not be for a very long while.

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  15. #30
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by cpjust View Post
    You wouldn't want to try to write a client/server based application in MS Batch script would you? But for simple tasks like copying a few files around, it works perfectly without OOP.
    Sure, but something I found interesting about ruby -- where everything is an object, including a "file" -- is that it does make copying a few things around *even more simple* and "perfect".

    It would be hard to say (as matsp's example of GIMP scripting implies) that not having formal class/object syntax is a feature. I'm sure if you went back far enough, people would say this about *functions*:

    Sure, functions are great for doing complex programming. But you don't *need* them.

    Yet most people would not use asm for "general purpose scripting" and functions are useful even in simple "file copying" scenarios. Objects even more so. So I'm gonna vote with Elysia on this one.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. priority inversion due to pthread_mutex_lock(): how to avoid?
    By mynickmynick in forum C Programming
    Replies: 11
    Last Post: 04-07-2009, 10:34 AM
  2. Why C Matters
    By DavidP in forum A Brief History of Cprogramming.com
    Replies: 136
    Last Post: 01-16-2008, 09:09 AM
  3. Data Mapping and Moving Relationships
    By Mario F. in forum Tech Board
    Replies: 7
    Last Post: 12-14-2006, 10:32 AM
  4. recommendation for a good OOP book
    By Mario F. in forum C++ Programming
    Replies: 2
    Last Post: 06-15-2006, 04:28 PM
  5. Language of choice after C++
    By gandalf_bar in forum A Brief History of Cprogramming.com
    Replies: 47
    Last Post: 06-15-2004, 01:20 AM