Niin, jos osaa c:n, (ei c ) Visual Basicin ja Java perusteet...niin mikä olisi seuraava askel, mietin kokoajan että mikä olisi se seuraava hyppäys ja minkä noista kielistä valitsisin ja onko millainen työmarkkinapula?
-Vai jäänkö kenties tähän seistä porottamaan ja leuhkimaan sellaisille ihmisille jotka eivät tiedä koneista mitään vaikka sellaista että minäpä osaan 3 eri kieltä heh...-No ei...eli olen tosiaankin kysymysmerkin kohdalla nyt että minkä tien valitsisin?
-Pikkusoftia saan aikaiseksi, mut jos haluan jotain suurempaa niin mikä näistä olisi sopivin kieli teidän mielestä? -Eli pikkuinen äänestys kehiin nyt heitetään =)
-Vai jäänkö kenties tähän seistä porottamaan ja leuhkimaan sellaisille ihmisille jotka eivät tiedä koneista mitään vaikka sellaista että minäpä osaan 3 eri kieltä heh...-No ei...eli olen tosiaankin kysymysmerkin kohdalla nyt että minkä tien valitsisin?
-Pikkusoftia saan aikaiseksi, mut jos haluan jotain suurempaa niin mikä näistä olisi sopivin kieli teidän mielestä? -Eli pikkuinen äänestys kehiin nyt heitetään =)
Vastaukset 17
Vanhimmat
Riippuu, mitä haluaa opiskella. Jos haluaa OO-materiaalia ja -ideologiaa, niin smalltalk/python/lisp. Jos haluaa opetella funktionaalista tyyliä niin haskell. Jos on kiinnostunut logiikasta, niin prolog.
Tietty eräs tapa on syventää jo opittujen kielien taitoja ja kirjoittaa oikeasti olio-orjentoitunutta softaa (ei get/set-metodeita, pelkkiä palvelupyyntöjä. Hidasta kirjoittaa, mutta koodista saa kyllä uskomattoman eleganttia)
Jaaha... OO:lla elegenattia koodia?
No, mun mielipide on, ellä olio-ohjelmointi voisi haudata jonnekin vanhan navetan taakse...ja syvälle.
OO on vaan tämän hetken huuma, en usko että sitä tullaan koskaan käyttämään samalla tasolla kuin normaalia _REHELLISTÄ_ koodausta.
Tämä vaan mun mielipiteeni. Jos olisin samassa tilanteessa kun viestiketjun aloittaja, niin jatkaisin C:llä.
Ohjelmointi on loppujenlopuksi vain eri algoritmien soveltamista eri ongelmiin.
Olen ehkä sitten tyhmä tai huono ohjelmoimaan, kun en näe MITÄÄN hyötyä olioista? Vai onko se kenties hyöty että koodista tulee hitaampaa...no onhan se jos valmistaisi mikroprosessoreita ;) ..vertaa Microsoft Intel.
Kaikki mitä mun on koskaan trvinnut tehdä on aina ollut helposti ratkaistavissa funktioilla.
No, jokainen omalla tavallaan.... ehkä olen jo liian vanha ymmärtämään olioiden tarpeellisuutta. En tarvinnut niitä silloinkaan kun väänsin konekieltä C-64:lla... ja juu, konekieltä..tosin basicin sisällä... (data-rivejä oli riittävästi ;)
Itse suosittelisin .NET Frameworkia ja Visual Studio 2003:a, jos olet kiinnostunut Windows-ympäristöstä. Tämä sen takia, että voit tehdä koodia juuri sillä mikä tuntuu itsestä parhaalta (käytännössä on hyvin vähän eroa käyttääkö C :aa, C#:a vai VB:tä, sillä Frameworkissa kaikilla on samat luokkakirjastot käytettävissä).
Itellä on vain 23 v. kokemus ohjelmoinnista joten en ota jyrkkää kantaa, mutta
Ekan kirjoittajan smalltalk, lisp, haskell ja prolog höpinät voit unohtaa - ei kaupallista merkitystä. Ainoastaan python voi näistä tarjota leipäpuun tulevaisuudessa.
Viken kanssa olen samoilla linjoilla siinä, että en ymmärrä tätä oo höpinää. Jonkun muka 'uudelleenkäytettävyyden' takia pitää tehdä hitaampaa koodia. Kyllä ne vanhanajan aliohjelmakirjastot oli ihan yhtälailla 'uudelleenkäytettäviä'.
Sitten tää viimenen hyväkäs. .net teknologia ei vaikuta mitenkään siihen, että VB on leikkikalu ja C on ammattilaisten kieli. Siis tällä hetkellä.
Eli sillä on vi**n paljon eroa opetteleeko c :aa vai vb:tä.
Mutta kysyjälle sanoisin, että noista sun mainitsemista Java olis varmaan sellainen mistä olis tulevaisuudessa eniten hyötyä.
Kyllä ne oliot on tullut 'jäädäkseen'.
kun saman saa tehtyä esim. C-kielellä...
C-kielellä tekee kun saman voi tehdä suoraan hexana
Minnes se assy jäi =D
No tosi mies koodaa bitti kerrallaan.
Muka-uudelleenkäytettävyys, jos sitä tarkoitit, oli aika hyvä kuvaus OO:n nykytilasta. Tarkkaan ottaen vika tuskin on niinkään OO:ssa kuin sen väärinkäyttäjissä.
OO lienee kuitenkin tämän hetken paras tapa luoda ohjelmaan rajapintoja ja joka tapauksessa se on pari kertaluokkaa parempi työväline kuin ne vanhanajan aliohjelmakirjastot. Käytännössä erot tulevat kuitenkin esiin vasta laajoissa ohjelmistoissa. Hello world -softaa voi kirjoittaa vaikka heksana tai bitti kerrallaan, kuten joku tuossa aikaisemmin ehdotti.
Noin 23 vuotta sitten pidettiin nyrkkisääntönä sitä, että ohjelmoija kykenee vielä hallitsemaan ohjelman, jossa on 50k koodiriviä. Omien kokemusteni mukaan ainakin suuruusluokka on oikea, vaikka nykyiset, tehokkaammat työvälineet ovat ainakin tuplanneet rivimäärän.
Mutta kun jo yksittäisessä luokassa kaikkineen saattaa helposti olla tuo 100k riviä koodia, jokainen ymmärtänee, että "vanhanajan aliohjelmakirjastoilla" ei yksinkertaisesti enää tule toimeen.
"Vanhanajan aliohjelmakirjastot" oli lainausmerkeissä siksi, että ilman OO-työkalujakin voi mainiosti tehdä OO-koodia. Todennäköisimmin käy kuitenkin niin, että tekijä joutuu tekemään kaiken itse, koska sovitut rajapinnat puuttuvat.
OO tai koodin uudelleenkäytettävyys ei välttämättä tarkoita hitaampaa koodia.
Eli siis vaihtoehdoiksi jäävät Java ja C , tämä onkin sitten vaikea päätös koska paluuta ei kai ole ;) -C kielen taidan, mutta siitä hyppäys Oliopohjaiseen C :n onkin sitten vaativampaa, mutta Java on uudenpi vaihtoehto koska sitä vasta tässä opiskelen.
Tämä vaikuttaa ehkä tyhmältä sillä itsehän kuitenkin päätän lopuksi kumman noista valitsen mutta kumpi vaihto ehto olisi "nopeampi" tai helpompi" ?
Jos ymmärrsin oikein NET teknologian, niin siinä C#, C++ ja VB tekevät samanlaisen välivaihekoodin, eli on ihan sama tekekö ohjelman C:lla vain VB.lla
Toiseksi itse vaihtaisin heti Javan VBasicin, kun se vasta on purkka. VB:lla sentään voi tehdä ihan oikeat ohjelmat, mutta Javalle en keksi muuta käyttöä kuin webselaimella suorittettava pikkupelit. Ja nekin kuorimittavat CPU:n 100%.
Jos pitäisi valita, niin .NET tai C++, mutta koska NETissä on kaikki, niin valitsisin ehdottomasti sen.
Jos haluaa tehdä laiteriippumatonta koodia muuallekin kuin esimerkiksi MS ympäristöön niin Java tai C ovat hyviä vaihtoehtoja, mutta puhtaasti MS ympäristöön koodattaessa kannattaa ehdottomasti valita .net ja joku sen tukemista kielistä (ainakin Java eli J# on hieman muunneltu perus Javasta muista en tiedä). Periaatteessa .netinkin sovellukset vaativat samanlaisen virtuaalikoneen kuin Javakin, joten teoriassa silläkin on mahdollista tehdä alustariippumatonta koodia, mutta tämä on vielä tällä hetkellä käsittääkseni vain teoriassa.
Mitä sitten tulee Javan prosessoritehojen vientiin niin ei se nyt ihan niin ole enää uusimpien virtuaalikoneiden kanssa. Paljon tietysti riippuu myös itse ohjelmoijasta, joka on avainasemassa sen suhteen miten nopeaa ja tehokasta koodista tulee. Javan alkuvaiheilla ja sen takia nykysovelluksissa on paljon ongelmia prosessorin tehojen viemisen suhteen, mutta käsittääkseni tällä hetkellä ollaan jo opittu virheistä ja osataan tunnistaa pullonkaulat. Pääasiassa näen, että hitaat ja raskaat sovellukset ovat pääosin ohjelmoijan oma moka.
En todellakaan ole mikään guru näissä asioissa ja sanomani ei todellakaan ole mikään viimeinen totuus, nämä ovat vain mielipiteitäni ja havaintojani lyhyen urani varrelta...
Kuka puhuikaan kaupallisuudesta lispin, haskellin, prologin yhteydessä? Niillä _ei_ ole kaupallista potentiaalia --- toisaalta ei ollut oliokielilläkään vielä parikymmentä vuotta sitten. Uusia paradigmoja pitää aina etsiä. Oliot eivät ole tulleet jäädäkseen, niiden tilalle on pakko keksiä uusia tapoja ohjelmistojen koon kasvaessa. Tälläkin hetkellä on uusia hypetyksiä olioiden tilalle --- kuten komponentit --- joita vanhat parrat sitten alkavat väheksymään ja muistelevat tippa linssissä vanhoja, menneitä aikoja. Lisp on vanha kieli ja edelleen parempi kuin useimmat nykyisistä --- puhumattakaan lisp-kommuunien merkityksestä koko alalle (metaohjelmointi noin esimerkiksi).
Uudelleenkäytettävyys on harha, sen (useimmat) olioihmiset myöntävät auliisti. Parhaimmat oliot ovat 100% uudelleenkäytettäviä, mutta hyvätkin jäävät vain 70-80% tuntumaan. Markkinamiehille sitä ei vain saa hakattua päähän. Hyvän, uudelleenkäytettävän olio-kehyksen (noin esimerkiksi) tekeminen vie paljon aikaa, useita uudelleenkirjoituksia ja tarkan tietämyksen sovellettavasta kohteesta (ellei kyseessä ole jokin yleinen palikka). Kuitenkin, hyvä ja uudelleenraapustettu aliohjelmakirjasto on yhtä hyvä.
Olioissa viehättää niiden abstraktio. Ohjelmaa suunnitellessa ei tarvitse keskittyä epäolennaisiin kohtiin, analyysi tulee tarkemmaksi, virheenjäljitys on helpompaa (pienet palaset, joiden toimintaa voi tarkastella erikseen) ja muutenkin oliokoodin saa kohtuu helposti teollistettua. Sitä naputtelemaan ei tarvita huippuosaajia --- toisaalta huonot koodarit johtaa bloatwareen ja muuhun ikävämpään, mutta ei paskaa saa muuksi muutettua.
Nopeudesta vielä sen verran, että hyvin tehty C++ on jo nykyään astetta nopeampaa kuin C. C++ alkaa jo mennä ohi Fortranistakin, mikä on aika yllättävää. (Tosin tarpeeksi monimutkaisissa järjestelmissä Lisp hakkaa edelleen C++:nkin :) Template-alikieli C++:n sisällä antaa aika vapaat kädet kädettää optimointeja.
VB on kasa paskaa, siitä ei mihinkään pääse. C++ on ammattilaisten kieli, mutta ei siitä miksikään ohjelmoinnin mallikieleksi kyllä ole --- se on paska vain eri tavalla kuin useimmat muut kielet.
Vuosia on ollut markkinoilla, enkä ole tavannut vielä yhtään oikeata kunnollista ohjelmaa joka olisi tehty Javalla.
Ja selaimella pelattava risti-nolla peli ei ole oikea kunnollinen ohjelma, eikä palvelinpuolella toimiva vieraskirja joka tarvitsee 5Gt muistia palvelimelta ei ole myöskään sellain.
Kunnollisiohjelmia ovat esim MS Office, Adobe PhotoShop, Macromedia Studio, jne.. näyttäkää edes yksi vastaava ohjelma javalla toteutettuna.
hacker ei tiedä paskanverta .Net teknologiasta ja ASP:sta, missä VB on ylivoimainen verrattuna muihin kieleihin.
ASP, .NET ja VB:hen en tosiaan ole tutustunut. VB voi kyllä tuollaisissa hommissa aivan paikallaan.
C on hyvä kieli /käytännössä/, mutta sillä on pahoja /kielitieteellisiä/ virheitä --- heikohko tyypitys, moniperinnän kädetys jne. Käytän itsekin C :aa mieluummin kuin Javaa. (Alustariippumattomuus on ansi-C:llä miltei sama kuin Javalla. Alustalta ei vain vaadita niin paljoa tehoa)
Javan kohtaloksi koitui raskaus ja sulkeutuneisuus. C# voi olla seuraava hypekieli, jota sitten kaikkien on pakko käyttää. Javalla on tällä hetkellä enemmän koodaajia kuin C :lla --- tosin tilanne voi olla muuttunut takaisin C :n hyväksi. (C :aa on parannettu tarpeeksi, että siitä on tieteelliseen laskentaan yms. 3D-ohjelmointi on nousussa, hyviä kirjastoja jne jne)
En kuitenkaan halua lietsoa sotia eri käyttäjäkuntien välille. Olen vain kiinnostunut ohjelmoinnin teoriasta. Kuitenkaan harvemmin arkielämän toimiva ratkaisu on teoreettisesti kaunis ja elegantti. Siksi vouhotan moisista turhuuksista.
Koodaa, niinkuin muutkin hintit visua basicillä
seuraava askel c/c ylös päin on VHDL. aluksi aika vaikean selkoista. on kuitenkin aika paljon käytössä piirien ohjelmoinissa ympäri maailmaa. eli töitä varmasti löytyy tuolekkin kielelle. (itse törmäsin siihen altera max plus II:ssa[eräs graaffinen suunnittelu/ohjelmointi-ohjelma]
pientä lisä infoa:
http://www.gmvhdl.com/introduc.htm
http://koti.mbnet.fi/siliconf/JukkaTolonen/Prosessori/altera/maxplus2.html#HD_NM_11
http://koti.mbnet.fi/siliconf/JukkaTolonen/Prosessori/altera/kuvat/vhdled.gif
tietty jos puuhasteleminen elektroniikan parissa ei kiinosta, niin sitten ei välttämättä kannata alkaa opiskelemaan tuota..