@vr-t8x15@lispi314 I still consider myself a "Java programmer" because I started with pre-1.0 beta in 1995 and didn't put it down until about three years ago.
@feld@lispi314@vr-t8x15 what do you guys think about just starting people with a lisp with immutable data structures and just naturally exclude people that can't hack it
@sun@vr-t8x15@lispi314 yeah, they had that at my school too but it seemed crazy to use as a beginner language. I guess if you just shape the curriculum to hide everything that the Java VM does for the user it could work
also looking at Java code makes my eyes want to puke, so I have that bias
@feld@lispi314@vr-t8x15 java and go were both invented for companies where you just plain aren't hiring the best quality of people but need them to be productive and not fuck up majorly all the time and they both are pretty good at that
@vr-t8x15@feld@lispi314 I'm one of those people that considers C a portable assembler, I know the arguments against it but I think it's a passable metaphor. you can teach C at the same time you teach assembler and computer architecture and it should all "click"
@sun@feld@lispi314 largely positive but i would offer the choice between that or the same deal with C. learn what a pointer is or get out of my codebases. yes, even the rust ones
@sun@feld@lispi314 yup. learning C is crucial to acquiring whole-system understanding. if not for the lessons that come from the language then the codebases knowing it opens you up to reading.
have you ever read doom's source code? it's like poetry. same with linux or BEAM.
@vr-t8x15@sun@feld > proper computer science courses tend to like C though from what i can tell
They do. And for some reason, few ever talk about the litany of design problems with it, or applaud them as laudable, instead of flaws. In many cases because they drank the kool-aid for a bunch of memes that haven't been true or relevant for decades at this point.
@sun@feld@lispi314 virtually every uni, from what i can tell. C++ is typically taught as "the hard java" too, which fucking sucks. proper computer science courses tend to like C though from what i can tell
@sun@feld@lispi314 "here's how you display to the screen, but keep in mind that << is a bitshift operator that has been overloaded by `std::ostream`. what's a bitshift? what's an operator? what's overloading? glad you asked, but we've run out of time this semester; happy graduation!"
@feld@vr-t8x15@lispi314 the code in OpenSMTP, despite now having half a dozen severe security flaws discovered, is very well architected for a UNIX system
Every line is in its proper place to ensure that --help and --version operate as expected of GNU software.
"Free"BSD's version is flawed as it doesn't do this; LANG=ja_JP.UTF-8 /bin/true --help 使用法: /bin/true [コマンドライン引数は無視されます] または: /bin/true OPTION 終了コードは成功になります。
--help 使い方を表示して終了する --version バージョン情報を表示して終了する
Your shell may have its own version of true, which usually supersedes the version described here. Please refer to your shell's documentation for details about the options it supports.
GNU coreutils のオンラインヘルプ: <https://www.gnu.org/software/coreutils/> 翻訳に関するバグは <https://translationproject.org/team/ja.html> に連絡してください。 詳細な文書 <https://www.gnu.org/software/coreutils/true> (ローカルでは info '(coreutils) true invocation' で参照可能)。
LANG=ja_JP.UTF-8 /bin/true --version true (GNU coreutils) 9.5 Copyright (C) 2024 Free Software Foundation, Inc. ライセンス GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
@vr-t8x15 There is no guarantee than a man is installed on a system with GNU coreutils installed, nor the packagers haven't decided to remove the manpages and add them to a -doc version of the package (that may not be installable if you don't have internet right then).
Meanwhile, those kind of packagers can't work out how to strip out gettext files usually.
For every binary on the system, unless there is a legitimate technical reason not to, the license should be printed when --version or --license is passed, preferably optionally in the users preferred native language.
The manpage is really for more detailed information on software usage and GNU has those too.
@Suiseiseki@feld@sun@lispi314 if i were involved in bonsai this is the part where i'd say that information about versioning, licensing, help, and localizations of all of the above would be the jobs of manpages, not --help or --version.
@feld >It's true. It has no options. It was never supposed to have any options. GNU's Not Unix and therefore arbitrary limitations set by Unix are ignored, so claims like "It was never supposed to have any options" are ignored and the free software license printing flags are added no matter the seething.
>This is just gaslighting the user. >It's gaslighting the user to helpfully tell them the license of all software they execute at only a --version invocation away.
> Your shell may have its own version of true, which usually supersedes the version described here. Please refer to your shell's documentation for details about the options it supports.
It's true. It has no options. It was never supposed to have any options. This is just gaslighting the user.
@feld >the code is trivial and not patentable Software is not a patentable subject manner, as software is math - too bad the USA patent office awards them anyway.
A patent on one program wouldn't be a big issue - the issue is that patents restrict all software and even hardware.
The relevant law here is copyright.
While "return 0;" certainly isn't creative enough to qualify for copyright, based GNU developers decided to exercise their creativity and write yet another masterpiece (https://git.savannah.gnu.org/cgit/coreutils.git/tree/src/true.c) that is creative enough to qualify for copyright and therefore it print the license.