Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Ohjelmointikielet tulevaisuudessa

Sivun loppuun

boy-cut [23.10.2006 13:03:20]

#

Hei

sain koulussa tehtäväkseni selvittää miltä ohjelmointikielien tulevaisuus näyttää. Aihe on todella laaja ja vaikea koska omakohtaista ohjelmointitaustaa minulla ei ole
Olen jo miettinyt seuraavia aiheita pintaa raapaisten: turvallisuus, ohjelman ja laitteiston rajan hämärtyminen ja laitteistoriippumattomuus.
Internet on suuri apu mutta keltanokkana on vaikea tekstejä lukea. Jos teille tulee mieleen jotakin aiheeseen liittyvää niin apu ja vinkit olisivat tarpeen.

kayttaja-2791 [23.10.2006 13:41:02]

#

Laitteistoriippumattomuus tuli itsellekin ensimmäisenä mieleen. Linuxia ja Symbiania alkaa olemaan jo vähän vaikka missä laitteessa, ja niissä löytyy tukea jo vähän muillekin kielille kuin konekielelle... Javaahan sitä saa jo vähän jokapurkkiin tungettua, ja taitaapa Symbianillekin löytyä jo Python-tulkki.

.Net myöskin taitanee olla yhä kuumempaa tavaraa tulevaisuudessa. Itsellä siitä ei ole pahemmin kyllä kokemuksia.

Paha sitä on sanoa mitään varmaa, tulevaisuuden ennustaminen kun on hieman vaikeahko taiteen laji...

A-P [23.10.2006 14:09:03]

#

boy-cut kirjoitti:

Sain koulussa tehtäväkseni selvittää miltä ohjelmointikielien tulevaisuus näyttää. Aihe on todella laaja ja vaikea koska omakohtaista ohjelmointitaustaa minulla ei ole.

Kieltämättä olet saanut hankalan aiheen.

boy-cut kirjoitti:

Olen jo miettinyt seuraavia aiheita pintaa raapaisten: turvallisuus, ohjelman ja laitteiston rajan hämärtyminen ja laitteistoriippumattomuus.

Ei tullut ilmi tarkoitetaanko ohjelmointikielten tulevaisuudella sitä, millaisia ohjelmointikielet tulevaisuudessa ovat vai mitkä ohjelmointikielet ovat suosittuja tulevaisuudessa.

Seuraavassa MUTUa. Turvallisuus, roskienkeruu, laitteistoriippumattomuus, kattavat luokkakirjastot, rinnakkaisuus/säikeistys, tehokkuus, olio-ohjelmointikielet.

Koneiden tehot nousevat, joten tulkatuille kielille on enemmän tilaa. Muistinhallintaan liittyviä bugeja on paljastunut ohjelmista viimevuosina runsaasti (puskurin ylivuoto jne.), joten muistinhallinnan turvallisuus nousee aikaisempaa tärkeämmäksi. Moniydinprosessorit ovat tulevaisuutta. Jotta useammasta ytimestä saadaan tehot irti, on niitä osattava ohjelmoida. Tulevaisuudessa ohjelmointikielet ja niiden käyttämät kirjastot sisältävät parempaa tukea moniydinprosessoireiden tehon hyödyntämiseen.

Myös tehokkuutta tarvitaan, joten en usko, että C:n ja Fortranin kaltaiset kielet häviävät. C varsinkin on käytetty kieli sulautettuja järjestelmiä ohjelmoitaessa.

Kannattaa varmaan etsiä tietoa siitä mitä kieliä nykyisin käytetään ja mitä on ennen käytetty.

--
Trott, P. 1997. Programming languages: past, present, and future: sixteen prominent computer scientiest assess our field. SIGPLAN Not. 32, 1 (Jan. 1997), 14-57. DOI= http://doi.acm.org/10.1145/251595.251598

Curran, W. S. 1992. The future of programming languages. In Proceedings of the 30th Annual Southeast Regional Conference (Raleigh, North Carolina, April 08 - 10, 1992). ACM-SE 30. ACM Press, New York, NY, 196-202. DOI= http://doi.acm.org/10.1145/503720.503797

Wileden, J. 1996. Programming languages and software engineering: past, present and future. ACM Comput. Surv. 28, 4es (Dec. 1996), 202. DOI= http://doi.acm.org/10.1145/242224.242482

Antti Laaksonen [23.10.2006 14:12:43]

#

Yksi tärkeä asia on, että ohjelmointikieliä tulee ja menee, mutta itse ohjelmointi ei muutu miksikään. Eri kielissä samat asiat on vain kätketty erilaisen kuoren alle. Jos jotain ei pysty tekemään nykyisellä ohjelmointikielellä, niin ei sitä pysty tulevallakaan.

Näyttää vähän siltä, että ohjelmointikielet monimutkaistuvat ja ohjelmoija joutuu yhä harvemmin tekemisiin suoraan laitteiston kanssa. Ennen ohjelmoija kopioi näyttömuistin kohtaan 371 luvun 3, jolloin näytölle ilmestyi kuvapiste. Nykyään kutsutaan luokan Tietokone.Näyttö.Piirto metodia piirraPiste arvolla Tietokone.Näyttö.Värit.Punainen.

Lahha [23.10.2006 14:28:00]

#

Tulevaisuus tulee tekemällä. Paras tapa ennustaa tulevaisuutta on tehdä sitä itse. Tue kesää, syö lunta!

Tumpelo [23.10.2006 15:09:28]

#

A-P:n mainitsema säikeistys ja moniprosessoristen (tai moniydinprosessorisen) raudan tuki varmasti tehostuu ja paranee. Kuka tietää vaikka 20 vuoden päästä nörtit naureskelevat vanhoille yksiprosessorisille koneille ja ihmettelevät kuinka mitään voi koodata ilman säikeistystä.

Nyt menee ohi aiheen, mutta kysynpä kuitenkin että onko C ja C++ ihan alimman tason ohjelmointikieli? Tällä tarkoitan sitä, että niillä pystyisi tekemään vaikka tuon näyttömuistin raa'an kopeloinnin yms, eli kieli on suoraan yhteydessä rautaan, eikä minkään toisen mutkan kautta. Tietenkään kieli ei varsinaisesti ole yhteydessä rautaan koskaan, koska kaikki kielet kuitenkin käännetään binääreiksi mutta toivottavasti ymmärsitte mitä ajan takaa.

feenix [23.10.2006 16:06:19]

#

Tumpelo kirjoitti:

Nyt menee ohi aiheen, mutta kysynpä kuitenkin että onko C ja C++ ihan alimman tason ohjelmointikieli? Tällä tarkoitan sitä, että niillä pystyisi tekemään vaikka tuon näyttömuistin raa'an kopeloinnin yms, eli kieli on suoraan yhteydessä rautaan, eikä minkään toisen mutkan kautta. Tietenkään kieli ei varsinaisesti ole yhteydessä rautaan koskaan, koska kaikki kielet kuitenkin käännetään binääreiksi mutta toivottavasti ymmärsitte mitä ajan takaa.

Taso yleensä määritellään toisin, eli alin taso on suoraan mikrokoodi prosessorin sisällä, siitä seuraava (monesti myös alinta tasoa) konekieli jota prosessorille syötetään. C/C++ ja muut ovat siitä ylöspäin aika paljon.

Sen sijaan toteutuksesta riippuu voiko suoraan käpistellä asioita. Portteja voi käpistellä monissa ympäristöissä suoraan (DOS, Linux, Windows jne), jos oikeuksia on. Näyttömuisti PCissä näkyy osana normaalimuistia joten jos oikeudet on, voi sinnekin kirjoitella ihan suoraan. Ja PCI-korttien ohjaus toimii nopeiten myös muistimappauksen kautta.

Sen sijaan joissain muissa järjestelmissä ei välttämättä ole mitään pääsyä suoraan rautaan, edes muistimappauksilla. Näissä sitten käytetäänkin käyttöjärjestelmän rajapintoja.

Latska [23.10.2006 16:10:49]

#

Ohjelmoinnin aloitus on ainakin tulevaisuudessa paljon helpompaa Coolbasicin ansiosta. (Vai pitäisikö sanoa, että sen takia?) Muuten uskon, että kielet oliopohjaistuvat, mutta uskon myös, että vanhakin laitteisto otetaan jollakin tavalla huomioon. Uskon myös, että pienten skriptikielien tekijät omalta osaltaan luovat ohjelmoinnin tulevaisuuden.

arcatan [23.10.2006 21:10:05]

#

Vaikuttaisi siltä, että ohjelmointimuodissa puhaltavat nyt funktionaaliset tuulet. Funktionaalinen ohjelmointi ja funktionaaliset ohjelmointikielet ovat nyt nousemassa muotiin, erityisesti Haskell.

Mitä tapahtuu pidemmällä tähtäimellä? Kuten sanottu, sitä mukaa kun konetehot kasvavat, voidaan hukata niitä yhä enemmän. Niinpä uskon, että korkeamman tason kielet tulevat valtaamaan alaa, sillä niillä ohjelmoiminen on tuottavampaa. (Huom! Korkeampi abstraktiotaso ei välttämättä tarkoita resurssien hukkaamista, tarkoitan vain että tehoa hukkaavat abstraktiot ovat entistä houkuttelevampia vaihtoehtoja)

E.K.Virtanen [23.10.2006 22:37:34]

#

Tuskin mikään yksittäinen kieli tai ympäristö nousee enempää taikka vähempää pinnalle.
Nykyiset kielet ole mitenkään vaikeita, jos vaan dokumentointi on kunnossa. Se että onko joku dokumentointi hyvä vai huono onkin sitten vaikeampi asia, riippuu monista tekijöistä.

Itse koodin "manuaalinen" kirjoittaminen varmasti tulee jonkin verran vähenemään ja valmiita "click'n go" ohjelmointi ympäristöjä tulee tarjolle. Menestyykö ne sitten kuinka hyvin ja kauan on pitkälti kiinni niiden käyttöliittymistä ja kuinka hyvää koodia nämä sitten loppujen lopuksi tekevät.

Lähitulevaisuudessa kielten tulee toimia monella alustalla. En ainakaan henk.koht. usko että puhtaasti yhden käyttöjärjestelmän kielet (cb, vb.net, dark basic...) tulevat saamaan mitenkään merkittävää roolia jos vaikkapa seuraavia 5 vuotta katselen.

Kyllähän näille käyttäjiä riittänee mutta taitojen kehittyessä nämä samaiset käyttäjät halunnevat siirtyä ohjelmointikieleen jolla pystyy tekemään ohjelmia useammalle käyttöjärjestelmälle.

Basic ei kuole, niitä tulee koko ajan lisää ja käyttäjäkunta on vahva. C/C++, python, ada jne. tulevat kaikki säilymään kuten tähänkin saakka.

Monipuolisemmat kääntäjät, jotka pystyvät kääntämään esim. basic/c/python ja jopa php kieliä kerralla samasta koodista voisivat olla jotain mitä tuleman pitää.

Oliopohjaiset kielet ovat nyt hot, mutta en usko niiden saavan pysyvää merkittävää käyttäjäkuntaa kuitenkaan. Ainakin omasta mielestäni oliopohjaiset ovat turhankin kehuttuja jos ihan realistisesti katsotaan kuinka hyvä se olio pohjaisuus loppujen lopuksi on.

Nykyinen kehitus on hurjaa mutta sille tulee jarrua varmaankin pian. Ei ihmiset loputtomiin jaksa olla vuoden välein laitteistoa uusimassa vain sen takia että uusimmat pelit pyörisivät. Myös konsoli koneilla on merkitystä. Niillä kun jo pystyy tekemään monia asioita joita ennen tehtiin vain tietokoneilla. Ainakin xbox versioita muutamista ohjelmointikielistä on tekeillä. Saattaa toki olla jo valmiinakin mutta en ole asiaan isommin perehtynyt.

moptim [24.10.2006 09:13:26]

#

Jos kristallipallon romuni toimisi kunnolla, niin tietäisin tarkemmin. Nyt se väittää, että tulevaisuudessa robotit ohjelmoisivat... Itse ainakin veikkaan, jos unohdan palloni, että tulevaisuudessa ohjelmointikieliä on yksinkertaistettu, saattaa olla jopa pelkkää englantia kielenään käyttävä tulkki/kääntäjä...

hunajavohveli [24.10.2006 18:02:40]

#

KingOfTheWorld kirjoitti:

Nyt se väittää, että tulevaisuudessa robotit ohjelmoisivat...

Eiköhän ohjelmointi olisi jokseenkin turhaa puuhaa, jos tekoäly pystyisi siihen? :)

KingOfTheWorld kirjoitti:

Itse ainakin veikkaan, jos unohdan palloni, että tulevaisuudessa ohjelmointikieliä on yksinkertaistettu, saattaa olla jopa pelkkää englantia kielenään käyttävä tulkki/kääntäjä...

Siinäkään taas ei olisi oikein järkeä. Puhutulla kielellä ei ole oikein mieltä ohjeistaa laitetta, joka toimii yksinkertaisten käskyjen mukaan.

tsuriga [24.10.2006 18:16:15]

#

Tulee mieleen spekulaatiot mallia "Maailmassa on tarvetta ehkä viidelle tietokoneelle." Sama odottaa sinne tulevaisuuteen, kuin spekuloida. Visiointi on sitten asia erikseen.

Tumpelo [24.10.2006 18:16:48]

#

Create variable MOSH as integer, then start loop which ends when MOSH is bigger than 100. In every loop you must print "Heipparallaa" and after that, MOSH. At the end of the loop, increase the value of MOSH by one-

En kyllä tuommoisella kielellä koodaisi.

Antti Laaksonen [24.10.2006 20:38:53]

#

Yksi aika hauska kieli olisi MALLI-kieli. Tämä tarkoittaa, että ohjelmoija näyttää parin esimerkin avulla, mitä ohjelman kuuluu tehdä, ja sitten ohjelma onkin valmis.

Esimerkki:

* heippa.mal

N = 1:
Heipparallaa 1

N = 5:
Heipparallaa 1
Heipparallaa 2
Heipparallaa 3
Heipparallaa 4
Heipparallaa 5

Nyt ohjelma on valmis, ja ohjelmoija kirjoittaa N = 100, jolloin ohjelma tulostaa:

Heipparallaa 1
Heipparallaa 2
Heipparallaa 3
. (jne. jne.)
.
.
Heipparallaa 98
Heipparallaa 99
Heipparallaa 100

Moniin tehtäviin tämä ohjelmointitapa olisi aika lyömätön. Ensimmäiset toteutukset ovat Ohjelmointiputkan uusimman kilpailun tulossivulla.

moptim [24.10.2006 21:05:09]

#

Jep, MALLI olisi todella ihq.

koo [24.10.2006 21:41:51]

#

Antti Laaksonen kirjoitti:

Yksi aika hauska kieli olisi MALLI-kieli. Tämä tarkoittaa, että ohjelmoija näyttää parin esimerkin avulla, mitä ohjelman kuuluu tehdä, ja sitten ohjelma onkin valmis.

Prolog on tietyllä tapaa aika lähellä tällaista.
EDIT: Ja toisaalta aika kaukana ihan kaikkea. :-)

Antti Laaksonen [24.10.2006 23:08:01]

#

Tosin Prologissa pitää sentään vähän kuvailla, millä periaatteella ohjelma toimii. Tässä annetaan pelkät syötteet ja tulosteet, ja ohjelma päättelee loput.

arcatan [25.10.2006 12:49:56]

#

Esimerkkipohjaisesti ohjelmoinnista tuleekin mieleeni subtext. En ole ehtinyt kokeilemaan itse, mutta videoiden perusteella vaikuttaa mielenkiintoiselta. Mahtaakohan ohjelmointi olla tulevaisuudessa tälläistä?

kwanttitatti [25.10.2006 15:20:07]

#

Mistä lähtien koulussa on ruvettu opettamaan ohjelmointia?Kertokaa koulun nimi niin vaihdan heti koulua.

tkarkkainen [25.10.2006 15:35:47]

#

kossupullo kirjoitti:

Mistä lähtien koulussa on ruvettu opettamaan ohjelmointia?Kertokaa koulun nimi niin vaihdan heti koulua.

Riippuu toki koulusta. En tiedä, miten monella yläasteella ohjelmointiopetusta on, mutta monesta lukiosta löytyy ainakin ohjelmointikursseja (eri asia onko osallistujia tarpeeksi kurssin toteuttamiseksi). Datanomeja kouluttavista ammattiopistoista löytyy tietenkin ohjelmointikursseja. Kuten luonnollisesti myös sopivista ammattikorkeakouluista ja yliopistoista.

boy-cut [15.11.2006 16:04:44]

#

kiitos vastauksista, kaikista.
menee hetki ennenkuin saan kaikista jotain tietoa ongittua mutta eiköhän tämä tästä...

Kossupullo: ohjelmointia opetetaan esim ammattikorkeakouluissa tietojenkäsittely ja tietotekniikan linjoilla. useimmat avoimet korkeakoulut antavat kursseja jotka on spesifioitu tietyille kielille.

Nikotiini [15.11.2006 18:14:34]

#

Todennäköisesti laitteistonläheiset kielet tulevat vähenemään, koska prosessorit tulevat yhä moninmutkaisemmiksi, mutta eivät missään nimessä katoa (yritä tehdä käyttöjärjestelmä ilman assemblyä). C alkaa jo vanhenemaan. C++:n korvaajaksi saattaa muodostua D. Java pysyy ennallaan. Skriptikielet yleistyvät, koska koneiden tehot kasvavat. Uusia ohjelmointikieliä tulee varmasti, jotka ovat helpompia oppia, helpommin luettavia ja tekevät suuren osan toiminnoista automaattisesti. Siinä ennustukseni.

Tumpelo [15.11.2006 18:22:33]

#

Kysynpä mielenkiinnosta että miten lienee sitten eri grafiikkarajapintojen, eli OpenGL:n ja Direct3D:n laita? Kumpi näistä on tulevaisuudessa käytössä, vai onko kumpikin tai peräti ei kumpikaan? Aika paljonhan nykyään jostain syystä käytetään DirectX rajapintaa peleissä, joten vaikuttaa huonolle OpenGL:n kannalta, vaikka juuri OpenGL mielestäni ansaitsisi voiton tässä sodassa.

Nikotiini [15.11.2006 18:29:50]

#

Tumpelo kirjoitti:

Kysynpä mielenkiinnosta että miten lienee sitten eri grafiikkarajapintojen, eli OpenGL:n ja Direct3D:n laita?

Tämä riippuu taas siittä, että mikä on käyttöjärjestelmien tilanne. OpenGL on melkein mille alustalle tahansa kun taas DirectX on vain Windowsille, joka on paras kohde peleille, koska sillä on paljon käyttäjiä. Eli jos Windowsin asema kotikoneissa ei muutu, niin tilanne pysyy melkein ennallaan.

pieslice [16.11.2006 17:57:34]

#

lurah kirjoitti:

Oliopohjaiset kielet ovat nyt hot, mutta en usko niiden saavan pysyvää merkittävää käyttäjäkuntaa kuitenkaan. Ainakin omasta mielestäni oliopohjaiset ovat turhankin kehuttuja jos ihan realistisesti katsotaan kuinka hyvä se olio pohjaisuus loppujen lopuksi on.

Kuulosta mutuperustelulta. olis kiva tietää miksi olet tota mieltä.

jcd3nton [17.11.2006 19:06:08]

#

Doh. Tulevaisuudessa DirectX ja OpenGL joko kuolevat tahi muuttuvat kokonaan erilaisiksi. 'Raytracing' tulee hakkaamaan perinteisen kolmion rendailun.

Tzaeru [17.11.2006 21:35:44]

#

Tulee hakkaamaan onkin jännästi sanottu kun oikeastaan taitavat jo vuosienkin takaiset grafiikkamoottorit moista käyttää? Itse ainakin olin käsittäväni täten. Enkä oikeastaan näe syytä DirectX:in tai OpenGL:n täydelliselle katoamiselle tai muuttumiselle: OpenGL on jo itsessänsä erittäin selkeä ja aina tarvitsee jotakin, mikä ottaa täyden hyödyn laitteistosta. No mutta tässä on ehkä vähän sekaisin se, että osa tuntuu käsittävän tulevaisuudella sellaisen 50 vuoden aikavälin kun taas muutamat miettivät vuoden 2009 kevättä.. Että se vähän riippuu kuinka pitkälle loppujen lopuksi katsotaan.

tkarkkainen [17.11.2006 22:48:50]

#

Tzaeru kirjoitti:

Tulee hakkaamaan onkin jännästi sanottu kun oikeastaan taitavat jo vuosienkin takaiset grafiikkamoottorit moista käyttää? Itse ainakin olin käsittäväni täten.

Taisit sekoittaa raycasteriin.

Tzaeru [17.11.2006 23:16:53]

#

Jaa, no on joo mahdollista, katsoin vähän tarkemmin niin saattoipa noin käydä. Mutta asian itselleni nyt selvittyäni voinen todeta, että ei raytracer vaikuta olevan sen enemmin tulevaisuutta kuin nykypäivää. Saahan tolla hienoja vähän pieniresoluutioisempia 3D-pelejä ihan nykyäänkin. Taitaapi tosin olla, ettei onnistu isommat resot ihan noin vain. Ihan vielä.

EDIT: tai sitten olen _taas_ ihan väärässä ;'(

boy-cut [18.11.2006 10:40:57]

#

Tzaeru kirjoitti:

...No mutta tässä on ehkä vähän sekaisin se, että osa tuntuu käsittävän tulevaisuudella sellaisen 50 vuoden aikavälin kun taas muutamat miettivät vuoden 2009 kevättä.. Että se vähän riippuu kuinka pitkälle loppujen lopuksi katsotaan.

Ajattelimme että meidän ei tarvitsisi keksiä pyörää uudelleen (eli keksiä uusia kieliä ja tapoja käyttää niitä) vaan kysyisimme asiantuntijoilta miltä se pyörä tulevaisuudessa näyttää (eli mitä kieliä on nyt muodostumassa ja miten niiden käyttö tulee toteutumaan laitteiston kehityksen avulla)

jcd3nton [18.11.2006 11:11:06]

#

Tzaeru, jos nykyinen näytönohjain korvattaisi vastaavan tehoisella hardware-raytracerilla, sillä pitäis onnistua reaaliajassa tuommoinen ihan hyvin. Softwareekin joku jaksaa rajusti kehittää...

"Wald is reporting speeds of several frames per second for scenes consisting of thousands of polygons at a resolution of 1024x768 pixels, on a single 2.5Ghz laptop." Lainaus n. vuoden vanhasta tekstistä, kyseessä siis softatraceri.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta