#[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=Articleonhttps://www.red-gate.com/simple-talk:ChuckMooreontheLostArtofKeepingItSimple&body=Ifoundthisgreatarticleonhttps://www.red-gate.com/simple-talk.%0D%0A%0D%0AIt'scalledChuckMooreontheLostArtofKeepingItSimple.%0D%0A%0D%0AYoucanfinditherehttps://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=Articleonhttps://www.red-gate.com/simple-talk:ChuckMooreontheLostArtofKeepingItSimple&body=Ifoundthisgreatarticleonhttps://www.red-gate.com/simple-talk.%0D%0A%0D%0AIt'scalledChuckMooreontheLostArtofKeepingItSimple.%0D%0A%0D%0AYoucanfinditherehttps://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/