[fpc-pascal] What to do to get new users
Ștefan-Iulian Alecu
overanalytcl at gmail.com
Wed Oct 16 15:50:21 CEST 2024
Hi! I want to preface this by saying I am one of the new, younger
(almost 23) devs that the FP team is looking for. I clearly grew in a
different context when it comes to the programming world around me, so I
hope my perspective will be valuable. This also brings forward the
perspective of some active users over on the Free Pascal Discord server.
Programming language /and expectations thereof/ has evolved tremendously
over the last ten or so years, and Lazarus can't keep up (and Delphi's
limping along, despite having Embarcadero backing it up). I consider
that we have to reach beyond Delphi and innovate as much as we can
within this niche (as FPC has done before, implementing generics before
Delphi) if we want to establish FPC's longevity.
There are many, many things lacking currently that are part of
``modern'' expectations:
1. a build system that is ergonomic and can be used in the terminal;
2. a package manager that can be used independently (looking at you,
OPM...);
3. ideally, something that could combine 1 and 2 (see cargo, go, Ada's
Alire etc.);
4. a proper VSCode extension (we can include Vim and Emacs there too,
but the main focus is VSCode) with all the bells and whistles more
established extensions have. I know we would all want to stick to
Lazarus and we all know that VSCode is bloated, but we have to accept
the reality that people do use it and it is really popular. Survive,
adapt, overcome. :-) OmniPascal was a nice attempt, but it's dead and
also closed source;
5. some form of describing projects that's (ideally) separate from
Lazarus; it brings 1-4 together, as well as helping the following items
in one form or another;
6. an independent language server (no, cutting Lazarus' guts doesn't
count, not until people can easily install precompiled versions) that
can be used with the VSCode extension;
7. a popular and documented testing library and some way of integrating
it into the aforementioned tool at #3;
8. a nicely-made (or at least not stuck in 1999... looking at you, GCC)
website for the language itself (this would be an effort to promote
Object Pascal in general, with a focus on Free Pascal, since Embarcadero
definitely has the budget to hire some designers...). Even Forth,
Fortran and Ada learned that lesson with their websites, we surely can
do better;
9. educational and promotional materials (documentation's definitely NOT
the strong suite of Free Pascal...);
10. more widespread usage of PasDoc, or a solution like it, and improve
how the documentation is displayed within Lazarus itself. We *really*
have to insist on documentation and tutorials, since a lot of parts of
the RTL and FCL might as well not be documented, with no examples;
11. more social media presence/marketing effort (at least The Silver
Coder has been doing a good job on YouTube, as well as Code with Huw).
YouTube, blog posts, Reddit, HackerNews etc.
It would be absurd to expect the Free Pascal team to do all of these,
everyone's already stretched thin and overworked. More people that could
develop FP would be nice. Notice that all of the things listed above
*don't* involve changing the language in any way (maybe changing
Lazarus, but not by a whole lot).
I have done my fair share of promotion of Free Pascal in my local
communities (more generally Wirth's work, but that's not relevant) and I
did bring people over to FPC and change their minds regarding Pascal,
but this effort needs to be coordinated. We can't be an insular
community, otherwise we'll die surrounded by the sharks of
misinformation or of old age. We must not ignore the advancements that
have been made by other current programming languages (tooling or
otherwise) and how they've pushed the envelope of what's possible from a
DX standpoint. I don't blame someone coming at me and thinking Pascal's
old, when we're clinging on to Lazarus with *everything*. It is a bit
sad if you think about it: we're putting Lazarus on a pedestal, which
made the wider community (IMO) not consider what happens if you have to
use its features outside of the IDE. We shouldn't be like Delphi, where
everything *has* to use RAD Studio. We can be better than that. What's
more frustrating is that there have been separated attempts at at least
one of these items, so solutions do exist, but nobody put these together
into something a beginner can use. Have fun using OPM outside of Lazarus
without putting a lot of work into making it a CLI tool that can be used
in CI/CD.
I have plans for 1-6 and 8 (especially #6, that's what I am working on
right now), but I can't do it all by myself (I also have a thesis in
progress). As a community, we all have to come together and work on all
these fronts. Free Pascal will not suddenly become trendy again, but we
shouldn't give up without trying. You miss 100% of the shots you don't
take. I still have trust in this language (despite the occasional paper
cuts and features I miss, but that's nothing a transpiler couldn't fix).
This will probably fall on deaf ears and I don't expect action to be
taken solely because of this message, but I hope it is valuable regardless.
More information about the fpc-pascal
mailing list