I found this topic to be a really difficult issue.
There are two main ways to solve a problem. One is an idealistic approach, where we define the perfect solution and work backward to determine the necessary actions. The other is a realistic approach, where we predict future outcomes based on the current situation and intervene to make things better.
From the second perspective, removing postinstall
completely would be very difficult unless there is a strong commitment. At the very least, I do not expect the Crystal community to reach a full agreement to remove postinstall
.
If postinstall
is removed, users will likely look for alternatives.
As Sol.vin pointed out, one possible solution is to use macros like {% run some_crystal.cr %}
to execute scripts at arbitrary times.
This could result in a more chaotic situation compared to using postinstall
.
In the open-source world, many people use Crystal-based tools without being interested in the language itself. For them, downloading and compiling source code is just a simple task, and they do not care about Crystal. For example, if I need to use a Perl tool, I do not try to understand Perl—I just want the tool to work. Manually checking dependencies and running commands to set up binaries is something I want to avoid if possible.
These “lazy users,” who only want to use the tool but do not engage with the Crystal community, probably exist in large numbers. They may be invisible, but they are important for the growth of Crystal’s ecosystem.
I think postinstall
is like a “trash bin.” If you have a trash bin, garbage is collected in one place. If you remove the bin, trash will spread everywhere.
However, this does not mean that the total amount of trash increases.
If postinstall
is really a problem, removing it and observing what happens could be an option. It may be a pessimistic view, but I believe nothing major will happen. Instead, the problems will either move to different places or become more scattered. Overall, I do not think the situation will improve or worsen significantly.
Unfortunately, I do not know what the best solution is 
(Translation from Japanese by ChatGPT)