annotate website/src/why.html.luan @ 1992:ac02e07f09de default tip

add config
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 01 Jul 2025 15:14:26 -0600
parents 535921391867
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1651
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
1 local Luan = require "luan:Luan.luan"
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
2 local error = Luan.error
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
3 local Io = require "luan:Io.luan"
1938
bd00b36380d9 ai options
Franklin Schmidt <fschmidt@gmail.com>
parents: 1929
diff changeset
4 local Site_translator = require "luan:ai/Site_translator.luan"
1929
31f006c64782 translation
Franklin Schmidt <fschmidt@gmail.com>
parents: 1861
diff changeset
5 local get_lang = Site_translator.get_lang or error()
31f006c64782 translation
Franklin Schmidt <fschmidt@gmail.com>
parents: 1861
diff changeset
6 local text_writer = Site_translator.text_writer or error()
1651
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
7 local Shared = require "site:/lib/Shared.luan"
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
8 local head = Shared.head or error()
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
9 local header = Shared.header or error()
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
10
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
11
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
12 return function()
1929
31f006c64782 translation
Franklin Schmidt <fschmidt@gmail.com>
parents: 1861
diff changeset
13 Io.stdout = text_writer()
1651
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
14 %>
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15 <!doctype html>
1929
31f006c64782 translation
Franklin Schmidt <fschmidt@gmail.com>
parents: 1861
diff changeset
16 <html lang="<%=get_lang()%>">
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17 <head>
1651
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
18 <% head() %>
1522
bafe6a6797ce blasma.html
Franklin Schmidt <fschmidt@gmail.com>
parents: 1521
diff changeset
19 <title>Why Luan?</title>
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20 </head>
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21 <body>
1651
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
22 <% header() %>
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
23 <div content>
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25 <h1>Why Luan?</h1>
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
26
1987
535921391867 better why.html
Franklin Schmidt <fschmidt@gmail.com>
parents: 1938
diff changeset
27 <p>Luan is designed for reliability, simplicity, and readability. What makes its extreme simplicity possible is that it is a pure scripting language as Ousterhout envisioned in his paper <a href="scripting.html">Scripting: Higher Level Programming for the 21st Century</a> (1998). Luan is tightly coupled with Java, with Luan for scripting (writing applications) and Java for writing libraries. Compare this to a language like Python. While Python is a nice language, it is optimal neither for scripting nor for writing libraries. Python sits in the middle as a compromise. Ousterhout's vision is to use the optimal tool for each task. Luan is an uncompromising scripting language while Java is ideal for writing libraries.</p>
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28
1987
535921391867 better why.html
Franklin Schmidt <fschmidt@gmail.com>
parents: 1938
diff changeset
29 <p>Luan rejects the complexity of modern software. It is mature software that I have been using for years for web programming. Whether Luan will appeal to you depends on who you are. Members of modern culture will not like Luan because they hate simplicity. Luan will only appeal to good cultures that value simplicity, so I will address the two good cultures that I know of.</p>
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30
1834
4ec3fd9e3999 update why.html
Franklin Schmidt <fschmidt@gmail.com>
parents: 1827
diff changeset
31 <h2>For Mennonites</h2>
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
32
1834
4ec3fd9e3999 update why.html
Franklin Schmidt <fschmidt@gmail.com>
parents: 1827
diff changeset
33 <p>Here I am addressing Mennonites who reject modern culture, and so are not part of modern culture.</p>
1523
Franklin Schmidt <fschmidt@gmail.com>
parents: 1522
diff changeset
34
1834
4ec3fd9e3999 update why.html
Franklin Schmidt <fschmidt@gmail.com>
parents: 1827
diff changeset
35 <p>Mennonites describe themselves as <a href="https://en.wikipedia.org/wiki/Plain_people">plain people</a> reflecting their preference for plain and simple dress, and plain and simple churches. I have also noticed that Mennonites prefer plain and simple tools for their work. Luan is a plain and simple programming language, so it should appeal to Mennonites.</p>
1523
Franklin Schmidt <fschmidt@gmail.com>
parents: 1522
diff changeset
36
1834
4ec3fd9e3999 update why.html
Franklin Schmidt <fschmidt@gmail.com>
parents: 1827
diff changeset
37 <p>As a follower of the Old Testament, I learned a little Hebrew, and I was struck by how plain and simple the Hebrew of the Old Testament is. I love this writing style. Profound ideas are expressed in simple and direct language. Luan is designed to enable this style in programming. In addition, I have <a href="https://mikraite.arkian.net/The-Old-Testament-on-Programming-tp1923.html">applied</a> the wisdom of the Old Testament to my programming and to Luan's design.</p>
1523
Franklin Schmidt <fschmidt@gmail.com>
parents: 1522
diff changeset
38
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
39 <h2>For Japanese</h2>
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40
1834
4ec3fd9e3999 update why.html
Franklin Schmidt <fschmidt@gmail.com>
parents: 1827
diff changeset
41 <p>Japan is the only remaining country that I know of that values quality. The Japanese understand that quality is the result of keeping things clean and simple, and of continuous improvement. I have applied these things to Luan. I discussed how Japanese ideas apply to my programming <a href="https://mikraite.arkian.net/Core-Programming-Principles-tp1237.html">here</a>. I think you can see all of these principles in my code.</p>
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
42
1987
535921391867 better why.html
Franklin Schmidt <fschmidt@gmail.com>
parents: 1938
diff changeset
43 <p>Luan's style of programming can be compared to the Japanese arts of Kumiki and Kintsugi. Just like how in Kumiki the Japanese take pieces of wood and make strong structures without any need for nails and such, Luan uses simple but effective and strong Java libraries and makes strong programs without any unnecessary parts that modern programmers like to use. This idea of assembling Java libraries into an application is the scripting idea described above. In Kintsugi you take broken objects and fix them up using something visually pleasing such as gold or silver. This is done instead of throwing an old and broken object away. Once again Luan does the same thing. When Luan needs new functionality, I look for an old Java library that was written when Western culture was still good. If it has bugs or is incomplete, I fix it by adding my code.</p>
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
44
1987
535921391867 better why.html
Franklin Schmidt <fschmidt@gmail.com>
parents: 1938
diff changeset
45 <p>Western software does not follow these ideas. Instead it just continuously gets more complicated and unreliable. In contrast, Luan has been getting simpler and more reliable over the years as a result of continuous improvement. You cannot expect to achieve Japanese standards of quality and reliability if you use modern western software. So use Luan instead.</p>
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
46
1651
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
47 </div>
1521
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
48 </body>
d3e61cd2aca0 docs and shell bug fix
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
49 </html>
1651
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
50 <%
5b8f056527a3 docs work
Franklin Schmidt <fschmidt@gmail.com>
parents: 1646
diff changeset
51 end