Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Ohjelmointikielistä: Cobol vai Assembly

Sivun loppuun

Triton [24.01.2008 20:53:20]

#

Eli haluaisin mielipiteitä, siitä että kumpaa ohjelmointikieltä kannattaisi opiskella Cobolia vai Assemblyta? Monilla on sellainen käsitys, että Cobol on vanhentunut kieli, vaikka todellisuudessa sitä käytetään päivittäin ja Cobol -ohjelmoijista on pulaa... Toisaalta Assembly kiinnostaa, sen takia, että se on niin monipuolinen, mutta huonoja puolia taas on ne, että jonkun pienen jutun ohjelmoimiseen tarvitsee assemblyllä tehtäessä huomattavasti enemmän komentoja.

tgunner [24.01.2008 21:32:47]

#

COBOL on käytetty kieli...? Siis, häh. Onks siitä kenties tehty joku .NET-versio? :)
Kyllä mä sinuna lähtisin opettelemaan assemblyjä, jos noista kahdesta vaihtoehdosta täytyy valita, ellei cobol sitten ole niin suosittu kieli, että se kumoaa tulevaisuudessa ne korkean tason kielet, mitkä hallitsevat tänä päivänä.'
Eikä assemblyä nykyisin käytetä kovin paljoa yksinään. Sillä korvataan joidenkin parempien kielien puutteita, ja esimerkiksi käyttöjärjestelmäohjelmoinnissa se on aika välttämätön.

Päärynämies [24.01.2008 21:46:36]

#

Itse en ensimmäisenä kuvailisi assemblyä monipuoliseksi. Tietysti sillä saat mitä vain aikaiseksi, jos vain taidot ja aika riittävät. Kieli kuitenkin on kovin yksinkertaista. Kovin paljoa nykyään ei käytänössä assemblyllä tee, jos ei sitten ole kiinnostunut sulautetusta ohjelmoinnista, käyttöjärjestelmäohjelmoinnista tai nopeuskriittisestä ohjelmoinnista.

Itse kyllä tosin pidän assemblystä kovin paljon, ehkä sen laitteistoläheisyyden ja erilaisuuden takia. Myös kun assemblyä ymmärtää, niin on huomattavasti helpompi tajuta miksi asiat tehdään monissa ohjelmointi asioissa kuten tehdään ja miten korkeamman tason kielet toimivat.

Sanoisin siis, että jos olet kiinnostunut oppimaan syvällisemmin miten suoritin ja korkeamman tason kielet toimivat, niin opettele assemblyä. Jos taas haluat kielen, jolla voit käytännössä tehdä enemmmän, niin opettele se Cobol.

Tietysti mainittakoon, että assemblyä voi myös yhdistää korkeamman tason kielten kanssa, esim. C:n. Itse olen muutaman vinkinkin aiheesta tänne laatinut.

Antti Laaksonen [24.01.2008 21:56:19]

#

Cobol-kielen suosiota saattaa selittää, että sillä on tehty aikoinaan laajoja ohjelmistoja, jotka ovat edelleen käytössä ja joita pitää aika ajoin korjata ja laajentaa. Eli jos haluat päästä tutustumaan 70-luvulla kirjoitettuun spagettikoodiin, Cobol on valintasi.

Päärynämies [25.01.2008 00:26:02]

#

Jos vielä noiden kahden ulkopuolelta jotain saa ehotella, niin mieleen tuli C/C++, kun profiiliasi kattelin. Molemmat hyvin perinteisiä ja laajasti käytettyjä kieliä. Tai sitten opettele se Java. Nuo ovat tollasia peruskieliä, jolla saa jo kivasti aikaa ja materiaaliakin löytyy. Lisäksi esimerkiksi assemblyn opettelemista saattaa helpottaa C:n osaaminen, koska se voi nivoa sen korkeampiin kieliin. Tosin assemblyohjelmointi vaatii hieman erilaista ohjelmointi- ja ajattelutapaa kuin nuo korkean tason kielet. C++ ja Java ovat kumpikin myös oliopohjaisia kieliä, mihin suuntaan mennään yhä enemmän ja enemmän kaikissa kielissä.

Nuo voivat myös lisätä motivaatiota kun taitojen karttuessa voit ottaa osaa vaikka joihinkin avoimen koodin projekteihin. Cobolilla ja assemblyllä nuo taitavat olla hieman harvemmassa, tosin niitäkin on. Ihan jos kerrot mistä olet ohjelmoinnissa kiinnostunut ja millaisia ohjelmia tykkäät luoda, niin helpompi muiden päteä enemmän.

Tosin ei kuitekaan tehdä tästä uutta osaa niihin suurin ohjelmointisotiin, joissa ei voittajia taida vieläkään olla, vain häviäjiä.

Jakke1 [25.01.2008 09:58:01]

#

Suosittelen batteja.

Pekka Karjalainen [25.01.2008 09:58:37]

#

Tässä on TIOBE:n keräämä lista suosituista kielistä. He laskevat mm. työpaikkatarjouksia, kurssitarjontaa ym. (blogipostauksia? :-) Tilastollisesti tässä on varmasti useita ongelmia, mutta jotain se kertoo.

http://www.tiobe.com/tpci.htm

Jos se nyt jotain kertoo, niin sanoo, että COBOL on yhä listassa mukana, ja jopa ollut viime vuonna suhteellisesti nousussa. Java on ykkönen, joten jos kielivalinnan aiot tehdä työmahiksien mukaan, Java on hyvä valinta.

Minusta kannattaa opiskella sellaisia kieliä, jotka kiinnostavat itseä. Ne oppii paremmin sen kiinnostuksen takia. Kokeile vain useita, jos et heti osaa päättää, mutta valitse joku johon keskittyä. Siitäkin on etua, jos muut putkalaiset osaavat valitsemaasi kieltä, koska voit kysyä apua. COBOLin tapauksessa ei taida moni täällä osata.

Triton [25.01.2008 10:07:39]

#

No siis eräänä haaveena, (joka saattaa tietty olla utopiaa...) olisi se, että voisi tehdä oman tietokoneen käyttöjärjestelmän. Sillä tavoin saisi itse vaikuttaa järjestelmän bugeihin ja saisi siitä juuri sellaisen kuin itse haluaa... Toisaalta myös pelien teko (varsinkin 3D -pelit) kiinnostaa. En silleen osaa sanoa, että mitä tykkään eniten ohjelmoida lähinnä sitä mitä itse tarvitsee, ja olisi kiva osata joskus tehdä kaikki ne ohjelmat itse mitä tarvitsee, ettei tarvitsisi rahoja niihin softiin käyttää, vaan lähinnä rautaan. Eniten ohjelmointikielistä kiinnostaa Assembly, Cobol, Java ja PHP. Tuo C/C++ tai C# ei oikein jaksa innostaa, kun tuntuu siltä, että Java tulee korvaamaan tulevaisuudessa C:n... (Tietty tuo on vain oma mielipiteeni).

Asiasta toiseen mitä kaikkia ohjelmointikieliä opetetaan Helsingin yliopistossa? Tietääkö kukaan, että pystyykö mm. PHP opiskelemaan?


EDIT. Putkasta puuttuu Java -opas, sellanen pitäis saada... Tuolla mureakuhassa näyttäis olevan, mutta se on jotenkin hankalasti selitetty. Mikä muuten olisi hyvä Java sovelluskehitin? Mitä mieltä olette NetBeansista?

Ja vielä tohon kun joku epäili Cobolin suosiota, niin se kyllä pitää paikkaansa, varmaan juuri sen takia että niin paljon löytyy vanhoja sovelluksia jotka on Cobolilla tehty, ja jostain luin että maailmassa on miljardeja rivejä Cobol -koodia...?

Tuossa Kopeekan lähettämässä listassa huomasin, että jopa Pascal löytyy sieltä... Aika outoa käytetäänkö sitäkin vielä ihan työtarkoituksiin itse olen luullut, että sitä käytetään lähinnä opetustarkoituksiin?

anttipanda [25.01.2008 14:35:45]

#

"Tuo C/C++ tai C# ei oikein jaksa innostaa, kun tuntuu siltä, että Java tulee korvaamaan tulevaisuudessa C:n... (Tietty tuo on vain oma mielipiteeni)."

Kannattaa joo opiskella ensin ;) Java ei voi _millään_ korvata C tai C++ -kieliä, jos tiedät minkälaisen alustan päällä javaohjelma joutuu pyörimään. Jos 3D pelit kiinnostaa, niin C++ on se "industrial standard", ilman vankkaa C++-osaamista ei kovan linjan (lue kaupallista) peliohjelmointia tehdä. Lisäksi peliohjelmoinnissa on hyvä tietää jotain Shader-ohjelmoinnista (HLSL-kieli) ja ehkä myös Assemblyistä.

C#-kieli taas ei myöskään tule korvaamaan C tai C++-kieltä oman ajoalustansa takia (.NET), mutta on erittäin houkutteleva korvaaja Javalle, etenkin Windows-ympäristössä. C#-osaajat ovat haluttua tavaraa työmarkkinoilla (ja tarkoitan oikeasti osaavat, pelkän kielen hallinta ei riitä minkään ohjelmoinnin kanssa).


"Ja vielä tohon kun joku epäili Cobolin suosiota, niin se kyllä pitää paikkaansa, varmaan juuri sen takia että niin paljon löytyy vanhoja sovelluksia jotka on Cobolilla tehty, ja jostain luin että maailmassa on miljardeja rivejä Cobol -koodia...? "

Kuinka monta miljardia riviä on C++ tai C koodia? Paljon enemmän ja lisää tulee koko ajan (mm. suurin osa käyttöjärjestelmistä). Itsekin olen tainnut jo tuottaa C++ ja C# -kielistä koodia sata tuhatta riviä (?), ja kun mietitään kuinka monta C-perheen kielillä ohjelmoijaa on maailmassa, luvusta voi saada jonkinlaisen käsityksen.

Oma mielipiteeni on, että jätä se Cobol omaan arvoonsa; jos sillä onkin tehty 70 luvulla paljon sovelluksia, niin niistä ollaan koko ajan pyrkimässä pois. Ja niiden korvaajat kirjoitetaan moderneilla kielillä. Ne proffat jotka Cobolia opettavat, ovat itse joskus sitä käyttäneet mutta todellisuudessa kukaan ei enää halua aloittaa uutta projektia Cobolilla.

tgunner [25.01.2008 14:39:00]

#

No joo, mutta en voi vieläkään käsittää, mikä siinä cobolissa viehättää. Toihan syö jo yksistään syntaksinsa avulla aivot sisältäpäin.

anttipanda [25.01.2008 14:45:19]

#

tqunner:
"The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense"
-- Edsger Dijkstra

Päärynämies [25.01.2008 15:03:18]

#

No oman käyttöjärjestelmän tekeminen jos kiinnostaa, niin suosittelen kyllä siihen C:hen ja assemblyyn tutustumaan. Kaikki nykyiset vähänkin toimivammat tai suuremmat käyttöjärjestelmät ovat suurimmaksi osaksi C:llä kirjoitettua (Poikkeuksiakin on, esim. MenuetOS). Ja yksin tuohon et mitenkään tule pystymään, jos haluet että sillä oikeasti jotain teet ja toimii muullakin kuin koodin kirjoitushetkellä omistamallasi raudalla. Tuo vaatii myös huomattavasti perus harrastelijaohjelmoijaa suurempaa tietämystä kääntäjien toiminnasta ja kielen omaisuuksista. Kurkkaa vaikka jonkin Linuxin (tai vaikka Minixin) koodia, niin saat käsitystä miltä se käyttiskoodi edes näyttää.

Ja tosiaan Java ei koskaan tule korvaamaan C:tä, kuten anttipanda jo sanoikin. Joku muu kieli voi C:n syrjäyttää, mutta Java se ei ole. Ja C:tä tuskin moneen vuoteen vielä tullaan syrjäyttämään kokonaan, johtuen juuri sen käytöstä käyttöjärjestelmien ohjelmoinnissa. Suosio voi laskea. Voisi kuvitella, että C++ ja Java ehkä vievät eniten (potentiaalisia) C -ohjelmoijia.

Itse en ainakaan lähtisi Cobolia opettelemaan, jos ei sitten jotain halua hifistellä.

rautamiekka [25.01.2008 16:15:26]

#

Jos jokin kieli pitäisi opiskella VB:een lisäksi, kokeilisin VB.NET ja Java, mutta C:eestä pysyn kaukana: raivostuttavan monta riviä koodia kirjoitettava ilman mitää mainittavaa lopputulosta (toki Javassakin mutta se sentää pyörii missä vain, silti kyrpii tutkia softia jotka on kirjoitettu Javalla kun ne ovat sekavia paatuuntuneen VB:eilijän silmissä) sekä täytyy tutkia mitä importteja täytyy lisätä koodin alkuun että tulisi tuki ikkunalle ja tekstinsyötölle.

Tosin VB6:sen huono puoli on että kaikki sillä tehdyt softat ovat automaattisesti väistämättä ikkunallisia eli kyseisellä kielellä ei saa tehtyä komentorivisoftia, toisinkuin VB.NETillä joka tosin on hankaloitettu mutta paljon monipuolistettu VB6 - messageboxin saaminen toimimaan vaatii tyyliin tälläisen koodin

MessageBox "tekstiä", vbMessageBoxNoYesButton, vbMessageBoxMarkQuestion

, hyvin raivostuttavaa kirjoittaa aina noin pitkiä koodeja yhteen niin simppeliin asiaan joka oli niin simppeli kutosessa. Miksi ? Niimpä.

MsgBox "tekstiä", vbYesNo, vbQuestion

oli riittävä ja nopea tapa tehdä softaa.


Käyttikseen sanon että itseäkin haluttaisi osallistua OS:sän koodaamiseen vaikka ihan ideoinnilla mutta vastassa on 99.99999% ohittamismahdoton muuri jota kutsutaan ideaksi - on SolarisOS, Linux, windows ja Mac. Jos nuo saisi yhdistettyä, hieno tulisi, mutta kun ei voi, ellei saa niiden sorsaa eteensä ja ja vertailemalla muistiavaruuden ja muiden toimintaa. Koska noita ei voi yhdistää ilman sorsaa tai edes silloinkaan, kaikki tyyppimahdollisuudet/-ideat on käytetty noihin; ja vieläpä se tärkein: kuka käyttäisi järjestelmää joka ei ole Solaris, ei Linux, ei win, ei Mac ?

Antti Laaksonen [25.01.2008 16:31:19]

#

Triton kirjoitti:

Asiasta toiseen mitä kaikkia ohjelmointikieliä opetetaan Helsingin yliopistossa? Tietääkö kukaan, että pystyykö mm. PHP opiskelemaan?

Ohjelmoinnin peruskursseilla käytössä on Java. Lisäksi viime vuosina on ollut ainakin kurssit C-, C++- ja Haskell-ohjelmoinnista. Kuitenkin nuo muut kurssit ovat valinnaisia, eli jos on Javan ystävä, muuta ei tarvitse opetella. Yliopistossa tarkoitus ei olekaan opettaa suurta joukkoa ohjelmointikieliä, vaan oletetaan, että opiskelijat perehtyvät niihin omalla ajallaan.

anttipanda kirjoitti:

- - mutta todellisuudessa kukaan ei enää halua aloittaa uutta projektia Cobolilla.

Pitääkö tämä ottaa haasteena? Ehkä Ohjelmointiputkassa pitäisi alkaa kasvattaa uutta Cobol-ohjelmoijien sukupolvea, kun moisista on kerran huutava pula.

Päärynämies [25.01.2008 16:51:17]

#

Ja ainakin mitä itse olen käsittänyt yliopistotason ohjelmointiopiskelusta, niin siellä tosiaan enemmän painotetaan teoriaa ja sen osaamista. Eri ohjelmointikielet ovat sitten vain työvälineita noiden teorioiden käytäntöön soveltamiseen. Eli ne kielet eivät ole se itsetarkoitus siinä opiskelussa. Jos yhden proseduraalisen kielen esimerkiksi osaa, niin muiden samansukuisten oppimisen ei pitäisi tuottaa suuria hankaluuksia. Itse en tosin ole yliopistossa (tai oikeastaan missään, lukuunottamatta yhtä lukion Java-kurssia) ohjelmointia opiskellut.

Ja vielä niille, jotka käyttöjärjestelmäohjelmoinnista haaveilevat. Kannattaa suosiolla opetella sitä C:tä, eikä vain käyttää aikaa kielen piirteistä valittamiseen. C on tehokas kieli, kun vain tietää mitä tekee. Itselläni tosin ei kyllä johonkin *Basiciin ole kokeilunhalua sitten yhtään.

vehkis91 [25.01.2008 17:13:28]

#

C++ on mielestäni paras valinta ohjelmointi kieleksi... Eikä se edes ole kovin vaikeaa.

Kray [25.01.2008 17:31:07]

#

vehkis91 kirjoitti:

C++ on mielestäni paras valinta ohjelmointi kieleksi... Eikä se edes ole kovin vaikeaa.

Samaa mieltä. Käytännössä Java on ainakin tällaisissa asioissa hyödytön. Se on liian korkean tason kieli. Itse asiassa myös basic eri variaatioineen on liian korkeatasoinen. Suosittelen C/C++ ja ehkä Pascal.

rautamiekka kirjoitti:

C:eestä pysyn kaukana: raivostuttavan monta riviä koodia kirjoitettava ilman mitää mainittavaa lopputulosta

Miten niin? mitä raivostuttavaa tässä on:

#include <stdio.h>
int main(void)
{
    printf("Hello World");
    system("pause");
    return 0;
}

Tuo kirjoittaa näytölle Hello World ja odottaa näppäimenpainallusta. Tosin (tietääkseni) system -komennot toimivat vain Windowsissa.

thefox [25.01.2008 17:55:50]

#

kray kirjoitti:

Tosin (tietääkseni) system -komennot toimivat vain Windowsissa.

system-funktio on kyllä ihan standardikirjaston funktio, toimii siis kaikilla kääntäjillä ja alustoilla jotka C:n standardikirjastoa tukevat. Sen sijaan tuo sillä ajettava PAUSE-ohjelma on Windows-spesifinen.

Pekka Karjalainen [25.01.2008 18:03:19]

#

Suositeltava PAUSE-toteutus Linuxiin.

#!/usr/bin/sh
echo "Tämä ohjelma on p-stä."

p niinkuin pause, tietenkin.

Blaze [25.01.2008 18:58:52]

#

Kopeekka kirjoitti:

Suositeltava PAUSE-toteutus Linuxiin.

Ahihi, pitääkin muuten tehdä :)

vehkis91 [26.01.2008 22:15:14]

#

Kopeekka kirjoitti:

Suositeltava PAUSE-toteutus Linuxiin.

#!/usr/bin/sh
echo "Tämä ohjelma on p-stä."

p niinkuin pause, tietenkin.

Eihän tuo ole c/c++ ?

Metabolix [26.01.2008 22:18:57]

#

vehkis91 kirjoitti:

Eihän tuo ole c/c++ ?

Ei niin. Tuo kertoo, millaisen skriptin Linuxissa voisi tallentaa nimellä pause.

Huono puoli on, että Windows ei kiinnitä huomiota kirjainkokoon, jolloin skripti pitäisi tallentaa kaikilla mahdollisilla nimillä (pause, PAUSE, Pause, pAUse, ...).

Blaze [26.01.2008 22:25:01]

#

Metabolix kirjoitti:

Huono puoli on, että Windows ei kiinnitä huomiota kirjainkokoon, jolloin skripti pitäisi tallentaa kaikilla mahdollisilla nimillä (pause, PAUSE, Pause, pAUse, ...).

Symboliset linkit FTW.

Niin, ja otsikkoon viitaten: ei kumpikaan :)

Metabolix [26.01.2008 23:04:08]

#

Blaze kirjoitti:

Symboliset linkit FTW.

En silti halua kuuttakymmentäneljää eri pausea. ^_-

Triton [27.01.2008 20:47:12]

#

lainaus:

Tuo C/C++ tai C# ei oikein jaksa innostaa, kun tuntuu siltä, että Java tulee korvaamaan tulevaisuudessa C:n... (Tietty tuo on vain oma mielipiteeni).

Aika yllättävää. Aloin testata C++ -ohjelmointia, ja sehän iski heti :D! Yllättävän kivaa, ja helppoa (vaikkaen ole päässyt, kun vasta if -lauseeseen saakka :P)...

Ohjelmoin tossa ajankuluksi tollasen perus aloittelija ohjelman

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>

int main()
{
    int luku1; //Alustetaan muuttujat
    int luku2;
    int i;

          cout<< "Anna ensimmäinen luku: "; //Tulostaa syöte kehotteen
          cin>> luku1; //Tallentaa annetun arvon muuttujaan
          cout<< "Anna toinen luku: "; //Tulostaa toisen syöte kehotteen
          cin>> luku2; //Tallentaa annetun arvon muuttujaan

          i = luku1 * luku2; //Tehdään laskutoimitus

              if (i < 48) //Tarkistaa ehtolausella
                 { cout<< "Luku on pienempi, kuin 48."; }
              if (i == 48)
                 { cout<< "Luku on yhtäsuuri, kuin 48."; }
              if (i > 48)
                 { cout<< "Luku on suurempi, kuin 48."; }


          cin.get();
          cin.get();

          return 0;
}

Uusien kielien oppiminen on yllättävän helppoa, jos osaa ohjelmoinnin perusteet, kun näyttää olevan kaikissa samat rakenteet...

tgunner [27.01.2008 22:55:24]

#

Oletan, että haluat vastakaikua, kun tuollaisen viestin postasit. Tutustuitko if-lauseen ohella myös elseen? Nimittäin tehokkainta olisi kuitata nuo liialliset jossittelut else-rakenteella. if (i < 48) ... else if (i == 48) ... else ..., koska eihän i voi olla kuin yksi luku kerralla.
Niin ja stdio.h:ta eikä stdlib.h:ta tarvitse eikä kannata ottaa #includella mukaan. Ne ovat C:n kirjastoja. Sitten tuo #include <iostream.h> on vanhahtava tapa merkitä, jätä .h pois (<iostream>). Lisäksi et ota mukaan nimiavaruuksia, joissa cin sekä cout majailevat. Kirjoita main-funktion ulkopuolelle (ennen mainia) using namespace std; ja tämän jälkeen olet oikeilla raiteilla.

johncage [04.02.2008 01:48:33]

#

Totta on se, että tietyt yritykset hakevat tällähetkellä Cobol- osaajia. Tämä johtuu siitä, että halutaan vihdoin päästä pois vanhoista Cobol- appseista. Eli Cobolin tuntemusta tarvitaan lähinnä migraatio-projekteissa. Näissä projekteissa softat käännetään lähinnä .net tai java -sovelluksiksi. Cobol- softat kun aikoinaan olivat lähinnä tylyn yksinkertaisia dos- tyylisisellä tekstipohjaisella käyttöliittymällä varustetuja tietokantasovelluksia.

>Uusien kielien oppiminen on yllättävän helppoa, jos osaa ohjelmoinnin
>perusteet, kun näyttää olevan kaikissa samat rakenteet...

Totta se on. Tosin riippuu kuitenkin siitä mitä tekee. Työelämässä itselleni tulee usein vastaan todella vaikeita haasteita, ja niissä pitää hallita se kieli hyvin - muuten spagettisyndrooma iskee, ja aikataulut kusee.

Ongelmana nykyään on se, että yhden kielen hallinta ei usein riitä. Itse joudun työssäni käyttämään vanhoista kielistä c:tä, Visual Basicia (5-6), aspia, ja uusista .Net:iä sekä javascriptiä ja javaa. Uusinta peliäni koodailen oman firmani puitteissa Blitzmaxilla. Se on aivan loistokieli ja hauska opetella.

Omasta mielestäni mielekkäimmät kielet ovat olleet c(++)-kieli sekä vb6. Viba osoittautui aikoinaan niin tehokkaaksi ja bugittomaksi kieleksi työelämässä, että vb6- migraatioprojektit lienevät niitä yleisempiä nykyään. Niin monet isot yritykset tekivät sillä onnistuneita projekteja. Siihenhän yhdistettiin myöhemmin mts ja com(+)- palikat, joka myös osaltaan edisti tuota 3-tasoarkkitehtuurin mukaista suunnittelua.

Javasta vielä pari sanaa. Itse en sen nopeudesta ole vakuuttunut joidenkin sen lähinnä web service- projektien jälkeen. Samoten .net- assemblyt häviävät edelleen vb6:sella tehdyille dll:ille. Harmi juttu.

vehkis91 [04.02.2008 10:47:41]

#

"stdio.h:ta eikä stdlib.h:ta tarvitse eikä kannata ottaa #includella mukaan. Ne ovat C:n kirjastoja."

Itse ainakin köäytn noita, koska tarvitsen joitain c:n käskyjä... ;)

Gaxx [04.02.2008 11:17:38]

#

vehkis91 kirjoitti:

"stdio.h:ta eikä stdlib.h:ta tarvitse eikä kannata ottaa #includella mukaan. Ne ovat C:n kirjastoja."

Itse ainakin köäytn noita, koska tarvitsen joitain c:n käskyjä... ;)

Eivätkö tarvitsemasi käskyt löydy #include <cstdlib> -kirjastosta?

Triton [06.02.2008 00:24:59]

#

Jatkampa tätä keskustelua vielä Cobolin osalta, että yksi syy siihen, että Cobolia luullaan vanhentuneeksi ja huonoksi kieleksi siksi, koska sitä ei käytetä niinkään PC -ympäristössä, vaan sitä lähinnä käytetään suurkoneympäristössä, ja isäni mukaan se on juuri sopiva siihen. Ja hän kertoi, että jopa uusia Cobolin osaajiakin aletaan kouluttamaan. Tietenkin on näitä PC:lle suunnattuja Cobolejakin, mutta eipä se Cobol oo niin suosittu PC puolella.

anttipanda [06.02.2008 00:30:15]

#

No saahan sitä Cobolia opetella, ei sitä kukaan putkalaisista estä. Ei se välttämättä ole vaivan arvoista, mutta osaamistahan sekin on.

En kyllä tiedä mikä Cobolista tekisi sopivan nimenomaan suurkoneympäristöön, kun siinä ei varmaan ole mitään sen kummempaa tukea suurille määrille suoritinyksiköitä ym sellaista. Se on vain perinteinen.

Kray [14.02.2008 15:48:34]

#

Päärynämies kirjoitti:

Voisi kuvitella, että C++ -- ehkä vie eniten (potentiaalisia) C -ohjelmoijia.

Hmm... Mitä tarkoitat viemisellä? C++ on käytännössa täysin yhteensopiva alaspäin. Minunkin koodini on usein C:n ja C++:an omituinen ristisiitos.

os [15.02.2008 19:58:21]

#

kray kirjoitti:

Päärynämies kirjoitti:

Voisi kuvitella, että C++ -- ehkä vie eniten (potentiaalisia) C -ohjelmoijia.

Hmm... Mitä tarkoitat viemisellä? C++ on käytännössa täysin yhteensopiva alaspäin. Minunkin koodini on usein C:n ja C++:an omituinen ristisiitos.

Hyvä moderni C++ ei ole C-tyylistä ohjelmointia, eikä hyvin C++-olio-ohjelmointia osaamalla osaa välttämättä hyvin (proseduraalista) C:tä. Se, että C kääntyy pintapuolisin muutoksin C++:na ei tarkoita sitä, että se olisi silloin oikeasti (kelvollista) C++:ssaa.

Javasta C++-kielen korvaajana kannattaa muistaa, ettei C++:n kehityskään ole mitenkään pysähtynyt:

http://en.wikipedia.org/wiki/C++0x

Voi olla, että esimerkiksi uuden standardin myötä C++ onkin monessa suhteessa taas huomattavasti kovempi kieli. Vaikka Javaa käytetäänkin entistä enemmän, niin ei kannata luottaa siihen, että se syrjäyttäisi merkittävästi esimerkiksi C++:ssaa. Mitä esimerkiksi Javan nopeuteen ja keskusteluun Assemblystä tulee, voi C++:ssaan ja C:hen helposti ja suoraan linkittää muilla kielillä, kuten C:llä, Fortranilla tai jopa Assemblyllä kirjoitettuja nopeutta vaativia osia, toisin kuin Javaan.

C++:n pohjalta on myös melko helppo opetella C:tä, joka on nykyisillä kääntäjillä optimoituna monesti isommilla sulautetuilla järjestelmilläkin käytännössä yhtä nopeaa tai nopeampaa ja kooltaan samaa luokkaa kuin käsin kirjoitettu Assembly. Lisäksi se toimii kohtuullisilla muutoksilla eri järjestelmillä. Javalla ei hirveästi sulautettuja järjestelmiä koodailla.

Kopeekka kirjoitti:

http://www.tiobe.com/tpci.htm

Tuosta kannattaa kuitenkin pitää mielessä, mihin noita kieliä käytetään. JavaScriptillä, PHP:llä tai Perlillä ei ole mitään käyttöjärjestelmiä ohjelmoida. Yleisesti ottaen ohjelmoijien suosio työmarkkinolla on kasvanut, joten esimerkiksi Java:n, C:n ja C++:n käyttö ei todellisuudessa ole laskenut niin paljon, kuin noista käyristä käy ilmi. Erilaisiin verkkosovelluksiin ja tietokantoihin liittyvä ohjelmointi on nyt erityisen suosittua ja siihen hyvin soveltuvat kielet ovat noissa listoissa pinnalla. Vastaavasti esimerkiksi MATLAB on prosentuaalisesti pohjalla, vaikka se on tieteellisessä laskennassa ihan must.

Kannattaa siis miettiä kieltä nimenomaan sen mukaan minkä tyyppinen ohjelmointi kiinnostaa. Uusista kielistä kovia ovat kuulemma D ja Lua.

Dude [15.02.2008 21:50:51]

#

Assemblyhän on aika vaikea mutta jos osaa niin sillä saa nopeimmat ohjelmat.

Triton kirjoitti:

Tuo C/C++ tai C# ei oikein jaksa innostaa, kun tuntuu siltä, että Java tulee korvaamaan tulevaisuudessa C:n...

Joo ehkä jos onnistut tekemään javalla käyttiksen.

Päärynämies [15.02.2008 22:51:25]

#

Kielenähän assembly on kovin yksinkertainen. Vaikeaa on ehkä toimivien ja ohjelmien tekeminen sillä ilman suurta monimutkaisuutta.

Ja assemblyllä saavutettu nopeusetu verrattuna parhaiden C -kääntäjien optimoituun koodiin on hyvin pieni, ja softan kirjoittaminen puhtaasti assemblyllä on yleensä silkkaa tyhmyyttä pc-ympäristössä. Perusohjelmoijan harvoin tarvitsee niin aikakriittistä koodia kirjoittaa, että sitä pitäisi assemblyllä tehdä. Kuulemma jossain vaativassa näytönohjaimien ajurien piirtofunktioiden koodaamisessa saatetaan käyttää assemblyä, jotta saadaan puristettua viimeisetkin tehot irti.

Ja osaamaton assemblyohjelmoija voi helposti tehdä huomattavasti hitaampaa koodia kuin C-kääntäjä. Paljon on kerta kiinni muustakin kuin käytetystä kielestä.

Tokihan assemblyllä saa myös kovin pieniä ajettavia tiedostoja aikaan, mutta sillekään kovin vähän on enää tarvetta suurten kovalevyjen aikana. Yksi muuta megatavua ei tunnu enää misään, puhumattkaan sitten muutamasta kilotavusta.

Totuus on, että assemblylle on hyvin vähän käyttöä enää perus pc-ohjelmoijalle.

Grey [16.02.2008 11:09:16]

#

Näkisin itse että assemblysta on silti hyötyä perusohjelmoijallekin. Jos ei muuta, ainakin ymmärtää miten systeemit oikeastaan toimivat. Toki tässä on riskinsä että sitten ei ehkä myöhemmin tulekaan enää tarvitsemaan mitään valmiita kirjastoja, kun huomaa tekevänsä asiat paljon nätimmin ilman ylimääräistä hötäskää. Että todennäköisesti vielä varsin toimivaa, kun tietää täsmälleen mitä tekee. Täydellinen hallinta koodiinsa ei voi olla pahaksi.

Olen vuosien aikana nähnyt niin monia onnettomia, jotka ovat käyttäneet vain kirjastoja ja eivätkä itse koodauksessa ymmärrä mitään. Vähänkään vieraampi kieli ja menee heti sormi suuhun reppanoilla. Lisäksi kun haaste katoaa, voi kadota myös innostus. Itsellään intoa on vieläkin, ja vaikka harvoja muita kieli on kokeiltu, niin lukutaito niihinkin on kehittynyt. En toki osaa assemblyä kirjoittaa vielä, mutta pieniä pätkiä sitäkin osaan lukea. Huvittavaa, mutta osaan lukea myös vähäsen assemblylla kirjoitettua binaarya O__o

-Grey-

Päärynämies [16.02.2008 19:31:05]

#

No olisi pitänyt olla hieman tarkempi. Assemblyllä ohjelmoinilla ei ole perus pc-ohjelmoijalla enää niin tarvetta, toki kielen osaaminen tarjoaa yhden "ymmärrystason" lisää ohjelmoinnissa. Ainakin itseä x86-assemblyn osaaminen auttaa esimerkiksi hahmottamaan paremmin, miten kirjoittamani C -kielinen koodi toimii (siis tiedän mitä se tekee, mutta miten se toimii alemmalta tasolta katsottuna).


Sivun alkuun

Vastaus

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

Tietoa sivustosta