> Why do you need a plug in mechanism? You've the sources? When you
> have the sources, 90 per cent of the use of a plugin are gone.

>> Well, we'd call that non-intrusive change. ;)
>>
>> You'd just need to compile the plug-in, and not a changed compiler
>> (which then may even apply recursively). This rules out a whole class
>> of possible error sources.
>>
>> So it's probably the last 10% that counts. ;) Which, BTW, fits nicely
>> into another 90/10 rule: 90% of all errors are coming from only 10% of
>> the code. ;)

Absolutely agree here, plug-ins are most useful even in open source.. compilers 
plug-in system right
now is the FPC.CFG file. Some people don't see this as a plug-in but it is. 
Imagine if you had to
recompile the fpc compiler each time you wanted to change the search paths.

That being said, a monolithic single exe compiler is okay - I think plugins are 
more useful in
larger programs with lots of component stuff, like web sites and gui programs, 
and certain console
programs that grow large enough. I have many rants about this on PasWiki, as 
some of you may have
come across - why I personally find that plug in systems are still important 
even if you have the
source.

Biggest advantage of plug-in:
If someone writes shitty code, uninstall the plug-in. People write shitty code, 
even the best of
programmers. Easier to debug shitty code when it is inside a plugin and not in 
the main executable.

There are issues with plug in systems and they aren't the holy grail, such as 
DLL hell or reliances
or speed issues (loading plugins for compiler could be slow, but in GUI apps or 
certain console apps
there is no need to worry).

I find also that plug in systems encourage good engineering. If a program has a 
good plug-in API
then the API was engineered well - algorithms weren't just slapped in units (or 
on a form) and
recompiled. Someone had to think hard about the engineering and actually design 
the program it to be
extensible. It's not a solution for quicky RAD apps, it's a long term thing for 
larger projects.

An operating system is a plug-in system. Elf's and Exe's are plugins. No one 
thinks of them like
plug-ins, but they are. HTML files are plugins too. Imagine if we had to 
recompile the operating
system each time we wanted to install a new program? Hey, the kernel is open 
source - just add more
code to the bottom of the kernel.c file and add your program... no way, thanks.

Lars

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to