On Sat, Jan 27, 2018 at 12:00 AM, Ed Merks <ed.me...@gmail.com> wrote:

> Leo,
>
> Arguably HTMLPrinter is not really a good API so to make it API, it should
> be turned into a good API first.  But that's apparently difficult and
> hasn't been done despite requests for it.
>
> SWT is indeed a shining example.  Steve Northover is a brilliant designer.
> I've never seen any need to dive into internals, and didn't even know they
> existed until I looked just now!
>
> I also feel compelled to say that the community as a whole appreciates the
> efforts (and your personal efforts) that go into maintaining and enhancing
> SWT's GTK support.  It certainly entitles you to have opinions about which
> development paths work well and which development paths seem less than
> ideal.  Thanks for sharing your contributions and opinions with the
> community.
> Of course operating systems don't run as a JVM that allows reflection to
> subvert all protection but in any case that too is a great example of how
> things ought to work.
>
> Cheers,
> Ed
>

Thank you.

Best regards from Canada.
[image: Inline image 1]



>
>
> On 26.01.2018 16:44, Leo Ufimtsev wrote:
>
>
>
> On Fri, Jan 26, 2018 at 3:33 AM, Ed Merks <ed.me...@gmail.com> wrote:
>
>> Leo,
>>
>> I have read the whole thread.
>>
>> Comments below.
>>
>> On 25.01.2018 17:44, Leo Ufimtsev wrote:
>>
>> I haven't read the whole thread.
>>
>> But I think it's fairly common sense that one should not use internal api
>> by an external project. It's just one of life's axioms.
>>
>> It's definitely best avoided, when possible, but that's the caveat.  When
>> it's not possible to implement JDT without using UI internals and it's not
>> possible to implement PDE without p2 internals then axiomatically it
>> follows that others wanting to implement cool functionality like these
>> projects do will find themselves in the same boat.
>>
>
>
> From what I gather, HTMLPrinter is a convenience class "Provides a set of
> convenience methods for creating HTML pages.".
> To me this looks like something that should have first been made public
> before referencing it.
>
> Kinda following Linus's emails, changes in user apps shouldn't break
> kernel and changes in kernel shouldn't break user apps.
>
>>
>> It's like people who use reflection to get to private members of a java
>> class and deploy that code into production.
>>
>> The Eclipse itself runtime does exactly that:
>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=502209
>>
>> That's just a 'quick' workaround that generates unstable products.
>>
>> Yes, it's less than ideal, with the added huge disadvantage that you only
>> see failures at runtime, so the tests better be good.
>>
>>
>> I really cannot see any way to justify using internal api for use in a
>> stable product beyond testing / development / exploration / proof of
>> concept.
>>
>> Yet the platform project's own teams make a habit of this practice.  That
>> too would appear to be unjustifiable.
>>
>>
>> And by extension, internal api should be subject to change and removal at
>> any given time without prior notice.
>>
>> I understand that you primarily see this as black or white, but thank
>> goodness the JDT team doesn't take this attitude and sees all the shades of
>> gray between the extremes.
>>
>> I can only suggest that you look carefully within your glass house,
>> making sure its furnishings set the highest standard with regard to the
>> fundamental principles according to which you expect others to furnish
>> their houses.
>>
>
>
> In SWT not even our JUnits reference our internal api.
>
> Thanks.
>
>
>> --
>> Leo Ufimtsev, Software Engineer, Red Hat
>>
>>
>> _______________________________________________
>> cross-project-issues-dev mailing listcross-project-issues-...@eclipse.org
>> To change your delivery options, retrieve your password, or unsubscribe from 
>> this list, 
>> visithttps://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev
>>
>>
>>
>> _______________________________________________
>> cross-project-issues-dev mailing list
>> cross-project-issues-dev@eclipse.org
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev
>>
>
>
>
> --
> Leo Ufimtsev, Software Engineer, Red Hat
>
>
> _______________________________________________
> cross-project-issues-dev mailing listcross-project-issues-...@eclipse.org
> To change your delivery options, retrieve your password, or unsubscribe from 
> this list, 
> visithttps://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev
>
>
>
> _______________________________________________
> cross-project-issues-dev mailing list
> cross-project-issues-dev@eclipse.org
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev
>



-- 
Leo Ufimtsev, Software Engineer, Red Hat
_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev

Reply via email to