[Windows] 8.1 is good and I find it hard to see the problems people claim.
Me too. At first it was strange and I had to think of how do I do this and that, but I quickly got over that.
I used to keep using old desktop applications because they were familiar, but lately have been replacing them with metro1 applications as my preference.
I think that most people are uncomfortable with change. The 'who moved my cheese syndrome' and need to be forced to adopt anything new; to wit Windows XP. It didn't help that the next version was Vista which put the resistant to change folks in epileptic seizures, but there was nothing wrong with Windows 7. So why the resistance to changing from XP?
Windows 8/8.1 has gotten them twitching again. It will take dropping support for Windows 7 before they will have to upgrade and then in due time when there is another paradigm shift they will be lamenting 'why doesn't it work like Windows 8'.
1 - I know I am not supposed to say metro but it sounds better than modern.
Once you lose your pride the rest is easy.
I would agree with you but then we both would be wrong.
The report of my death was an exaggeration - Mark Twain Simply Elegant DesignsJimmyRopes Designs
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952)
Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)
It seems to me that it is "enterprisey" to write layer of abstract code.
In fact I am often criticized as "not liking layers"
So first I'd like to say what I thing about architecture then ask my question
A crux of contention is:
I would argue writing layered code is not an end of its own (at least not reasonably).
I would argue an end of its own is (simple maintainable code, i.e.) probably be these few properties:
- modular (people can work on their bit independently)
- dependencies flow down (top level use low level, low level do NOT use top level)
- simplest / unobtrusive as possible shell / architecture to glue stuff together
this *might be* layered / interfaced too but this is not the purpose...
What I often see and I wonder how prevalent and wonder how common it is
Layered / interfaced as hell code which takes weeks to understand to solve problem as simple as adding 1 + 2.
I always keep my UI layer and any DB layer separate - it is simpler to just ram code accessing the DB directly from a View, but so totally unmaintainable beyond trivial examples that I just don't do it. I also almost always have a 'service' layer which stitches the two together, rather than calling the Db later from the UI layer.
Other than that, I tend to be fairly flexible on layers depending on the project.
I agree about the over-complexity introduced sometimes - my logic is that a well written and modular project can be expanded into more abstract layers, should that be necessary, quite easily if it is easily maintainable and modular in the first place - and building abstraction on abstraction just because it makes some intrinsic sense to a developer, in my experience, slows development and can increase bugs as new developers don't understand how it hangs together - and nobody ever spends the time to train newbies!
Super Lloyd wrote:
simplest / unobtrusive as possible shell / architecture to glue stuff together
That's the one that gets me most. When someone uses some framework or other (especially if they use something and then modify it, and don't document anything) I have often found that the use of the framework has been chosen without much knowledge - so the developers learn on the job, invent work-arounds, until the whole thing is a bit of a mess, nobody really understands how it is meant to work, and new devs coming into the project don't have a cat in hell's chance of being productive for weeks.
although that can differ a bit from project to project. My major concerns regarding this, is code separation. It forces me to keep things simple. It also allows me to reuse things, which is handy when you're working on multiple applications.
I enjoyed RogelloP's current post on this topic, but, on reflection, I found such a variance between the person-types listed in his post and my actual experience working in various software companies, including a start-up, that I feel compelled to publish my own list:*
1. schizophrenic creative visionary who typically communicates in grunts
2. best college friend of #1 who never held a job for longer than two months before this one, and is into S&M
3. ex-felon convicted of securities fraud, and tax evasion
4. manic-depressive hyper-verbal former philosophy master's degree holder
5. former assembly language programmer only familiar with printer-drivers for long-discontinued ink-jet printers
6. alcoholic former zookeeper fired for willful negligence of the animals in their care
7. programmer from India, or China, or Taiwan
8. vegetarian meditator recently convicted of spiking trees
9. drag-strip racer, gun hobbyist, military memorabilia collector, amphetamine user
10. anal-retentive compulsive-obsessive high-Asperger savant
Relation of these persons to their job titles:**
1. only one person can have the following titles: CEO/President, CTO/Chief Scientist, CFO/Accountant
2. more than one person can have the following titles: programmer, marketer, public relations (aka 'booth bunny,' or 'booth stud'), janitorial, massage therapist, psychiatrist, janitorial, network/site admin, unpaid intern
* Note: Any resemblance of the persons described here to certain well-known CP members is purely serendipitous, although, given quantum electrodynamics, one cannot rule out extra-sensory influence, or the possibility of hive-mind thought-control.
** Note: This is not to imply there is some causal relationship between background, experience, and capability, of these persons, and the job title they may hold.
“I have diligently numbered the days of pure and genuine happiness which have fallen to my lot: They amount to 14.” Abd-Ar Rahman III, Caliph of Cordoba, circa 950CE.