• sensible languages for younger contributors (was Re: lintian.debian.org

    From Jonathan Dowland@21:1/5 to All on Sun Sep 22 17:10:01 2024
    On Wed Sep 4, 2024 at 8:33 PM BST, Serafeim (Serafi) Zanikolas wrote:
    incidentally, lots of Debian native code is in perl, and like it or
    not, we should allow for, or even encourage [0] (partial) rewrites if
    we want to attract new contributors, especially below the average DD
    age

    I have some sympathy with this idea, but I'd love to see a rigorous
    exploration of it. I probably fall on the greybeard side of the dividing
    line now, and my Perl is rusty (but not non-existent). Partly I wonder
    if we are underestimating younger folk by suggesting that grokking old
    stuff like Perl is Too Hard. Or maybe the issue isn't difficulty, but
    that doing so is simply unattractive?

    If we did have consensus that Perl should be retired, the question
    should be replaced *with what*? I'd be very surprised if we could get
    consensus on that; but I'd happily read people's suggestions. I guess
    you'd advocate for Rust or Go, based on your slide deck.

    What criteria are important for such a recommendation?

    (Please, not Python :P)

    [0] see slide 6 of https://raw.githubusercontent.com/samueloph/personal_website_files/main/slides/samueloph_slides_2024_08_i_use_debian_btw.pdf

    Slide 6 seems to be a picture of a Powerline terminal prompt.

    Slide 7 seems relevant: since it's just two bullet points I'll reproduce
    it here in its entirety:

    Title: Rewrite in Golang/Rust BTW
    * Rewrite the same thing using a different language OR...
    * Start fresh with better defaults and UX



    --
    Please do not CC me for listmail.

    👱🏻 Jonathan Dowland
    jmtd@debian.org
    🔗 https://jmtd.net

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Charles Plessy@21:1/5 to All on Sun Sep 22 18:00:01 2024
    Le Sun, Sep 22, 2024 at 04:05:08PM +0100, Jonathan Dowland a écrit :
    Perl is rusty

    Well, if you forget what I wrote earlier about LLMs being a copyright-laundering machine, I can tell you that if you ask for Perl to ChatGPT, it does wonders.

    Maybe if we had an LLM trained on Wikipedia plus everything available
    under debian.org…

    Cheers,

    Charles

    --
    Charles Plessy Nagahama, Yomitan, Okinawa, Japan
    Debian Med packaging team http://www.debian.org/devel/debian-med Tooting from work, https://fediscience.org/@charles_plessy Tooting from home, https://framapiaf.org/@charles_plessy

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From thomas@goirand.fr@21:1/5 to All on Sun Sep 22 20:00:01 2024
    CgpPbiBTZXAgMjIsIDIwMjQgNTowNSBQTSwgSm9uYXRoYW4gRG93bGFuZCA8am10ZEBkZWJpYW4u b3JnPiB3cm90ZToKCj4KCj4gT24gV2VkIFNlcCA0LCAyMDI0IGF0IDg6MzMgUE0gQlNULCBTZXJh ZmVpbSAoU2VyYWZpKSBaYW5pa29sYXMgCgo+IE9yIG1heWJlIHRoZSBpc3N1ZSBpc24ndCBkaWZm aWN1bHR5LCBidXQgCgo+IHRoYXQgZG9pbmcgc28gaXMgc2ltcGx5IHVuYXR0cmFjdGl2ZT8gCgoK UmV3cml0aW5nIHRoaW5ncyBqdXN0IHRvIGNoYW5nZSBsYW5ndWFnZSBpcyBpbmRlZWQgdW5hdHRy YWN0aXZlLgoKCj4gKFBsZWFzZSwgbm90IFB5dGhvbiA6UCkgCgoKV2h5PyBJZiBvbmUgbG9va3Mg YXQgcG9wdWxhcml0eSwgUHl0aG9uIHdpbnMuLi4KCgpUaG9tYXMgR29pcmFuZCAoemlnbykKCgo= PGh0bWw+PGJvZHk+PGJyPjxkaXYgZGlyPSJsdHIiPk9uIFNlcCAyMiwgMjAyNCA1OjA1IFBNLCBK b25hdGhhbiBEb3dsYW5kICZsdDtqbXRkQGRlYmlhbi5vcmcmZ3Q7IHdyb3RlOjwvZGl2Pgo8ZGl2 IGRpcj0ibHRyIj4mZ3Q7PC9kaXY+CjxkaXYgZGlyPSJsdHIiPiZndDsgT24gV2VkIFNlcCA0LCAy MDI0IGF0IDg6MzMgUE0gQlNULCBTZXJhZmVpbSAoU2VyYWZpKSBaYW5pa29sYXMgPC9kaXY+Cjxk aXYgZGlyPSJsdHIiPiZndDsgT3IgbWF5YmUgdGhlIGlzc3VlIGlzbiYjMzk7dCBkaWZmaWN1bHR5 LCBidXQgPC9kaXY+CjxkaXYgZGlyPSJsdHIiPiZndDsgdGhhdCBkb2luZyBzbyBpcyBzaW1wbHkg dW5hdHRyYWN0aXZlPyA8L2Rpdj4KPGJyPjxkaXYgZGlyPSJsdHIiPlJld3JpdGluZyB0aGluZ3Mg anVzdCB0byBjaGFuZ2UgbGFuZ3VhZ2UgaXMgaW5kZWVkIHVuYXR0cmFjdGl2ZS48L2Rpdj4KPGJy PjxkaXYgZGlyPSJsdHIiPiZndDsgKFBsZWFzZSwgbm90IFB5dGhvbiA6UCkgPC9kaXY+Cjxicj48 ZGl2IGRpcj0ibHRyIj5XaHk/IElmIG9uZSBsb29rcyBhdCBwb3B1bGFyaXR5LCBQeXRob24gd2lu cy4uLjwvZGl2Pgo8YnI+PGRpdiBkaXI9Imx0ciI+VGhvbWFzIEdvaXJhbmQgKHppZ28pPC9kaXY+ Cjxicj48L2JvZHk+PC9odG1sPg==

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to Jonathan Dowland on Sun Sep 22 19:30:01 2024
    "Jonathan Dowland" <jmtd@debian.org> writes:

    If we did have consensus that Perl should be retired, the question
    should be replaced *with what*? I'd be very surprised if we could get consensus on that; but I'd happily read people's suggestions. I guess
    you'd advocate for Rust or Go, based on your slide deck.

    What criteria are important for such a recommendation?

    (Please, not Python :P)

    I mean, you say that, but Python is by far the most obvious choice. It's
    the most popular programming language in the IEEE Spectrum 2024 survey by
    a very large margin, and the next most popular languages (Java,
    JavaScript, and C++) are all less suitable for this type of integration programming. You have to go down to eighth place before you find Go, at
    about a fifth the popularity of Python.

    Python is also replacing Java as the language of college CS classes, which means the base of people who know at least some Python is probably larger
    than any other language filling the same niche.

    I think the only real competitor to Python today on the popularity and
    existing knowledge front would be JavaScript, and I think it's less
    suitable for the type of development we do in Debian.

    --
    Russ Allbery (rra@debian.org) <https://www.eyrie.org/~eagle/>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Serafeim (Serafi) Zanikolas@21:1/5 to Jonathan Dowland on Wed Sep 25 12:10:03 2024
    --43cb3d27154d32c2bd395cb8c3938e71221ab26734b34328f0ecd157c06f Content-Transfer-Encoding: quoted-printable
    Content-Type: text/plain; charset=UTF-8

    hi Jonathan,

    On Sun Sep 22, 2024 at 5:05 PM CEST, Jonathan Dowland wrote:
    On Wed Sep 4, 2024 at 8:33 PM BST, Serafeim (Serafi) Zanikolas wrote:
    incidentally, lots of Debian native code is in perl, and like it or
    not, we should allow for, or even encourage [0] (partial) rewrites if
    we want to attract new contributors, especially below the average DD
    age

    I have some sympathy with this idea, but I'd love to see a rigorous exploration of it. I probably fall on the greybeard side of the dividing
    line now, and my Perl is rusty (but not non-existent). Partly I wonder
    if we are underestimating younger folk by suggesting that grokking old
    stuff like Perl is Too Hard. Or maybe the issue isn't difficulty, but
    that doing so is simply unattractive?

    it's popularity, not difficulty

    If we did have consensus that Perl should be retired, the question
    should be replaced *with what*? I'd be very surprised if we could get consensus on that; but I'd happily read people's suggestions. I guess
    you'd advocate for Rust or Go, based on your slide deck.

    I see many people I admire here that are happy with perl, so going against perl would make no sense to me. more generally, I'm pretty sure that any project-wide
    conversation for or against any single language would be a waste of time, at best

    all I'm suggesting is for all of us to be open minded with people that want to use languages that are not well-established in Debian native software

    What criteria are important for such a recommendation?

    I'm not sure that we could converge on a recommendation, nor that it would be of
    any use if we were to -- except perhaps in a team-local scope. fwiw, some ideas:

    - popularity, accounting for fitness for purpose (e.g. no php and js, as
    mentioned elsewhere in this thread)
    - readability
    - maintainability

    as an example, I've rewritten adequate(1) from perl to go. the perl version was absolutely fine, I just couldn't see myself writing perl for fun in my free time. and I feel more optimistic about finding co/new maintainers given that it's in go

    (Please, not Python :P)

    not a big fan either, but python scores pretty high in terms of the first two criteria above

    Title: Rewrite in Golang/Rust BTW
    * Rewrite the same thing using a different language OR...
    * Start fresh with better defaults and UX

    that pointer was to highlight that the idea of rewrites resonates with at
    least one other DD, and less so about go/rust

    --43cb3d27154d32c2bd395cb8c3938e71221ab26734b34328f0ecd157c06f
    Content-Type: application/pgp-signature; name="signature.asc"

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCAAdFiEEA2RWqo7IwLCLSFYbT59tVQ7WEioFAmbz308ACgkQT59tVQ7W EiqhjRAAl0m2r+Avld6VDBZ5CzafVaeUYiGPUXiY7uQ8Hdl32ria74jT3kKORC9t yUMer0BRQ1SZwqjkSjb3pKzGONmuaDoowoq6pi8UDYNKkz+NoSBXj0sm0COQG/n1 KSzgw4GZkksU8xB+6ImWT5F4ibkRmIprE/jMg4J+X2+JT+ylC0pICr202/4xCEi4 E56VmiwtKuratkO14VhzWd+1UvgorBaBQ5WWP5Bho/bEnxhl4ABrc5Rzkn3XPVRO l7S/jy1M/j1oOqZgWuh1/c7FDJ59UH5sor5MpUFM7thSotQoOFxtmuzHBl94s6hr 1EmXuSkuiqvHWa2Ju6bqmil3ScAOVvUzBbi+Y6nvbyRVN6dOGNVntUArC08l6QWT b7qWns8UhXf+182Kghch1V5Omcr1tE21xApVc6+dHeD7d5BKXId+TNX8WYHuH823 9nfL0jf/zCdZ5wxbFr4bCi2e6SIU4Qv0CtPOZF/y6XrFQzADMoOaYzIg7m6Tcn9Q 9cOeoxwAEBVkFuUGpVOnMkSpK7ScUNoIlNh/D222zrmFKz1xfP4k//UnTv3VIYoz w0H+Nk7Yt9BPNbmEcD9rUGG0zMiEjcajdrphfXmM1WK1hOwmsSWxe9aCOGQOYOWn z9XqxRh7+WzpBTHhQ3cyGkJ6B2xaA2snda4dcvT+qg2hAmvzcTA=+cFl
    -----END PGP SIGNATURE-----

    --43cb3d27154d32c2bd395cb8c3938e71221ab26734b34328f0ecd157c06f--

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Peter Pentchev@21:1/5 to All on Wed Sep 25 16:50:02 2024
    On Wed, Sep 25, 2024 at 12:00:47PM +0200, Serafeim (Serafi) Zanikolas wrote:
    hi Jonathan,

    On Sun Sep 22, 2024 at 5:05 PM CEST, Jonathan Dowland wrote:
    On Wed Sep 4, 2024 at 8:33 PM BST, Serafeim (Serafi) Zanikolas wrote:
    incidentally, lots of Debian native code is in perl, and like it or
    not, we should allow for, or even encourage [0] (partial) rewrites if
    we want to attract new contributors, especially below the average DD
    age
    [snip]
    What criteria are important for such a recommendation?

    I'm not sure that we could converge on a recommendation, nor that it would be of
    any use if we were to -- except perhaps in a team-local scope. fwiw, some ideas:

    - popularity, accounting for fitness for purpose (e.g. no php and js, as
    mentioned elsewhere in this thread)
    - readability
    - maintainability

    as an example, I've rewritten adequate(1) from perl to go. the perl version was
    absolutely fine, I just couldn't see myself writing perl for fun in my free time. and I feel more optimistic about finding co/new maintainers given that it's in go

    In my personal experience, languages that either have built-in strong type checking or have easy ways (and IMHO mypy invoked via Tox is easy) to run
    a type checker lead to much more maintainable code over time, at the obvious price of a bit more verbosity.

    (Please, not Python :P)

    not a big fan either, but python scores pretty high in terms of the first two criteria above

    ...so lately I have found that I never write new stuff in C and Perl, preferring Rust and Python respectively.
    (and yes, I know Raku has strong typing, and I do use it for some local projects, but unfortunately I don't think it will ever gain the popularity
    it deserves)

    G'luck,
    Peter

    --
    Peter Pentchev roam@ringlet.net roam@debian.org peter@morpheusly.com
    PGP key: https://www.ringlet.net/roam/roam.key.asc
    Key fingerprint 2EE7 A7A5 17FC 124C F115 C354 651E EFB0 2527 DF13

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEELuenpRf8EkzxFcNUZR7vsCUn3xMFAmb0Ib8ACgkQZR7vsCUn 3xPmsQ/9FtmOGDW//wl9MzgPO2Ehw9VJkRqaRS3j4tbYfW/XEw5O8rGm7Mqjyr/m B6NBy+XzWSorsE4EXnLr77ewwpHhFOeW+Wld8lRwUZ6551WygUr6B60SXRY455zn utCdA1vTJLeqgrrFNi6vZvwQ8vIGKYuwhnFfIwY2sfWlVT2KTKSSuBkS2+W4VJOV 13HVU3YciQL2sBVW5OLZyWoMArPTIQ5g4HiraMN6fyvVJ0AINa7RvJz3lvCXGUUk lOeucsj2dpB3HpN8SNdNhhQTwbV4NtPgomad0/87nMvcWZ8ipnJPc/QvLKwzGNu6 Y8AF8uE7hAC3tOC/zUPD8FcobPUjUDsvaLEAlItMmEYRkBdd6gvxbytngVWnO37J LMpekBajN0FA/ONJbiB9VnhryJOf0Ya1GDw2pzLN8ecHgf/6TjKwKWzo+H4xh+xW hJe8JmC1oPMLC+jIEoHNUBY/kUUpURW8N7errfH4vDxTg9j5weoVawzptVyNgTKY v8eGwr7MSO9JYqfYGfz+8ss9N7jt9l5lZfpTgKn1Z/u1KIwxalHY8I3Uh6nMi+5X /mVYFBHUR0Vj4Pw3tgH5DAtaED67Vx59ZSwuzbSsPfqYMo4p4/xFD9l/moja1tBJ 8jOYLwdgq5qXhvjKzi5oXTSzPnQtwSw8FAImpqByWHJE9F3cdo4=
    =gOLS