|
It may be very close to the hardware, but I have been using a bidirectional data bus[^] for such problems for many years now.
The language is JavaScript. that of Mordor, which I will not utter here
This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a f***ing golf cart.
"I don't know, extraterrestrial?"
"You mean like from space?"
"No, from Canada."
|
|
|
|
|
HI ALL,
I reading a book "C++ in Action". it mentions that we(human) only have two methods: divide and conquer, abstraction. Do you agree?
diligent hands rule....
|
|
|
|
|
Southmountain wrote: divide and conquer
Julio Cesar would agree with you
Southmountain wrote: abstraction
Salvador Dali would agree with you too
I'll get my coat
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
|
The way a cat handles a mouse.
«A man will be imprisoned in a room with a door that's unlocked and opens inwards ... as long as it does not occur to him to pull rather than push» Wittgenstein
|
|
|
|
|
No.
If it's wrong about that, it will be wrong about other things, so don't bother to read the rest.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
No.
Do not read programming books that mix too much personal philosophy with the subject!
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Divide and Conquer, and Abstraction are the same concept.
If we are looking at something too complex to immediately understand as a single whole, we understand a subsection of the whole, by ignoring the remainder.
Divide and conquer is ignoring the horizontal breadth of the system, and understanding a small vertical section from top to bottom.
Abstraction is understanding the horizontal breadth of the system, but not from top to bottom.
I would argue there is an additional way of understanding a complex system. Formally. Balls crashing around a pool table may initially look too complex to understand, but by applying a few simple Newtonian formulas to some of the basic properties of the system, it's complexity can be revealed to be quite simple. (Until someone starts hitting balls close to the speeds of light)
|
|
|
|
|
In practice, complexity is usually handled by not handling it and just letting the next guy deal.
|
|
|
|
|
No, unfortunately there is also a third, very large fraction of people, known as the Forces Of Chaos. They don't divide, conquer or abstract anything. Instead they prefer to produce endless unstructured spaghetti code, no matter how unmaintainable this mess becomes.
The language is JavaScript. that of Mordor, which I will not utter here
This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a f***ing golf cart.
"I don't know, extraterrestrial?"
"You mean like from space?"
"No, from Canada."
|
|
|
|
|
CDP1802 wrote: they prefer to produce endless unstructured spaghetti code I once saw one of those in the mirror years ago, but I think he's dead now because I don't see him anymore.
«What we observe is not nature itself, but nature exposed to our method of questioning» Werner Heisenberg
|
|
|
|
|
No.
Depends on the level of the complexity, and the "processing power" of the brain(s) involved.
What seems to one person as "impossibly complex" is frequently fully grasped by a cleverer, or more experienced person.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
I have one effective method to deal with complexity. Pass it on to the missus as I'd probably get vetoed anyway.
It might not actually solve an issue, but it does surround it with an SEP field.
Life is like a s**t sandwich; the more bread you have, the less s**t you eat.
|
|
|
|
|
Could you please simplify that question?
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "As far as we know, our computer has never had an undetected error." - Weisert | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Programmers should not be writing about human behavior or psychology. Why do you think AI has totally failed to deliver on its promises?
Dealing with complexity? How about:
ignore
suicide (whatever form that takes, quit your job, transfer departments, kill yourself, etc)
delegate (you, then manager, shove it to your peons)
wait until it gets reduced naturally (different from ignore)
escalate (you, the peon, shove it to your manager)
educate (learn to see the problem as not complex after all)
collaborate (bring others into the problem domain)
I could probably think of more.
Marc
|
|
|
|
|
Well, esteemed colleague, and mentor, Marc, it seems I do not walk the dark-side of the Lounge alone these days: that's a very interesting response.
I found myself ... whilst reading your statement ... asking myself, in kind of a rhetorical mode: "Is "Programmer" a noun that describes a "type of person," a "state of being," something you are ?
Or, is "programmer" an adjective, an attribute of someone who engages in certain behaviors, i.e., writing code, creating software.
Of course, there is the "social role" of programmer with the same kind of cultural baggage, and stereotypes, attached, that most other roles have. How that stereotypical role has changed since my high-school days in the mid- 1950's when the "technicals" were usually male, fat, wore slide-rules, and actually did have plastic-pocket-protectors, and were considered socially beyond-the-pale by the trendy-kiddies, jocks, greasers, etc.
In the late 1980's, I used to meet people who were very advanced power users of Excel, writing macros of great complexity; in the early 1990's and on I met Excel users creating recursive solutions using the "Solver" functionality, etc., but, I was always surprised that they never thought of themselves as "programmers." Well, I do think things like HyperCard, VBA, Visual Basic, even Logo, did open the gates a bit wider.
Then, me brain turned to the thought that I have, frequently, that "programming" is a science informed by art, and an art informed by science, as well as a craft, a craft that requires a set of skills, and a certain level of mastery of those skills.
Some may blanche at the word "art" here, and I have seen how it is difficult for many people not "into programming" to grok the aesthetic dimensions of code, algorithms, how elegance, architecture, style, and qualities like "separation of concerns," frugal utility, etc., can become almost transcendent in "great code."
If "programmer" is a role I play, and programming something I practice and do, then I don't see why that should limit me in any way in any other possible dimension of living.
Why shouldn't you and I be involved in and write about psychology, spirituality, human behavior, art, science, consciousness ? Okay, let me hedge that by making it clear that, imho, writing about "spirituality" directly on the Lounge is probably some form of terrorism
In fact, I would assert that you do write about psychology and write clearly with a keen critical intellect that questions sacred cows whenver possible to see what kind of grass they have been chewing. And, I perceive you as a trail-blazer, an explorer of the untried, who is an artist with code in very creative ways.
Yes, if we work as programmers, the world may judge our words in a very biased way, and question our credentials, and now the great-leveler of instant-digital communication has given everyone a megaphone (for better and worse).
The world is exploding with wanna-be-Gurus of every form, but the wet-ware analog computer between our ears is still running the Primate Operating System alpha vintage 100k years ago.
Too many paths, not enough feet.
Ah, well, as Mr. Natural said: " 'Twas ever Thus."
cheers, Bill
«What we observe is not nature itself, but nature exposed to our method of questioning» Werner Heisenberg
|
|
|
|
|
BillWoodruff wrote: Then, me brain turned to the thought that I have, frequently, that "programming" is a science informed by art, and an art informed by science, as well as a craft, a craft that requires a set of skills, and a certain level of mastery of those skills.
Oddly, I think of my work, whether it's architecting a program or writing the actual code, as an art form. Whatever medium I'm working in, it must be artistically aesthetic, both visually and functionally. I actually have a soul-level experience of code artistry - whether I look at my code or someone else's, there is a soul pleasure or pain experience associated with what I'm looking at. Recently, I've had to work on someone else's code where the soul image that constantly comes up for me is that of a bloody newborn with ghastly mutations that is still alive but screaming out of its own agony. It demands to be healed, as it were. Yes, the code is that bad.
BillWoodruff wrote: Why shouldn't you and I be involved in and write about psychology, spirituality, human behavior, art, science, consciousness ?
This comes off sounding arrogant, but oh well -- I don't meet too many people in my field that have a sense of the soul mood of their work. Most of the time I feel like I'm working with soulless automatons rather than people that, in prosaic terms, "take pride" in their work. In order for programmers to write about the human psyche (and from there, psychology) I find that a certain consciousness of the spirit is required, and that is woefully lacking in this age where science, in its empirical analytical process, has cut away the experience of soul from the human being. We've lost the origin of science, which was philosophy.
BillWoodruff wrote: And, I perceive you as a trail-blazer, an explorer of the untried, who is an artist with code in very creative ways.
Thanks for noticing and being attuned to that, because that is exactly what I try to achieve.
Marc
|
|
|
|
|
I've always shown (quite deliberately) ruffle feathers whenever the science are not considered art. They live off of creativity; not all are skilled enough to excel in their usage; (etc.);
How, then, are they any different than painting? than music? than pottery making.
Particularly, these days, when my craw is annoyed by such terms as artisan bread and it's trendy ilk.
One difference is that, in a culture that still makes fun of academic achievement, there is no thought of teaching an appreciation for the creativity involved in science and technology. Oddly, they teach courses in "art appreciation" and "music appreciation" - but then, if they were so self-evident, would the courses be needed?
It's a distinction - nay - a discrimination - which must be righted.
As a chemist (in real life) - I would always point out to people: "Look around you. What was not made by a chemist? Even the wood has its beauty enhanced and surface protected by stains and coatings"
"Condemnant quod non intellegunt"
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "As far as we know, our computer has never had an undetected error." - Weisert | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
|
I would call this, as many have, a grotesque over simplification.
Although, abstraction is so vague as to cover my counter argument (deleted).
Since you can abstract Higher or Lower from the system you are reviewing.
So, we take complex things, and either break them down, or abstract a box for
them to exist in neatly. When we open the box, we again, take the pieces, and
apply this.
Hmmm... I would argue, that if the implication was NOT that we ONLY have those 2 methods.
And it said, we tend to utilize 2 core methods... Then I would potentially buy this.
Easily, upon introspection, this hits the 80/20 rule. As long as abstraction covers "ignoring,
and praying it works after I recompile<grin>"
|
|
|
|
|
|
No, I don't agree. There's also pattern matching.
And I don't agree that this is simply personal philosophy. Managing complexity is key to maintainability. The more techniques you have for doing so, the more maintainable your code is.
We can program with only 1's, but if all you've got are zeros, you've got nothing.
|
|
|
|
|
I prefer to stand at Olympian heights and look down at the problem to look for similarities the closer view hides with complexities.
For example, I once had a manager hand me a 15 page flowchart she wanted implemented. I looked at it from 30,000 feet and saw that it could be implemented in one page, the special cases could all be reduced to "fill in the blank" when it came to processing and I moved all the special behavior to database entries that would fill in the blanks as needed.
Essentially a programmable program which was able to have a default, fail soft behavior, it conditions did not match. That mode of operation was a real saver because the department we wrote the program for changed conditions without informing us. Months later I found the program behaving in default mode and contacted the department to see what had changed.
A few database entries later, and it was back to optimal performance.
I suppose you could call that abstraction with a divide and conquer behavior.
Psychosis at 10
Film at 11
Those who do not remember the past, are doomed to repeat it.
Those who do not remember the past, cannot build upon it.
|
|
|
|
|
It seems that human mind cannot handle "a lot" of complexity, only 7 things at once, more or less (+/- 2)
[^], Cheers
|
|
|
|
|
If you take that sentence out of its context in the book, and assume that's a kind of "uber truth" about software design ... rather than an "aside" reflecting one of the author's probably many casual statements; although, if the author actually said "humans ... have only two methods," that's pretty grandiose.
Then I think that sentence "fails:" it doesn't do justice to the wealth of "formalisms" ... patterns and practices ... that have evolved in what you might loosely call "computer science."
For example: step-wise refinement; object-oriented design, design patterns, analysis of algorithmic complexity: those would go on my list along with many other concepts/ideas/practices/philosophies.
In 1996, the ideas about many aspects of software design and coding in this multi-author book organized by Stanford's Terry Winograd gave me a lot to think about, and it's on-line now, free: [^].
«What we observe is not nature itself, but nature exposed to our method of questioning» Werner Heisenberg
|
|
|
|
|