From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id esWFHnZnxGT3DwEASxT56A (envelope-from ) for ; Sat, 29 Jul 2023 03:12:22 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id YJHDHXZnxGSnCwEAauVa8A (envelope-from ) for ; Sat, 29 Jul 2023 03:12:22 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 3FD714BC4B for ; Sat, 29 Jul 2023 03:12:21 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=riseup.net header.s=squak header.b=JQiwFkW3; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=riseup.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1690593142; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=0ldPE7hh/kjwBIJocQ4OQHYz34SSGMElgJVFHPO+NK8=; b=mCAH9IWeA9zSg+6TvTvE2/dPJ9FkocOi2MQrn7VrkXULRcRPZ6DU1V4yE3jo0xa/EDuD32 Has1YbmD3dEjqjMe9Fwj9Ex0ujIWpMjsr+oSKyUO8tgvZOcof4amXofC6pLBRIKolgcOz0 jzVTnpftXzBIGJesRQ87BBQuKxDeeakgFopJHV4FyATSPAse0RQUbywnHBIdkZSLrNX6y/ QADHRQNLRtSz/VqAm1J4b22+BDA5+iYUtyuuhuOWnDX65J1A5UxO4UCLbzgumBcpkXlAkc +fH8X6hTnW1uiHjAgUvVOzVjKqPWSL71UCAqzbCWvG2BwoX5uNxl7/Ts7cIs1Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1690593142; a=rsa-sha256; cv=none; b=JT4XBJXQ04um/4CK2Ux66fbtwUpsri0GQgkWahhDGdQfJMWDuLrEO3cMxO60MUOjpDp6/z FQt5BWTkG7C2E/fPFQ0tdsep9uXgSXITiSw92xF7bTOgdYR6otvNvoZWYNAtZ2xbvZbUvi A86qRo0qQjvnkIIGcHxHAE0g9mcl9PaL1pdj6vhnZi1P8pg4eNJm2iJv/E24HHC0Mk4nZl dzg7WiMgBfGskoDhN0JQO1efNJUaKhpMVYHNdYdibWbSCkkI+jBtL3BESk+o8Po8J7YYOd st8JjJDXP0oagFEBUQsgy3lmFLs+EjiNCOKFLJDhty7HU4qGONMuxgTjAWUBYQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=riseup.net header.s=squak header.b=JQiwFkW3; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=riseup.net Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qPY5t-0006sP-TC; Fri, 28 Jul 2023 20:46:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qOpix-000253-KL for guix-devel@gnu.org; Wed, 26 Jul 2023 21:23:27 -0400 Received: from mx1.riseup.net ([198.252.153.129]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qOpiv-0004Aq-MU for guix-devel@gnu.org; Wed, 26 Jul 2023 21:23:27 -0400 Received: from fews01-sea.riseup.net (fews01-sea-pn.riseup.net [10.0.1.109]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx1.riseup.net (Postfix) with ESMTPS id 4RBChB4whszDq9M for ; Thu, 27 Jul 2023 01:23:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1690421002; bh=0ldPE7hh/kjwBIJocQ4OQHYz34SSGMElgJVFHPO+NK8=; h=From:To:Subject:Date:From; b=JQiwFkW3feY6PtVSm7U6pXAnehkB1e87v+ODBIwtSN8e/1QY20T/a8oGrttrx3o9l /iBPcHaVU2oYBB0w4gyozVbMumo2oQmkRU3O4RDrbON5inwA5hPl+PTprgKywCIFMT csinolKi+vJgEKZBH0Bcq4xd5aXyzFdp4GH1VDNw= X-Riseup-User-ID: 795134CBC99F1AA8BA077D1F2F81ADBF583834638B21FB67EF1F5D90ACE8EB09 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews01-sea.riseup.net (Postfix) with ESMTPSA id 4RBChB0qfLzJmvH for ; Thu, 27 Jul 2023 01:23:21 +0000 (UTC) From: Distopico To: guix-devel@gnu.org Subject: Guix and the developer ecosystem Date: Wed, 26 Jul 2023 19:29:48 -0500 Message-ID: <875y662lmg.fsf@riseup.net> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=198.252.153.129; envelope-from=distopico@riseup.net; helo=mx1.riseup.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 28 Jul 2023 20:45:56 -0400 X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -8.71 X-Spam-Score: -8.71 X-Migadu-Queue-Id: 3FD714BC4B X-Migadu-Scanner: mx1.migadu.com X-TUID: RJpZscRwGqnj Hi, I'm quite new in Guix, I have been using it for 6 months now and I love it, but for development I have not been able to use it as much as I would like. The current programming languages are made up of three 4 parts: 1. The languages itself 2. Language-server 3. The language packages 4. Language tools (formatter, linter) It is possible to development without a language server, but many projects now require special formatting or running linter tools, etc. These are things that are somewhat basic in a certain way. In terms of programming languages, I have found almost all the ones I needed, with the exception of Kotlin. Regarding language servers, most of the ones I needed either haven't worked for me or don't exist. For example, Rust, Haskell, and Elm have few tools available, and even though I mainly program in Rust and Haskell, and lately, I've been getting into Guile, I also have old projects in Kotlin, for instance, or sometimes I like try other languages when `guix shell` is awesome. So, sometimes I wish to do... ``` guix shell ghc haskell-language-server hlint ``` In that case, the language server isn't available. Another example: ``` guix shell rust@1.67.1 rust-analizer rust-clippy ``` In that case, rust-analyzer won't be compatible with that version of Rust, and the version of rust-analyzer is broken (I sent a patch fixing it). In some languages like Haskell and GoLang, the language server depends a lot on the version it was compiled with. For example, I tried gopls, which is available in Guix, but it was built with Go 17 and is not compatible it. So, in many cases, I haven't been able to fully integrate Guix into my development workflow. I had to look for alternative ways outside Guix, like Nix. I appreciate the simplicity of Guix, but let's say that Nix has a developer-oriented approach and has become very popular among programmers. Many projects now include default configurations for Nix in their repositories. Another issue is that if I wanted to bring Guix into the development workflow in a team, there would be the limitation of the OS. While I promote free software in working groups, not everyone uses the same OS - some use GNU/Linux, some use Mac, etc. I think this is also part of the reason why Nix has succeeded in development environments. All this text is provided some context for two simple questions: 1. Are there plans in the future to improve integration between development tools? For example, having haskell-language-server for ghc@9.x and another one for ghc@8.x, or something similar to the overwrite feature in Nix flake? 2. Do you see developers as a potential target audience for Guix, or is it mainly focused on HPC (High-Performance Computing)? I have started contributing to packages that I believe could be useful, and I like to contributing to teams such as Haskell or Rust. However, there are other topics, such as compiler and tools compatibility, where I'm not entirely clear about the direction that has been planned. And apologies for the lengthy text.