Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


On 12/03/13 09:15, Michael Meeks wrote:
Hi Rodolfo,
[...]

        I think a better approach is to re-use the existing compatibility API
that we implement and expose it into StarBasic in some pleasant way; it
should be possible to do things like:

        ActiveSheet.Range("A1") = 3

        for example - and get something useful; currently it's necessary to
enable a compatibility mode with a setting in each file to get that
going, and then mixing in old-style UNO APIs for missing pieces is
harder, but ...

        Re-using, extending and improving our interoperable API there makes
much more sense (to me) than creating yet-another binding :-)

        How does that sound ?
I'm not convinced that I really agree with that, I mean no problem with improving the interoperable API, any help offered with that always welcome, I mean reusing that api for libreoffice wholesale, I feel there are a number of problems a) More than setting a compatibility mode is required, some stuff will work with the compatability mode but alot of stuff wont, for technical reasons there are ( at least ) some temporary objects and associations created on import ( of a native Microsoft document ) that are needed for things to work correctly. b) More than the above the main problem here is that while some objects and api do map well to libreoffice some don't, considering the main focus of the interoperability API is to behave like Excel that's not a surprise but trying to use that api for Libreoffice would cause problems, Libreoffice isn't Excel and in lots of places the model(s) and behaviours just dont match. We would end up trying to make the compatability API have sortof a 'Libreoffice' mode I feel ( which is as evil as creating another binding )

However I don't see such a 'Simplified' API as yet another binding but just an extension of the existing api. An easier to use more user-centric api could ( and would ) also be reused by the interoperatbility API ( and or any other scripting language/clients )

Failing that - IMHO we need to move away from a 'pure generic
interface' approach with UNO, and move towards more of using interfaces
to expose an object hierarchy
I think at least the ground blocks for this have been laid with Noel Grandins work to convert services to the new service specifications, that should at least for example in the future allow basic to define some stronger types ( than Object ), that would in turn allow the IDE to do some sort of primitive code-completion ( I intend to create a gsoc task for this ) - but... yes if the existing api/model sucks ( and it does ) then this wont help with that :-( But... maybe it will encourage people to create some less fine grained api ( built on top of the existing interface focused crud ) - that is my hope at least
  - and annotating those interfaces with
more information: defaults for parameters, default-methods, etc. to make
the scripting bindings truly useful. That would make UNO
object-interfaces more usable from other languages like C++ too since
currently for optional / defaulting arguments we have to use the 'Any'
type
of course such enhancements imho are welcome regardless

HTH ( but I fear it didn't )

Noel

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.