Tapahtumat

Kun kirjaudut sisään näet tässä ilmoitukset sinua kiinnostavista asioista.

Kirjaudu sisään

Miksei C poistunut käytöstä heti kun C++ keksittiin?

Vierailija
29.03.2018 |

Mitä etua C:ssä enää on?

Kommentit (78)

Vierailija
41/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Kompaktius ja nopeus.

Jos haluaa tehdä todella tehokasta koodia (esim. käyttöjärjestelmän ohjelmointi, pelit) on mentävä niin lähelle rautaa kuin on pragmaattista. C:sta ei ole enää pitkä loikka assembleriin.

Entä Fortran?

En ole sama henkilö, mutta tietääkseni toisin kuin C-kieli, Fortran ei ole yleiskieli, vaan soveltuu lähinnä matemaattiseen laskentaan. Esimerkiksi fyysikot saattavat käyttää sitä apunaan työssään.

Bah! Fortrania ole käyttänyt kukaan vuosikymmeniin. Fyysikot koodaa C++:lla tai Matlabilla.

Vierailija
42/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Ei ole yhtä oikeaa kieltä, riippuu käyttötarkoituksesta. Olen koodannut mm C:llä, C++:lla, C#:lla, Fortranilla, Visual Basicillä ja Lispillä.

Ja jokainen Turing-täydellinen kieli voidaan korvata jollain toisella Turing-täydellisellä kielellä.

No, kunhan tietysti tarvittavat ohjelmointirajapinnat muualle maailmaan löytyvät.

Sisältö jatkuu mainoksen alla
Sisältö jatkuu mainoksen alla
Vierailija
43/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Onko muka oikeasti niin, ettei koodareille ole töitä? Terveisin aloitteleva koodari

Vierailija
44/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

printf("Hello world");

Kehitä tuota vielä vähän.

Kelpaako tää sulle:

int main(){

printf("Hello World");

}

T. ex-C-koodari

#include puuttuu

void puuttuu

return puuttuu

t. toinen ex koodari

Pseudokoodi kertoo vain oleellisen.

Jos kerrotaan että funktio palauttaa jotain on oleellista kertoa myös mitä se palauttaa.

Vierailija
45/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Käyttäähän jotkut vielä latinaakin.

Vierailija
46/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Onko muka oikeasti niin, ettei koodareille ole töitä? Terveisin aloitteleva koodari

Töitä varmaan piisaa mutta kannattaa opetella elämään iso kyr.pä otsassa kun asiakas haluaa aina että asiat pitää tehdä väärin. Koska asiakkaan konsultti sanoi että väärin on oikein.

t. ex koodari

Sisältö jatkuu mainoksen alla
Vierailija
47/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Mutta noita webbisoftia pyörittää ihan hyvin javapohjaisinakin, sovelluspalvelimilla jotka osaa rinnakkaistaa käyttäjämäärän mukaan.

Eli käytännössä sitä korvataan raskaalla raudalla että ohjelmoijia täytyy pitää javapumpulissa.

Rauta on halpaa.

Jos koodarin työtunti oheiskuluineen maksaa 100 € niin aika nopeasti päädytään tilanteeseen, ettei kannata tehdä nopeaa koodia vaan tehdä mahdollisimman tehokkaasti valmista koodia. Koodataan nopeasti ohjelma joka tekee tehtävänsä ja jos se toimii liian hitaasti niin ostetaan lisää rautaa.

Mistä olet saanut sen käsityksen että nopean koodin tekeminen on jotenkin hitaampaa tai työläämpää kuin hitaan koodin tekeminen?

Öö.. Minä on ohjelmoin ammatikseni päivittäin?

Tuottavuus on Javalla selkeästi suurempi verrattuna C++ ohjelmointiin. Käytän työssäni molempia yli kymmenen vuoden kokemuksella.

Usein tuottavuutta voi vielä entisestään parantaa "vetämällä mutkat suoriksi". Tekemällä koodia jonka tietää olevan hyvin tehotonta, mutta nopeaa kirjoittaa. Usein paras vaihtoehto on saada toimivaa valmista koodia aikaan, eikä jäädä hieromaan merkityksettömiä yksityiskohtia. Mitä tahansa koodinpätkää voi optimoida nopeammaksi lähes rajattoman paljon. Se on loputon suo jos sille tielle lähtee. Silloin ei saa mitään valmista aikaan.

Vierailija
48/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Mutta noita webbisoftia pyörittää ihan hyvin javapohjaisinakin, sovelluspalvelimilla jotka osaa rinnakkaistaa käyttäjämäärän mukaan.

Eli käytännössä sitä korvataan raskaalla raudalla että ohjelmoijia täytyy pitää javapumpulissa.

Rauta on halpaa.

Jos koodarin työtunti oheiskuluineen maksaa 100 € niin aika nopeasti päädytään tilanteeseen, ettei kannata tehdä nopeaa koodia vaan tehdä mahdollisimman tehokkaasti valmista koodia. Koodataan nopeasti ohjelma joka tekee tehtävänsä ja jos se toimii liian hitaasti niin ostetaan lisää rautaa.

Mistä olet saanut sen käsityksen että nopean koodin tekeminen on jotenkin hitaampaa tai työläämpää kuin hitaan koodin tekeminen?

Öö.. Minä on ohjelmoin ammatikseni päivittäin?

Tuottavuus on Javalla selkeästi suurempi verrattuna C++ ohjelmointiin. Käytän työssäni molempia yli kymmenen vuoden kokemuksella.

Et sitten ole kymmenessä vuodessa oppinut hyväksi C++ ohjelmoijaksi.

Sisältö jatkuu mainoksen alla
Vierailija
49/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

printf("Hello world");

Kehitä tuota vielä vähän.

Kelpaako tää sulle:

int main(){

printf("Hello World");

}

T. ex-C-koodari

#include puuttuu

void puuttuu

return puuttuu

t. toinen ex koodari

Oikeassa olet. Sori, mun koodausajoista on jo liki kymmenen vuotta aikaa.

#include

int main(void)

{

printf("Hello, world!\n");

return 0;

}

#include <stdio.h>

Se \n puuttui lopusta. Sitä ajoin takaa.

Vierailija
50/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Palatakseni aloittajan kysymykseen: C++:lle tuli uusia kilpailijoita esim. C#, Dalvik, Java jne. mutta pääsyy C-kielen säilymiselle eräänä tärkeänä ohjelmointikielenä on se, että useat käyttöjärjestelmät on joko pääosin tai osittain koodattu C-kielellä. Tästä seuraa, että käyttöjärjestelmäpalveluita käyttävien sovellusten on kohtuullisen helppoa linkittyä näihin käyttöjärjestelmäkirjastojen rajapintoihin C-kieltä käyttäen.

Sisältö jatkuu mainoksen alla
Vierailija
51/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Palatakseni aloittajan kysymykseen: C++:lle tuli uusia kilpailijoita esim. C#, Dalvik, Java jne. mutta pääsyy C-kielen säilymiselle eräänä tärkeänä ohjelmointikielenä on se, että useat käyttöjärjestelmät on joko pääosin tai osittain koodattu C-kielellä. Tästä seuraa, että käyttöjärjestelmäpalveluita käyttävien sovellusten on kohtuullisen helppoa linkittyä näihin käyttöjärjestelmäkirjastojen rajapintoihin C-kieltä käyttäen.

Miten C ja C# eroaa?

Vierailija
52/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Hauskaa kuinka riiiippuvaisia ihmiset nykyisin ovat.

Sisältö jatkuu mainoksen alla
Vierailija
53/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Mutta noita webbisoftia pyörittää ihan hyvin javapohjaisinakin, sovelluspalvelimilla jotka osaa rinnakkaistaa käyttäjämäärän mukaan.

Eli käytännössä sitä korvataan raskaalla raudalla että ohjelmoijia täytyy pitää javapumpulissa.

Rauta on halpaa.

Jos koodarin työtunti oheiskuluineen maksaa 100 € niin aika nopeasti päädytään tilanteeseen, ettei kannata tehdä nopeaa koodia vaan tehdä mahdollisimman tehokkaasti valmista koodia. Koodataan nopeasti ohjelma joka tekee tehtävänsä ja jos se toimii liian hitaasti niin ostetaan lisää rautaa.

Mistä olet saanut sen käsityksen että nopean koodin tekeminen on jotenkin hitaampaa tai työläämpää kuin hitaan koodin tekeminen?

Öö.. Minä on ohjelmoin ammatikseni päivittäin?

Tuottavuus on Javalla selkeästi suurempi verrattuna C++ ohjelmointiin. Käytän työssäni molempia yli kymmenen vuoden kokemuksella.

Et sitten ole kymmenessä vuodessa oppinut hyväksi C++ ohjelmoijaksi.

En ole tuo Java-koodaaja, mutta on se C#:llakin tehokkaampaa kuin C++:lla.  Suorituskyky on muutenkin vain yksi tekijä. On kymmeniä muitakin tekijöitä ohjelmiston kehityksessä pitää arvioida ja kyllä C# ja Java aika ykkösiä on tuottavuudessa.

Vierailija
54/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Palatakseni aloittajan kysymykseen: C++:lle tuli uusia kilpailijoita esim. C#, Dalvik, Java jne. mutta pääsyy C-kielen säilymiselle eräänä tärkeänä ohjelmointikielenä on se, että useat käyttöjärjestelmät on joko pääosin tai osittain koodattu C-kielellä. Tästä seuraa, että käyttöjärjestelmäpalveluita käyttävien sovellusten on kohtuullisen helppoa linkittyä näihin käyttöjärjestelmäkirjastojen rajapintoihin C-kieltä käyttäen.

Miten C ja C# eroaa?

Yksinkertaistetusti. C:stä kehittyi C++ ja siitä kehittyi C#. Eli täysin eri. C# on oliopohjainen kieli. Lisäksi se käännetään byte-koodiksi eikä binääriksi.

Sisältö jatkuu mainoksen alla
Vierailija
55/78 |
29.03.2018 |
Näytä aiemmat lainaukset

C:llä kirjoitettua aliohjelmaa voi kutsua helposti mistä tahansa ohjelmointikielestä. Esim. juuri näistä uusista skriptikielistä. C++ rajapinnat pitää erikseen paketoida, jotta sama olisi mahdollista. Tästä syystä monet kirjastot ja ns. matalan tason rajapinnat on koodattu C:llä. Tämä syy siis lisättynä edellä mainittuihin.

Vierailija
56/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

printf("Hello world");

Kehitä tuota vielä vähän.

Kelpaako tää sulle:

int main(){

printf("Hello World");

}

T. ex-C-koodari

#include puuttuu

void puuttuu

return puuttuu

t. toinen ex koodari

Oikeassa olet. Sori, mun koodausajoista on jo liki kymmenen vuotta aikaa.

#include

int main(void)

{

printf("Hello, world!\n");

return 0;

}

#include <stdio.h>

Se \n puuttui lopusta. Sitä ajoin takaa.

Miksi rivinvaihto pitäisi olla?

Vierailija
57/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

Vierailija kirjoitti:

printf("Hello world");

Kehitä tuota vielä vähän.

Kelpaako tää sulle:

int main(){

printf("Hello World");

}

T. ex-C-koodari

#include puuttuu

void puuttuu

return puuttuu

t. toinen ex koodari

Oikeassa olet. Sori, mun koodausajoista on jo liki kymmenen vuotta aikaa.

#include

int main(void)

{

printf("Hello, world!\n");

return 0;

}

#include <stdio.h>

Se \n puuttui lopusta. Sitä ajoin takaa.

Miksi rivinvaihto pitäisi olla?

Koska muuten sotkee komentorivin.

Vierailija
58/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Minusta nuo kaikki oliokielet on täyttä ulostetta ja tarpeetonta kompleksisuutta. Olin sitä mieltä jo kun C++ ja Java tulivat. Silloin kaikki vähän naureskelivat, että hitsi mikä dinosaurus, vastustaa edistystä. Nyt kuitenkin alan työelämässä näen, että kaikenlaiset skriptikielet yleistyy ja oliopohjaiset ohjelmointikielet harvinaistuu. Lopulta ne on huomanneet että turhaa tehdä asioita vaikeasti kun ne voi tehdä helpostikin.

Täh. Ei oliopohjaiset kielet mihinkään ole katoamassa, mutta ei niillä aina kannata mitään scriptejä tehdä... jollain Rubyllä voi toki tehdä vaikka molempia. C:llä tehdään sitten toisia asioita. Kuinkahan suuri osuus jostain webbisovelluksista on tehty jollain oliopohjaisella? Aika lailla suurin osa.

Vierailija
59/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Vierailija kirjoitti:

Minusta nuo kaikki oliokielet on täyttä ulostetta ja tarpeetonta kompleksisuutta. Olin sitä mieltä jo kun C++ ja Java tulivat. Silloin kaikki vähän naureskelivat, että hitsi mikä dinosaurus, vastustaa edistystä. Nyt kuitenkin alan työelämässä näen, että kaikenlaiset skriptikielet yleistyy ja oliopohjaiset ohjelmointikielet harvinaistuu. Lopulta ne on huomanneet että turhaa tehdä asioita vaikeasti kun ne voi tehdä helpostikin.

Täh. Ei oliopohjaiset kielet mihinkään ole katoamassa, mutta ei niillä aina kannata mitään scriptejä tehdä... jollain Rubyllä voi toki tehdä vaikka molempia. C:llä tehdään sitten toisia asioita. Kuinkahan suuri osuus jostain webbisovelluksista on tehty jollain oliopohjaisella? Aika lailla suurin osa.

Näin vielä on, mutta selkeä koodi on poispäin niistä. Mikropalveluarkkitehtuurit, pilvipalvelut jne edistää tätä kehitystä. Ei enää tehdäkään sitä isoa j2ee sovellusta jossa se yksi sovelluspaketti sisältää kaiken vaan pieniä mikropalveluita johonkin docker swarmiin lillumaan. 

Vierailija
60/78 |
29.03.2018 |
Näytä aiemmat lainaukset

Vierailija kirjoitti:

Surullista on se että ainakaan Suomessa ei voi enää tienata leipäänsä koodaamalla optimoitua C:tä. Nykyään on tarjolla vain korporaatio-Javaa, pilveä ja oliomallinnusta.

Sulautettujen järjestelmien ohjelmoinnissa, tietoturvafirmoissa tai IoT hommissa voi hyvinkin päästä sitä ihan C:tä vääntämään ja optimoijia kunnioitetaan kovasti.

Kirjoita seuraavat numerot peräkkäin: yhdeksän kaksi kuusi