[Suggestion] Include a complete copy of Seed7's offline website with every release of Seed7! 📚😎
Hello again Mr. Mertes! I'm still very early in the process of diving into Seed7 but I continue to be amazed by the freshness and clear thinking of the design of your programming language! It seems truly like an underappreciated treasure of programming language design and it even makes me wonder if some newer and more popular languages may have taken their ideas (e.g. Zig's types as first class values) from Seed7 since Seed7 has been around for many years evidently.
Anyway though, as I mentioned in one of my typo correction pull requests on the Seed7 website repo, yesterday I manually saved copies of nearly every page on the Seed7 website one at a time using Firefox (which took a couple hours but seemed worth it for such an interesting language), but this was because I was incorrectly assuming that the website repo would have broken offline HTML links (which is a problem I've encountered before) but today I had the idea of downloading the website repo and seeing if it worked offline and indeed it does! I'm so happy to see that it works offline!
The partial documents that ship with the Seed7 release archives and on Windows installers are pretty good (and the manual.htm is ~290 pages when copy pasted into LibreOffice's LibreWriter to get a page count) but the website itself is even better (usually) and works fine offline!
Usually I'd prefer the site, but the big continuous manual page that already ships with Seed7's releases also has value since it is easier to do Ctrl + F or use Vim on a continuous document (though grepping -- e.g. via dnGrep or grepWin -- works for the site too).
Thus, I suggest that both the current long continuous manual page and the whole website should be shipped with Seed7's releases. (Or, alternatively, you could at least add a prominent suggestion to consider downloading the full offline website from GitHub for users who want complete offline docs.)
Here's some additional reasons:
- Seed7's whole website is only ~11 MB and Seed7's installer EXE is only ~50 MB. Thus, adding it would not be a big burden on downloads.
- Less widely known languages like Seed7 have a very risky "bus factor" in that if the creator disappears due to random chance events then critical information on the language could disappear, causing the system to become unusable or lost to history. Distributing duplicates of the website with every single shipped copy of the language greatly reduces the chances of critical info (and the value of all your years of hard work!) disappearing. Every single fully independent copy in existence helps the language survive and spread.
- Energy consumption and waste is much greater for online website browsing than for offline file use. Of course, Seed7's site is much less heavy than most sites, but still. I think that since documentation is navigated so often that offline versions are more responsible for limited resources. This may also speed the website up by reducing its burden (though it is already very fast).
- Offline documentation ensures people can continue working even when the network goes down, which is increasingly a risk for society as software has become increasingly overly interconnected and interdependent (akin to a biological monoculture hence more at risk of an unexpected collapse) in recent years.
- People are more willing to use less-known and single-developer languages if they they feel very certain that they have an abundance of fully independent information available that they can always rely on even if the creator or the creator's site disappears. Shipping the full offline website with every release will significantly increase that sense of security in users of Seed7. (For example, I know I personally wouldn't consider real/non-experimental use of Seed7 if I didn't know it was possible to get a working copy of the full site and docs on my computer, since small or less-known languages are in constant risk of disappearing overnight. With the docs though, I feel safe at the prospect of using it! 📚🙂)
Furthermore, I have another related suggestion:
Perhaps adding command line options to s7 and s7c that automatically attempt to open the folder or index pages of either the continuous one-document manual or the full offline website would be a nice convenience and would raise awareness of the existence of these very useful offline resources in all users of Seed7. For example:
s7 -manors7c -mancould open the continuous one-document manual page.s7 -siteors7c -sitecould open the folder or index page of the full offline website.s7 -dirors7c -dircould open the directory where the currents7ors7cexecutable is running from, for versioning clarity and for making modifications to what is installed more easily.
These showing up in the -? help lists would be a nice extra!
As Rust's rise in popularity has proven, the amount of polish in the command line interface of a language makes a big impact on its success! I think more of Rust's popularity is due to it having the best command line error output and documentation of almost any language ever made. User experience and ease of pragmatism always makes a big impact I think!
As one final thought: I also think that creating some kind of high-end program (such as a 3D renderer test program, if possible) could also make the language look more attractive. The website currently gives the impression that Seed7 might only be capable of old retro-style rendering, but a proof-of-concept for advanced or modern graphics or UIs would alleviate any fears some users have about Seed7's viability for real projects being competitive. I'm not sure how much graphics Seed7 can access though. It still seems very interesting regardless, especially for programs that accept "retro style" UIs and such at least.
Anyway, those are my suggestions. Sorry for being long-winded! I am just excited by such an distinctive language and I think taking these steps would help it survive in the long-term and be a bit more attractive to new users! I admire your work. 🏆
Thanks for reading and have a great day/night!