Results 1 to 4 of 4

Thread: OOP - a rant

  1. #1
    Join Date
    Sep 2008
    Sarasota, Florida

    OOP - a rant

    When I was first learning JAVA and still now when I read about any OO language, the author goes to great lengths to talk about :"blueprints" vs "the object" - in one text I see blueprints for a house and then an actual house. One author after explaining the blueprint/plan/object idea then refered to the latter as "a real live breathing object." I gasped.

    A real live breathing object? really? Aren't we talking about computer storage here?

    It took me a while to understand that a class was merely a user-defined data type which not only included the usual data variables, but functions that manipulated the data passed to these varibles. Simple. And they are functions/procedures, even if you re-define them as "methods".

    And an "object" is nothing more than a variable whose "type" is the defined by the "class". For the life of me, I cannot understand the need for this type of re-defintion and elaborate explanation using houses, dogs, and bicycles. Are we all not well grounded in the concepts of data types, variables, functions/procedures, and computer storage and access?

    Am a lone voice?

  2. #2
    Join Date
    Aug 2012


    I sort of understand your point, even if I don't agree.
    An object is very powerfull in matter of variable manipulation. Far more than any other method.
    Of course, using objects as variable containers is not the objective, even if it also happens.
    It is, before all, a way of ordering your vars and methods in structured manner. It also allows you to enhance the security level of your code.
    And, for me, it is a perfect way to build code in a modular inobstrusive manner.
    It also brings a lot of ease when it comes to testing: you can test your object appart of the rest of the code.
    OO programming hasen't been created for the fun, it's there to help, to enhance the programming possibilities.

    Refering to objects as living entities is the way you see it once you fully grab the concept.


  3. #3
    Join Date
    Sep 2008
    Sarasota, Florida
    I agree 100% with your description and assessment of the value of this programming approach, and I agree that it is superior in many cases, especially with large projects which may involve many programmers and the need for future expansion.

    My point was confusing the concept with "real live objects that are out there" - oop objects are not "out there", they are conceptual - it all takes place in the computer's memory. An object is not a living entity. It's not. It's a powerful variable of type "class" and the class defines what the variable [object] can access [do].

    The symantics give it "life" - variables "access" - objects "do/behave". It's almost funny.

    Hmmm ... one could argue that it's the functions [excuse, me - methods] that actually "do" the work. That would take us back to the value of ordinary procedural code. The actual algorithmic procedures that "do" the work are the same.

  4. #4
    Join Date
    Jul 2003
    The City of Roses
    Sorry for being months late to the conversation. I wanted to say I wholeheartedly agree. I became more aware of this when I started reading about C++, and I got a more low-level insight into classes and objects. A class is virtually the same thing as a struct. Just a user-defined type that holds both data and pointers to functions that operate on that data. And an object nothing more than a variable of that user-defined type. I agree that the wholly different nomenclature is unnecessary, and perhaps even a detriment, because it makes OOP seem foreign to people who come from a procedural background.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



X vBulletin 4.2.2 Debug Information

  • Page Generation 0.09745 seconds
  • Memory Usage 2,861KB
  • Queries Executed 15 (?)
More Information
Template Usage (32):
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (4)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (72):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates