Qual è la prova che un'API abbia superato la sua ortogonalità nel contesto dei tipi?

4

Wikipedia definisce l'ortogonalità del software come :

orthogonality in a programming language means that a relatively small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structures of the language. The term is most-frequently used regarding assembly instruction sets, as orthogonal instruction set.

Jason Coffin ha definito l'ortogonalità del software come

Highly cohesive components that are loosely coupled to each other produce an orthogonal system.

C.Ross ha definito ortogonalità del software come:

the property that means "Changing A does not change B". An example of an orthogonal system would be a radio, where changing the station does not change the volume and vice-versa.

Ora c'è una ipotesi pubblicata nella coda ACM di Tim Bray - che alcuni hanno chiamato il Bánffy Bray Type System Criteria - che riassume come:

  1. Static typings attractiveness is a direct function (and dynamic typings an inverse function) of API surface size.
  2. Dynamic typings attractiveness is a direct function (and static typings an inverse function) of unit testing workability.

Ora Stuart Halloway ha riformulato Banfy Bray come:

the more your APIs exceed orthogonality, the better you will like static typing

La mia domanda è: Qual è la prova che un'API ha superato la sua ortogonalità nel contesto dei tipi?

Chiarimento Tim Bray introduce l'idea di ortogonalità e API. Dove hai una API e si occupa principalmente di stringhe (ovvero un server web che serve richieste e risposte), allora un linguaggio uni-tipizzato (python, ruby) è 'allineato' a quella API - perché il sistema di tipi di queste lingue non è sofisticato, ma non importa poiché hai a che fare con le stringhe comunque.

Quindi passa alla programmazione Android, che ha un sacco di API dei sensori, che sono tutte "diverse" rispetto all'API del server Web su cui stava lavorando in precedenza. Poiché non si tratta solo di stringhe, ma di tipi diversi, l'API non è ortogonale.

Il punto di Tim è che esiste una relazione empirica tra il tuo "gradimento" di tipi e l'API con cui stai programmando. (cioè un punto soggettivo è in realtà oggettivo a seconda del contesto).

    
posta hawkeye 31.05.2014 - 01:45
fonte

1 risposta

1

What is the evidence that an API has exceeded its orthogonality in the context of types?

Letteralmente parlando, qualsiasi API che ti permetta di eseguire attività alcune in più di un modo non è interamente ortogonale.

Dato che non esiste alcuna misura formale di ortogonalità oltre a quella binaria di cui sopra, l'unico significato per "superare la sua ortogonalità" è "non del tutto ortogonale".

Quindi la "prova" che stai chiedendo è un compito (qualsiasi attività) che può essere fatto più di un modo.

Che non è utile ...

La "fonte" che ci stai chiedendo di interpretare è un tweet. Non penso che sia un'attività utile leggere in esso una grande profondità di significato. In questo caso, dubito che il significato profondo sia inteso. Certamente non il tipo di significato che stai cercando di leggere.

    
risposta data 31.05.2014 - 05:02
fonte

Leggi altre domande sui tag