#[1]Simple Talk » Feed [2]Simple Talk » Comments Feed [3]Simple Talk »
Chuck Moore on the Lost Art of Keeping It Simple Comments Feed
[4]alternate [5]alternate
IFRAME: [6]//www.googletagmanager.com/ns.html?id=GTM-N5S5ZL
[7]Redgate logo
* [8]Products
+ [9]SQL Server
o [10]SQL Toolbelt
o [11]SQL Compare
o [12]SQL Data Compare
o [13]SQL Prompt
o [14]SQL Monitor
o [15]SQL Change Automation
o [16]SQL Provision
o [17]SQL Clone
o [18]SQL Data Masker
o [19]SQL Source Control
o [20]SQL Backup Pro
o [21]DLM Dashboard
o [22]SQL Search
o [23]SQL Doc
o [24]SQL Data Generator
o [25]SQL Test
o [26]SQL Multi Script
o [27]SQL Dependency Tracker
o [28]SQL Scripts Manager
o [29]SQL Index Manager
o [30]SQL Data Catalog
+ [31].NET
o [32].NET Developer Bundle
o [33]ANTS Performance Profiler
o [34]ANTS Memory Profiler
o [35].NET Reflector
o [36]SmartAssembly
+ [37]Oracle
o [38]Deployment Suite for Oracle
o [39]Schema Compare for Oracle
o [40]Data Compare for Oracle
o [41]Source Control for Oracle
o [42]Data Masker for Oracle
+ [43]MySQL
o [44]MySQL Comparison Bundle
o [45]MySQL Compare
o [46]MySQL Data Compare
* [47]Solutions
+ [48]Overview
+ [49]By Need
o [50]Standardize
o [51]Automate
o [52]Monitor
o [53]Protect
+ [54]By Role
o [55]Development
o [56]Operations
o [57]IT Management
o [58]Enterprise leadership
+ [59]By Industry
o [60]Tech
o [61]Finance
o [62]U.S. Federal
o [63]Manager Service Providers
+ [64]Resources
+ [65]Maturity assessment
* [66]Support
* [67]Our Company
+ [68]Overview
+ [69]Careers
+ [70]Contact us
+ [71]Redgate blog
+ [72]Press kit
* [73]Community Hub
+ [74]Product learning
+ [75]Redgate University
+ [76]Forums
+ [77]Events & groups
+ [78]Simple Talk
* [79]Search
* [80]My account
* [81]Shopping cart
* [82]Quotes
*
*
*
*
* [83]Products
+ [84]SQL Server
o [85]SQL Toolbelt
o [86]SQL Compare
o [87]SQL Data Compare
o [88]SQL Prompt
o [89]SQL Monitor
o [90]SQL Change Automation
o [91]SQL Provision
o [92]SQL Clone
o [93]SQL Data Masker
o [94]SQL Source Control
o [95]SQL Backup Pro
o [96]DLM Dashboard
o [97]SQL Search
o [98]SQL Doc
o [99]SQL Data Generator
o [100]SQL Test
o [101]SQL Multi Script
o [102]SQL Dependency Tracker
o [103]SQL Scripts Manager
o [104]SQL Index Manager
o [105]SQL Data Catalog
+ [106].NET
o [107].NET Developer Bundle
o [108]ANTS Performance Profiler
o [109]ANTS Memory Profiler
o [110].NET Reflector
o [111]SmartAssembly
+ [112]Oracle
o [113]Deployment Suite for Oracle
o [114]Schema Compare for Oracle
o [115]Data Compare for Oracle
o [116]Source Control for Oracle
o [117]Data Masker for Oracle
+ [118]MySQL
o [119]MySQL Comparison Bundle
o [120]MySQL Compare
o [121]MySQL Data Compare
* [122]Solutions
+ [123]Overview
+ [124]By Need
o [125]Standardize
o [126]Automate
o [127]Monitor
o [128]Protect
+ [129]By Role
o [130]Development
o [131]Operations
o [132]IT Management
o [133]Enterprise leadership
+ [134]By Industry
o [135]Tech
o [136]Finance
o [137]U.S. Federal
o [138]Manager Service Providers
+ [139]Resources
+ [140]Maturity assessment
* [141]Support
* [142]Our Company
+ [143]Overview
+ [144]Careers
+ [145]Contact us
+ [146]Redgate blog
+ [147]Press kit
* [148]Community Hub
+ [149]Product learning
+ [150]Redgate University
+ [151]Forums
+ [152]Events & groups
+ [153]Simple Talk
OVERVIEW
* [154]Compliant Database DevOps
BY NEED
* [155]Standardize team-based development
* [156]Automate database deployments
* [157]Monitor performance and availability
* [158]Protect and preserve data
BY ROLE
* [159]Development
* [160]Operations
* [161]IT Management
* [162]Enterprise leadership
BY INDUSTRY
* [163]Tech
* [164]Finance
* [165]U.S. Federal
* [166]Managed Service Providers
[167]Redgate logo Hub
*
* [168]Product articles Tips & how-to guides
* [169]University Product training videos
* [170]Community forums Ask, discuss, solve
* [171]Events & Friends Meet us & join in
* [172]Simple Talk Articles & opinion
* [173]Home
* [174]SQL
* [175].NET
* [176]Cloud
* [177]Sysadmin
* [178]Opinion
* [179]Books
* [180]Blogs
* [181]Log in
* [182]Sign up
*
[183]Richard Morris
[184]Richard Morris
18 January 2012
* 114
* 45736 views
*
*
+ [185]Printer friendly version
+
+
+
+
* [186]Home
* [187]Opinion
* [188]Geek of the Week
* Chuck Moore on the Lost Art of Keeping It Simple
[189]Richard Morris
[190]Richard Morris
18 January 2012
45736 views
114
Chuck Moore on the Lost Art of Keeping It Simple
Chuck Moore is still the radical thinker of Information Technology,
After an astonishing career designing languages (e.g. FORTH),
browser-based computers, CAD systems and CPUs, he is now energetically
designing extremely low-powered 'green' multi-processor chips for
embedded systems. Behind everything he does is a radical message:
'Embrace the entire problem, Keep it simple'.
In the early days of computing, software written for one make of
machine would not run on any other. Computer scientists wanted to
define “programming languages” that could be universally understood.
That this is the norm today – the software of the internet, for
example, can run on every kind of computer. Chuck Moore was the first
to turn this vision into reality: a simple language written in itself,
with its own simple disk operating system, requiring just a tiny
kernel to be written in the native machine code to link with the
hardware. As a result, FORTH could be used everywhere, and was. It was
the start of a life-long quest to provide computing power as simply and
cheaply as possible, as widely as possible. It has led to poineering
work with what we now refer to as ‘network computers’, MISC CPU design
and the development of computer languages.
775-chuck.JPG
It could be said to be a consequence of a talk that John McCarthy gave
at Stanford University in 1961 when he said that if his approach to
technology was adopted, “computing may some day be organised as a
public utility, just as the telephone system is a public utility”, and
that this could become the basis of a significant new industry.
As a pupil of McCarthy’s at MIT in the 1960s, Charles ‘Chuck’ Moore’s
approach to software design embraced his master’s elegance, efficiency
and simplicity as well as shaping his own beliefs and he went on to
design numerous firsts including the ‘Forth’ language, which is still
in use today.
Chuck’s numerous industry awards include membership to the US Computer
History Hall of Fame, an honour bestowed on him by President Ronald
Reagan. We [191]last spoke with Chuck in 2009 and in this interview we
talked about his still eager enthusiasm for technology, the beauty of
code and his legacy as a technologist.
__________________________________________________________________
RM:
Chuck, the last time we spoke we touched on complexity and you
said that simplicity was the only answer to this. Why do you
think it is so tempting to solve a problem we don’t really have?
CM:
First, one doesn’t understand the problem initially and thinks
it’s more difficult than it is. In the course of solving the
problem, one learns about it. But in the rush of completing it,
never re-examines the premises, rewrites and simplifies. This is
not a small omission; code can be an orders of magnitude too
elaborate.
Second, it’s irresistible to anticipate the future and expect
the problem to grow in a certain direction. Thus code is added
to facilitate future changes, which rarely occur. This is a good
strategy, but can be put off until the future arrives.
Finally, a difficult problem is more fun to solve than an easy
one. So the problem is enhanced to be more worthy of attention.
Artificial Intelligence is often applied in this way.
RM:
How much do you think you can sit down and figure out how
something should work, assuming it’s not something that you’ve
built before? Do you need to start writing code in order to
really understand what the problem is?
CM:
Yes. There used to be, perhaps still is, a distinction between
programmers and coders. Programmers understand the problem;
coders are grunt labour. In spite of the existence of high-level
languages supposed to let the programmers produce the code. This
is stupid. You need feedback from the code to the problem.
I’m currently programming the tiny computers of GreenArrays’
chips. And there the statement of the problem and the
architecture of the solution depend crucially on the amount of
code.
RM:
Your processors at GreenArrays generally have the power
consumption of less than a watt. Do you feel rather despondent
at the power demands of today’s high-end processors? Is this a
consequence of the fact we don’t have a sufficient grip on
building parallel software?
CM:
Yes. I hear that 10% of power used goes to computers. My goal
with Forth was to provide an example of how much software was
required to solve a problem. That would help me judge the
quality of other software. And perhaps motivate others to seek a
simpler solution.
GreenArrays likewise offers a benchmark about how much power
contemporary technology requires. You don’t have to use our
chips to appreciate how inefficient a PC is. We have 30 times
the Mips, using 1% the power. Landauer’s Limit suggests a
minimal entropy increase is required for computation, far lower
than we’ve achieved.
The proper measure is the energy required for a computation. It
is measured in femtojoules. Typically, the faster an operation
the less energy needed. Power (nanowatts) depends on speed,
whereas energy does not. But power is easier to measure.
RM:
Is there anything that you did specifically to improve your
skill as a programmer, such as write something in a language
that you’d rather not write in?
CM:
Actually, I did. When I joined Mohasco in the mid 1960s it was
to do system programming for their order-entry system. I found
that the programmers all used COBOL, so I thought it prudent to
learn COBOL.
I doubt this improved my skill, but I did learn enough about
COBOL to be disillusioned about it, those who used it and the
establishment that promoted it.
RM:
Knuth has an essay about developing TeX where he talks about
going over to a pure, destructive QA personality and his hardest
to break his own code. Do you think most developers are good at
that?
CM:
No. It’s been demonstrated time and again that a naive user will
crash an application. The developer knows intuitively what not
to do and it never occurs to him to test that.
A good test for keyboard input is to play monkey on the keys.
The program must survive random gibberish, including shift key
combinations. A young child is excellent at this. Of course, a
keyboard is too sophisticated to be a good input device.
RM:
Leaving aside designing user interactions, when is prototyping
valuable? As opposed to just thinking about how something is
going to work?
CM:
Hardware prototyping is essential to allow software development.
It’s simpler and more realistic than coding a simulator.
Software prototyping is useful to establish the scope of a
program. The calculations involved need not be coded. Stubs can
return a result, perhaps always 0. If a display is required, it
can be a simple template. But the programmer has his arms around
the entire problem.
He’s factored the problem into independent parts, established
multiple threads and their communication and basically roughed
out the solution. In an afternoon. Filling in the details
follows relatively easily and can involve others.
RM:
Do you find some code aesthetically beautiful?
CM:
Yes, code can be beautiful. But it rarely is. Beauty lies in
showing off the structure of a program, without distracting
details. Factoring into subroutines or threads is essential for
this. A wall of straight-line code is ugly. As is code loaded
with comments or conditions.
Pretty code can result from clever instantiation of objects.
This is supposed to suppress details. Also from the careful
choice of names so that their purpose is clear.
RM:
Is there an upper limit on how big a piece of software can be
and still be beautiful?
CM:
I think so. A painting may be beautiful, but not a gallery full
of paintings. Beauty can be overwhelming.
My Forth has always utilized 1KB blocks of code. This is a
quantum that is comprehensible and can be seen on a monitor. I
can’t think of code I’d call beautiful that was larger than
this.
My multi-computers have 1 block of code per computer, so
possibly several blocks will combine to be beautiful. But this
hasn’t happened yet.
RM:
A well known programmer told me he’d noticed that people, who
are too clever, in a certain dimension, write the worst code
because they can see the whole thing in their head and
consequently write code of enormous complexity and lack empathy
with those who have to use it. Is there something intrinsic in
programming that always going to draw people with that kind of
mentality?
CM:
It’s important to see the entire problem in your mind. Whether
you’re clever or not. It’s the only way to see the structure.
And that is simple, not complex.
Problems are not complex. The things we ask computers to do are
basically simple. Otherwise we couldn’t program the mindless
devices. But we can make a problem complex by refusing to see
its simplicity.
One way to do this is to apply too many people to the problem.
Each will have his own preconceptions and communication is not
enough to overcome them. The prime example is Microsoft, which
has applied huge resources to maintaining 30 years of backward
compatibility of Windows. The result is a hideous mass of
complexity that no one understands. They’ve created a problem
that cannot be solved.
RM:
Are the opportunities for this kind of programming to go away? A
lot of this low-level design is implemented in the VM that
you’re using or the concurrency libraries that are being used.
So for a lot of people, programming is about gluing things
together.
CM:
Library routines have been glued together since Fortran days.
Fortran was the first Virtual Machine, but there have been many,
many since. Apparently there are two kinds of programming and
programmers. The knowledge and effort required to mine library
resources is comparable to that required to understand and code
the problem directly. This is an example of the principle of
“Conservation of Complexity”.
A problem has an intrinsic level of complexity, which as I’ve
said is pretty low. You may know of a library routine that
addresses it, or a bit of silicon that can be used, or a
computer language that applies. But even if you shovel off the
complexity into hardware or language, it remains. Sadly, it can
be increased, just like entropy:
You can pick a language, find a library routine and use the
silicon all at the same time. You can add or multiply the
individual complexities to obtain a new one. We do this in
society all the time, by passing laws to solve problems that
only create new ones.
RM:
What makes a good programmer? If you are hiring or interviewing
programmers – what do you look for?
CM:
Although I’ve never hired one, I’ve interviewed some. My
personal judgement is not reliable. What I want is someone who
wants to solve problems and move on. Not make a problem into a
career. Someone with enthusiasm, willing to work long hours and
meet deadlines.
What is not necessary is a college degree. A Computer Science
graduate waves a red flag. They have learned how difficult it is
to program and make it so.
RM:
You obviously have to have a good memory to be a reasonable
programmer. Bill Gates once claimed that he could go to a
blackboard and write out big chunks of the code to the BASIC
that he had written for the Altair, a decade or so after he had
originally written it. Can you remember your old code in that
way?
CM:
I don’t spend much time thinking about the past. I like to live
in the future. But it seems that many people have better
memories than I do.
When I encounter code that I wrote in the past, I can read and
understand it much more quickly that someone else’s code. But
without seeing it, I can’t recall it. And I’m always impressed
with how clever I was back then. I have the impression that I’ve
learned to write better code over the years. That may not be
true.
RM:
Speaking of being a language designer, how have your ideas about
language design changed over time? Back in the 1970s people
would design languages and make a complete design, implement it
and that would be that almost. Are languages now too big to
design or implement all at once?
CM:
That’s a problem that I recognized and avoided back then. Forth
is an extensible language. It has a basic structure of stacks
and dictionary. Beyond that it can be augmented as required for
any particular problem.
To try to anticipate all applications of a language leads to
impossible syntax. This requires a miserably complex compiler.
To create a language for each application is unsupportable.
Forth provides a nice alternative.
RM:
Are there other skills that are not directly related to
programming that you feel have improved your programming or that
are valuable to have? You mention in your blog that you’re
writing what sounds like an autobiography. What’s your writing
schedule like and have you decided on what you’ll leave out as
much as what you’ll put in?
CM:
My mother insisted that I learn the piano. My teacher profited
for 10 years, but I had no talent for music. Nonetheless, music
is probably a stepping stone to mathematics and thence to
programming.
Another skill is writing. I’ve never learned to say the same
thing over again in different words. I can put words on paper,
but not in an entertaining manner. Programming is writing to a
computer. It does not need to be entertained, but informed. But
successful programs must be documented, which is writing to
people. And if it’s not sufficiently entertaining, no one will
read it.
RM:
Are programmers and computer scientists aware enough of the
history of technology? It is a pretty short history after all?
CM:
I lived through the history of computers. And I missed a lot of
it. History is a brooding study that adds flavour to a subject.
But programming depends upon common sense more than most
disciplines. There are few techniques that cannot be reinvented
more easily than researched.
So I would encourage people to read history such as Knuth, but
not to expect to gain insight into their problem.
RM:
Do you consider yourself a scientist, an engineer, an artist or
a craftsman?
CM:
I put ‘engineer’ in the box on forms. Sometimes I put ‘computer
engineer’ in a big box.
I studied to become a scientist, which is still my avocation.
Then I transitioned to software engineer, specializing in
scientific applications. Then to system programmer, language
designer and finally hardware engineer.
Now I think of myself as a hardware stroke software engineer.
One who uses software to design hardware which he then programs.
This is a useful combination that produces simple, relevant
hardware.
An artist is more imaginative and a craftsman has greater
leisure to perfect his work. Engineer seems about right.
RM:
In what ways do you think you have influenced the software
industry as a technologist?
CM:
My greatest success is that people are curious to hear what I
have to say. Witness this article. Do they pay attention? Not so
much. Persistence. That’s the secret. I’ve been talking since
the golden age of the 70s and I’m still saying the same message.
So there must be something to it? Keep it Simple. Embrace the
entire problem, be it software or hardware. Value cleverness.
I’ve had some influence on a small part of the world. But that
was never the purpose: I’ve had a lot of fun.
Subscribe for more articles
Fortnightly newsletters help sharpen your skills and keep you ahead,
with articles, ebooks and opinion to keep you informed.
Subscribe to our fortnightly newsletter
* [X] Simple Talk
Email ____________________
Subscribe
* 114
* 45736 views
*
+ [192]Printer friendly version
+
+
+
+
Rate this article
[Total: 3 Average: 3/5]
Subscribe for more articles
Fortnightly newsletters help sharpen your skills and keep you ahead,
with articles, ebooks and opinion to keep you informed.
Subscribe to our fortnightly newsletter
* [X] Simple Talk
Email ____________________
Subscribe
[193]Richard Morris
[194]Richard Morris
Richard Morris is a journalist, author and public relations/public
affairs consultant. He has written for a number of UK and US newspapers
and magazines and has offered strategic advice to numerous tech
companies including Digital Island, Sony and several ISPs. He now
specialises in social enterprise and is, among other things, a member
of the Big Issue Invest advisory board. Big Issue Invest is the leading
provider to high-performing social enterprises & has a strong brand
name based on its parent company The Big Issue, described by McKinsey &
Co as the most well known and trusted social brand in the UK.
[195]View all articles by Richard Morris
Related articles
Also in [196]Chuck Moore
[197]Chuck Moore: Geek of the Week
Charles Moore is one of the greatest ever programmers. The 'Forth'
language he invented is still in use today, particularly by NASA, and
has never been bettered for instrumentation and process control. He
still argues persuasively that the only way we can develop effective
software quickly is to embrace simplicity. Like Niklaus Wirth, he
remains a radical whose views have become increasingly relevant to
current software development… [198]Read more
Also in [199]Geek of the Week
[200]Clive Sinclair: Geek of the Week
Although most of the geeks of the IT industry are famous for their
software, it was the geeky entrepreneurs that changed society by
bringing cheap microcomputers to the market. Sir Clive Sinclair is most
famous for applying his background in electronic engineering to provide
a whole generation, both in America and Europe, with their first taste
of programming.… [201]Read more
Also in [202]Opinion
[203]Relational Algebra and its implications for NoSQL databases
With the rise of NoSQL databases that are exploiting aspects of SQL for
querying, and are embracing full transactionality, is there a danger of
the data-document model's hierarchical nature causing a fundamental
conflict with relational theory? We asked our relational expert, Hugh
Bin-Haad to expound a difficult area for database theorists.… [204]Read
more
Tags
[205]Charles Moore, [206]Chuck Moore, [207]Geek of the Week, [208]John
McCarthy, [209]Opinion
[210]
Simple Talk
* [211]FAQ
* [212]Sitemap
* [213]Write for Redgate
* [214]Contact Us
[215]Products
* [216]SQL Server
* [217].NET
* [218]Oracle
* [219]MySQL
[220]Support
* [221]Forums
* [222]Contact product support
* [223]Find my serial numbers
* [224]Download older versions
[225]Solutions
* [226]Overview
* [227]Maturity Assessment
[228]Our Company
* [229]Careers
* [230]Contact us
* [231]Redgate Blog
* [232]Our values
[233]Community & Learning
* [234]Product Learning
* [235]University
* [236]Events & Friends
* [237]Simple Talk
* [238]Books
* [239]Forums
Partners
* [240]SQL Server Central
* [241]Partner products
* [242]Resellers
* [243]Consulting partners
Privacy & compliance
* [244]Privacy and cookies
* [245]License agreement
* [246]Accessibility
* [247]Report security issue
* [248]Modern slavery
* [249]CCPA - Do not sell my data
* Copyright 1999 - 2020 Red Gate Software Ltd
[250]Database Trends and Applications Top 100 [251]SD Times Top 100
2017 Oracle Gold Partner Microsoft Gold Partner
References
Visible links
1.
https://www.red-gate.com/simple-talk/feed/
2.
https://www.red-gate.com/simple-talk/comments/feed/
3.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/feed/
4.
https://www.red-gate.com/simple-talk/wp-json/oembed/1.0/embed?url=
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/
5.
https://www.red-gate.com/simple-talk/wp-json/oembed/1.0/embed?url=
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/&format=xml
6.
https://www.googletagmanager.com/ns.html?id=GTM-N5S5ZL
7.
https://www.red-gate.com/
8.
https://www.red-gate.com/products/
9.
https://www.red-gate.com/products/#sql-server
10.
https://www.red-gate.com/products/sql-development/sql-toolbelt
11.
https://www.red-gate.com/products/sql-development/sql-compare
12.
https://www.red-gate.com/products/sql-development/sql-data-compare
13.
https://www.red-gate.com/products/sql-development/sql-prompt
14.
https://www.red-gate.com/products/dba/sql-monitor
15.
https://www.red-gate.com/products/sql-development/sql-change-automation/
16.
https://www.red-gate.com/products/dba/sql-provision
17.
https://www.red-gate.com/products/dba/sql-clone
18.
https://www.red-gate.com/products/dba/sql-data-masker
19.
https://www.red-gate.com/products/sql-development/sql-source-control/
20.
https://www.red-gate.com/products/dba/sql-backup
21.
https://www.red-gate.com/products/sql-development/dlm-dashboard/
22.
https://www.red-gate.com/products/sql-development/sql-search/
23.
https://www.red-gate.com/products/sql-development/sql-doc
24.
https://www.red-gate.com/products/sql-development/sql-data-generator
25.
https://www.red-gate.com/products/sql-development/sql-test
26.
https://www.red-gate.com/products/dba/sql-multi-script
27.
https://www.red-gate.com/products/sql-development/sql-dependency-tracker
28.
https://www.red-gate.com/products/dba/sql-scripts-manager
29.
https://www.red-gate.com/products/dba/sql-index-manager
30.
https://www.red-gate.com/products/dba/sql-data-catalog/eap
31.
https://www.red-gate.com/products/#net
32.
https://www.red-gate.com/products/dotnet-development/dotnet-developer-bundle
33.
https://www.red-gate.com/products/dotnet-development/ants-performance-profiler
34.
https://www.red-gate.com/products/dotnet-development/ants-memory-profiler
35.
https://www.red-gate.com/products/dotnet-development/reflector
36.
https://www.red-gate.com/products/dotnet-development/smartassembly
37.
https://www.red-gate.com/products/#oracle
38.
https://www.red-gate.com/products/oracle-development/deployment-suite-for-oracle
39.
https://www.red-gate.com/products/oracle-development/schema-compare-for-oracle
40.
https://www.red-gate.com/products/oracle-development/data-compare-for-oracle
41.
https://www.red-gate.com/products/oracle-development/source-control-for-oracle
42.
https://www.red-gate.com/products/oracle-development/data-masker-for-oracle
43.
https://www.red-gate.com/products/#mysql
44.
https://www.red-gate.com/products/mysql/mysql-comparison-bundle
45.
https://www.red-gate.com/products/mysql/mysql-compare
46.
https://www.red-gate.com/products/mysql/mysql-data-compare
47.
https://www.red-gate.com/solutions/overview
48.
https://www.red-gate.com/solutions/overview
49.
https://www.red-gate.com/solutions/overview
50.
https://www.red-gate.com/solutions/need/standardize
51.
https://www.red-gate.com/solutions/need/automate
52.
https://www.red-gate.com/solutions/need/monitor
53.
https://www.red-gate.com/solutions/need/protect
54.
https://www.red-gate.com/solutions/overview
55.
https://www.red-gate.com/solutions/role/development
56.
https://www.red-gate.com/solutions/role/operations
57.
https://www.red-gate.com/solutions/role/it-management
58.
https://www.red-gate.com/solutions/role/enterprise
59.
https://www.red-gate.com/solutions/overview
60.
https://www.red-gate.com/solutions/industry/tech
61.
https://www.red-gate.com/solutions/industry/finance
62.
https://www.red-gate.com/solutions/industry/federal
63.
https://www.red-gate.com/solutions/industry/managed-service-providers
64.
https://www.red-gate.com/solutions/resources
65.
https://www.red-gate.com/solutions/maturity-assessment
66.
https://productsupport.red-gate.com/hc
67.
https://www.red-gate.com/our-company/
68.
https://www.red-gate.com/our-company/
69.
https://www.red-gate.com/our-company/careers/current-opportunities/
70.
https://www.red-gate.com/our-company/contact-us
71.
https://www.red-gate.com/blog/
72.
https://www.red-gate.com/our-company/press-kit
73.
https://www.red-gate.com/hub/
74.
https://www.red-gate.com/hub/product-learning
75.
https://www.red-gate.com/hub/university
76.
https://forum.red-gate.com/
77.
https://www.red-gate.com/hub/events/
78.
https://www.red-gate.com/simple-talk/
79.
https://www.red-gate.com/search
80.
https://www.red-gate.com/account/
81.
https://www.red-gate.com/dynamic/purchase/cart/summary?ref=account-nav
82.
https://www.red-gate.com/dynamic/quotes/openquote?ref=account-nav
83.
https://www.red-gate.com/products/
84.
https://www.red-gate.com/products/#sql-server
85.
https://www.red-gate.com/products/sql-development/sql-toolbelt
86.
https://www.red-gate.com/products/sql-development/sql-compare
87.
https://www.red-gate.com/products/sql-development/sql-data-compare
88.
https://www.red-gate.com/products/sql-development/sql-prompt
89.
https://www.red-gate.com/products/dba/sql-monitor
90.
https://www.red-gate.com/products/sql-development/sql-change-automation/
91.
https://www.red-gate.com/products/dba/sql-provision
92.
https://www.red-gate.com/products/dba/sql-clone
93.
https://www.red-gate.com/products/dba/sql-data-masker
94.
https://www.red-gate.com/products/sql-development/sql-source-control/
95.
https://www.red-gate.com/products/dba/sql-backup
96.
https://www.red-gate.com/products/sql-development/dlm-dashboard/
97.
https://www.red-gate.com/products/sql-development/sql-search/
98.
https://www.red-gate.com/products/sql-development/sql-doc
99.
https://www.red-gate.com/products/sql-development/sql-data-generator
100.
https://www.red-gate.com/products/sql-development/sql-test
101.
https://www.red-gate.com/products/dba/sql-multi-script
102.
https://www.red-gate.com/products/sql-development/sql-dependency-tracker
103.
https://www.red-gate.com/products/dba/sql-scripts-manager
104.
https://www.red-gate.com/products/dba/sql-index-manager
105.
https://www.red-gate.com/products/dba/sql-data-catalog/eap
106.
https://www.red-gate.com/products/#net
107.
https://www.red-gate.com/products/dotnet-development/dotnet-developer-bundle
108.
https://www.red-gate.com/products/dotnet-development/ants-performance-profiler
109.
https://www.red-gate.com/products/dotnet-development/ants-memory-profiler
110.
https://www.red-gate.com/products/dotnet-development/reflector
111.
https://www.red-gate.com/products/dotnet-development/smartassembly
112.
https://www.red-gate.com/products/#oracle
113.
https://www.red-gate.com/products/oracle-development/deployment-suite-for-oracle
114.
https://www.red-gate.com/products/oracle-development/schema-compare-for-oracle
115.
https://www.red-gate.com/products/oracle-development/data-compare-for-oracle
116.
https://www.red-gate.com/products/oracle-development/source-control-for-oracle
117.
https://www.red-gate.com/products/oracle-development/data-masker-for-oracle
118.
https://www.red-gate.com/products/#mysql
119.
https://www.red-gate.com/products/mysql/mysql-comparison-bundle
120.
https://www.red-gate.com/products/mysql/mysql-compare
121.
https://www.red-gate.com/products/mysql/mysql-data-compare
122.
https://www.red-gate.com/solutions/overview
123.
https://www.red-gate.com/solutions/overview
124.
https://www.red-gate.com/solutions/overview
125.
https://www.red-gate.com/solutions/need/standardize
126.
https://www.red-gate.com/solutions/need/automate
127.
https://www.red-gate.com/solutions/need/monitor
128.
https://www.red-gate.com/solutions/need/protect
129.
https://www.red-gate.com/solutions/overview
130.
https://www.red-gate.com/solutions/role/development
131.
https://www.red-gate.com/solutions/role/operations
132.
https://www.red-gate.com/solutions/role/it-management
133.
https://www.red-gate.com/solutions/role/enterprise
134.
https://www.red-gate.com/solutions/overview
135.
https://www.red-gate.com/solutions/industry/tech
136.
https://www.red-gate.com/solutions/industry/finance
137.
https://www.red-gate.com/solutions/industry/federal
138.
https://www.red-gate.com/solutions/industry/managed-service-providers
139.
https://www.red-gate.com/solutions/resources
140.
https://www.red-gate.com/solutions/maturity-assessment
141.
https://productsupport.red-gate.com/hc
142.
https://www.red-gate.com/our-company/
143.
https://www.red-gate.com/our-company/
144.
https://www.red-gate.com/our-company/careers/current-opportunities/
145.
https://www.red-gate.com/our-company/contact-us
146.
https://www.red-gate.com/blog/
147.
https://www.red-gate.com/our-company/press-kit
148.
https://www.red-gate.com/hub/
149.
https://www.red-gate.com/hub/product-learning
150.
https://www.red-gate.com/hub/university
151.
https://forum.red-gate.com/
152.
https://www.red-gate.com/hub/events/
153.
https://www.red-gate.com/simple-talk/
154.
https://www.red-gate.com/solutions/overview
155.
https://www.red-gate.com/solutions/need/standardize
156.
https://www.red-gate.com/solutions/need/automate
157.
https://www.red-gate.com/solutions/need/monitor
158.
https://www.red-gate.com/solutions/need/protect
159.
https://www.red-gate.com/solutions/role/development
160.
https://www.red-gate.com/solutions/role/operations
161.
https://www.red-gate.com/solutions/role/it-management
162.
https://www.red-gate.com/solutions/role/enterprise
163.
https://www.red-gate.com/solutions/industry/tech
164.
https://www.red-gate.com/solutions/industry/finance
165.
https://www.red-gate.com/solutions/industry/federal
166.
https://www.red-gate.com/solutions/industry/managed-service-providers
167.
https://www.red-gate.com/hub/
168.
https://www.red-gate.com/hub/product-learning/
169.
https://www.red-gate.com/hub/university/
170.
https://forum.red-gate.com/
171.
https://www.red-gate.com/hub/events/
172.
https://www.red-gate.com/simple-talk/
173.
https://www.red-gate.com/simple-talk/
174.
https://www.red-gate.com/simple-talk/sql/
175.
https://www.red-gate.com/simple-talk/dotnet/
176.
https://www.red-gate.com/simple-talk/cloud/
177.
https://www.red-gate.com/simple-talk/sysadmin/
178.
https://www.red-gate.com/simple-talk/opinion/
179.
https://www.red-gate.com/simple-talk/books/
180.
https://www.red-gate.com/simple-talk/blogs/
181.
https://www.red-gate.com/simple-talk/account/log-in
182.
https://www.red-gate.com/simple-talk/account/sign-up
183.
https://www.red-gate.com/simple-talk/author/richard-morris/
184.
https://www.red-gate.com/simple-talk/author/richard-morris/
185.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/?view=print
186.
https://www.red-gate.com/
187.
https://www.red-gate.com/simple-talk/opinion/
188.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/
189.
https://www.red-gate.com/simple-talk/author/richard-morris/
190.
https://www.red-gate.com/simple-talk/author/richard-morris/
191.
http://www.simple-talk.com/opinion/geek-of-the-week/chuck-moore-geek-of-the-week/
192.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/?view=print
193.
https://www.red-gate.com/simple-talk/author/richard-morris/
194.
https://www.red-gate.com/simple-talk/author/richard-morris/
195.
https://www.red-gate.com/simple-talk/author/richard-morris/
196.
https://www.red-gate.com/simple-talk/tag/chuck-moore/
197.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-geek-of-the-week/
198.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-geek-of-the-week/
199.
https://www.red-gate.com/simple-talk/tag/geek-of-the-week/
200.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/clive-sinclair-geek-of-the-week/
201.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/clive-sinclair-geek-of-the-week/
202.
https://www.red-gate.com/simple-talk/tag/opinion/
203.
https://www.red-gate.com/simple-talk/opinion/opinion-pieces/relational-algebra-and-its-implications-for-nosql-databases/
204.
https://www.red-gate.com/simple-talk/opinion/opinion-pieces/relational-algebra-and-its-implications-for-nosql-databases/
205.
https://www.red-gate.com/simple-talk/tag/charles-moore/
206.
https://www.red-gate.com/simple-talk/tag/chuck-moore/
207.
https://www.red-gate.com/simple-talk/tag/geek-of-the-week/
208.
https://www.red-gate.com/simple-talk/tag/john-mccarthy/
209.
https://www.red-gate.com/simple-talk/tag/opinion/
210.
https://www.red-gate.com/simple-talk
211.
https://www.red-gate.com/simple-talk/faq/
212.
https://www.red-gate.com/simple-talk/sitemap/
213.
https://www.red-gate.com/simple-talk/write-for-us/
214.
https://www.red-gate.com/simple-talk/contact-us/
215.
https://www.red-gate.com/products/
216.
https://www.red-gate.com/products/#sql-server
217.
https://www.red-gate.com/products/#net
218.
https://www.red-gate.com/products/#oracle
219.
https://www.red-gate.com/products/#mysql
220.
https://productsupport.red-gate.com/hc
221.
https://forums.red-gate.com/
222.
https://productsupport.red-gate.com/
223.
https://www.red-gate.com/dynamic/account
224.
https://www.red-gate.com/products/old-versions
225.
https://www.red-gate.com/solutions/overview
226.
https://www.red-gate.com/solutions/overview
227.
https://www.red-gate.com/solutions/maturity-assessment
228.
https://www.red-gate.com/our-company/
229.
https://www.red-gate.com/our-company/careers/current-opportunities
230.
https://www.red-gate.com/our-company/contact-us
231.
https://www.red-gate.com/blog
232.
https://www.red-gate.com/our-company/careers/overview#our-values
233.
https://www.red-gate.com/hub/
234.
https://www.red-gate.com/hub/product-learning
235.
https://www.red-gate.com/hub/university
236.
https://www.red-gate.com/hub/events/
237.
https://www.red-gate.com/simple-talk
238.
https://www.red-gate.com/hub/books/
239.
https://forums.red-gate.com/
240.
https://www.sqlservercentral.com/
241.
https://www.red-gate.com/products/#partner-products
242.
https://www.red-gate.com/partners/find-a-partner?list=resellers
243.
https://www.red-gate.com/partners/find-a-partner
244.
https://www.red-gate.com/website/legal
245.
https://www.red-gate.com/support/license
246.
https://www.red-gate.com/website/accessibility
247.
https://www.red-gate.com/support/security
248.
https://www.red-gate.com/website/modern-slavery
249.
https://www.red-gate.com/website/ccpa
250.
http://www.dbta.com/Editorial/Trends-and-Applications/DBTA-100-2017---The-Companies-That-Matter-Most-in-Data-118003.aspx
251.
http://sdtimes.com/sd-times-100/sd-times-100-2017-youve-arrived/
Hidden links:
253.
https://www.red-gate.com/search
254.
https://www.red-gate.com/account/
255.
https://www.red-gate.com/dynamic/purchase/cart/summary?ref=account-nav
256.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/#menu
257.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/
258.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/#menu
259.
https://www.red-gate.com/simple-talk/feed/
260.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/#comments
261. mailto:?subject=Articleon
https://www.red-gate.com/simple-talk:ChuckMooreontheLostArtofKeepingItSimple&body=Ifoundthisgreatarticleon
https://www.red-gate.com/simple-talk.%0D%0A%0D%0AIt'scalledChuckMooreontheLostArtofKeepingItSimple.%0D%0A%0D%0AYoucanfindithere
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/.
262.
https://twitter.com/share?url=
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/&text=Chuck%20Moore%20on%20the%20Lost%20Art%20of%20Keeping%20It%20Simple%20@simple_talk
263.
https://facebook.com/sharer.php?u=
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/
264.
https://linkedin.com/shareArticle?mini=true&url=
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/
265.
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/#comments
266. mailto:?subject=Articleon
https://www.red-gate.com/simple-talk:ChuckMooreontheLostArtofKeepingItSimple&body=Ifoundthisgreatarticleon
https://www.red-gate.com/simple-talk.%0D%0A%0D%0AIt'scalledChuckMooreontheLostArtofKeepingItSimple.%0D%0A%0D%0AYoucanfindithere
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/.
267.
https://twitter.com/share?url=
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/&text=Chuck%20Moore%20on%20the%20Lost%20Art%20of%20Keeping%20It%20Simple%20@simple_talk
268.
https://facebook.com/sharer.php?u=
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/
269.
https://linkedin.com/shareArticle?mini=true&url=
https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/chuck-moore-on-the-lost-art-of-keeping-it-simple/