Proseduraalisen paradigman kielen (C) oliomaisista rakenteista vielä (mietteitä)

Olen nyt tässä blogissa parissa viime postauksessani vuodattanut C-kielestä, ja jatkan siitä vielä.

Edellisessä postauksessa availin jotain C-kielen olio-kieliä muistuttavista ominaisuuksista, vaikka kyseessä ei olekaan olio-kieli. Suomi24-palstalla (Tiede/Teknologia/Ohjelmointi/C-kieli) lisäsin linkin kyseiseen postaukseeni, ja joku minua kokeneempi ohjelmistokehittäjä palstan Anonyyminä vastasi, että ei C:ssä ole juuri muuta, kuin struct-rakenne, joka vastaa jotakuinkin metoditonta tietotyyppiä olio-kielissä.

Kävi mielessä, että jos ohjelmoi oman Header-tiedoston (.h), jonka sisällyttää ohjelmakoodin alussa #include -avainsanalla omaan ohjelmaan, voi periaatteessa käyttää olio-kielten tietotyypin ohjelmointia muistuttavaa menetelmää. “Header” -tiedoston luonti ja omien otsikkotiedostojen käyttö on suotavaa erityisesti laajemmissa ohjelmissa.

Struct-rakenteen sisään voi sisällyttää attribuutteja ja sisäkkäisiä rakenteita (nested structs), mutta funktioita ei. Jos luo .h -tiedoston (otsikkokoodi-tiedoston), voi sisällyttää kaikkia mahdollisia C:n tarjoamia toimintoja, mutta susoituksena on, että otsikkotiedostoon ei sisällytettäisi enää #include-avainsanalla muita .header-tiedostoja.

Toisaalta otsikkotiedostokaan ei vastaa aivan täysin olio-kielissä tuttua tietotyypin määrittelyä, koska konstruktoreita ei ole mahdollista tietenkään luoda minkäänlaisia.

Ainoa C:n tarjoama mahdollisuus otsikkotiedostoissa piilekin siinä, että jos se alkuun määrittelee rakenteen, ja ohjelmoi kyseiseen header-tiedostoon metodit (esim. Javan olio-ohjelmoinnista kaikille tutut set ja get -metodit, joilla pääsee attribuuttien arvoihin käsiksi, (setters and getters), niin periaatteessa olio-ohjelmoinnista tuttu tiedon kapselointimenetelmä toimii ainakin näennäisesti.

Syy, miksi itse kiinnostuin C-kielen haltuunotosta kesäkuun 2019 alussa, on se, että sillä on mahdollista päästä rautaa lähemmäs, koska se on matalan tason kieli, toisin kuten esimerkikiksi Java, jolla on jopa mahdotonta tuottaa koneläheistä koodia.

C:n historiaan perehtyessäni tulin siihen tulokseen, että riippuen siitä, mitä on tarkoitus ohjelmoida, C, vaikka se on 1970-luvulla julkaistu Bellin Puhelinyhtiön laboratoriossa sitä varten, että voitaisiin ohjelmoida käyttöjärjestelmä, ja UNIX on ohjelmoitu kokonaan C:llä. Niin vaikka C-ei olekaan olio-kieli, vaikka tämän hetken akateemisen tietojenkäsittelyn vallitseva ohjelmointi-paradigma on olio-paradigma, niin C:llekin löytyy käyttöä tietyissä tilanteissa.

Itsellänikin on haussa tällä hetkellä kaksi C-ohjelmointi -työpaikkaa syksyllä alkavia, jos en satu pääsemään Työinformatiikan maisterilinjalle sisään Turun Yliopistoon. Kuten varmaan joku tämänkin blogin seuraaja ja lukija on lukenut “IT-tradenomin ammattiblogi“:ani, jossa kerroinkin, että hain ATR-Soft Oy:stä työpaikkaa, ja kesätyöläiset oli jo valittu, mutta jätin option sinne auki, kun syksyksi palkkaavat 3 uutta C-ohjelmistokehittäjää firmaan, riippuen yliopiston valintatuloksista, ilmoitan sitten omalta osaltani tuloksista heille, ja olen mukana taas rekrytoinnissa.

 

About Jere Sumell

Graduated in February 2017 at the degree program of Bachleor of Business and Administration in Information Technology at Turku Univerity of Applied Sciences. At the end of the last semester I started to be a sole trader for my private projects and I'm officially taking public action in Politics through the Left Alliance in Finland. I'm the member of the Left Alliance Educational Division. I did the takedown my current business activities at the 31.5.2018 (Mostly responsive web developement orders based on CMS-solutions was the works some enterpeurers ordered from me.) I'm article writer in my Computer -related blog @ Wordpress. My first appearance at Wordpress blogs was our IT-student team blog called "The Gr8 Tigers".
This entry was posted in Aktivismi, Blogi, Internet, Konekieli, Koulutus, Linkkivinkki, Linux, Matematiikka, nettivinkki, Ohjelmat, Ohjelmointi, Talous, Turvallisuus, Windows, Yritys. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s