[fpc-pascal] What to do to get new users
Marcos Douglas B. Santos
md at delfire.net
Sat Nov 16 16:42:46 CET 2024
On Sat, Nov 16, 2024 at 11:43 AM Michael Van Canneyt via fpc-pascal
<fpc-pascal at lists.freepascal.org> wrote:
>
> > I could see that if it was a compiler for “Pascal” which was defined by
> > some other group and you could reference them but it isn’t. FPC is a
> > language in its own right and the compiler is the only place that
> > implements it.
>
> Really ?
>
> You never heard of Delphi, ElevateWeb, Smart Mobile Studio, PascalScript, OxyGene ?
> There are some others, can't recall the name. There is a Russian version,
> called abcpascal or something similar.
>
> They all implement "object pascal", as defined by Delphi.
This is something I don't understand. Why should all these
environments and we, as Free Pascal/Lazarus users, follow Delphi's
standards?
Don't get me wrong. I've been working with Delphi for over 25 years
and with FPC for 6 or 7 years. My career is based on Object Pascal.
So, I too am interested in keeping the language relevant... but why
follow Delphi? Why does FPC/Lazarus need to maintain this
compatibility? Why does FPC/Lazarus need to follow the trends
(erroneous, in my opinion) of Delphi or any other language?
Object Pascal is, in my opinion, one of the best programming languages
ever created—if not the best. It is easy to understand and write; you
can implement anything with it, from an operating system to visual
applications for end-users. Its structural organization is one of the
things that sets it apart from other languages, where everything has
its proper place to be declared... well, that used to be the case.
Now, variables can be declared "anywhere"; "anonymous procedures" now
exist and can also be declared "anywhere"; we have Generics because,
well, Delphi and other languages have them, so we must have them too,
right?
Wrong!
In my humble opinion, what keeps a language/environment/architecture
relevant is how it deals with the world's innovations. It's not about
adding new features to the language but adding new layers to address
current problems.
Let me explain: think about all these new features that have been
added to the language and tell me what (most of them) allow us to
build now that we couldn't build before. Most people still use the
language to create the same kinds of systems. Does that make the
language obsolete? Not if it can still create systems that are usable
today! If it has performance, is easy to write, and is maintainable...
So instead of "wasting time" implementing things Delphi did or what
another language did, we could use that time to make everything
simpler in the "FPC + Lazarus ecosystem" and forge our own path
instead of following "false leaders" who are, in fact, just a slightly
larger niche than FPC/Lazarus itself.
How about:
- finally unifying FPC and Lazarus, whether on the FPC website, the
Lazarus website, or a new one;
using fpcupdeluxe as the official installation method;
cross-compilation is very important, and most people using Lazarus for
real-world applications use fpcupdeluxe to install Lazarus;
- having pas2js pre-configured for creating web applications;
- having an option to create mobile applications; we know it's
possible (Castle does it), but nobody knows how to do it with a
standard Lazarus setup; mobile is current, and we need that!
- simplifying/deleting most of the libraries that are not used by default;
- simplifying the naming conventions of units; using something like
"lazarus.blablabla" and "fpc.blablabla" and leaving the main system
units with names without prefixes;
- do you want to add new features to the language? Then why not "fix"
the WITH statement by adding something like [WITH someobject AS obj
DO], so we can use WITH without the problems we all know;
- how about allowing the same AS in unit declarations so we can do
something like [unit MyUnitWithABigName AS MyUnit] and then use
[MyUnit.TSomeClass] — this can already be done with MACROS, so it
would be simple to implement in the language, right?
Notice that all these new features would NOT break the "philosophy of
the language," unlike what has been added over the years.
In short, if the language retained its philosophy, its simplicity,
while adding only what the world demands today (web and mobile apps),
we wouldn't need to spend time debating how to attract new developers
to the language, as it would happen organically, as it does with some
languages that don't have the marketing power of Oracle or Microsoft.
Sincerely,
Marcos Douglas
More information about the fpc-pascal
mailing list