![]() | |
#41
| ||||
| ||||
|
|
Well, I might classify myself as such at the risk of being immodest. But mainly I resent the attitude that if you don't get with the latest, you're obsolete/ineffectual/screwing your client/etc. |
|
I would venture to guess that most on this list know enough about "new" technologies, not to say being able to use thin/thick client PCs for their UI, etc. as to be *not* "old time" (or old dogs, either) |
|
What I would also venture is that many (show of hand, please, if this is substantially untrue I will stop p***ing in the wind) are totally comfortable with mvBasic to do the bulk of the business rule implementation. The rest is just window-dressing.To use the phrase I detest, mvBasic is the right tool for the task. |
|
And no amount of computer science jargon can obviate the fact that complex systems degrade with time like buildings, and occasionally you *do* need an expert to prop 'em up rather than your buddy's teen-age hacker son. |
#42
| ||||||
| ||||||
|
|
my overall estimate is that typically 70% of the code in a Pick BASIC application is doing work not related to the business requirements. Example include: managing multi-valued lists |
|
reading and writing file items; checking for error conditions; iterating through loops. |
|
At the same time, however, there are still many many things that are VERY difficult to achieve in BASIC Here are some examples: (1) Imagine we had two simple multivalued lists: One contains a list of employee ids, and the other contains a list of salaries for those employees. How will you sort the list of employee ids in the numerically increasing order of their corresponding salaries? |
|
(2) How do you enforce a rule that you should not be able to delete a customer record from the system if there are any outstanding orders for that customer? |
|
(3) How do you say that a child's date of birth must be later than the date of birth of its mother - and enforce that throughout the whole of your application? |
|
Instead, I am pushing back against all the folks on here who claim that Pick is the greatest thing in the world, and that everybody else needs to wake up and see how great Pick is. |
#43
| ||||||
| ||||||
|
|
Lucian wrote: I've programmed in FORTRAN, COBOL, a couple of assembly languages, C and finally PICK BASIC. For me, the most intelligible, easy to maintain and better language is PICK BASIC. The main advantage that Pick BASIC has over those other languages you mention is that is is low on ceremony. It does not require you to focus much on technical preamble, and allows you to mostly focus on the business area your system will support. However, there are many areas where Pick BASIC IS high on ceremony. One glaring example is the fact that is have very simplisitc support for collections of data. The technical intricacies of manipulating multivalued (and subvalued) lists within BASIC lead to very convoluted code. Indeed, over the past 8 years I have been pretty much full time dealing with numerous Pick legacy systems - and my overall estimate is that typically 70% of the code in a Pick BASIC application is doing work not related to the business requirements. Example include: managing multi-valued lists; reading and writing file items; checking for error conditions; iterating through loops. You CAN do somethings about this, with very careful programming in BASIC, and I have worked with many of my clients to tame their wild code. At the same time, however, there are still many many things that are VERY difficult to achieve in BASIC since the underlying tools themselves do not support many fundamental features. Here are some examples: (1) Imagine we had two simple multivalued lists: One contains a list of employee ids, and the other contains a list of salaries for those employees. How will you sort the list of employee ids in the numerically increasing order of their corresponding salaries? |
|
(2) How do you enforce a rule that you should not be able to delete a customer record from the system if there are any outstanding orders for that customer? |
|
(3) How do you say that a child's date of birth must be later than the date of birth of its mother - and enforce that throughout the whole of your application? |
|
These types of thing are very easy to express in English, but are very hard to implement in BASIC. When you DO manage to implement them, they require astonishing levels of discipline from the programmer - since it is VERY easy to circumvent them. |
|
As I keep saying, I do like the simplicity of Pick and the "get on with it" methodology that Pick folks tend to adopt. I am not advocating high-ceremony solutions (like, say, C++ and Oracle in every case). Instead, I am pushing back against all the folks on here who claim that Pick is the greatest thing in the world, and that everybody else needs to wake up and see how great Pick is. |
|
Overall, the simplicity of Pick means you can learn it easily, and bash out an application quickly. However, there really are other technical solutions to some of the problems from which Pick suffers. I am not advocating other technologies for the sake of their newness - but rather because they will remove much of the intellectual burden that is force on the programmer by the tools you are currently using. I am telling you that you CAN have things that are as simple as Pick - yet are far more expressive in terms of providing direct support for the underlying business domain model. |
#44
| |||
| |||
|
|
Here are some examples: (1) Imagine we had two simple multivalued lists: One contains a list of employee ids, and the other contains a list of salaries for those employees. How will you sort the list of employee ids in the numerically increasing order of their corresponding salaries? (2) How do you enforce a rule that you should not be able to delete a customer record from the system if there are any outstanding orders for that customer? (3) How do you say that a child's date of birth must be later than the date of birth of its mother - and enforce that throughout the whole of your application? |
#45
| |||
| |||
|
|
(3) How do you say that a child's date of birth must be later than the date of birth of its mother - and enforce that throughout the whole of your application? Again, this is a RI constraint issue, not a language issue. |
#46
| |||
| |||
|
|
Each of these is very easy and just done once by the system architect/senior programmer. All systems i work on, the developer never directly reads and writes to a file, it is all done through standard handlers (classes), developed by myself. any such validations, auditing etc are placed in the central file handler so the programer just does his file.open/read.write/delete/select and either catches an error or gets a succes which he than has to handle. Again i think most pickes these days approach things in a much more organised style like this, it only takes a little imagination and a familiarity of oo techniques. |
#47
| |||||
| |||||
|
|
Tony Gravagno wrote: Even I'm beyond words. The fact that you believe what you're saying is a testimony to why this market is the way it is. "SteveB" wrote: Hiya. Who/what were you replying to? TG wrote: Chandru wrote the following snippets. Way too much to comment on. Don't get me wrong, I like and respect Chandru, but it's this very mindset that has caused the Pick model to fade into obscurity among the people toward whom he thumbs his nose. T ================================ |
|
No wonder I don't like, don't fully understand and don't need OO! In the time it would take me to decipher the above paragraph, I could have created a new application... One wonders--perhaps simplicity IS a virtue? Perhaps all this gobblygook about OO, is the conventional wisdom that has to be paid obeisance to? Perhaps the Emperor's clothes lie therein? |
|
They used to say "don't argue with success". Pick, by any standards was a howling success when un-computer-science-schooled programmers did not know any better than to develop applications. It's current state of decline is, as most of us would concur, just a marketing phenomenon, and is exacerbated by our community's general inability to refute these overblown claims of weakness. We just don't speak the language. |
|
If you read the academic journals on many disciplines, you will note that they get steadily narrower, more jargon-filled, and more concerned with esoterica. Geography comes to mind. You thought Geography was concerned with physical boundaries and features? No more. I feel the same way whenever I read anything touted as the latest computer science technology. Acronyms out the gazoo, jargon that obscures the issues, claims of superiority that cannot be verified in the real world, dismissal of anything that does not conform to the received wisdom, etc.. |
|
I can see why I'm not super rich. Obviously I should've been using all these nifty tools so that I could take 10 times longer and charge my clients accordingly. Now there's a business model worth an advanced degree! |
#48
| |||
| |||
|
|
The main purpose of OO is to be able to develop a direct representation of the domain model your application is supporting, so that you can then write your application in terms of those abstractions. For example, being able to say that an order has an associated list of line items, and that the total value of those line items is limited by the credit rating of the customer. There is no where in BASIC to express such constaints other than by scattering them throughout the code. In an OO language you could create a concept called order, which contains concepts called line items which themselves enforce that total value rule. |
|
What I would also venture is that many (show of hand, please, if this is substantially untrue I will stop p***ing in the wind) are totally comfortable with mvBasic to do the bulk of the business rule implementation. The rest is just window-dressing.To use the phrase I detest, mvBasic is the right tool for the task. This makes me cringe. Pick BASIC can do the job - just - but being able to do the job isn't enough. The rest is not window-dressing - I think you are doing yourself and others a misservice by misrepresenting other approaches that could provide considerable benefit to their daily work. |
#49
| |||
| |||
|
|
"Anthony Lauder" <anthony.lauder (AT) gmail (DOT) com> wrote in message news:1151676988.785519.207910 (AT) p79g2000cwp (DOT) googlegroups.com... The main purpose of OO is to be able to develop a direct representation of the domain model your application is supporting, so that you can then write your application in terms of those abstractions. For example, being able to say that an order has an associated list of line items, and that the total value of those line items is limited by the credit rating of the customer. There is no where in BASIC to express such constaints other than by scattering them throughout the code. In an OO language you could create a concept called order, which contains concepts called line items which themselves enforce that total value rule. Funny! I have been doing that for 30 years without having the rules |
#50
| |||
| |||
|
|
Bill H wrote: Quality control is much more difficult too because we, who know what the software is supposed to do, can't test the software to do it and the programmers, who know how the software is put together, can't test what it is supposed to do. This is no nirvana, but a much more difficult, and convoluted, way to exist. Sounds like a nightmare of mismanagement allowing such a split to arise, not an argument against using industry standard tools as such. Shipping in different expertise without ensuring it gells with the current brains is asking for trouble. Cheers, Steve |
![]() |
| Thread Tools | |
| Display Modes | |
| |