Mercurial Hosting > luan
view website/src/why.html.luan @ 1718:5603ee8e2a71
rename String.rep to String.repeated
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 25 Jul 2022 11:32:05 -0600 |
parents | 5b8f056527a3 |
children | 3cd1d267508c |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local Io = require "luan:Io.luan" local Http = require "luan:http/Http.luan" local Shared = require "site:/lib/Shared.luan" local head = Shared.head or error() local header = Shared.header or error() return function() Io.stdout = Http.response.text_writer() %> <!doctype html> <html> <head> <% head() %> <title>Why Luan?</title> </head> <body> <% header() %> <div content> <h1>Why Luan?</h1> <p>Luan is designed for 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.pdf">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> <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. So I will address different groups of people.</p> <h2>For Moderns</h2> <p>I define Moderns as members of depraved modern western culture. They will hate Luan and shouldn't use it. This is because they are evil people who love complexity and hate simplicity. They worship their own insane ideas and ideologies while ignoring practical real-world concerns. This is taken to an extreme in Silicon Valley where the world's worst software is produced.</p> <h2>For Muslims</h2> <p>By Muslims, I mean those having the values of the Quran, not of modern culture. Muslims who accept modern culture and modern software are only <a href="https://en.wikipedia.org/wiki/Cultural_Muslim">nominally Muslim</a> and are really Moderns. Such Muslims should not use Luan.</p> <p>The Quran has a broad message to seek the good and avoid the bad. This applies to all things including programming. I am not Muslim, I follow the Old Testament. But all scripture inspired by God has a similar message. Programming is a way of expressing ideas, just like any kind of writing. And where are ideas best expressed? In scripture. I try to use the writing style of the Torah as my guide for how I should program. Biblical Hebrew is a very simple language, yet the Torah expresses profound ideas in a simple and direct way using this language. This is exactly what one wants from good programming. And Luan is designed for this kind of programming.</p> <p>Look at modern western culture, especially the culture of Silicon Valley. Can any religious person deny that this culture is the product of Satan? And so their software is inspired by Satan. Is this the kind of software that a Muslim or any religious person should use?</p> <p>As I use the Torah for inspiration, Muslims should use the Quran. Consider how ideas are expressed in the Quran and try to apply the same style to your programming. The Silicon Valley obsession with programming ideologies is really nothing more than idolatry. Don't allow idolatry into your code. Scripture is full of general wisdom. I have <a href="http://www.mikraite.org/The-Old-Testament-on-Programming-tp1923.html">applied</a> the wisdom of the Old Testament to programming. Muslims should try to do the same with the Quran.</p> <p>The Muslim world will not improve until Muslims free themselves from dependencies on the degenerate West. For programmers the place to start is with software tools. Luan is one step in the right direction.</p> <h2>For the Right</h2> <p>Those on the Right who think their issue is primarily political are basically Moderns, and Luan isn't for them. But those on the Right that understand that the core issue is cultural and religious should find Luan appealing. The West first decayed religiously and then decayed culturally. This decay made the people evil to the point where they are completely incapable of producing anything good. But this is recent, happening between 2000 and 2010. America produced great software in the last century, and Luan is designed in this spirit. Things like Unix, C, and the internet protocols were all designed for simplicity and power. Luan has the same kind of design.</p> <p>How does this matter practically? The Right is suffering because the Left dominates technology. And when the Right does try to produce technology, like a number of its social media platforms, the results are poor. I believe that one reason for this is that the Right is using software tools designed by the Left. These tools are horrible and overcomplicated. The Silicon Valley types who produce them are not stupid, they are just extremely evil. So these tools are only really suited for them. Decent programmers want simple tools that don't force them to struggle to conform to some insane programming ideology. So decent programmers should use software produced in the West before it became fully depraved, meaning before 2000 to be safe. When more recent software is needed, look for software produced outside of western culture. For example <a href="https://nginx.org/">nginx</a> is okay because it was produced in Russia.</p> <p>I designed Luan in reaction to horrible modern software. I think Luan should appeal to programmers on the Right who share my traditional western values. And I think Luan would allow these programmers to more efficiently produce websites to compete with the Left.</p> <h2>For Japanese</h2> <p>Japan is the only remaining culture 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="http://www.mikraite.org/Core-Programming-Principles-tp1237.html">here</a>. I think you can see all of these principles in my code.</p> <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> <h2>For Chinese</h2> <p>The Chinese have mostly practical concerns, so I will address this first. But then I will show that principles are actually very practical.</p> <p>Because Luan is simple and flexible, you can quickly create a website. And Luan code is easy to change, so maintenance is easy. Most other systems for web development have a bigger learning curve and are not so flexible. I will admit that Luan documentation could be better. I will fix this, but for now I promise fast support to answer your questions.</p> <p>The best way to explain why principles are practical is to consider the game of Go (围棋). To win at Go, you must both be practical and apply principles. Your initial moves will determine the structure of the game, so are critical. Consider how this relates to programming. To just pick any random tools when starting a programming project is like picking random moves at the beginning of a Go game. In Go, your structure will be horrible and you will lose. And in programming, you will be stuck with messy code that will be hard to maintain. So the choices you make at the beginning of a Go game or at the beginning of a programming project are critical. In both cases, your initial choices should be based on sound principles.</p> <p>Another point is that Go begins with an empty board, giving you complete flexibility about how you want to develop your position. Luan is the same, allowing you to create a clean design from scratch. This is in contrast to frameworks that impose structure on you which adds complexity and reduces flexibility.</p> <p>Many Chinese programmers are willing to struggle to make any tool work. But this is a mistake because most of the work in programming isn't writing the code, it is maintaining the code. With messy code, the struggle never ends. But with clean readable code, maintenance is easy. Luan is designed to be simple and readable, so code written in Luan should be easier to maintain than code written in another language.</p> <h2 id=nabble>For Nabble Users</h2> <p><a href="https://www.nabble.com/">Nabble</a> is a forum platform that I developed long ago, before I fully understood the importance of simplicity. Because users wanted to customize their forums, I developed <a href="http://naml.nabble.com/">NAML</a>. This started out as a simple macro language that looks like HTML. But as more and more functionality was needed in NAML, it grew into a monster. Now I hate my own creation. The lesson I learned is that front end code needs logic, so it should be implemented with a full programming language. I actually started working on Luan as a replacement for NAML, but Luan was so successful for me that I ended up using it in many projects. Because Luan was designed for end-users, it is the simplest programming language that I know of. I hope that a future replacement for Nabble will use Luan for customization. In that case, customization will be easy and unlimited.</p> </div> </body> </html> <% end