-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
86 lines (77 loc) · 7.27 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<!DOCTYPE html>
<html>
<head>
<title>L.B.Stanza</title>
<link type="text/css" rel="stylesheet" href="resources/mainstyle.css">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-77155883-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<table class="wrap">
<tr><td colspan="3" class="banner">
<a href="index.html" class="active-banner">Home</a><a href="philosophy.html">Philosophy</a><a href="downloads.html">Downloads</a><a href="documentation.html">Documentation</a><a href="people.html">People</a><a href="community.html">Community</a><a href="news.html">News</a><a href="reference.html">Reference</a>
</td></tr>
<tr>
<td class="nav">
<h1>NAVIGATION</h1>
<h2><a href="#anchor120">What is L.B. Stanza?</a></h2><h2><a href="#anchor121">A Taste of Stanza</a></h2><h2><a href="#anchor122">Benefits</a></h2><h2><a href="#anchor123">What does L.B. stand for?</a></h2>
</td>
<td class="main">
<h1 id="anchor120">What is L.B. Stanza?</h1><p>L.B. Stanza (or Stanza for short) is a new <span style="font-style:italic;">optionally-typed</span> general purpose programming language from the University of California, Berkeley. Stanza was designed to help programmers tackle the complexity of architecting large programs and significantly increase the productivity of application programmers across the <span style="font-style:italic;">entire</span> software development life cycle.</p><h1 id="anchor121">A Taste of Stanza</h1><p>A function that lazily computes the depth-first traversal of an s-expression, and prints the first four items.</p><pre><code>defn lazy-flatten (x) :<br> generate :<br> defn loop (x) :<br> match(x) :<br> (x:List) : do(loop, x)<br> (x) : yield(x)<br> loop(x)<br><br>val first-4 = take-n(4, lazy-flatten(`(a b (c (d e f (g) (h)) (i j)))))<br>println(first-4)</code></pre><h1 id="anchor122">Benefits</h1><p>Stanza was designed to offer the following benefits to application developers.</p><table class="features">
<td class="left">
<div class="red">
<div class="subtext">EFFICIENT</div>
<div class="text">Native Performance</div>
</div>
<p>Stanza compiles directly to native code and runs faster than any scripting language because it does not suffer any interpretive overhead.</p>
<div class="red">
<div class="subtext">FAMILIAR</div>
<div class="text">Friendly Syntax</div>
</div>
<p>Stanza code is block structured and uses familiar constructs. Users familiar with Python, Ruby, Java, or C, should feel at home with Stanza's syntax.</p>
<div class="red">
<div class="subtext">SEAMLESS</div>
<div class="text">Prototype to Production</div>
</div>
<p>Stanza features a novel <span style="font-style:italic;">optional</span> type system, that combines the prototyping power of dynamically-typed scripting languages with the stability and safety of statically-typed production languages. </p><p>When prototyping, don't specify any types, and Stanza will behave like a dynamically-typed scripting language. But when confident in your design, gradually add in types to make your code bulletproof. The more types you add, the more errors Stanza will catch up-front for you.</p>
<div class="red">
<div class="subtext">CONTROL</div>
<div class="text">Time and Concurrency</div>
</div>
<p>Use first-class <span style="font-style:italic;">targetable</span> coroutines to control time and easily manage programs involving highly concurrent state, like video games and web servers. Unlike other languages, Stanza's coroutines are a true <span style="font-style:italic;">general</span> control flow operator and are used for everything from implementing exceptions, to generators, to data-flow solvers.</p>
</td>
<td>
<div class="red">
<div class="subtext">MAXIMIZE</div>
<div class="text">Productivity</div>
</div>
<p>Stanza fully supports and encourages functional programming. With higher-order functions like <code>map</code>, <code>filter</code>, and <code>reduce</code>, programmers can get lots done with very little code; all in an easy-to-use and accessible language.</p>
<div class="red">
<div class="subtext">CLEAN</div>
<div class="text">Flexible Architecture</div>
</div>
<p>Object Oriented Programming is great. But fragile and deep, class inheritance trees are not. Stanza does away with classes completely and offers an incredibly flexible <span style="font-style:italic;">class-less</span> object system built upon multimethods and function overloading. </p><p>Additionally, Stanza's object system fits beautifully within a functional programming paradigm, and offers you the full power of functional programming with the structure of object oriented programming.</p>
<div class="red">
<div class="subtext">EASILY CONSTRUCT</div>
<div class="text">Domain Specific Languages</div>
</div>
<p>Stanza offers full programmatic s-expression macros in the style of Lisp but without the headache of programs looking like a jumble of parentheses. The core Stanza language is extremely minimal, and the majority of constructs are defined using macros. </p><p>A powerful macro system allows library writers to create domain specific languages (DSLs) that hide unnecessary complexity from users; resulting in less code and less bugs.</p>
</td>
</table><h1 id="anchor123">What does L.B. stand for?</h1><p>L.B. Stanza stands for "Li Bai's Stanza". Li Bai was an acclaimed Chinese poet who lived from year 701 to 762. He was known particularly for his mastery of "regulated verse", the most rigorous verse form of his time. His poems were noted for the vividness of their imagery, the grace and elegance of their structure, and the exacting precision of their words and meter. </p><p>Because of its rigidity and demanding technical nature, programming is often misunderstood to be a tiresome uncreative activity. But in fact, programming does not feel that different from writing poetry. It is a search for the simplest phrase that fits within an unforgiving meter, and the word "beautiful" is as appropriate for a perfectly constructed line of code as it is for a meticulously crafted stanza. This language is named after one of history's greatest masters of this art form. </p><p> -Patrick</p>
</td>
<td class="rest">
<img url="resources/spacer.gif"></img>
</td>
</tr>
<tr><td colspan="3" class="footer">
Site design by Luca Li. Copyright 2015.
</td></tr>
</table>
</body>
</html>