Skip to content

Commit

Permalink
docs/introduction: move CUE history to separate page
Browse files Browse the repository at this point in the history
This moves the history-of-CUE content from the first page of the
introduction to its own page.

This reflects its non-critical place in the newcomer's critical path of
deciding if CUE is worth evaluating further - specifically their
tactical "is reading this specific page a prerequisite to trying out
CUE?" decision making; whilst recognising the importance of
communicating how CUE came to be, and from where, which will be
of particular interest to the language-design-folks audience.

It also removes the empty pages at
/docs/introduction/{getting-started,what-is-cue}, because they lie
between /docs/introduction/installation and .../history in Hugo's
concept of the introduction section's sub-pages. Whilst they don't
appear in the LHNav, if they were left intact then a reader using the
Previous/Next lozenges at the bottom of .../installation would pass
through these pages' TODO rendering before reaching .../history.

Preview-Path: /docs/introduction/
Preview-Path: /docs/introduction/history/
Signed-off-by: Jonathan Matthews <[email protected]>
Change-Id: I6d868c9ed61a5856d8bb4c267830b65694ced47a
Dispatch-Trailer: {"type":"trybot","CL":1196380,"patchset":9,"ref":"refs/changes/80/1196380/9","targetBranch":"master"}
  • Loading branch information
jpluscplusm authored and cueckoo committed Aug 15, 2024
1 parent 7ba4cb7 commit cdb600a
Show file tree
Hide file tree
Showing 11 changed files with 77 additions and 120 deletions.
37 changes: 0 additions & 37 deletions content/docs/introduction/_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,43 +57,6 @@ one schema is also an instance of another (is it backwards compatible?),
or compute a new schema that represents all instances that match
two other schema.


## History

Although it is a very different language, the roots of CUE lie in GCL,
the dominant configuration language in use at Google as of this writing.
It was originally designed to configure Borg, the predecessor of Kubernetes.
In fact, the original idea was to use graph unification as used in CUE for GCL.
One of the authors of GCL had extensive experience with such systems and
experienced the benefit of being able to compute and reason with types for the
creation of powerful tooling.

The graph unification model CUE is based on
was in common use in computational linguistics at that time and was
successfully used to manage grammars and lexicons of over 100k lines of
declarative definitions.
These were effectively very large
configurations of something as irregular and complex as a human language.
A property of these systems were that the types, or constraints, one
defines validate the data while simultaneously reducing boilerplate.
Overall, this approach seemed to be extremely well-suited
for cloud configuration.

However, the early design of GCL went for something simpler that coincidentally
was also incompatible with the notion of graph unification.
This simpler approach proved insufficient, but it was already too late to
move to the earlier foreseen approach.
Instead, an inheritance-based override model was adopted.
Its complexity made the earlier foreseen tooling intractable
and they never materialized.
The same holds for the GCL offsprings that copied its model.

CUE goes back to the original idea of using a constraint-based approach and
also makes an effort to incorporate lessons learned from 15 years of GCL usage.
This also includes lessons learned from offsprings and different approaches to
configuration altogether.


## Philosophy and principles

### Types are Values
Expand Down
10 changes: 0 additions & 10 deletions content/docs/introduction/getting-started/en.md

This file was deleted.

3 changes: 0 additions & 3 deletions content/docs/introduction/getting-started/page.cue

This file was deleted.

37 changes: 37 additions & 0 deletions content/docs/introduction/history/en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
title: History
weight: 40
---

Although it is a very different language, the roots of CUE lie in GCL,
the dominant configuration language in use at Google as of this writing.
It was originally designed to configure Borg, the predecessor of Kubernetes.
In fact, the original idea was to use graph unification as used in CUE for GCL.
One of the authors of GCL had extensive experience with such systems and
experienced the benefit of being able to compute and reason with types for the
creation of powerful tooling.

The graph unification model CUE is based on
was in common use in computational linguistics at that time and was
successfully used to manage grammars and lexicons of over 100k lines of
declarative definitions.
These were effectively very large
configurations of something as irregular and complex as a human language.
A property of these systems were that the types, or constraints, one
defines validate the data while simultaneously reducing boilerplate.
Overall, this approach seemed to be extremely well-suited
for cloud configuration.

However, the early design of GCL went for something simpler that coincidentally
was also incompatible with the notion of graph unification.
This simpler approach proved insufficient, but it was already too late to
move to the earlier foreseen approach.
Instead, an inheritance-based override model was adopted.
Its complexity made the earlier foreseen tooling intractable
and they never materialized.
The same holds for the GCL offsprings that copied its model.

CUE goes back to the original idea of using a constraint-based approach and
also makes an effort to incorporate lessons learned from 15 years of GCL usage.
This also includes lessons learned from offsprings and different approaches to
configuration altogether.
3 changes: 3 additions & 0 deletions content/docs/introduction/history/page.cue
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package site

content: docs: introduction: history: page: _
10 changes: 0 additions & 10 deletions content/docs/introduction/what-is-cue/en.md

This file was deleted.

3 changes: 0 additions & 3 deletions content/docs/introduction/what-is-cue/page.cue

This file was deleted.

37 changes: 0 additions & 37 deletions hugo/content/en/docs/introduction/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,43 +57,6 @@ one schema is also an instance of another (is it backwards compatible?),
or compute a new schema that represents all instances that match
two other schema.


## History

Although it is a very different language, the roots of CUE lie in GCL,
the dominant configuration language in use at Google as of this writing.
It was originally designed to configure Borg, the predecessor of Kubernetes.
In fact, the original idea was to use graph unification as used in CUE for GCL.
One of the authors of GCL had extensive experience with such systems and
experienced the benefit of being able to compute and reason with types for the
creation of powerful tooling.

The graph unification model CUE is based on
was in common use in computational linguistics at that time and was
successfully used to manage grammars and lexicons of over 100k lines of
declarative definitions.
These were effectively very large
configurations of something as irregular and complex as a human language.
A property of these systems were that the types, or constraints, one
defines validate the data while simultaneously reducing boilerplate.
Overall, this approach seemed to be extremely well-suited
for cloud configuration.

However, the early design of GCL went for something simpler that coincidentally
was also incompatible with the notion of graph unification.
This simpler approach proved insufficient, but it was already too late to
move to the earlier foreseen approach.
Instead, an inheritance-based override model was adopted.
Its complexity made the earlier foreseen tooling intractable
and they never materialized.
The same holds for the GCL offsprings that copied its model.

CUE goes back to the original idea of using a constraint-based approach and
also makes an effort to incorporate lessons learned from 15 years of GCL usage.
This also includes lessons learned from offsprings and different approaches to
configuration altogether.


## Philosophy and principles

### Types are Values
Expand Down
10 changes: 0 additions & 10 deletions hugo/content/en/docs/introduction/getting-started/index.md

This file was deleted.

37 changes: 37 additions & 0 deletions hugo/content/en/docs/introduction/history/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
title: History
weight: 40
---

Although it is a very different language, the roots of CUE lie in GCL,
the dominant configuration language in use at Google as of this writing.
It was originally designed to configure Borg, the predecessor of Kubernetes.
In fact, the original idea was to use graph unification as used in CUE for GCL.
One of the authors of GCL had extensive experience with such systems and
experienced the benefit of being able to compute and reason with types for the
creation of powerful tooling.

The graph unification model CUE is based on
was in common use in computational linguistics at that time and was
successfully used to manage grammars and lexicons of over 100k lines of
declarative definitions.
These were effectively very large
configurations of something as irregular and complex as a human language.
A property of these systems were that the types, or constraints, one
defines validate the data while simultaneously reducing boilerplate.
Overall, this approach seemed to be extremely well-suited
for cloud configuration.

However, the early design of GCL went for something simpler that coincidentally
was also incompatible with the notion of graph unification.
This simpler approach proved insufficient, but it was already too late to
move to the earlier foreseen approach.
Instead, an inheritance-based override model was adopted.
Its complexity made the earlier foreseen tooling intractable
and they never materialized.
The same holds for the GCL offsprings that copied its model.

CUE goes back to the original idea of using a constraint-based approach and
also makes an effort to incorporate lessons learned from 15 years of GCL usage.
This also includes lessons learned from offsprings and different approaches to
configuration altogether.
10 changes: 0 additions & 10 deletions hugo/content/en/docs/introduction/what-is-cue/index.md

This file was deleted.

0 comments on commit cdb600a

Please sign in to comment.