Ohjelmoijilla on tapana sanoa, että "rajapinnalta pyydetään palvelua". Silloin voidaan tarkoittaa vaikkapa ohjelmistokomponentin ominaisuuksia ja huom. ilman sen koon ja nopeuden määrittelyä. Ohjelmoijat ovat maailman parhaita puhumaan alansa rajapinnoista. Muut alat eivät ole niin hyviä, ja se on maksanut ihmiskunnalle raskaasti.
Aluksi annetaan esimerkkejä helppotajuisista rajapinnoista tieteessä ja teknologiassa. Nämä ovat rajapintoja, joiden tajuaminen ja joilta "palvelun pyytäminen" on helpoimmasta päästä:
-Komponenttiin johtava putki, joka syöttää jotain ainetta.
-Käynnistysnappula.
-Hellan levy kattilan alla.
-Kuun tai asteroidin pinta auringon säteilyssä.
Vähän vaikeammin ymmärrettäviä rajapintoja, joilta on vaikeampi "pyytää palvelua" (näiden selittäminen vaatii omituisia sanamuotoja):
-Meren ja ilman kohtaaminen. Millaisen "palvelun" ilma tarjoaa merelle tai päinvastoin. Tämän määrittelyä tarvitaan meteorologisissa malleissa.
-Käyttöjärjestelmän ja nettiselaimen yhteys.
Enemmän abstrakteja eli abstraktisempia (vaikkei ehkä muuttujien ja vakioiden määrältään mutkikkaampia) rajapintoja, joiden selittäminen vaatii vielä omituisempia sanamuotoja:
-Millaista "palvelua" aineen on "pyydettävä" fotoneilta, jotta aine pystyisi tuottamaan photovoltaic tapaan sähköä aurinkokennon osana?
-Millaista "palvelua" atomien on "pyydettävä" toisiltaan, jos halutaan tuottaa photovoltaic-sähköä?
-Millaista "palvelua" aurinkokennon raaka-aineiden ja mahdollisten valmistusaikaisten apuaineiden atomien on "pyydettävä" toisiltaan ja valmistuspaikoiltaan, jos aineen halutaan järjestyvän aurinkokennoksi?
-Millaista "palvelua" planeettojen on "pyydettävä" toisiltaan ja auringolta, jos niiden halutaan noudattavan sellaisia ratoja kuin ne noudattavat?
Aluksi annetaan esimerkkejä helppotajuisista rajapinnoista tieteessä ja teknologiassa. Nämä ovat rajapintoja, joiden tajuaminen ja joilta "palvelun pyytäminen" on helpoimmasta päästä:
-Komponenttiin johtava putki, joka syöttää jotain ainetta.
-Käynnistysnappula.
-Hellan levy kattilan alla.
-Kuun tai asteroidin pinta auringon säteilyssä.
Vähän vaikeammin ymmärrettäviä rajapintoja, joilta on vaikeampi "pyytää palvelua" (näiden selittäminen vaatii omituisia sanamuotoja):
-Meren ja ilman kohtaaminen. Millaisen "palvelun" ilma tarjoaa merelle tai päinvastoin. Tämän määrittelyä tarvitaan meteorologisissa malleissa.
-Käyttöjärjestelmän ja nettiselaimen yhteys.
Enemmän abstrakteja eli abstraktisempia (vaikkei ehkä muuttujien ja vakioiden määrältään mutkikkaampia) rajapintoja, joiden selittäminen vaatii vielä omituisempia sanamuotoja:
-Millaista "palvelua" aineen on "pyydettävä" fotoneilta, jotta aine pystyisi tuottamaan photovoltaic tapaan sähköä aurinkokennon osana?
-Millaista "palvelua" atomien on "pyydettävä" toisiltaan, jos halutaan tuottaa photovoltaic-sähköä?
-Millaista "palvelua" aurinkokennon raaka-aineiden ja mahdollisten valmistusaikaisten apuaineiden atomien on "pyydettävä" toisiltaan ja valmistuspaikoiltaan, jos aineen halutaan järjestyvän aurinkokennoksi?
-Millaista "palvelua" planeettojen on "pyydettävä" toisiltaan ja auringolta, jos niiden halutaan noudattavan sellaisia ratoja kuin ne noudattavat?
Vastaukset 5
Vanhimmat
"-Millaista "palvelua" planeettojen on "pyydettävä" toisiltaan ja auringolta, jos niiden halutaan noudattavan sellaisia ratoja kuin ne noudattavat?"
Opettele Basic.
"mutta ei siinä kyllä mitään järkeä ole. "
Heti kun joku yrittää virittää keskustelua jostain vaikeasta uudesta asiasta, niin heti joku neropatti julistaa: hyödytöntä!, turhaa!, ei järkeä!, ei kannata kun "sama" ei toimi!, haihattelua!
Rakentavasta keskustelusta ja kyselemisestä on vähän tajua ja keskustelun maahan polkeminen on tavoitteena joillakuilla. Jonkun tekniikan tai käsitteellisen viitekehyksen käyttötarkoitukset pitäisi olla heti tiedossa ja jos ei ole niin sitten julistetaan suunnilleen turhien epäjärkevyyksien haihattelijaksi.
Ihmisillä on sellainen taipumus, erityisesti liittyen teknisiin asioihin, että jos on joku ala minkä itse osaa, kaiken muun yrittää sitten kategorisoida sen alle. Eli siis "kanonisoida" kaiken muun siihen muotoon, että se sopii tähän omaan juttuun. Toki kaiken voi ajatella konseptilla "rajapinnalta pyydetään palvelua", mutta ei siinä kyllä mitään järkeä ole.
> -Komponenttiin johtava putki, joka syöttää jotain ainetta.
Jos sen komponentin tila on joku funktio s(x,t), jossa x on avaruusmuuttuja ja t on aika, niin putken tuoma aine vaikuttaa tilaan jotenkin näin:
ds/dt = f(s,x,t)
jossa f on muuttuja joka määrää sen putken sijainnin ja muut fysikaaliset ominaisuudet. Abstraktisti "rajapinta" on
s_p = F s
jossa F on (lineaari)operaattori ja s_p on tila putken kanssa ja s on ilman.
> -Käynnistysnappula.
Tämä on vaan funktio nappulan asennolta a kokonaisluvuille n:
n = f(a)
> -Hellan levy kattilan alla.
Tämä on myös operaattori muotoa
k = I l
jossa l(x) on levyn lämpöjakauma, I on kosketuksen (impedanssin) operaattori ja k(x) kattilan lämpöjakauma.
> -Kuun tai asteroidin pinta auringon säteilyssä.
Sama taas:
p = A s
jossa s on säteily, A on absorbaatio-operaattori ja s on säteily.
> -Meren ja ilman kohtaaminen. Millaisen "palvelun" ilma tarjoaa merelle tai päinvastoin. Tämän määrittelyä tarvitaan meteorologisissa malleissa.
Taas tuollainen operaattorirelaatio.
-Käyttöjärjestelmän ja nettiselaimen yhteys.
Tämä vaan perinteinen tilakonemuotoinen API, joka on kokolma funktiota (nk,y) = f_i(nk,x) jossa nk on käyttöjärjestelmän ja selaimen yhteistila ja y joku paluuarvo. Olio-syntaktisella-sokerilla:
y = nk.f_i(x)
> -Millaista "palvelua" aineen on "pyydettävä" fotoneilta, jotta aine pystyisi tuottamaan photovoltaic tapaan sähköä aurinkokennon osana?
Taas tämä on operaattorirelaatio
s = A f
jossa s on sähkö, A on aineen operaattori, f on fotoni. Terminologia kyllä menee hieman oudoksi.
> -Millaista "palvelua" aurinkokennon raaka-aineiden ja mahdollisten valmistusaikaisten apuaineiden atomien on "pyydettävä" toisiltaan ja valmistuspaikoiltaan, jos aineen halutaan järjestyvän aurinkokennoksi?
Taas operaattorirelaatio.
-Millaista "palvelua" planeettojen on "pyydettävä" toisiltaan ja auringolta, jos niiden halutaan noudattavan sellaisia ratoja kuin ne noudattavat?
Tämä on myöskin operaattorirelaatio, jossa operaattorina on tämä hyvin tunnettu painovoimalain differentiaalioperaattori.
Vielä kun joku keksisi ohjelmointikielen, jossa voisi vaan määritellä differentiaali- tai muita operaattoreita ja vastaukset tulisi tuosta vaan yhtä nopeasti kuin ohjelmointikielten operaattoreiden. Harmi, että analogitietokoneet meni pois muodista. :)
"
Toki kaiken voi ajatella konseptilla "rajapinnalta pyydetään palvelua", mutta ei siinä kyllä mitään järkeä ole.
"
Tuohon täytyy laittaa metatason kommentti. Jos ei itse tajua miksi jossain on järkeä, se ei välttämättä tarkoita että järkeä ei ole. Tätä ei saa unohtaa. Toivottavasti voit antaa säännön missä tilanteissa se järjen tajuamattomuus oikeasti tarkoittaa ettei järkeä ole, ja miksi se sääntö toimii tässä rajapinta-asiassa.
Joka tapauksessa soveliaampi tapa kommentoida olisi kysyä vaikkapa, että "mitä hyötyä on siitä jos rajapinnat osataan määritellä ja kuvailla?" "Miten niitä tiedonpalasia voi ja kannattaa käyttää, ihmisten kesken tai ohjelmistossa automatisoidusti?"
Olisi pitänyt laittaa kommenttiini, että "ei siinä kyllä mitään järkeä ole" ihan ronskisti hymiö, nimittäin koko viestin sisältöhän oli määritellä rajapintakielellä nuo kaikki aluperäisen viestin asiat. Totta kai rajapinta-ajattelussa oikeasti on järkeä, koska sitähän abstraktion tarkoitus on myös fysiikassa ja matematiikassa.
Yksi ero on, että ohjelmointikielissä rajapinta/funktiokutsu/palvelu on analoginen vähän niin kuin äärellisdimensioisten käskyjen datan lähetykseen, mutta fysiikan käsky data voivat olla operaattoreita ja funktioita eli ääretöndimensioisia. Painovoiman rajapinta: "Operoi jokaista pistettäni painovoimakenttäsi Greenin funktiolla" :)