C++ vaikein kieli nykyään?

see plus plus

Onko C edelleen vaikein kieli oppia ja hallita tällä hetkellä? Jos unohdetaan kaikenmaailman esoteeriset hömpät. Eli voidaan sanoa, että joka hallitsee C :an, varmasti oppii minkä tahansa muun kielen nopeasti?

50

1702

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • myslihattu

      C on vaikea mutta eiköhän toi vaiken ole assembly edelleenki, mihin se siitä muuttuisi.

      Ja kysymykseen jos osaat C oppii minkä tahansa kielen... Kyllä. Mutta C :mainen ajattelu tapa voi olla haastava oppia esim javaa. Javassa ei ole moniperintää tai osoittimia, joten kyllä siinä saa ajatella asioita uudelta kantilta.

    • Jos oppii C :n, se ollaan vielä helposti lähtökuopissa funktionaalisten kielten kanssa koska on eri paradigma.

      • M‒Kar

        Ehkä sun kannattaisi vaan pysytellä pyyttonissa.


      • roskapostirobotti 22
        M‒Kar kirjoitti:

        Ehkä sun kannattaisi vaan pysytellä pyyttonissa.

        c ja java ovat todella kankeita pythoniin verrattuna. siirtyminen sieltä pythoniin laajentaa pääkoppaa, siirtyminen toiseen suuntaan pistää puremaan hammasta.


      • IsoPää+++
        roskapostirobotti 22 kirjoitti:

        c ja java ovat todella kankeita pythoniin verrattuna. siirtyminen sieltä pythoniin laajentaa pääkoppaa, siirtyminen toiseen suuntaan pistää puremaan hammasta.

        Aivan ja Pythonista kannattaa siirtyä Rubyyn, aivot kasvavat vielä lisää...


      • 22
        IsoPää+++ kirjoitti:

        Aivan ja Pythonista kannattaa siirtyä Rubyyn, aivot kasvavat vielä lisää...

        ...kohonneen verenpaineen takia, kun koodia pitäisi lukea.

        Pythonissa on tehty sekin oikein. Ei tarvitse osata kirjoittaa Pythonia, että sitä pystyy lukemaan. Ruby on melkein yhtä paha kuin Perl. Vaikka sitä osaisi kirjoittaa, lukeminen ei ole ihan helppoa.


    • Sano niin kuin se on

      jossa voit kuvailla maailmaa juuri niillä käsitteillä, joilla itse haluat, kuten esimerkiksi.
      Kalastaja.LähteeKalaan();
      Kalastaja.NostaaVerkot();
      if(Kalastaja.SaiKalaa())
      Kalastaja.LähteeKrouviin();
      else
      Kalstaja.LaskeeVerkot();

    • My Dick Is Longer

      niin sitten lähtökohdat on hyvät.

    • pentti.pepsodentti

      Vaikea sanoa mikä on vaikein kieli oppia. Riippu hyvin pitkälti opiskelijan pääkopasta ja tavoitteista. Esimerkiksi: Matlab on helppo kieli opetella - tarkoitan sen syntaksia - , mutta paljon vaikeampaa on opetella toteuttamaan jotain käyttökelpoista sillä.

      Yleisesti (lähes) kaikki ohjelmointi on sijoittamista, toistoa ja valintaa. Jos hallitset C :n hyvin, niin varmasti opit muitakin kieliä. Suosittelisin kuitenkin ensin tutustumista proseduraaliseen ohjelmointiparadigmaan esim. C-kieleen.

      Itse pidän symbolisen konekielen oppimista hieman haastavampana kuin C -kielen oppimista. Mutta syntaksiltaan (ehkä) vaikein ohjelmointikieli on Brainfuck (http://fi.wikipedia.org/wiki/Brainfuck) :)

    • languageguy

      väittäisin, että japani, kantoni ja korea on edelleen paljon c :aa vaikeampia. tosin näiden osaaminen ei takaa sitä, että esim. portugali taipuisi helposti.

      • Huumorimiehiä

        **Pada-tsing**


      • Tosihauskamies

        Tarkoitatko, että Japani on kokonaisuudessaan vaikeampi kuin C , vai pelkkä pääsaari Honshu? Entä onko pelkkä Etelä-Korea yksin vakeampi kuin C ?


    • sdfsdfsd

      Jaapajaa.. C on niin penteleen laaja että sitä on vaikea hallita täysin. C on taas kompakti ja mielestäni helpohko oppia.

      C:n jälkeen taas monet skriptikielet ja vm kielet voivat vaikuttaa vittumaisilta. Ainakin mielestäni mm. Perl, Python, Ruby tuntuu avuttomilta C:n rinnalla.

      Joku näiden syntaksissa tökkii ja pahasti. Perli on pahin.

      • pentti.pepsodentti

        Tiedän tunteen, mutta kyllä se perl sieltä lähtee, kun vähän potkii ;)

        Perlissä on kyllä erinomainen kieli tekstin pyörittelyyn, mutta syntaksissa on kyllä kummallisia sääntöjä. Toisaalta muuttujien prefixit ($, @, % tms.) kertovat paljon minkälainen muuttuja on kyseessä. Tuli käytettyä pari vuotta Perliä ensimmäisessä työpaikassani.

        Yksi suuri ongelma on siinä, että jotkut vaan kirjoittavat niin epäselvää Perl-koodia, että sitä on todella vaikeata muiden lukea. Tämän tyylinen ns. Perl-golffaus on mielestäni typerä tapa ohjelmoida, koska samat asiat voi tehdä paljon selkeämmin, jos vaan jaksaa kirjoittaa muutaman rivin lisää koodia.

        Monikaan ohjelmointikieli ei kuitenkaan ole näin kaunista ja toimivaa: http://www.perlmonks.org/?node_id=45213 ;)


      • IsoPää+++

        "Ainakin mielestäni mm. Perl, Python, Ruby tuntuu avuttomilta C:n rinnalla."

        Eivät ne ole avuttomia C:hen verrattuna kuin suorituskyvyssä ja laitetasonohjelmoinnissa. Kaikessa muussa jyräävät C:een.
        (tai ei ainakaan heti tule mieleen muita juttuja...)


      • pentti.pepsodentti
        IsoPää+++ kirjoitti:

        "Ainakin mielestäni mm. Perl, Python, Ruby tuntuu avuttomilta C:n rinnalla."

        Eivät ne ole avuttomia C:hen verrattuna kuin suorituskyvyssä ja laitetasonohjelmoinnissa. Kaikessa muussa jyräävät C:een.
        (tai ei ainakaan heti tule mieleen muita juttuja...)

        Aivan. Turha kokeilla ruuvimeisselillä hakata naulaa seinään, koska vasaralla siitä suoriutuu helpommin ja tehokkaammin. Vasaralla taas on vaikea ruuvata ruuvia seinään.


      • sdfsdf
        IsoPää+++ kirjoitti:

        "Ainakin mielestäni mm. Perl, Python, Ruby tuntuu avuttomilta C:n rinnalla."

        Eivät ne ole avuttomia C:hen verrattuna kuin suorituskyvyssä ja laitetasonohjelmoinnissa. Kaikessa muussa jyräävät C:een.
        (tai ei ainakaan heti tule mieleen muita juttuja...)

        Tekstin pyörittely niillä on sinänsä helpompaa mutta muuten aika avuttomia.

        Parhaiten sopii juurikin pikku skriptien tekemiseen.


      • IsoPää+++
        sdfsdf kirjoitti:

        Tekstin pyörittely niillä on sinänsä helpompaa mutta muuten aika avuttomia.

        Parhaiten sopii juurikin pikku skriptien tekemiseen.

        Höpö höpö...

        Kyllä Python, Ruby, Perl yms kielillä kaikki on helpompaa kuin C/C , Java, C# yms. kielillä. Sanon näin vaikka enimmäkseen koodaan C/C :aa.

        Kerropas edes yksi esimerkki missä C:llä (tai muu vastaava) on helpompaa (pl. suorituskyky ja laitetaso, joissa C:llä on helpompi saada halutusti toimiva ohjelma, esim. äärimmäisen nopea tai ajuri).


      • sdfsfsd
        IsoPää+++ kirjoitti:

        Höpö höpö...

        Kyllä Python, Ruby, Perl yms kielillä kaikki on helpompaa kuin C/C , Java, C# yms. kielillä. Sanon näin vaikka enimmäkseen koodaan C/C :aa.

        Kerropas edes yksi esimerkki missä C:llä (tai muu vastaava) on helpompaa (pl. suorituskyky ja laitetaso, joissa C:llä on helpompi saada halutusti toimiva ohjelma, esim. äärimmäisen nopea tai ajuri).

        En ole tuo edellinen "sdfsdfsd" nimemerkillä kirjoittanut tyyppi mutta tuli tässä mieleen pieni koodipätkä jota oikeasti tarvitsin ja toteutin sen C:llä koska parhaiten sen hallitsen.

        Onnistuu siis varmaan suurimmalla osasta kielistä hyvin nopeasti mutta koska en hallitse varsinkaan Rubya, Perliä tai Pythonia kunnolla niin kysynkin miten tehdään jollain näistä kielistä ohjelma joka dumppaa tiedoston hexana ulos.

        C:llä onnistuu itseasiassa muutamalla koodirivillä. Omani on 2 riviä pitkä jos ei lasketa includea ja main funktioon meneviä rivejä.


      • IsoPää+++
        sdfsfsd kirjoitti:

        En ole tuo edellinen "sdfsdfsd" nimemerkillä kirjoittanut tyyppi mutta tuli tässä mieleen pieni koodipätkä jota oikeasti tarvitsin ja toteutin sen C:llä koska parhaiten sen hallitsen.

        Onnistuu siis varmaan suurimmalla osasta kielistä hyvin nopeasti mutta koska en hallitse varsinkaan Rubya, Perliä tai Pythonia kunnolla niin kysynkin miten tehdään jollain näistä kielistä ohjelma joka dumppaa tiedoston hexana ulos.

        C:llä onnistuu itseasiassa muutamalla koodirivillä. Omani on 2 riviä pitkä jos ei lasketa includea ja main funktioon meneviä rivejä.

        No, kokeillaan Rubylla, jota en edes kunnolla osaa (joten kuukletin). Tässäpä koko ohjelma:

        #!/usr/bin/env ruby

        File.open(ARGV[0]).each_byte { |c| printf "%.2X ", c }
        puts #rivinvaihto loppuun

        Siis jos tiedostossa text.txt on "abc", niin terminaalissa tulostaa:

        ./hex.rb text.txt
        61 62 63 0A 0A

        Hmm... Rubyn printf vastaa näköjään pitkälti C:n printf:ää... Tietysti pitäisi olla tarkistus että annetaan yksi argumentti ja tulostus pitäisi laittaa 10 hexaa per rivi tai jotain.

        Oliko muita ehdotuksia?


      • sdfsdfs
        IsoPää+++ kirjoitti:

        No, kokeillaan Rubylla, jota en edes kunnolla osaa (joten kuukletin). Tässäpä koko ohjelma:

        #!/usr/bin/env ruby

        File.open(ARGV[0]).each_byte { |c| printf "%.2X ", c }
        puts #rivinvaihto loppuun

        Siis jos tiedostossa text.txt on "abc", niin terminaalissa tulostaa:

        ./hex.rb text.txt
        61 62 63 0A 0A

        Hmm... Rubyn printf vastaa näköjään pitkälti C:n printf:ää... Tietysti pitäisi olla tarkistus että annetaan yksi argumentti ja tulostus pitäisi laittaa 10 hexaa per rivi tai jotain.

        Oliko muita ehdotuksia?

        Käsitteeleekö tuo tiedostot "text" moodissa vai binäärinä.

        Yleisesti "text" moodi I/O:ssa on perustavanlaatuinen suunnitteluvirhe.
        mm. Windowsin terminaali kärsii tästä. Perusmoodissa stdin ja stdout on "teksti" moodissa ja ohjelmalle ei voi putkittaa binäärejä ilman että ne hajoaa.

        Ongelman onneksi voi korjata ainakin C/C :ssa muuttamalla erillisellä posix funktiolla streamien moodin binääriksi.

        Unix/Linux alustoilla ei tälläisiä typeryyksiä ole.


      • IsoPää+++
        sdfsdfs kirjoitti:

        Käsitteeleekö tuo tiedostot "text" moodissa vai binäärinä.

        Yleisesti "text" moodi I/O:ssa on perustavanlaatuinen suunnitteluvirhe.
        mm. Windowsin terminaali kärsii tästä. Perusmoodissa stdin ja stdout on "teksti" moodissa ja ohjelmalle ei voi putkittaa binäärejä ilman että ne hajoaa.

        Ongelman onneksi voi korjata ainakin C/C :ssa muuttamalla erillisellä posix funktiolla streamien moodin binääriksi.

        Unix/Linux alustoilla ei tälläisiä typeryyksiä ole.

        Enpä tiedä kuinka on, tarttis varmaan testaa... miten se ongelma ilmenee?

        Ja toi voisi tosiaan olla binääri-moodissa:
        File.open(ARGV[0], "rb").each_byte { |c| printf "%.2X ", c }

        Tuolla http://stackoverflow.com/questions/130948/ruby-convert-file-to-string sanotaan että ehkä voi olla jopa tarpeen (miksiköhän?):
        s = File.open(filename, 'rb') { |f| f.read }

        Noin Rubyn File.open- yms.- kutsut on kirjoitettu C:llä, niin että ovatkohan ottaneet huomioon. On siellä ainakin #ifdef _WIN32-herjaa väliin työnnetty:
        http://www.ruby-doc.org/doxygen/1.8.4/file_8c-source.html

        Josta tulee mieleen että käyttöjärjestelmän läheisiä juttuja kutsuttaessa C:llä homma on varmaan helpompaa (koska KJ on yleensä C:llä koodattu) tai tietysti voi yrittää FFI-systeemillä.


      • sdfsdfsdf
        IsoPää+++ kirjoitti:

        Enpä tiedä kuinka on, tarttis varmaan testaa... miten se ongelma ilmenee?

        Ja toi voisi tosiaan olla binääri-moodissa:
        File.open(ARGV[0], "rb").each_byte { |c| printf "%.2X ", c }

        Tuolla http://stackoverflow.com/questions/130948/ruby-convert-file-to-string sanotaan että ehkä voi olla jopa tarpeen (miksiköhän?):
        s = File.open(filename, 'rb') { |f| f.read }

        Noin Rubyn File.open- yms.- kutsut on kirjoitettu C:llä, niin että ovatkohan ottaneet huomioon. On siellä ainakin #ifdef _WIN32-herjaa väliin työnnetty:
        http://www.ruby-doc.org/doxygen/1.8.4/file_8c-source.html

        Josta tulee mieleen että käyttöjärjestelmän läheisiä juttuja kutsuttaessa C:llä homma on varmaan helpompaa (koska KJ on yleensä C:llä koodattu) tai tietysti voi yrittää FFI-systeemillä.

        Ruby vaikuttaa varsin mielyttävältä kieleltä.

        Lisäksi Lua ja Python vaikuttaa kokelemisen arvoisilta.

        C parroille parhautta on "Pike" niminen kieli jonka soisi yleistyvän.

        http://en.wikipedia.org/wiki/Pike_(programming_language)
        http://pike.ida.liu.se/


      • 22
        IsoPää+++ kirjoitti:

        No, kokeillaan Rubylla, jota en edes kunnolla osaa (joten kuukletin). Tässäpä koko ohjelma:

        #!/usr/bin/env ruby

        File.open(ARGV[0]).each_byte { |c| printf "%.2X ", c }
        puts #rivinvaihto loppuun

        Siis jos tiedostossa text.txt on "abc", niin terminaalissa tulostaa:

        ./hex.rb text.txt
        61 62 63 0A 0A

        Hmm... Rubyn printf vastaa näköjään pitkälti C:n printf:ää... Tietysti pitäisi olla tarkistus että annetaan yksi argumentti ja tulostus pitäisi laittaa 10 hexaa per rivi tai jotain.

        Oliko muita ehdotuksia?

        tosiaan eka komentoriviargumentti? Jos on, mistä saa ohjelman nimen (hex.rb)?


      • kekeke33
        22 kirjoitti:

        tosiaan eka komentoriviargumentti? Jos on, mistä saa ohjelman nimen (hex.rb)?

        En ota tuohon kantaa mutta eikös kaikista helpointa olisi ottaa suoraa järjestelmän stdinistä redirectilä se tiedosto sisään.


      • fsdfsdfs
        22 kirjoitti:

        tosiaan eka komentoriviargumentti? Jos on, mistä saa ohjelman nimen (hex.rb)?

        ARGV[0] on ensimmäinen argumentti ei tiedoston nimi.

        Tiedoston nimi on rubyssä yksi globaali muuttujuista.. olikohan se nyt sitten "$0"..

        http://ideone.com/Q9C7y


      • IsoPää+++
        22 kirjoitti:

        tosiaan eka komentoriviargumentti? Jos on, mistä saa ohjelman nimen (hex.rb)?

        Ohjelman nimi löytyy muuttujasta $0. Kai ne ovat erikseen että voi tehdä luupissa mukavammin:

        ARGV.each { |a| puts a }


      • sdfsdfs
        IsoPää+++ kirjoitti:

        Ohjelman nimi löytyy muuttujasta $0. Kai ne ovat erikseen että voi tehdä luupissa mukavammin:

        ARGV.each { |a| puts a }

        Voisitko avata tuon koodinpätkän C-ohjemoijalle pala palalta.

        Näissä skriptikielissä on vähän esoteerisyyttä koska voidaan helpolla tehdä lyhyitä rivejä jotka tekevät yksistään monta asiaa ja lopulta ne näyttävät melko kryptisiltä rimpsuilta..

        Kyseinen pätkä nyt ei hirveänk kryptinen lyhykäsyydessään ole mutta ihmetyttää tuo erikoinen syntaxi.

        Mitä tarkoittaa |0| ?


      • IsoPää+++
        sdfsdfs kirjoitti:

        Voisitko avata tuon koodinpätkän C-ohjemoijalle pala palalta.

        Näissä skriptikielissä on vähän esoteerisyyttä koska voidaan helpolla tehdä lyhyitä rivejä jotka tekevät yksistään monta asiaa ja lopulta ne näyttävät melko kryptisiltä rimpsuilta..

        Kyseinen pätkä nyt ei hirveänk kryptinen lyhykäsyydessään ole mutta ihmetyttää tuo erikoinen syntaxi.

        Mitä tarkoittaa |0| ?

        ARGV on taulukko (globaali)
        each on Array-luokan metodi, joka käy läpi kaikki taulukon elementit. for-luupilla saa saman C:ssä.
        {...} on blokki eli lohko. Myös do ... end on blokki.
        |a| on blokin parametri

        Omituista lienee se että blokki on todellisuudessa nimetön funktio (oikeammin proseduuri) eli siis vain eri kuin koodiblokki C:ssä. Blokki siis välitetään metodille (esim. each) joka jossain vaiheessa kutsuu blokkia. Funktio-pointterin antaminen funktiolle taitaa olla C:ssä lähinnä tätä tai makro jossa annetaan parametrina koodi-blokki.

        Esimerkiksi voimme tehdä Array-luokalle oman each-metodin (kyllä, luokkia ei ole 'lukittu' Rubyssa):

        class Array
           def my_each
              if block_given?
                for i in 0...size
                  item = self[i]
                  yield item
                end
              end
              return nil
           end
        end

        Esim:

        ["a", "b", "c"].my_each { |c| puts c } # printtaa a b c

        Jolloin yield kutsuu blokkia ja item sijoitetaan c-muuttujaan.

        Näkyvyysalue (scope) on blokin ulkopuolelle:
        sum = 0
        [1, 2, 3].my_each { |i| sum = i }
        puts sum #printtaa 6

        Nerokasta, eikö vain.

        Lisää selitystä aiheeseen:

        http://www.cs.helsinki.fi/u/wikla/OKP/OppaatK07/ruby/#lohkot
        http://ruby-doc.org/docs/ProgrammingRuby/
        (kohdassa Containers, Blocks, and Iterators)

        Tarkemmin:
        http://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/

        Matsumoton haastattelu:
        http://www.artima.com/intv/closures.html

        Tietysti pitää itse koodata muutamia metodeja/funktioita ennen kuin homman tajuaa...


      • sdfsfsfsdfs
        IsoPää+++ kirjoitti:

        ARGV on taulukko (globaali)
        each on Array-luokan metodi, joka käy läpi kaikki taulukon elementit. for-luupilla saa saman C:ssä.
        {...} on blokki eli lohko. Myös do ... end on blokki.
        |a| on blokin parametri

        Omituista lienee se että blokki on todellisuudessa nimetön funktio (oikeammin proseduuri) eli siis vain eri kuin koodiblokki C:ssä. Blokki siis välitetään metodille (esim. each) joka jossain vaiheessa kutsuu blokkia. Funktio-pointterin antaminen funktiolle taitaa olla C:ssä lähinnä tätä tai makro jossa annetaan parametrina koodi-blokki.

        Esimerkiksi voimme tehdä Array-luokalle oman each-metodin (kyllä, luokkia ei ole 'lukittu' Rubyssa):

        class Array
           def my_each
              if block_given?
                for i in 0...size
                  item = self[i]
                  yield item
                end
              end
              return nil
           end
        end

        Esim:

        ["a", "b", "c"].my_each { |c| puts c } # printtaa a b c

        Jolloin yield kutsuu blokkia ja item sijoitetaan c-muuttujaan.

        Näkyvyysalue (scope) on blokin ulkopuolelle:
        sum = 0
        [1, 2, 3].my_each { |i| sum = i }
        puts sum #printtaa 6

        Nerokasta, eikö vain.

        Lisää selitystä aiheeseen:

        http://www.cs.helsinki.fi/u/wikla/OKP/OppaatK07/ruby/#lohkot
        http://ruby-doc.org/docs/ProgrammingRuby/
        (kohdassa Containers, Blocks, and Iterators)

        Tarkemmin:
        http://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/

        Matsumoton haastattelu:
        http://www.artima.com/intv/closures.html

        Tietysti pitää itse koodata muutamia metodeja/funktioita ennen kuin homman tajuaa...

        Ihmettelen hiukan miksi skriptikielissä käytetään sanallisia blokki elementtejä.

        Aaltosulkee tai mitkä tahansa yhden merkin sulkeet olisivat selkeämmät ja helpommin tulkattavat. Ei tuhlata turhaan tilaa ja arvokasta tulkkausnopeutta.


      • IsoPää+++
        sdfsfsfsdfs kirjoitti:

        Ihmettelen hiukan miksi skriptikielissä käytetään sanallisia blokki elementtejä.

        Aaltosulkee tai mitkä tahansa yhden merkin sulkeet olisivat selkeämmät ja helpommin tulkattavat. Ei tuhlata turhaan tilaa ja arvokasta tulkkausnopeutta.

        Ööö... missähän kohtaa käytetään "sanallisia blokki elementtejä"?


      • pkjppk
        IsoPää+++ kirjoitti:

        Ööö... missähän kohtaa käytetään "sanallisia blokki elementtejä"?

        class Array
        def my_each
        if block_given?
        for i in 0...size
        item = self[i]
        yield item
        end
        end
        return nil
        end
        end


      • jhjkhuhuihui
        sdfsfsfsdfs kirjoitti:

        Ihmettelen hiukan miksi skriptikielissä käytetään sanallisia blokki elementtejä.

        Aaltosulkee tai mitkä tahansa yhden merkin sulkeet olisivat selkeämmät ja helpommin tulkattavat. Ei tuhlata turhaan tilaa ja arvokasta tulkkausnopeutta.

        ""Ei tuhlata turhaan tilaa ja arvokasta tulkkausnopeutta.""

        Täh? Et taida olla koskaan toteuttanut tulkkia tai kääntäjää? Se, että kuinka monta merkkiä pitkä yksi tokeni on ei todellakaan merkitse yhtään mitään tulkkausnopeudessa. Eri asia olisi toki jos blokin alku- ja loppumerkit olisivat jotain kilotavun pituisia merkkijonoja, jolloin tiedostonlukunopeus alkaisi olla merkityksellistä.

        begin/end on helpompi lukea kuin {}. Pythonissa ei muuten ole ollenkaan loppumerkkejä vaan pelkästään sisennykset merkitsevät. Käytännössä tämä aiheuttaa sen, että sisäkkäisen luuppien loppukohtien arvaaminen on yhtä painajaista,


      • IsoPää+++
        pkjppk kirjoitti:

        class Array
        def my_each
        if block_given?
        for i in 0...size
        item = self[i]
        yield item
        end
        end
        return nil
        end
        end

        Ahaa, tarkoitit että koodilohkon lopetus on "sanallinen" siis tässä Rubyn tapauksessa "end". Tuskin sillä on mitään merkitystä onko se yksi merkki vai kolme, tavukoodiksi se kuitenkin (yleensä) käännetään.

        Rubyn ja monen muu "skripti"-kielen hitaus johtuu ihan muista jutuista (dynaaminen tyypitys kai on se suurin syy).


      • sdfsdfsdffsdf
        jhjkhuhuihui kirjoitti:

        ""Ei tuhlata turhaan tilaa ja arvokasta tulkkausnopeutta.""

        Täh? Et taida olla koskaan toteuttanut tulkkia tai kääntäjää? Se, että kuinka monta merkkiä pitkä yksi tokeni on ei todellakaan merkitse yhtään mitään tulkkausnopeudessa. Eri asia olisi toki jos blokin alku- ja loppumerkit olisivat jotain kilotavun pituisia merkkijonoja, jolloin tiedostonlukunopeus alkaisi olla merkityksellistä.

        begin/end on helpompi lukea kuin {}. Pythonissa ei muuten ole ollenkaan loppumerkkejä vaan pelkästään sisennykset merkitsevät. Käytännössä tämä aiheuttaa sen, että sisäkkäisen luuppien loppukohtien arvaaminen on yhtä painajaista,

        Kylläpäs koodin kirjoitusasu vaikuttaa suoraan tulkkausnopeuteen ellei tulkki itse aja ensin lähdekoodille jonkinlaista tiivistystä tai bittikoodimuunnosta.

        Ja tietysti mitä enemmän on tilaa tuhlattu koodin ulkoasuun sitä hitaammin tiivistys ja tulkkaus jokatapauksessa tapahtuu.

        Mielestäni { } on huomattavasti helpomi lukea kuin begin / end yms.. härveleitä. Tämä tietysti tulee C taustastani joten ei päde kaikille.


      • jhjkhuhuihui
        sdfsdfsdffsdf kirjoitti:

        Kylläpäs koodin kirjoitusasu vaikuttaa suoraan tulkkausnopeuteen ellei tulkki itse aja ensin lähdekoodille jonkinlaista tiivistystä tai bittikoodimuunnosta.

        Ja tietysti mitä enemmän on tilaa tuhlattu koodin ulkoasuun sitä hitaammin tiivistys ja tulkkaus jokatapauksessa tapahtuu.

        Mielestäni { } on huomattavasti helpomi lukea kuin begin / end yms.. härveleitä. Tämä tietysti tulee C taustastani joten ei päde kaikille.

        ""Kylläpäs koodin kirjoitusasu vaikuttaa suoraan tulkkausnopeuteen ellei tulkki itse aja ensin lähdekoodille jonkinlaista tiivistystä tai bittikoodimuunnosta.""

        Niin mutta kun nykyajan tulkit toimivat aina niin, että se ensin pistää sen leksikaalisen analysaattorin läpi ja sen jälkeen parserin läpi, jonka jälkeen se ajetaan. Jos vaikka for-luupin lopussa on "end", se luetaan ja tulkitaan tasan kerran eikä esimerkiksi joka luupilla. Teoriassa toki kolmen merkin lukeminen on joskus nopeampaa kuin yhden merkin, mutta ei nykyajan systeemeillä käytännössä, koska joka tapauksessa sieltä levyltä pitää lukea datat jossain kilon paloissa vähintään. C64-basic aikana tilanne oli toki toinen.

        ""Mielestäni { } on huomattavasti helpomi lukea kuin begin / end yms.. härveleitä. Tämä tietysti tulee C taustastani joten ei päde kaikille.""

        Mielestäni { } on kyllä kiva siitä, että se on nopea kirjoittaa, mutta oikeasti helppolukuisin on tyyliin if ... endif, for ... endfor. Kyllähän C:ssäkin on hyvää ohjelmointityyliä tehdä näin:

        for (i = 0; i < 10; i ) {

        } /* for */


    • dfgdgdf

      Kukaan C koodaaja ei kyllä oikeasti käytännössä käytä kommentteja lohkojen sulkevien sulkeiden kohdalla.

      Pakko kyllä sanoa että minunkin mielestäni normaalist aaltosulkeet on huomattavasti selkeämmät kuin kirjoitetut blokit.

      Ja vielä parempi jos sulkeet ja sisennys kirjoitetaan Allman & Ansi tyylillä.

      for(i = 0; i < 10; i)
      {
      /* sisennys neljä välilyöntiä */
      }

      Mutta joo.. makuasioista ei kannata kiistellä.

      • sdfsdfsdf

        Jahas ja suomi24 imaisi sisennykset..

        {{{{{}}}}}


      • dsfsfsdf

        for(i = 0; i < 10; i)
        {
        /* sisennys neljä välilyöntiä */
        }


      • dfgdgdfg
        dsfsfsdf kirjoitti:

        for(i = 0; i < 10; i)
        {
        /* sisennys neljä välilyöntiä */
        }

        PASKA.


      • näinnätimpää..
        dsfsfsdf kirjoitti:

        for(i = 0; i < 10; i)
        {
        /* sisennys neljä välilyöntiä */
        }

        EI tuo näyttää inhottavalta kun on tuon funktion (for)-perässä heti sulku, ja puuttuu tuo "{" for-lausekkeen päätteestä..

        for (i=0;i


      • dfsdfsdfsdfsd
        näinnätimpää.. kirjoitti:

        EI tuo näyttää inhottavalta kun on tuon funktion (for)-perässä heti sulku, ja puuttuu tuo "{" for-lausekkeen päätteestä..

        for (i=0;i

        Suomi24 feilaa sisennykset täysin.

        Edellä yritettiin seuraavaa:

        for (i=0;i


      • ööööö-----
        dfsdfsdfsdfsd kirjoitti:

        Suomi24 feilaa sisennykset täysin.

        Edellä yritettiin seuraavaa:

        for (i=0;i

        for (i=0;i


      • ööööö-----
        ööööö----- kirjoitti:

        for (i=0;i

        for (i=0;i


      • sfsfsdfsdf
        ööööö----- kirjoitti:

        for (i=0;i

        Millä kikkailulla siat toimimaan.


      • öööööö------

      • öööööö-----

      • öööööööö------
        öööööö----- kirjoitti:

        Ihan kuin söisi pari 160:stä, kokeillaan:
         //yksi space
          //kaksi spacea
           //kolme spacea
            //4 spacea
             //5 spacea

        Eipä syökään, optinen harha varmaan tai fontti hämää...


      • sdfsfsfsfsdfsd
        öööööö------ kirjoitti:

        Aaltosulun katsoin tuolta (html number 123): http://www.ascii.cl/htmlcodes.htm

        Ja välilyöntinä http://www.htmlbasictutor.ca/non-breaking-space.htm

        Toimiskohan html-numero 160 myös nbsp:n sijasta:
            //jos on sisennyt niin toimii, muutoin ei

        Minä kun oletin että tämä foorumi syö nuo html entity kooditkin pois. Muistaakseni olen kokeillutkin joskus mutta ei sitten näköjään. :D

        Suhteellisen paska kyllä tämä systeemi.


    • opetelkaavaan...

      En usko että C/C on ollenkaan vaikein vaan 12-coren AMD-prosessorin assembly nyt.

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

    Takaisin ylös

    Luetuimmat keskustelut

    1. Naiset miltä kiihottuminen teissä tuntuu

      Kun miehellä tulee seisokki ja ja sellainen kihmelöinti sinne niin mitä naisessa köy? :)
      Sinkut
      114
      8855
    2. Olet sä kyllä

      ihme nainen. Mikä on tuo sun viehätysvoiman salaisuus?
      Ikävä
      39
      2643
    3. Teuvo Hakkaraisesta tulee eurovaalien ääniharava

      Persuissa harmitellaan omaa tyhmyyttä
      Maailman menoa
      129
      2380
    4. Hiljaiset hyvästit?

      Vai mikä on :( oonko sanonut jotain vai mitä?
      Ikävä
      22
      1999
    5. Miksi kohtelit minua kuin tyhmää koiraa?

      Rakastin sinua mutta kohtelit huonosti. Tuntuu ala-arvoiselta. Miksi kuvittelin että joku kohtelisi minua reilusti. Hais
      Särkynyt sydän
      14
      1746
    6. Turha mun on yrittää saada yhteyttä

      Oot mikä oot ja se siitä
      Suhteet
      11
      1550
    7. Kyllä poisto toimii

      Esitin illan suussa kysymyksen, joka koska palstalla riehuvaa häirikköä ja tiedustelin, eikö sitä saa julistettua pannaa
      80 plus
      15
      1497
    8. "Joka miekkaan tarttuu, se siihen hukkuu"..

      "Joka miekkaan tarttuu, se siihen hukkuu".. Näin puhui jo aikoinaan Jeesus, kun yksi hänen opetuslapsistaan löi miekalla
      Yhteiskunta
      9
      1427
    9. Näkymätöntä porukkaa vai ei

      Mon asuu yksin. Mitas mieltä ootte ?
      Ikävä
      14
      1296
    10. Voi kun mies rapsuttaisit mua sieltä

      Saisit myös sormiisi ihanan tuoksukasta rakkauden mahlaa.👄
      Ikävä
      5
      1227
    Aihe