commit ae920acaf8c2348abc81fd87a26484fb67492920
parent a50fbcc1fbd854f531b36658b3138eee7634eb9a
Author: viznut_web <viznut_web@web>
Date: Thu, 2 Jun 2022 15:16:58 +0200
Diffstat:
1 file changed, 23 insertions(+), 0 deletions(-)
diff --git a/programming_languages.mdwn b/programming_languages.mdwn
@@ -0,0 +1,23 @@
+Asking "what is the most suitable programming language for permacomputing?" is akin to asking what is "the most suitable plant for permaculture". The entire question contradicts itself. There is a high diversity of possible tasks and programs, and different programming languages suit them in different ways. Not all software needs to last for decades, run efficiently or be ultra-secure. However, it is still good if the language does not prevent this.
+
+Here are some questions worth asking about a programming language from the resource and longevity points of view:
+
+* How complex is the language? How long would it take to learn all the syntactical details? How long would it take to implement a compiler/interpreter from scratch?
+* Are there several alternative implementations of the language? (It is generally a good sign if there are)
+* What are the [[software]] characteristics of these implementations (e.g. disk and memory footprint and compilation speed)? How much resources would it take to [[bootstrapping|bootstrap]] them?
+* What kind of platforms do these implementations target? Is it possible to port a program to a very small device without switching to another language?
+* How fast and compact is the generated code? What are the overheads and mandatory dependencies like? Does the hello world require bytes, kilobytes, megabytes or gigabytes of memory if all the dependencies are included?
+
+Some programming languages:
+
+ * [[C]]
+ * [[Forth]]
+ * [[Lisp]]
+ * [[Lua]]
+ * [[Nim]]
+ * [[Hare]]
+ * [[Zig]]
+
+See also:
+
+ * [Drew DeVault's blog post about benchmarking compilers by Hello world size](https://drewdevault.com/2020/01/04/Slow.html)