Vituttaa ohjelmoida C/C++:llä

tympii tää kieli

Sen jälkeen kun on tehnyt projekteja JAVA:lla niin mikään ei oikeasti ketuta enempää kuin hypätä kehityksessä taaksepäin ja käyttää C/C :aa, jonka tietyt molopäät ovat jostain ihmeen syystä valinneet käytettäväksi uuteen projektiin vaikka homman olisi ihan hyvin voinut tehdä Javallakin. Siinä missä Javalla hommat sujuu kuin voita vain erinomaisine dokumentteineen ja intuitiivisine rajapintoineen, C/C :llä homma on kuin penkoisi romukasaa, ja siihen se suurin osa aika kuluukin. Todella tuottavaa ja hauskinta vielä että kokemuksen karttuessa homma ei muutu yhtään vähempää verkkaiseksi!

21

1105

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Delete program ? (Y)

      Koin itse vastaavan hylkimisreaktion viimeksi yliopistossa, kun piti tehdä "pieni" ohjelma Prolog:illa. Se on sitä oppimisen tuskaa eli kun osaa yhtä työvälinettä ja kieltä viimeinkin käyttää, niin ymmärtää että kuinka paljon joutuu opettelemaan, jotta hallitsisi molemmat ohjelmointikielet samalla tasolla. Java:n ja C:n suurin ero onkin siinä, että Java:lla ei juurikaan tarvitse piitata käyttöympäristössä vaan siinä voi luottaa, että koodi toimii missä vain. C-kääntäjän kanssa taas joudut opiskelemaan myös käyttöjärjestelmän piirteitä ja tulet huomaamaan, että sillä todella on merkitystä tekeekö C-softaa Windows vai Unix-järjestelmässä.

      Kannattaa ottaa lapio kauniiseen käteen ja aloittaa C-ohjelmien teko ihan alkeista tai ainakin käydä perusasiat läpi ennen kuin rupeaa tekemään varsinaista työtä. Muuten tulee ikäviä yllätyksiä päivästä toiseen.

    • Naivi nativisti

      Olen myös käyttänyt jonkin aikaa C :aa Javan sijasta. Olen kokenut saman romukasailmiön, mutta pidän tätä positiivisena yllätyksenä. C on ruma, alkukantainen kieli, mutta paljon todellisempi. Javailu on alkanut tuntumaan hieman kuin Machintons-koneiden käytöltä: Mitään radikaalia et voi tehdä tai edes ajatella. Radikaalia on esim. union -toimito, jolla eri muuttujat voidaan tallentaa samaan muistipaikkaan. Sivuvaikutukset on mitä on mutta laitteiston kannalta muistin jakaminen on taloudellista. Javan kunnianhimoisen ohjelmointiperiaatteen voi joutua maksamaan sillä, ettei enää osaa käyttää muistia luovasti.

    • C rules!

      Java oli pitkään pahinta, mitä Internetille tapahtui, kunnes PHP tuli ja oli vielä pahempaa. Nuhapumppusoveluskehittäjille only!

      • Naivi nativisti

        C-kieli on nuhapumppu verrattuna konekieleen. Ainakin alkuvaiheessa piti käyttää niitä yhdessä:
        http://en.wikipedia.org/wiki/Inline_assembler

        Minusta nykyäänkin voisi käyttää Ceeta ja Javaa yhdessä. On typerää siirtyä Javasta KOKONAAN C :n, kun ne toimii yhdessäkin.


      • sdfsdfs
        Naivi nativisti kirjoitti:

        C-kieli on nuhapumppu verrattuna konekieleen. Ainakin alkuvaiheessa piti käyttää niitä yhdessä:
        http://en.wikipedia.org/wiki/Inline_assembler

        Minusta nykyäänkin voisi käyttää Ceeta ja Javaa yhdessä. On typerää siirtyä Javasta KOKONAAN C :n, kun ne toimii yhdessäkin.

        Paskaa puhut. Nykyiset C kääntäjät tietävät 99% ajasta paremmin minkälainen konekieli on nopeinta käytettävälle alustalle.

        Kääntäjä toisinsanoen generoi parempaa asmia kuin ihminen käsin.


      • fdsfds.
        sdfsdfs kirjoitti:

        Paskaa puhut. Nykyiset C kääntäjät tietävät 99% ajasta paremmin minkälainen konekieli on nopeinta käytettävälle alustalle.

        Kääntäjä toisinsanoen generoi parempaa asmia kuin ihminen käsin.

        Kääntäjä tekee näin:
        xor rax,rax ei mov rax,0
        tai:
        test rax,rax ei cmp rax,0

        Kääntäjä generoi konekielen siten, että se kulkee nopeamman mallin mukaan mutta parempaa jälkeä se ei tee. Suorituskyky on aina hivenen edellä käsin koodatessa ja ohjelmien koot ovat aina huomattavasti pienempiä.


      • pentti.pepsodentti
        fdsfds. kirjoitti:

        Kääntäjä tekee näin:
        xor rax,rax ei mov rax,0
        tai:
        test rax,rax ei cmp rax,0

        Kääntäjä generoi konekielen siten, että se kulkee nopeamman mallin mukaan mutta parempaa jälkeä se ei tee. Suorituskyky on aina hivenen edellä käsin koodatessa ja ohjelmien koot ovat aina huomattavasti pienempiä.

        On tietysti tavanomaista ja tehokasta kirjoittaa muutama käsky suoraan konekielellä, mutta melko älytöntä kirjoittaa koko ohjelmaa sillä. Tulee halvemmaksi ja helpommaksi kirjoittaa korkeamman tason kielellä loput ohjelmistosta. Myös vaativissa real-time sovelluksissa suurin osa kirjoitetaan C:llä tia C :lla. Toteutuimme 3.5G/4G-verkkojen laitteistioihin ohjelmia, jotka kirjoitettiin 99% C:llä, mutta osa rutiineista toteutettiin konekielellä, jolla tietysti säästimme CPU-aikaa.

        Turha vääntää mikä on parempi kieli tai mikä on purkkakieli. Koitappa vääntää Java:lla radioverkkolaitteisiin real-time-softaa, jonka vaatimusajat ovat millisekunneissa, ja joita käyttää samaan aikaan satunnainen käyttäjämäärä muutamasta käyttäjästä tuhansiin.

        Java on ihan kiva kieli ja sillä on ihan oma tarkoitus. Älkää ny repikö verkkareita täällä, vaan koodatkaa sormet ruvelle valitsemallanne kielellä. :)


    • 324324

      Minua taas vituttaa Java ja Javallat toteutetut sovellukset.

      Hirveää bloatti purkkapalloa. Java on rumaa. Javalla toteutetut sovellukset ovat helvetin hitaita ja resurssisyöppöjä.

      Mielestäni ei pitäisi keskittyä tuottavuuteen koska seuraksena paljon paskaa ja hidasta. Mielummin vähän ja laadukasta kun paljo ja paskaa.

    • fsf3f23f

      Taidat olla sitä nykyajan amk:ssa opetettua pullamössösukupolvea jotka eivät osaa kuin tuolla Java lelulla tai C sharpilla vääntää keskinkertaista ja hidasta purkkapallokoodia.

      Onnittelen valitsemallasi tiellä.

      • Naivi nativisti

        Ennemminkin C ja C ovat "purkkapallokieliä". Java on hidas, mutta se suorastaan yllyttää tekemään selkeää ja järkevää koodia. Vai miten on?


      • dim java roskaa
        Naivi nativisti kirjoitti:

        Ennemminkin C ja C ovat "purkkapallokieliä". Java on hidas, mutta se suorastaan yllyttää tekemään selkeää ja järkevää koodia. Vai miten on?

        Sittenkun java pieksee C :n osoittimien käytössä, moniperinnässä ja muissa hauskoissa asioissa.
        Niin uskon, että Java on edellä C .

        Tähän sopii myös hyvin vanha sanonta... miljardi kärpästä on on oikeassa Java on hyvää.


      • sdfsdf
        Naivi nativisti kirjoitti:

        Ennemminkin C ja C ovat "purkkapallokieliä". Java on hidas, mutta se suorastaan yllyttää tekemään selkeää ja järkevää koodia. Vai miten on?

        No ei kyllä järkevää eikä missään mielessä selkeää.

        Puhdas C on selkeää. Hyvin kirjoitettu C on selkeää.

        Jos puhutaan tulevaisuuden kielistä niin itse kallistuisin ehdottomasti D:n kannalle. Todella lupaava tulokas.


      • ,,--,,
        Naivi nativisti kirjoitti:

        Ennemminkin C ja C ovat "purkkapallokieliä". Java on hidas, mutta se suorastaan yllyttää tekemään selkeää ja järkevää koodia. Vai miten on?

        Purkkapallokieli = eli yhdistellään valmiita kokonaisuuksia lopputuloksena uusia kokonaisuuksia. C ja C ovat kaukana tällaisesta. Purkkapallokieliä = Java (jonkin verran), C#, Visual Basic, ym. suuri osa korkean tason kielistä lukuunottamatta komentosarjakieliä.


      • ööööööööööööö!!!!!!!
        sdfsdf kirjoitti:

        No ei kyllä järkevää eikä missään mielessä selkeää.

        Puhdas C on selkeää. Hyvin kirjoitettu C on selkeää.

        Jos puhutaan tulevaisuuden kielistä niin itse kallistuisin ehdottomasti D:n kannalle. Todella lupaava tulokas.

        kun ollaan päästy Ö-kieleen silloin voidaan sanoa että ollaan todella pitkällä.
        siitä pitemmällä ollaan vasta kun ollaan siirrytty Ö kieleen.
        paitsi tietenkin jos käytetään uutta ja kehittynyttä Öva-kieltä.


    • dim Java paskaa

      Minkä ihmeen takia pitää sekottaa Java sekä C/C ?

      Jos Java on niin hyvä kieli, miksi sotkette sinne sitten tota ceetä mukaan?
      Vai eikö jotku asiat vain sittenkää toimi JAVALLA?
      Jos näin on näppylät, miksi olette silloin sotkenut JAVAA C ohjelmaan?

    • NUUNUU__

      j00 kovat jätkät vetää joko asmia tai sitten heksaeditorilla rustaavat suoraan, kun ei sellaisia multimediahökötyksiä tueta kuin assembler. Vai olisko niiden ohjelmien suorituskyky sittenkään niin paljon kiinni valitusta ohjelmointikielestä? Mitä ohjelmaa sinä haluaisit profiloida tänään?

      • Maukka Perusjätkä

        Vielä kovemmat jätkät heittää monitorit seinään ja morsettaa bitit rinnakkaisportista johdonpätkillä!!!111!11!111!!1111!!11!1!?1!


    • vesikuusi

      c ja c on ehkä vähän tehokkaampia ja monipuolisempia..siitä pitää vaan maksaa pieni "hinta". Ainakin olen itse näin ymmärtänyt.

      • dsfsdfsd53534

        Nykyään voidaan sanoa että ovat tehokkaampia kuin asmin kirjoittaminen koska kääntäjä osaa tuottaa huomattavasti optimoidumpaa konekieltä kuin 99% assembly ohjelmoijista.

        En näe enää assemblylle mitään muuta järkevää käyttötarkoista kuin sulautettujen ohjelmointi. Tällöin tulee on piirien rommin koko rajana ja assemblyllä ohjelma saadaan pienempään tilaan.


      • yksi vain
        dsfsdfsd53534 kirjoitti:

        Nykyään voidaan sanoa että ovat tehokkaampia kuin asmin kirjoittaminen koska kääntäjä osaa tuottaa huomattavasti optimoidumpaa konekieltä kuin 99% assembly ohjelmoijista.

        En näe enää assemblylle mitään muuta järkevää käyttötarkoista kuin sulautettujen ohjelmointi. Tällöin tulee on piirien rommin koko rajana ja assemblyllä ohjelma saadaan pienempään tilaan.

        Väite, että c-kääntäjät tuottaisivat parempaa assemblyä kuin (osaava) ihminen ovat vähän kyseenalaisia.

        Jos c:llä alunperin kirjoitetun algoritmin muuttaa sellaisenaan assemblylle ja vertaa saamaansa tuotosta kääntäjän tekeleeseen, joo, vaikea on saada aikaan kääntäjää (ainakaan paljon) nopeampaa koodia. Vähän tiiviimmän siitä yleensä saa aika vähällä vaivalla.

        Mutta näinhän assemblyllä ei ole tarkoitus koodata. Ei ole kovin tarkoituksenmukaista yrittää voittaa c-kääntäjää c-kielen kääntämisessä. Jos haluaa kirjoittaa hyvää aseemblyä, pitää koko algoritmi alun alkaen miettiä assemblyn näkökulmasta: miten haluan käyttää rekistereitä, miten rakennan loopit, millaisia tietorakenteita käsittelen, miten koodin rakennetta voi optimoida jne. Lopputulos on yleensä enemmän tai vähemmän erinäköinen kuin se c:lle mietitty vastine samasta algoritmista. Ja osaavan koodaajan tekemänä sekä tiiviimpi että nopeampi.


      • sdfsfds
        yksi vain kirjoitti:

        Väite, että c-kääntäjät tuottaisivat parempaa assemblyä kuin (osaava) ihminen ovat vähän kyseenalaisia.

        Jos c:llä alunperin kirjoitetun algoritmin muuttaa sellaisenaan assemblylle ja vertaa saamaansa tuotosta kääntäjän tekeleeseen, joo, vaikea on saada aikaan kääntäjää (ainakaan paljon) nopeampaa koodia. Vähän tiiviimmän siitä yleensä saa aika vähällä vaivalla.

        Mutta näinhän assemblyllä ei ole tarkoitus koodata. Ei ole kovin tarkoituksenmukaista yrittää voittaa c-kääntäjää c-kielen kääntämisessä. Jos haluaa kirjoittaa hyvää aseemblyä, pitää koko algoritmi alun alkaen miettiä assemblyn näkökulmasta: miten haluan käyttää rekistereitä, miten rakennan loopit, millaisia tietorakenteita käsittelen, miten koodin rakennetta voi optimoida jne. Lopputulos on yleensä enemmän tai vähemmän erinäköinen kuin se c:lle mietitty vastine samasta algoritmista. Ja osaavan koodaajan tekemänä sekä tiiviimpi että nopeampi.

        Pitää olla nykyprosessorien kanssa aika helvetin hyvä käskykantawizardi ja tuntea alusta täydellisesti että saa tehtyä oikeasti suorituskykyist asmia.

        Demoscenessä käytetään binäärien tiivistämiseen tarpeen tullen. Jotkin 4K on kokonaan assemblyä.


    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. En usko et meistä tulee jotain

      Se ei kuitenkaan estä toivomasta et tulisi. Toivon et voitas suudella ja se sais asioita loksahtamaan paikoilleen. Jutel
      Ikävä
      10
      2640
    2. Kuvaile itseäsi

      Kaivatullesi, niin että hän sinut tunnistaa.
      Ikävä
      91
      1976
    3. Eini paljastaa nuorekkuutensa salaisuuden - Tämä nousee framille: "Se on pakko, että jaksaa!"

      Discokuningatar Eini on täyttänyt upeat 64 vuotta. Lavoilla ja keikoilla nähdään entistä vapautuneempi artisti, joka ei
      Suomalaiset julkkikset
      39
      1511
    4. Huomenta keskipäivää

      Kivaa päivää mukaville ja söpösille. 🐺🫅❤️☕☀️
      Ikävä
      260
      1398
    5. Yli puolella maahanmuuttajalapsista ei ole tietoja ja taitoja, joilla selviää yhteiskunnassa

      Miksi Suomeen otetaan väkeä jolla on älyvajetta? https://www.hs.fi/politiikka/art-2000010730220.html
      Maailman menoa
      273
      1038
    6. Oletko koskaan katunut kun

      elämäsi tilaisuus jäi käyttämättä? 💔
      Ikävä
      67
      933
    7. Olen J-mies

      Jos kerrot sukunimeni alkukirjaimen, ja asuinpaikkakuntani. Lupaan ottaa yhteyttä sinuun.
      Ikävä
      47
      891
    8. Sinusta näkee että

      Kaipaat paljon.
      Ikävä
      55
      864
    9. Ei sitten, ei olla enää

      Missään tekemisissä. Unohdetaan kaikki myös se että tunsimme. Tätä halusit tämän saat. J miehelle. Rakkaudella vaalea na
      Ikävä
      77
      860
    10. Haluaisin ottaa sinut syleilyyni mies

      Olet suloinen...
      Ikävä
      44
      775
    Aihe