zsh-workers
 help / color / mirror / code / Atom feed
From: Sebastian Gniazdowski <psprint@zdharma.org>
To: zsh-workers@zsh.org
Subject: A project rewriting Emacs in Rust, if they can do it, then maybe Zsh too?
Date: Tue, 9 Jan 2018 07:17:58 +0100	[thread overview]
Message-ID: <etPan.5a545e96.40dcc42e.14e5a@zdharma.org> (raw)

Hello,
the project is: https://github.com/Wilfred/remacs

I think the main background point is that rust allows gradual conversion of C source. As for motivation, well, I could have skip this, because everyone has imagination when it comes to new things, however not all have grip on reality in such moments. So I try to highlight something.

Honestly I don't know Rust, but I was always fascinated by systems programming, was writing Windows and Linux drivers, worked on gdb for an ARM project at Intel, etc. and thought about creating dedicated language for this. Then Rust appeared, claiming this is done, right. I think someone with insight into Rust would be most helpful, e.g. after working in team for 1 or more years on a partly greenfield project. Or a D language person with head full of calm insights about C++ flaws and also experience with Rust. Remacs people probably know much too, but the commit number isn't overwhelming.

This would give high quality arguments. Otherwise one can focus on single features and traits of Rust, and this can be good too. Arguments based on what I know:

1. Occassion to fix minor but wanted things, like delunset way of freeing params.

2. Parameters can be well mapped on e.g. databases. I mapped each Redis datatype and it works. I plan to setup shared parameters between blinkenshell and my host, after I improve redis module, I ran unit tests this way before and they passed. Mapping would work better, if:

- get-set-unset structs had also callback to function returning size – no need to fetch whole data from database to count it

- GSU had user-data pointer, like hash that has `tmpdata' field, OR if Param would have such field; first solution saves memory, one can assign single GSU struct to all Params, but no per-Param user data is possible, and accessing is complicated

3. A Nokia argument, sorry ;) just trying to be ahead of things after powershell was done cross-platform. User reported it's slow, and it can be a joke like .NET on Linux, I cannot test yet. But other improvements would probably appear during the change to rust and Zsh would extend, and enter high-popularity languages. Rust is very popular on Github, at least. An example, I've found a project that writes backends in Rust and Haskell: https://github.com/wireapp/wire-server.

On the contrary, C software runs everywhere.

--  
Sebastian Gniazdowski
psprint /at/ zdharma.org


                 reply	other threads:[~2018-01-09  6:18 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=etPan.5a545e96.40dcc42e.14e5a@zdharma.org \
    --to=psprint@zdharma.org \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).