]> Sergey Matveev's repositories - stargrave-blog.git/commit
Lua вместо Rust в FreeBSD
authorSergey Matveev <stargrave@stargrave.org>
Tue, 6 Aug 2024 09:04:51 +0000 (12:04 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Tue, 6 Aug 2024 09:06:50 +0000 (12:06 +0300)
commit6d29e78dbd1655a09d69e169642404ccb9a8c57c
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent9087ba08ba2bd0a2de188c2dbfdb0c9085c3d149
Lua вместо Rust в FreeBSD

В рассылке всё продолжается обсуждение внедрения Rust в общую систему.
Опытные разрабы не видят ни в этом, ни в Rust смысла. А один прислал
предложение переписывать кучу всего на Lua, который и так уже есть в
базовой системе (для загрузчика), ибо к нему применимы все те же самые
аргументы, что и для Rust:

    Most user space tools could be written in lua.  This already is in
    base, it is memory safe, it is very small and pretty fast, allows
    easy C integration for cases most FreeBSD system tools never need.
    It can be learned pretty easily, and it is very productive.
    It also has the coolness factor of Unix, for example

      echo '#!/usr/bin/lua' > /bin/true
      chmod 0755 /bin/true
      cp /bin/true /bin/false
      echo 'os.exit(1)' >> /bin/false

    implements two basic system tools in lua.  (They are portable!)
    One could also imagine that a basic FreeBSD lua library, one that
    makes access to ioctls, sysctls and basic C constants easy, would
    benefit FreeBSD, as it seems a not small number of projects /
    companies use lua for certain parts of "their thing", like user
    interfaces or whatever.

А вообще там самая большая проблема это в том, что Rust это не просто
язык/компилятор, а целая экосистема. И она меняется там чуть ли не
каждый месяц. Если в базовой системе будет Rust, которым можно будет
собрать только софт из /usr/src, но будет бесполезен для системы портов,
то толку от него не много. Говорят, что и Perl из-за этого был убран из
базовой FreeBSD (что ломает мой частый аргумент о том, что Perl из
коробки де-факто есть в любом уважающем себя дистрибутиве).