Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

let's create the future: a minimal lisp based web

Name: Anonymous 2014-05-15 12:33

A simple new web (HTTP, HTML, JS) replacement based on s-expressions and lisp. It would be useful for things like file hosting, wikipedia/wikis, BBSs, online newpapers/blogs, imageboards, youtube/mediagoblin style video sites.

Instead of XML we use s-exp for markup. It will be a very simple functional markup language that could be defined in a page or two. We will not allow it to grow and grow horribly like the W3C to the point that it's impossible to implement from scratch.

Instead of javascript we use a simple lisp language (similar to R5RS without continuations) which is interpreted with strict resource and permission bounds, so it will never do anything you do not allow it including swamping your computer down like current js JIT systems.

For servers, instead of tools similar to PHP we will use systems inspired by type-checking that are able to statically ensure that no vulnerabilities in the class of XSS/SQL injection/... exist.

1. A first draft design needs to be created.

2. It should be easy to get something up and running quite fast by writing a proxy that translates all this s-exp stuff into HTML - just for the purpose of prototyping.

3. Reference implementations from scratch - focus on low memory usage and stability (using safe languages instead of C or C++).

Name: Anonymous 2014-05-16 19:37

It needs to be designed well first. This can be separated into parts which can be worked on by different groups:

* Layout and Presentation: Work out what layout primitives will be required for a wide range of presentations: How to layout different sorts of user input forms, how to display different types of threaded and tree based dialogues, how to display tabulated data, how to flow text around images, how to include media like images, equations, sound, video.
* Layout Engines [depends on Layout and Presentation]: Produce implementations of the layout system. A simple proxy that turns sexp code into HTML might be a useful as a prototype initially. Real rendering engines should be carefully designed to minimize memory usage and put a limit on the CPU usage so that extremely complicated ASTs will be rejected rather DOSing the users browser/computer.
* Scripting: Spec out the language as a simplification of R5RS. Work out what kind of API it will have access to and how permissions will be assigned to scripts. In a safe language implement an interpreter for it that carefully limits its resource usage.
* Protocol: A replacement for HTTP/some kind of layer ontop of TCP is required for distributing and fetching pages. Decide how images and other media should be distributed, take inspiration from things that work nice and stable like bittorrent.
* Security [linked with Protocol]: Work out how authentication, TLS and certificates should be integrated from the start: reject CAs in favor of something that gives users power like ssh style trust on first use or web of trust.
* Servers: Study common security problems in the web, design a language with static analysis that makes compile time errors out of these problems when possible (as in injection/quotation problems). Make it safe and easy for people to create, operate and host their own sites.
* Blind spots and Mistakes: Look for important things that haven't been considered and list them. Point out flaws and improvements. Look for things that work well and copy them.

Overall for coding and design: The highest priority is to make things as simple as possible, source code should be short and readable. Keep good documentation up to date that explains things like common use cases. it's important to use safe languages to avoid buffer overflows and other problems which can cause crashes and allow exploits.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List