6 ms·
Right now, there are approximately five languages that are presumed to be acceptable for core applications in the base system: C, C++, Shell (which probably mea
by jcranmer 1y ago
Right now, there are approximately five languages that are presumed to be acceptable for core applications in the base system: C, C++, Shell (which probably means specifically bash), Perl, and Python. The most recent language to be added to that list is Python, about 20 years ago. That's not to say that everybody likes those languages (indeed, there's quite a few commenters here who I think would be surprised to learn that not only is C++ on this list, but that it's been on it for at least 25 years).
There's other languages that are considered acceptable, even desirable, languages to write applications in (e.g., Java, PHP, Go), but Rust is really the first language to compete sufficiently close to C's competence for people to contemplate adding it to the base-system-languages list. I'd say only Go has ever come close to approaching that threshold, but I've never seen it contemplated for something like systemd.
Interestingly, I wonder if the debates over the addition of C++, Python, and Perl to the base system language set were this acrimonious.
- embedding-shape 1y ago> Interestingly, I wonder if the debates over the addition of C++, Python, and Perl to the base system language set were this acrimonious. I think any projects that are run by people that see themselves as "X-people" (like Python-people, Perl-people) always have a bit "ick" reaction to new languages being added to projects they might see as part of a language's community. So say you're a C++ developer, contributed to APT over the years, see all of it linked to the C++ community which you are part of too, and someone wants to start migrating parts of it to Rust/$NewLang. I think it might sometimes affect more for these people than just the code, might even be "attacking" (strong word perhaps) their sense of identity, for better or worse.
- julian-klode 1y agoIf anyone sees that horrible mess of hacks around pre-STL C++'s lacks of namespace in combination with latest C++ features as part of the C++ community I'd be very surprised :D If APT were a hardcore C++ project surely we'd have like adopted namespaces everywhere by now.
- jenadine 1y agoI was (and am still) a C++ person. But I somehow became also a Rust person. I am sure some people felt attacked, but imho Rust has most of the characteristics that made C++ a good language and that's why I "embraced" Rust rather than felt attacked.
- OneDeuxTriSeiGo 1y agoYeah rust is not C++ but it really compliments C++ well. Each has their niche and tbh I see them converging into the two kings of the systems space rather than actually competing with each other.
- zahlman 1y ago> I think any projects that are run by people that see themselves as "X-people" (like Python-people, Perl-people) always have a bit "ick" reaction to new languages being added to projects they might see as part of a language's community. I would say that Pythonistas are quite accustomed to "(other) languages being added" to the Python ecosystem. After all, NumPy relies on Fortran, as well as C. Asserting that kind of "ownership" over code seems rather distasteful to me. Maybe there would be less acrimony if developers got paid for it somehow.
- embedding-shape 1y agoYeah, maybe Python was a bad example, didn't really think specifically about the languages I made as examples, they were just examples with the hope of making it easier to understand what exactly I was talking about. Some communities indeed are better at embracing multiple languages, Python, JavaScript and Java/JVM comes to mind, where it isn't uncommon to call out to other languages.
- dataflow 1y ago> So say you're a C++ developer, contributed to APT over the years, see all of it linked to the C++ community which you are part of too, and someone wants to start migrating parts of it to Rust/$NewLang. I think it might sometimes affect more for these people than just the code, might even be "attacking" (strong word perhaps) their sense of identity, for better or worse. How is language relevant here? If someone just rewrote it in the same language instead of a different one, do you feel the reaction would be significantly better?
- jurschreuder 1y agoThis is really a Rust specific thing, since so many C++ projects were 1-on-1 translated to Rust only changing the licence. Rust has been the tool of choice for stealing GPL3 open source projects where some people have spent all their free time on at some point in their life.
- deleted 1y ago[deleted]
- dralley 1y agoRewriting software is not "stealing" it. That is an absurd framing, and one that seems akin to the arguments employed against FOSS software in the first place back in the 1980s and 1990s. In your view, was writing a BIOS re-implementation from scratch "stealing" from IBM? Are all of the vaguely Unix-compatible operating systems "stealing" from Unix (ATT/Bell)? Why is the "free time" of the original developer more sacrosanct than the "free time" of the re-implementer?
- dataflow 1y agoI don't think they mean stealing in a legal/ownership sense, but stealing in the "I can no longer say this is my project" (control/intellectual/credit) sense. > Why is the "free time" of the original developer more sacrosanct than the "free time" of the re-implementer? This has nothing to do with free time. It has to do with the fact that the former actually went through a ton of pain to get the project from its original conception and past bugs & design flaws into its current useful state, and the latter is merely translating the solution right in front of them. And not only is the latter going to deprive the former of the ability to even say "this is my project" (despite them having spent years or decades on its design etc.), but they're also probably going to be able to take the whole thing in a different direction, effectively leaving the original author behind. Whether you feel this is a good or a bad thing for society aside, it should be obvious why this could be genuinely upsetting in some situations.
- throwaway2037 1y agoIs X11/KDE considered part of the "base system"? If yes, then: > indeed, there's quite a few commenters here who I think would be surprised to learn that not only is C++ on this list, but that it's been on it for at least 25 years ... isn't so surprising.
- kelnos 1y agoI'm sure the Debian base system doesn't include GUI stuff at all.
- fweimer 1y agoThe Debian base system is much, much smaller. I'm surprised that people consider Python to be part of it. However, APT depends on Perl and the C++ run-time library, so those two languages have been part of the base system for a very long time.
- no_wizard 1y agoI wonder how much of that Perl support is simply regex and other parsing utilities. I’ve notice a lot of that in base OS systems Its a curiosity more than anything though
- rcxdude 1y agoA substantial fraction of apt is written in perl. It's actually still pretty core to debian, even if applications are using it less.
- julian-klode 1y agoThere is no Perl code in APT itself, nor in dpkg on the installing side; Perl is used by dpkg-dev, i.e. when building packages.
- rcxdude 1y agoAh, my apologies. I must admit I am not entirely clear on where the boundaries are between the different tools and other elements of the debian packaging process.
- perlgeek 1y ago> Shell (which probably means specifically bash) Debian has ongoing efforts to make many shell scripts (like postinst Scripts in packages etc.) non-bash-specific. A minimal Debian installation doesn't contain bash, but rather dash, which doesn't support bash extensions.
- b112 1y agoWhether with a base install via the installer, or debootstrap, I've never seen bash missing. For clarity, 'sh' is what is softlinked to dash. Not bash.
- deleted 1y ago[deleted]
- throwaway7356 1y ago> A minimal Debian installation doesn't contain bash, but rather dash, which doesn't support bash extensions. Please don't make up wrong facts that would be trivial to check first. All minimal Debian installations include bash as it is an essential package. Where essential is used in the sense of https://www.debian.org/doc/debian-policy/ch-binary.html#essential-packages https://www.debian.org/doc/debian-policy/ch-binary.html#esse...
- mike_d 1y ago> there are approximately five languages that are presumed to be acceptable for core applications in the base system: [...] Python I don't know if you've tried to get someone else's Python running recently, but it has devolved into a disaster effectively requiring containers to accurately replicate the exact environment it was written in. Core system applications should be binaries that run with absolutely minimal dependencies outside of default system-wide libraries. Heck, I would go as far as to say applications in the critical path to repairing a system (like apt) should be statically linked since we no longer live in a storage constrained world.
- cozzyd 1y agothis is not normally a problem for a distro where the environment is well known
- ashirviskas 1y agoCan you expand? I'm honestly curious how it is not a problem in Pythons case
- zahlman 1y agoThat asks GP to prove a negative. What problems have you encountered, and why do you believe them to be common?
- stefan_ 1y agoIt is such a non problem it forced them to hack a „fuck you this Python is owned by the distribution not you“ message into pip requiring you to agree to „breaking your system“ to use it. Of all the languages, python in the base system has been an unmitigated garbage fire.
- bgwalter 1y agoThis should become the official error message!
- 1y ago