Skip to content

Commit 48ba8bf

Browse files
authored
Are We Explorer Yet? (#1891)
It is currently difficult to see the status of Carbon explorer and where effort is needed. We propose creating a AreWeYet-styled dashboard to address this.
1 parent ea0a37d commit 48ba8bf

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed

proposals/p1891.md

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# Are We Explorer Yet?
2+
3+
<!--
4+
Part of the Carbon Language project, under the Apache License v2.0 with LLVM
5+
Exceptions. See /LICENSE for license information.
6+
SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7+
-->
8+
9+
[Pull request](https://github.com/carbon-language/carbon-lang/pull/1891)
10+
11+
<!-- toc -->
12+
13+
## Table of contents
14+
15+
- [Abstract](#abstract)
16+
- [Problem](#problem)
17+
- [Background](#background)
18+
- [AreWeYet](#areweyet)
19+
- [Carbon Explorer Status Brainstorm](#carbon-explorer-status-brainstorm)
20+
- [Proposal](#proposal)
21+
- [Details](#details)
22+
- [Are We Explorer Yet?](#are-we-explorer-yet-1)
23+
- [Alternatives considered](#alternatives-considered)
24+
25+
<!-- tocstop -->
26+
27+
## Abstract
28+
29+
It is currently difficult to see the status of Carbon explorer and where effort
30+
is needed. We propose creating a AreWeYet-styled dashboard to address this.
31+
32+
## Problem
33+
34+
While the Carbon project has many published documents, it can be a challenge to
35+
get a high-level picture of work that has been done and work that remains to be
36+
done. This can make it difficult to both track its progress and identify
37+
contribution areas that will have the biggest impact. Left unchecked, this can
38+
lead to the team equivalent of micro-optimization where resources are deployed
39+
in a way that isn’t consistent with high-level goals.
40+
41+
## Background
42+
43+
### AreWeYet
44+
45+
Mozilla, a non-profit behind many Open Source projects, has created and utilized
46+
what is known as the AreWeYet meme as an approach to solve the aforementioned
47+
problem. In this approach, a highly structured dashboard is built that
48+
succinctly states a goal, what its status is, and links to issues or other means
49+
to track subgoals.
50+
51+
One example is [“Are We XBL Still?”](https://bgrins.github.io/xbl-analysis/))
52+
which tracks a project to remove all XBL bindings from Firefox. The general
53+
format is a question, “Are we X still?”, followed by a list of items that, when
54+
complete, means the answer to the question becomes yes. Other examples can be
55+
found on Mozilla’s [Areweyet page](https://wiki.mozilla.org/Areweyet).
56+
57+
The success of this methodology has led to other projects, such as Rust,
58+
adopting it.
59+
60+
### Carbon Explorer Status Brainstorm
61+
62+
A portion of the June 29th, 2022 Carbon weekly sync was used as a brainstorming
63+
session to identify both work that has been accomplished and work that remains
64+
for the Carbon explorer tool. While a comprehensive snapshot in time, there
65+
wasn’t an explicit agreement on how to utilize this document or keep it updated
66+
going forward. This proposal is the logical next step in this work.
67+
68+
## Proposal
69+
70+
We propose creating and utilizing an AreWeYet for the explorer project. The
71+
methodology has already been successful elsewhere and we already have the data
72+
collected for the explorer project. Although this proposal narrowly targets
73+
Carbon explorer, experience with this methodology may indicate value for its use
74+
elsewhere.
75+
76+
## Details
77+
78+
In summary, we propose the creation of a new page on the carbon-lang Wiki called
79+
“Are We Explorer Yet?”, population of this page with results of the explorer
80+
status brainstorm, and the creation of issues for parts that are not complete.
81+
82+
The following section will be used as the basis for the “Are We Explorer Yet?”
83+
page. Items that are specifically out of scope for this AreWeYet are C++ interop
84+
(likely never a target for explorer), metaprogramming, parallel programming, and
85+
coroutines. The last three are likely substantial enough to merit their own
86+
AreWeYet pages.
87+
88+
### Are We Explorer Yet?
89+
90+
- ❌ Structured programming
91+
- ✅ While loops
92+
- ✅ Variable declarations
93+
- ❌ Variable initialization tracking
94+
- ❌ Returned var
95+
- ❌ Variadics
96+
- ❌ User defined types
97+
- ✅ structs
98+
- ✅ classes
99+
- ❌ choice
100+
- ✅ Alias system
101+
- ❌ OO programming
102+
- ❌ Inheritance
103+
- ❌ Parameterized class methods w/ inheritance
104+
- ❌ Destructors
105+
- ✅ Methods
106+
- ✅ Static functions / Class functions
107+
- ❌ Generic programming
108+
- ✅ Generic classes
109+
- ❌ Generic methods
110+
- ✅ Generic functions
111+
- ✅ Interfaces
112+
- ✅ Generic Interfaces
113+
- ✅ Impls
114+
- ✅ Generic Impls
115+
- ❌ Impl specialization
116+
- ❌ Templates
117+
- ❌ Operator overloading
118+
- ✅ ==
119+
- ❌ /=
120+
- ❌ Other operators
121+
- ❌ Constraints
122+
- ✅ Implicit “as”
123+
- ❌ Error handling
124+
- ✅ Prelude
125+
- ✅ Print function
126+
- ❌ Types
127+
- ✅ i32
128+
- ❌ Other integral types
129+
- ❌ Integral types as library types instead of native
130+
- ✅ Tuples
131+
- ✅ Pointer
132+
- ✅ Functions
133+
- ✅ Bool
134+
- ✅ String
135+
- ❌ Floating point types
136+
- ❌ Raw string literals
137+
- ❌ Code organization
138+
- ❌ Mixins
139+
- ❌ Imports
140+
- ❌ Separate packages
141+
- ❌ Modules
142+
- ❌ Namespaces
143+
144+
## Alternatives considered
145+
146+
The default alternative is status quo where carbon explorer progress isn’t being
147+
tracked from a high-level. Due to the problems outlined in the problems section,
148+
this seems like an undesirable option.
149+
150+
Another alternative is to use github issue tags and come up with a custom search
151+
to see the outstanding issues. This has the benefit of being fully automated. On
152+
the other hand, it would be difficult to get a hierarchical view which is useful
153+
to being able to grasp the big picture.

0 commit comments

Comments
 (0)