When this extension thing started, i thought it was a fun thing, but remain very specialized and of little interest to the general public.
But Xenakios is slowly but surely proving me wrong, which got me thinking.
Any problem, that is solved with an extension, is very unlikely to be solved by cockos in the original application, which is understandable - why write code twice when you can just point people to an extension? This is actually pretty cool because it speeds up REAPER's development with Cockos not having to address problems extensions can solve.
But if the current course was maintained and more and more small extensions show up with solutions that don't appear in REAPER itself, the user will be required to download and maintain a growing number of extensions to get the "full" REAPER experience.
This is bad because:
1) The definition of REAPER for "Power-Users" will be REAPER+Load-of-extensions, which it won't be for new REAPER users, they might be frustrated by either the lack of features that they were told about and/or by having to collect all sorts of extensions from this place.
2) Let's face it: it's annoying.
So i propose two possible solutions:
1) Extension Developers figure out a way to keep the number of extensions small and the extensions larger and more general. For example a Mixer Extension, a Control Surface Extension, an editing extension and they are kept OpenSource with one official binary distribution. This is good because:
a) The user more easily stays on top of the development and can also be relatively sure to get the "full" REAPER experience.
b) I'd guess that the number of Extension Developers grows. Being able to look into existing code (learning) and also not having to code an entire framework for every extension ("diving in") might motivate some people, that have some C++ knowledge, but are being scared off by the process of framing an extension, to join the project. Given enough time on my hands i'd consider myself one of those people.
c) You can easily point new users to the extensions, because they are so few.
d) if there are less extensions, the probability that two extensions do the same thing (redundant work) or get in each other's way (mutually exclusive work) is lower.
2) Creating an Extension Management System (EMS). This would consist of a) some sort of extension itself, which updates the existing extensions from b) a webservice providing the binaries, infos and possibly a website catalogue/maintenance frontend. I'd gladly take care of the webservice-end of the EMS. This is good because:
a) you don't have to stay on top of things, you are on top - always. you both have the newest version of what you want and you know what's out there to be wanted.
b) it's pretty cool and like firefox more and more applications are doing very well thriving on this principle.
c) it's a nice opportunity to include an auto-update for the REAPER core.
d) developers don't have to take care of the distribution and can concentrate on actually developing. an option could make the EMS-extension download versions marked as betas and even provide a feedback service.
e) if there is a central, well structured place for extensions it less frustrating for new users and more easily accepted.
This however is not a perfect solution for PCs that don't have direct internet access. One reason why this works for Firefox is because it's a freakin' web browser
. On the other hand it won't make the situation worse for those users. *click, bing* wait, i have at least one idea how to make it work for offline PCs, but more on that on demand. *bing* ok, another one
. ask if you need to know. AND offline users of course have some sort of overview, that's an improvement.
Of course these solutions don't exclude each other...
So what do you guys think? Any other ideas? Am I totally paranoid?