IWETHEY v. 0.3.0 | TODO
1,095 registered users | 1 active user | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Another take
Encroachment of non-programmers into programmer-space has been happening, on a faster and faster basis, for twenty-five or thirty years. Probably starting with the earliest spreadsheets, and progressing through Visual-This-n-That kinds of tools.

Some tools are there today. Front Page may emit klunky HTML and miserable pages, but it'll allow even a novice to lay out a Web page. Joe Sixpack may not be able to create an optimal database in Access or Paradox or whatever, but he can create something usable for him. But for the forseeable future, there's going to be a need to have to be someone like a programmer (or, if you want to be fancy, systems analyst) who really knows how things work and how to translate a user's wishes/the government's regulations/or whatever into a form the computer can understand.

Better and better tools may lower the bar, but they aren't going to eliminate it. Joe Sixpack will be able to create a database, but unless he acquires more DBA or programming savvy he won't know why some choices are better than others.
New That's a growing problem at technical schools

Well, at least at mine. Our students want to take the easy way out and use a code-generating tool instead of understanding the code itself.

I don't have any problem with them using the tool, but if they don't know the material then we're not doing our jobs.

For example, I'm teaching an introductory HTML class this term. I had a discussion with my students explaining why we were learning to code by hand when there were so many tools that would automatically generate HTML. It boiled down to two reasons:

- Most tools generate crappy, non-standard code and you need to know how to fix it. (If the tool will let you.)

- Most Web pages use dynamically generated content so a good working knowledge of HTML will help you script a dynamic Web page. (Or troubleshoot it.)

I've already made clear my position that we do students no favors by teaching them VB. VB and Perl are now both 'campus-optional'. (Guess which one we teach on my campus?)

Anyway, I agree that there will always be a need for people who understand the technology, just not so many of them.
Tom Sinclair

"Everybody is someone else's weirdo."
- E. Dijkstra
New Reminds me of first computer related course that I took...
(over 40 years ago). So that we would appreciate what an assembler did for us, in the first lab assignment, we had to write the machine code w/o instruction mnemonics but as constants. Imagine, if you will, line after line of octal constants. For one thing, it made you realize the mnemonics were somewhat arbitrary.
Alex

"I have a truly marvelous demonstration of this proposition which this margin is too narrow to contain. -- Pierre de Fermat (1601-1665)
New Real Story

I'm working with a young woman (no titters please;) who just finished a college course in web programming. I should point out that what you US folks call a college, we call a university; this is a technical course that covers a topic in one year at a private school.

I've quizzed her a bit about what they taught her. So far, she doesn't grok:

  1. OO vs. Functional programming paradigms: what are they?
  2. STDIN, STDOUT, and STDERR: what are they and why they matter to web programming?
  3. Exactly what CGI is (she couldn't even get the acronym right, let alone describe how it works!).
  4. On the subject of OO programming:
    1. What's a method?
    2. What's inheritance?
    3. What's polymorphism?
    4. What's a class?
  5. On the subject of Functional programming:
    1. What's a function?
    2. Why do you want to reuse code by putting them into functions?
    3. What are function calls... and where are likely places where one might find functions you can use?
So far, she's been batting 0 as in zero as in nada as in SFA.

What they did teach her was how to use Visual Interdev to create ASP pages, a smattering of VBScript, and HTML and CSS... though I'm not entirely sure she has a complete grasp on how those last two fit together. As the final kicker, she does her source editing in Microsoft Word... she had to do her coursework in Word, and has just gotten used to how you do that. Furthermore, the other web people at this company all use Word to do their editing (and I'm not talking about "Save as HTML" I'm talking about cranking out tags in Word and saving it as a text file... «shudder»)

Now don't get me wrong... she's a nice woman, bright, and we've actually had some good conversations about how programming works... and she's picked it up pretty quickly. However, with this kind of training going on (and it appears to be depressingly common) I don't think anybody here has to fear for their job quite yet...

--\r\n-------------------------------------------------------------------\r\n* Jack Troughton                            jake at consultron.ca *\r\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\r\n* Laval Qu\ufffdbec Canada                   [link|news://news.consultron.ca|news://news.consultron.ca] *\r\n-------------------------------------------------------------------
New Don't I wish
However, with this kind of training going on (and it appears to be depressingly common) I don't think anybody here has to fear for their job quite yet...

You seem to assume the people doing hiring/firing would know to ask those questions.
===
Microsoft offers them the one thing most business people will pay any price for - the ability to say "we had no choice - everyone's doing it that way." -- [link|http://z.iwethey.org/forums/render/content/show?contentid=38978|Andrew Grygus]
New Re: Don't I wish
While it's true that a particular instance might result in employment change... in the medium term the people that actually know the concepts will be more secure. Kinda like how an MCSE holds no water anymore; too many employers have seen the newly minted MCSE come in and fuck everything up bigtime. At this point, MCSE is not perceived as a net benefit... that's why MSFT tried to clean up the program a year or two ago.
--\n-------------------------------------------------------------------\n* Jack Troughton                            jake at consultron.ca *\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\n* Laval Qu\ufffdbec Canada                   [link|news://news.consultron.ca|news://news.consultron.ca] *\n-------------------------------------------------------------------
New Web Programming and OO?
College was a few years ago, but when I hear of functional programming languages, I think of LISP rather than C/Pascal/etc. (The books we had then had them as imperative language, iirc).

But I am curious. (I've avoided almost all web programming. :-) But is there that much OO in JavaScript and others? (Perl seems to have tacked on 00, but...) (I don't think there's any OO in HTML, but I could be completely wrong).

I'm trying to think of why she should be aware of OO techniques if she's doing web pages.
New Couple of answers
First, HTML is a markup language, not a programming language, so it isn't meaningful to ask if it is OO. Second, the reason somone "doing" web pages should know about programming is that any large site eventually involves programming. The content has to be dropped into a framework, and someone has to know how to build that framework. Then add search functionality, feedback, shopping carts ... unless you want to be strictly a graphic designer, you're going to have to know this stuff.
===
Microsoft offers them the one thing most business people will pay any price for - the ability to say "we had no choice - everyone's doing it that way." -- [link|http://z.iwethey.org/forums/render/content/show?contentid=38978|Andrew Grygus]
New Javascript is like Python wrt OO
It can be as OO as you want it to be for the most part.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New re: Javascript is like Python wrt OO
IIRC, JavaScript (JS) and Python handle inheritance very differently. Python objects can have an explicit "search path" to hunt parent class/objects. But in JS you "clone" the parent to inherit from it, and then override what you want overridden in the copy (child). There is no explicit parent search path list in JS I don't think. It is purely inheritance-by-cloning. (Whether that is good or bad I won't say.)

Correction: It seems later versions of JS added a "prototype" property, which is essentially a search path, a pointer to the "parent" object/class. In dynamic OO languages, objects are often simply dictionary arrays where the slots can hold attributes or code (or code pointer), and with a parent-search-path of some sort for upward hunts of any non-matching keys in the current array.
________________
oop.ismad.com
Expand Edited by tablizer Nov. 7, 2002, 02:12:28 PM EST
New That wasn't my point.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Functional programming languages
College was a few years ago, but when I hear of functional programming languages, I think of LISP rather than C/Pascal/etc. (The books we had then had them as imperative language, iirc).
The trick to Lisp is that it is flexible enuf to be able to use in any programming language paradigm ever invented. Strictly speaking, Scheme - a derivative of Lisp - is more commonly associated with FP. From a purity perspective, Haskell, Mercury and SML come about the closest (see [link|http://www.cs.nott.ac.uk/~gmh//faq.html|Functional Programming FAQ]).

New Why OO techniques in web programming
Using one of several interfaces available on web servers lets designers write programs to do certain tasks. For example, at my website, I built an indexing program in Object REXX which lets me reindex my program automagically. The resulting index is stuffed into memory (in the .environment object, specifically) where it can be accessed by other CGIs I've written. For an example, go to [link|http://consultron.ca/english|http://consultron.ca/english] and look at the nav menu on the left. Also, look at the sitemap page... that's generated by a program too. The nice thing about this is that I can add content to my site, and so long as I follow a few conventions in my pages (look at the meta tags to see what they are) I can just run a little program to add it to the site's index. After that, the menu program and the sitemap program just add them to the navigation controls. It makes dealing with adding content or changing content a lot easier than it would otherwise be.

This all happens server side... when one uses the CGI interface, all one has to do is to make sure that the generated html comes out of stdout. The program can be written in any language that the host supports. Considering what a DOM is, using OO techniques can make that sort of thing a lot easier, a lot cleaner, and a lot more extensible with less effort than it would be if one was taking a procedural or functional approach. In fact, a large part of what I did was to apply the concept of a DOM to the server and site as a whole.
--\n-------------------------------------------------------------------\n* Jack Troughton                            jake at consultron.ca *\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\n* Laval Qu\ufffdbec Canada                   [link|news://news.consultron.ca|news://news.consultron.ca] *\n-------------------------------------------------------------------
New why does that need OO?
For an example, go to [link|http://consultron.ca/english|http://consultron.ca/english] and look at the nav menu on the left. Also, look at the sitemap page... that's generated by a program too. The nice thing about this is that I can add content to my site, and so long as I follow a few conventions in my pages

I don't see why this needs OO. I have done similar things before using table-oriented approaches. A rough example table layout can be seen at [link|http://geocities.com/tablizer/cntrl1.htm#website|http://geocities.com...ntrl1.htm#website]
________________
oop.ismad.com
New It doesn't. It just makes it a lot easier.
Have you ever actually tried to learn how OO programming works?
--\r\n-------------------------------------------------------------------\r\n* Jack Troughton                            jake at consultron.ca *\r\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\r\n* Laval Qu\ufffdbec Canada                   [link|news://news.consultron.ca|news://news.consultron.ca] *\r\n-------------------------------------------------------------------
New Of course I don't believe you
It doesn't. [OO] just makes it a lot easier.

Of course, I don't believe you. "A lot" implies a demonstration is a sinch. It is the subtle differences that are hard to demonstrate.

Have you ever actually tried to learn how OO programming works?

Have you actually tried to learn how tables work?

Have you actually tried to learn how to articulate benefits without personal insults?

Have you stopped beating your wife?

(He started it. I made no references to people being weak/bad, only technologies. He turned it into an issue of personal faults/lackings. I have to point these kind of things things out because I am often falsely accused of stirring trouble. Thus I have to be anal about who starts what. Insulting technologies is fair game. Insulting people is not. True, I admit I slip sometimes, but this is NOT one of them.)
________________
oop.ismad.com
New Whatever you say, sunshine.
--\r\n-------------------------------------------------------------------\r\n* Jack Troughton                            jake at consultron.ca *\r\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\r\n* Laval Qu\ufffdbec Canada                   [link|news://news.consultron.ca|news://news.consultron.ca] *\r\n-------------------------------------------------------------------
New I was hoping for a technical comparison, not flame-bait
________________
oop.ismad.com
New Re: I was hoping for a technical comparison, not flame-bait

Who started flaming? I asked you if you had actually tried learning OO... I've seen you demonstrate some serious ignorance on the subject.

\r\n\r\n

The reason I asked is because I've seen you try to use tables as the solution to every problem... when all you have is a hammer, everything looks like a nail. I don't use OO programming for everything... the scripts that I wrote for the timestamps and uptimes are procedural, because an OO approach is wrong for those problems. OTOH, building an index for a web server (including virtual hosted websites, folders within those websites, and pages within those folders) is a problem that is very easily addressed by creating objects that represent those entities, as well as directories (tables implemented as an object in to ORexx language spec) containing index objects that point to those entities. The result of this is that there are many ways to get to a particular object representing one of those entities depending on what the problem you're trying to solve is.

\r\n\r\n

For example, here's a simplified representation of the structure of a web server object in my program:

\r\n\r\n
web server\r\n   +websites\r\n      +Site1\r\n         +index\r\n            +indexitem\r\n               +page\r\n               +page's parent(always a web folder)\r\n            +root folder\r\n               +folder's properties (URL, Link Title, etc)\r\n               +SubPage array\r\n                  +Page1\r\n                  +Page2\r\n               +SubFolder array\r\n                  +Folder1\r\n                  +Folder2\r\n      +Site2\r\n      + ...\r\n   +siteroot\r\n
\r\n

By doing this, I can greatly simplify the programs that create the navigation menus etc. Here's the one that makes the sitemap for the site:

\r\n\r\n
/* sitemap.cmd - build sitemap for web site */\r\nsite = .web.server[website][1]\r\n\r\nmenuroot = site[root]\r\n\r\nif menuroot~hasindex('SUBDIR') then call sayfolders menuroot[subdir]\r\n\r\nif menuroot~hasindex('PAGE') then call saypages menuroot[page]\r\n\r\n\r\n   \r\n::routine sayfolders\r\nuse arg folderarray, \r\n\r\nsay '<ul>'\r\n\r\ndo i = 1 to folderarray~items\r\n   say '<li>'\r\n   say folderarray[i][link]~saylink || ' - ' || folderarray[i][meta]['Description']\r\n   say '</li>'\r\n   if folderarray[i]~hasindex('SUBDIR') then call sayfolders folderarray[i][subdir]\r\n   if folderarray[i]~hasindex('PAGE') then call saypages folderarray[i][page]\r\nend\r\n\r\nsay '</ul>'\r\n\r\n::routine saypages\r\nuse arg pagearray, curpage\r\n\r\nsay '<dl>'\r\n\r\ndo i = 1 to pagearray~items\r\n   say '<dt>'\r\n   say pagearray[i][link]~saylink || ' - ' || pagearray[i][meta]['Description']\r\n   say '</dt>'\r\nend\r\n\r\nsay '</dl>'\r\n
\r\n

Very nice, very neat, and it's very clear what's going on. Trying to do the same thing with a procedural type of program would be a lot more work. The key is in the classes I created, and the methods I created for them. The other key is that when I stuff the "current" object into the loop object, I can refer to it very easily, even though the actual name of the object itself can be very very large for a deeply nested webpage. It makes for much clearer code, and also makes for very easy maintainability.

--\r\n-------------------------------------------------------------------\r\n* Jack Troughton                            jake at consultron.ca *\r\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\r\n* Laval Qu\ufffdbec Canada                   [link|news://news.consultron.ca|news://news.consultron.ca] *\r\n-------------------------------------------------------------------
New Start a new thread if you two get into it :-)
Check the "As New Topic" box under the save button.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Should we put it in the Flame Quarentine section?
________________
oop.ismad.com
New just recursion there
Who started flaming? I asked you if you had actually tried learning OO

It sounded suspiciously similar to some personal insults from others. If you meant it seriously, then perhaps there are more diplomatic alternatives to asking the same thing. For example, "What is your level of knowledge of OO?"

I've seen you demonstrate some serious ignorance on the subject.

I have been tripped on language-specific trivia and vocab in the past, but never anything *fundimental* to understanding OO itself. (Well OK, Visitor still tosses me, I admit.) May I ask what this alleged big faulup was? Perhaps you are too eager to believe the FUD from those who hold big grudges against me left over from heated arguments.

The reason I asked is because I've seen you try to use tables as the solution to every problem... when all you have is a hammer, everything looks like a nail.

I could say the same about you guys and objects/classes. Objects/classes appear to me nothing more than a crippled collection: a vertical dictionary (hash) array with a search path to optional parent(s) if key is not found in current dict. (The dict keys are the attribute or method name and the value is an attribute value or an algorithm {method} pointer or code.) That is what OO boils down to in my mind.

Dictionaries are fine for simple short-term interfaces, but I would not want to build and manage large-scale structures with them alone. IOW, they are too crippled to serve as a primary building block of everything. Dictionaries have some *arbitrary* limits on them: Only one "match" max, two columns, and one index. This 1,2,1 is an arbitrary set of (low) numbers. They are not universal constants or anything.

IOW, tables make a more open-ended hammer. I am not limited by 1,2,1. I can have a 12,243,17 if I want.

The result of this is that there are many ways to get to a particular object representing one of those entities depending on what the problem you're trying to solve is.

That is what relational queries are like. You give a little relational equation that merges, filters, sorts, etc. the data into just about any organization you can imagine.

Isn't it agreed that relational DB's are better at ad-hoc queries than DB-free OO techniques? Not that ad-hoc queries are the end-all-be-all, but that compact flexibility spills over into the rest of the p/r design also.

I don't want to manage indexes in programming code (as arrays or linked lists, etc.), I want to farm that off to the DB engine. Arrays and linked lists feel too "low level" to me. Plus, it is hard to traverse them without going through the parent's interface first. Some queries don't need the parent.

Trying to do the same thing with a procedural type of program would be a lot more work.

I don't think so. You have nothing but simple recursion here. Besides, some RDBMS, like Oracle, have built-in tree operations so that you don't have to do recursion in your code. (One drawback in the Oracle approach could be different entities at different levels, though. I would have to look at some more specifics of your requirments.)

My designs tend to be less "nesty", so I don't use/need tree-centric operations/algorithms that much (if given a choice). Trees don't scale, IMO. For example, product categories tend to grow non-tree over time because products end up in orthogonal or semi-orthogonal (multiple) categories.

BTW, what is a subpage or subfolder in your setup?
________________
oop.ismad.com
Expand Edited by tablizer Nov. 7, 2002, 09:12:04 PM EST
New Recursion not the point; it's object references (new thread)
Created as new thread #61876 titled [link|/forums/render/content/show?contentid=61876|Recursion not the point; it's object references]
--\r\n-------------------------------------------------------------------\r\n* Jack Troughton                            jake at consultron.ca *\r\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\r\n* Laval Qu\ufffdbec Canada                   [link|news://news.consultron.ca|news://news.consultron.ca] *\r\n-------------------------------------------------------------------
     Hm... sharpen yer virtual pencils - (tseliot) - (49)
         Gave my opinion a while back - (drewk) - (41)
             Shoot. Missed that whole conversation. - (tseliot) - (11)
                 My goal is to automate as much as possible then pass - (boxley) - (2)
                     Do you feel... - (tseliot) - (1)
                         2 of course - (boxley)
                 Don't know how to answer that - (drewk) - (7)
                     I was interested in the web part. -NT - (tseliot) - (6)
                         Well ... - (drewk) - (5)
                             Re: Well ... - (dshellman) - (4)
                                 I think we've leapfrogged the technology - (drewk) - (1)
                                     Agreed -NT - (dshellman)
                                 And this differs from any other pair of technologies..how? - (ben_tilly) - (1)
                                     Riding the waves - (dshellman)
             That would seem to indicate that... - (CRConrad) - (5)
                 What I mean - (drewk) - (4)
                     PHP database code? - (tablizer) - (3)
                         What I mean by "manually" - (drewk) - (2)
                             inter-paradigm translation costs - (tablizer) - (1)
                                 Yes -NT - (drewk)
             Another take - (wharris2) - (22)
                 That's a growing problem at technical schools - (tjsinclair) - (21)
                     Reminds me of first computer related course that I took... - (a6l6e6x)
                     Real Story - (jake123) - (19)
                         Don't I wish - (drewk) - (1)
                             Re: Don't I wish - (jake123)
                         Web Programming and OO? - (Simon_Jester) - (16)
                             Couple of answers - (drewk)
                             Javascript is like Python wrt OO - (admin) - (2)
                                 re: Javascript is like Python wrt OO - (tablizer) - (1)
                                     That wasn't my point. -NT - (admin)
                             Functional programming languages - (ChrisR)
                             Why OO techniques in web programming - (jake123) - (10)
                                 why does that need OO? - (tablizer) - (9)
                                     It doesn't. It just makes it a lot easier. - (jake123) - (8)
                                         Of course I don't believe you - (tablizer) - (7)
                                             Whatever you say, sunshine. -NT - (jake123) - (6)
                                                 I was hoping for a technical comparison, not flame-bait -NT - (tablizer) - (5)
                                                     Re: I was hoping for a technical comparison, not flame-bait - (jake123) - (4)
                                                         Start a new thread if you two get into it :-) - (admin) - (1)
                                                             Should we put it in the Flame Quarentine section? -NT - (tablizer)
                                                         just recursion there - (tablizer) - (1)
                                                             Recursion not the point; it's object references (new thread) - (jake123)
         Low-level programming - (Arkadiy) - (2)
             I don't quite agree. - (static) - (1)
                 I was trying to say the same thing. -NT - (Arkadiy)
         I don't personally believe in end user programming. - (tuberculosis) - (3)
             human factors bust automation goals - (tablizer) - (2)
                 Re: human factors bust automation goals - (wharris2) - (1)
                     re: Peer Kudos - (tablizer)

I'll give up my thesaurus when you pry it from my frigid, frosty, frozen, cadaverous, lifeless, stiff, defunct extremities.
114 ms