On Thu, 22 May 2025 15:16:57 GMT, Andy Goryachev <ango...@openjdk.org> wrote:

>> The point is that it's less complicated to have self-describing, strongly 
>> typed, and compiler-checked code. Your code is more complicated because it's 
>> brittle, untyped, and less robust against refactoring.
>> 
>> Just to make sure that we're on the same page here: "so it was made as low 
>> level as possible" sounds like you deliberately chose to forgo strong 
>> typing... to achieve _what_?
>
> There are exactly two internal consumers of that internal API 
> (`PrismLayoutInfo` and `TextUtils.getCaretShape`), and the return value is 
> documented.  I don't want to add any more internal classes, just to repackage 
> the thing into what is eventually delivered via public API, and I cannot use 
> the public API data objects because they are different in the two different 
> use cases.
> 
> I don't think it's worth to add a bunch of classes at this level, float[] 
> works just fine.
> 
> Is this something you consider to be so important to be an integration 
> blocker?

Discriminated unions are an amazing tool in the type system if you want to 
return a number of differently shaped things, which is exactly what you're 
doing here. You make it sound like giving names to things is somehow a 
downside, when it's the exact opposite (classes/records are not a finite 
resource, it's what we use to name things).

I do consider readibility and maintainability to be important, yes. A float 
array is none of that.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1596#discussion_r2102862116

Reply via email to