You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/documentation/about/features.malloynb
+6-7Lines changed: 6 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ Data Model. Malloy queries (equivalent of SQL's <code>SELECT</code>) run agains
8
8
produce SQL.
9
9
10
10
### Filtering Data
11
-
The first step in working with data, often is isolating the data you are interested in.
11
+
The first step in working with data is often isolating the data you are interested in.
12
12
Malloy introduces [simplified filtering](../language/filters.malloynb) for all types and allows these filters to be
13
13
applied. [Time calculations](../language/expressions.malloynb#time-expressions) are powerful and understandable.
14
14
@@ -23,11 +23,10 @@ mapping values, bucketing results and data cleanup.
23
23
24
24
### Maintains Relationships
25
25
SQL's <code>SELECT</code> statement flattens the namespace into a wide table. Malloy retains the graph relationship
26
-
of data lets you access and correctly perform computations and any place in the graph.
26
+
of data which lets you access and correctly perform computations and any place in the graph.
27
27
28
28
### Reusable Queries
29
-
Queries can be introduced into a Malloy model and accessed by name. One benefit is that the
30
-
queries are always accurate. Think of a Malloy model as a data function library.
29
+
Queries can be introduced into a Malloy model and accessed by name. Think of a Malloy model as a data function library.
31
30
Queries can also be used to create [nested subtables](../language/nesting.malloynb) in other queries.
32
31
33
32
### Aggregating Subqueries
@@ -38,6 +37,6 @@ Named queries of a given shape can easily be nested, visualized and reused.
38
37
Malloy can pipeline operations. The output of one query can be the input for next.
39
38
40
39
### Metadata, Visualization and Drilling
41
-
Compiling a Malloy query returns metadata about the structure of the results. When combined with the query results, Malloy's rendering library can give a very
42
-
rich user experience, rendering dashboards, visualizations. Through this metadata
43
-
the visualization library can rewrite queries to drill through to data detail.
40
+
Compiling a Malloy query returns metadata about the structure of the results. When combined with the query results, Malloy's rendering library
41
+
automatically renders very rich dashboards and visualations so that you can iteratively
Copy file name to clipboardExpand all lines: src/documentation/about/tao.malloynb
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -11,16 +11,16 @@ Our primary users will all be familiar with SQL. We should make their life no ha
11
11
For example `name is expression`, vs `expression as name`. In SQL the naming on an expression sits as a casual afterthought "oh by the way, give this really important expression a name". In Malloy, the name of a thing is important, you are building complex things from smaller pieces. When you look at a model, you will often want to scan the file looking for names, they belong on the left hand side.
12
12
13
13
14
-
However, we in general try to have the "feel" of SQL. We use `()` for structuring instead of `{}` like LookML or JavaScript do, or indentation like Python does. We use `is` and `define` instead of `:` like LookML or `=` like JavaScript. We use SQL words for things (like `join`) where it makes sense.
14
+
Howevertry to keep to the "feel" of SQL while incorporating useful syntax from other languages. We use `()` for structuring instead of `{}` (LookML/JavaScript), or whitespace/indentation (Python). When a concept or function is particular to query languages we try to fall back to use SQL words (i.e. `join`, `aggregate`) but do not introduce whitespace syntax (i.e. Malloy's `group_by` vs SQL's `GROUP BY`)
15
15
16
16
17
-
The intention was always that there is some context, command line or editor, which handles a single document with mixed Malloy and SQL, either because they are one merged language, or there is some JSX-like escaping between the contexts.
17
+
The intention has always been to allow mixing Malloy and SQL in order to enable incremental improvement of already existing SQL; as well as better facilitate the learning process.
18
18
19
19
### … feels concise, but not cryptic
20
-
This is the most common point of disagreement as we talk about how to express things. There is no one right answer to this. We have a preference for brevity, every single feature we wrestle with trying to get the most clarity from the least language surface.
20
+
This is the most common point of disagreement as we talk about how to express things. There is no one right answer to this. We have a preference for brevity but require clarity. Every single feature we wrestle with trying to get the most readability from the least language surface.
21
21
22
22
### … is composable
23
-
If you find a piece of code that works, you should be able to select it, paste it somewhere with a name, and use it by name.
23
+
If you find a piece of code that works, you should be able to (at best) import it or (at worst) copy/paste it somewhere and use it by name.
24
24
25
25
### … is an algebra for computations with relational data
26
26
Malloy comprehends data as a network of relationships and so computations like aggregation have a useful and mathematical meaning. Malloy gestures should read like a mathematical formula which means one clear thing.
@@ -29,13 +29,13 @@ Malloy comprehends data as a network of relationships and so computations like a
29
29
Maybe AppleScript or COBOL would be at the extreme end of this. More of a kind of math, less like a natural language.
30
30
31
31
### … is curated
32
-
There are not four different ways to express things depending on which programming language or style you came from. There is one, and it is carefully chosen to match the task of data transformation, discovery and presentation.
32
+
There are not four equal and different ways to express something. In Malloy there should be one preferred way that has been carefully chosen to match the task of data transformation, discovery and presentation.
33
33
34
34
### … is helpful
35
-
Malloy tries to "do the right thing" that most people want, by default, while still allowing non default expressions to be written. The treatment of `null` and booleans, and the sorting rules for "reduce" stages would be two examples of this.
35
+
Malloy tries to "do the right thing" that most people want, by default, while still allowing non default expressions to be written. The treatment of `null` and booleans, and the sorting rules for "reduce" stages are two examples of this.
36
36
37
37
### … is still an experiment
38
38
We had some theoretical insights that there was a better way to interact with data than SQL, and Malloy is the current snapshot of that thinking, but we are not done. We have a number of features which are not yet in the language, which we expect to have an impact on the language, and maybe even on these rules. The language is still young and needs room to grow.
39
39
40
40
### … is an expression of empathy towards explorers and explainers of data
41
-
The Malloy user is not someone who writes one sentence in Malloy, and then never sees the language again. Malloy is an invitation into a "way" for people who are passionate about decision making based on data, and good decision making is iterative, and ongoing.
41
+
The Malloy user is not someone who writes one sentence in Malloy, and then never sees the language again. Malloy is an invitation into a "way" (or "Tao") for people who are passionate about decision making based on data; and good decision making is iterative and ongoing.
0 commit comments