|
1 | 1 | --- |
2 | 2 | title: Introduction |
3 | | -description: Docs intro |
| 3 | +description: Introduction to PlatformScript |
4 | 4 | --- |
5 | 5 |
|
6 | | -PlatformScript is _real_. |
| 6 | +PlatformScript is a declarative, statically typed, secure, and embeddable |
| 7 | +programming language that uses 100% pure YAML as its syntax. |
| 8 | + |
| 9 | +## Features at a Glance. |
| 10 | + |
| 11 | +- Uses lexically scoped **variables** to bind values names to values and |
| 12 | + reference them later. |
| 13 | +- **Functions** are first class citizens. They can even be bound to variables |
| 14 | + and passed to other functions for higher order programming. |
| 15 | +- Fluent **templating** allows building strings with _any_ set of PlatformScript |
| 16 | + expressions, not just simple substitutions. |
| 17 | +- Define new syntactic forms with PlatformScript itself using **macros**. |
| 18 | +- Compose programs with an elegant **module system** for sharing code based on |
| 19 | + simple URLs. |
| 20 | +- **Native extensions** expose new functionality with any language that can be |
| 21 | + compiled to WASM |
| 22 | +- Powerful execution model based on **structured concurrency** prevents leaked |
| 23 | + resources by default. |
| 24 | + |
| 25 | +## Philosophy |
| 26 | + |
| 27 | +PlatformScript is designed to eliminate the bugs, validation errors, and tedium |
| 28 | +of working with YAML by bringing to bear all the rigor and tooling of a modern |
| 29 | +language such as type-checkers, language servers, linters, etc... |
| 30 | + |
| 31 | +It will always use plain YAML without extensions as it syntax, so that |
| 32 | +all PlatformScript programs can be represented as YAML documents, and |
| 33 | +it adopts a policy of "no magic" as in no magic functions, no magic |
| 34 | +variables, and a small, consistent set of evaluation rules. |
| 35 | + |
| 36 | +PlatformScript should always be an excellent choice to replace configuration |
| 37 | +files and special one-off DSLs, especially those that use YAML for their syntax. |
| 38 | + |
| 39 | +## Built with Deno |
| 40 | + |
| 41 | +PlatformScript is built with [Deno][Deno], but more than that, it adopts Deno's |
| 42 | +system of thinking about developer experience; especially as it pertains to |
| 43 | +modules and code sharing. |
| 44 | + |
| 45 | +[Deno]: https://deno.land |
0 commit comments