Unconfigured Ad Widget

Collapse

Announcement

Collapse
No announcement yet.

Political question, comments

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Political question, comments

    Its also true that for every person who can figure out a programming language there are probably a thousand who can figure out a spreadsheet formula. Just as most spreadsheet users shouldn't try to write programs, most of you regular programming language wimps should stay away from manly languages like smalltalk . The main advantages of an OO language are in its expandability and its ability to hide complexity. If you don't tackle complex programming problems (and most of us don't) then there's not much point to using an OO language. Still I think OO is slowly winning the battle so you'd better adapt or plan to retire in a few years. I know as a visual basic programmer I used to ignore its limited OO features as too complicated to bother with. But now with the need to communicate with other programs via reference libraries and with more and more of the things I deal with as a programmer being "objects" which x.y syntax you can't avoid exposure to OO interfaces any more. In a generation I think you will have a hard time finding a non-OO programmer. I'm actually creating classes in the program I'm currently writing (an end user query tool to get AS400 data). Its an interesting change of mindset and once you get used to it hard to imagine doing things in a non-OO way. Even if managers want to be conservative and avoid OO before too long I think they will find that most talented young people coming out of college will be so steeped in OO that they won't be willing to use a non-OO language.

  • #2
    Political question, comments

    I have studied this question for a number of years looking for a coherent argument for OO, with proven results being the most powerful argument of all. The arguments given, the examples used, are so simple and stupid as to make one ill considering them. Rarely are OO people able to rise above the brilliant "you wouldn't understand, you're procedural". I haven't seen a large scale business system done in OO. That doesn't mean it doesn't exist, and it doesn't mean it can't be done, but it does mean that never have so much hot air been spouted with so little to show for it as OO. To go from the theoretical to reality, I'll give you two opposite ends of the spectrum here. A consultant told me awhile back that Peoplesoft didn't come with source code because it was object oriented and handled anything people wanted to do without modification. He said all this RPG stuff should just be tossed and replaced with Peoplesoft. Now, out of everything I've read about in new ERP's, Peoplesoft seemed to have the right stuff and attitude, but still, I found this incomprehensible. I looked at their site and searched for comments on Peoplesoft on the net. I found that Peoplesoft, prior to their half billion dollar, 14,000 web page rewrite to ver 8, shipped with portions written in COBOL, and my search of the net found the same discussions of modifications causing problems for upgrades in Peoplesoft and Oracle as we have with RPG ERP's. This is typical of the zany stuff you will hear from new age ERP people. Now let's take a real large scale OO system, the San Francisco project from IBM. Do you know what the scope of that project was? To establish an OO ERP foundation for software vendors to plug their products into. Do you have any idea how many years have gone by, how many billions of dollars has been spent by IBM, and how little they have to ship after all that? That is OO in action. Everytime you hear the OO people sing the praises of nirvana to you, say "I'm from Missouri, show me, and oh by the way, how many billions of dollars does nirvana cost?" Having said that, though, Bob, in the example you give above, it's arguable that string.method is more flexible and extensible than routine(string), which is our approach. I don't give a rat's behind about this procedural versus OO thinking bs or this stuff about "the object will take care of itself" nonsense either, but it is definitely a different approach that every good programmer will want to master. But a good, layered modular design of programs operating against database files is what business programming is all about, and for all the hot air you'll see about OO, you will rarely see anybody that can demonstrate squat about a business system. Ralph

    Comment


    • #3
      Political question, comments

      ok Bill, you said ... The main advantages of an OO language are in its expandability and its ability to hide complexity. ... Refering to my original post, how does the first program statement with dot dot dot either afford expandability OR hide complexity. Maybe if I could understand that, it would clear up my questions about OO. thnx for the reply, bobh

      Comment


      • #4
        Political question, comments

        Its hard to talk about it with simple examples like this, but I'll give it a shot. As long as you only need to deal with built in types like "string" there is no need for expandability or hiding complexity. There's no complexity to hide. But to take a simple example suppose you have an application where you want to deal with a more specialized concept like "Upper case string", "Valid SQL Statement", "Rich text string" (e.g. including formatting information), HTML string, etc. You could have a giant if statement inside the trim function which does different things depending on the type of the object or you could use a different function for each time RichTextTrim, HTMLTrim, SQLTrim, etc. But as the number of options increases increases eventually those approaches become unmanageable and the OO approach of using the syntax X.Trim for each type of object become much better than the alternatives. If you want to "overload" Trim so it means something different for "Upper Case Strings", "Valid SQL Statements", HTML Strings, etc. then you need a convenient syntax in the programming language for doing this. It is possible to design expandable languages that use normal syntax with new types (for example in C++ you can overload the = sign) but its complicated to do it that way. Using OO syntax order the expansion to new types is much easier. Or to give a more realistic example. As a Visual Basic programmer who need to manipulate Excel spreadsheets in code the OO syntax provides great benefits. If I don't need to remember a bunch of functions that might work on excel spreadsheets. If I have a spreadsheet variable and type . after the variable then Microsofts "intellegent editor" provides me a list of the methods and properties that I can use.

        Comment


        • #5
          Political question, comments

          That's a good example, Bill. Could you help put that in perspective for us? We would normally have a different editing routine for each type of string, and some IF statements interspersed to handle some closely related types. We would only have the code needed in that particular system,and often it's the same routine name as something we've done elsewhere but has been copied and tweaked for this environment. The routines have no universal naming scheme, and we have to check source code as to what to call and what the exact parm calling sequence is. In other words, the typical cache of code we have in systems that are copied and tweaked. The string types that you mention would all be stored in variables that are for it only? (HTML strings in HTMLStrings, SQL statements in ValidSQLStatements, etc.)? So we move the data into the right type of string variable, let's say, I don't know, BookTitle, and then perform Booktitle.trim, and the correct trim procedure is invoked for the type of string BookTitle is, let's say HTMLStrings? This versus us just having char variables and performing something like TrimHTML(BookTitle)? (where we have to know what's in the buffer and call an appropriate routine) As I write this, I am reminded of assembler, where a byte of data was anything based on what code was run against it. It wa a number if you added it, a pixel if you displayed it, a character if you printed it, etc. You had to know what that byte was. Also, LISP machines and their memory type tags. I see the safeness of this approach, and a little bit of a tradeoff on creating more specialized variable types and just as many routines, but the same name for a routine to handle every type (trim routine for every string type, etc.) I also see the focus on solving the problem in that you write variable.trim instead of "what routine do I call to trim this set of characters?", and then each routine having a slightly different name to indicate what it does. Good example. What do you think, BobH? Ralph

          Comment


          • #6
            Political question, comments

            I'll post this here -- there is no political sub forum -- to elicit some opinions et c. What is to be gained by a program statement such as IF(string. trim().equal(another string')) over IF 'another string' = trim(string) I just don't get it !! For every person that can deal with the former there has to be a thousand who are comfortable with the latter. If you're were to tell me it's a matter of belief/faith I would remind you that faith is the obstinate denial of the obvious. OK, it appears that OO is something like taking a program and calling it a class or something else and subroutine/functions are called methods or something else and the whole thing written in a dialogue of C. On another note, I got BSF working which also allows OO stuff to 'call' REXX or OBJREXX/NETREXX and get values back. Also, REXX can call OO things to use GUI and such. This, on the one hand allows me to port REXX to any box w/ JVM on it -- theoretically at least -- and implants the ease of programming afforded by REXX into OO. Such a Deal! Thanks for listening, bobh, reminding you that: M$-Access is a poor excuse for a portal to Data M$-Excel is a disasterous excuse for an accounting system and "DO COOL AND NEAT STUFF" is a ridiculous excuse for a business plan.

            Comment


            • #7
              Political question, comments

              That's correct. In visual basic for example you use the syntax Dim MyString As HTMLString to define the variable that is only supposed to contain HTMLStrings. You can also define generic variables with Dim MyObject AS Object if you have an application where you need to store different types in the same variable. Of course in that case the compiler has a lot more work to do since it has to determine the type at run time.

              Comment

              Working...
              X