Ajattelin tässä tulevaisuudessa sitten kun opin C++ ohjelmoinnin perusteet hyvin niin alkaa opiskelee Win32API ja WinSockettia. Tällä ohjelmointi harrastuksellani haluaisin tehdä joskus netin käyttö hyötyohjelmia kuten pikaviestintää,chattia,IRC:tä,sharewarea jne... Eli Server ja Client ohjelmia enimmäkseen. Siksi opettelenkin tuon netin toimintaa tuossa sivussa. Joten kysymyksenä onkin se, että kun luin tuolta vanhoja keskusteluja tulin siihen tulokseen, että Javaa suositellaan tällaiseen ohjelmointiin, mutta nyt kun olen aloittanut tämän C++ ohjelmoinnin en kyllä luovu siitä ja kai silläkin voi tehdä hyötyohjelmia ihan hyvin. En tiedä, että sitten kun oppii tätä C++ ohjelmointia niin voiko helposti oppia sen Javankin vai tartteeko sitä edes opetella?
Mitä sanotte? Miten pitäisi menetellä?
(Otsikko ei ollu kovin hyvä :S )
C++:n ja Javan syntaksithan ovat niin lähellä toisiaan, että siinä ei suuria vaikeuksia tule olemaan, jos Javaa haluat myöhemmin oppia. Kummatkin kielet ovat myös oliopohjaisia. Uudet asiat liittyvät lähinnä ajatusmalleihin jne.
Itse Javalla ohjelmoineena voin sanoa sen nettiominaisuuksien olevan melko helppo oppia etenkin verrattuna C/C++:n vastaaviin. Java myös mahdollistaa suoraan netissä ajettavat sovellukset, Appletit. JavaWebStartilla on mahdollista käynnistää myös muita Javalla koodattuja ohjelmia netissä.
Tuohon "tarvitseeko Javaa edes opetella?" -kysymykseen en osaa sanoa mitään, sillä sehän on itsestä kiinni jaksaako sitä opetella. Tosin Javan etuihinhan lukeutuu esimerkiksi alustariippumattomuus(eli sama koodi pitäisi periaatteessa toimia niin Windowsilla kuin Linuxilla tai muilla käyttiksillä kunhan Java on asennettuna).
Vastaus on melko yksipuoleinen, sillä minulla ei ole kovinkaan suurta C++-kokemusta, mutta toivottavasti tästä on jotain hyötyä!
Azure kirjoitti:
Ajattelin tässä tulevaisuudessa sitten kun opin C++ ohjelmoinnin perusteet hyvin niin alkaa opiskelee Win32API ja WinSockettia.
Opettele mieluummin jotain, joka toimii vähän useammalla alustalla.
Azure kirjoitti:
Joten kysymyksenä onkin se, että kun luin tuolta vanhoja keskusteluja tulin siihen tulokseen, että Javaa suositellaan tällaiseen ohjelmointiin
Et linkannu tuonne suositteluun, mutta arvaan, että sen takana on ollu se fakta, että C++:lla noin pääsääntösesti on aika tuskallista koodata isoja graafisia softia. Koita vaikka tehdä pelkkä ikkuna sillä WinAPIlla*, ja sen jälkeen tee ikkuna vaikka Javalla Swingillä.
Heittäkääs muuten C++:istit widgettikirjastosuosituksia. Mikä on hyvä ja helppo?
Azure kirjoitti:
mutta nyt kun olen aloittanut tämän C++ ohjelmoinnin en kyllä luovu siitä ja kai silläkin voi tehdä hyötyohjelmia ihan hyvin. En tiedä, että sitten kun oppii tätä C++ ohjelmointia niin voiko helposti oppia sen Javankin vai tartteeko sitä edes opetella?
Ensimmäinen kieli on aina hankalin. Mitä useampia osaat, sitä helpompi on opetella uusia. Kielissä kun on aina ne samat perusasiat, ehto- ja toistorakenteet, oliot, yms.
Jos oikeasti osaat C++:aa, en usko, että Javan opettelu tuottaa mitään ongelmia.
*Joo, tiedän, että ei kukaan oikeasti koodaa raa'alle WinAPIlle.
Onko teidän mielestä siis hyvä opetella nuo C++ ohjelmoinnin perusteet ensin ja sitten kun haluaa tehdä windows raamisia servereita ja clienttejä niin siirtyä opettelemaan Javaa?
Wikipedian mukaan DC++ jakoohjelmakin on tehty C++ kielellä joten eikai se niin vaikeeta ole kunhan oppii joskus. Onko Win32 API:ille parempaa korviketta?
Onhan noita guikirjastoja c++:lle vaikka kuinka, ei niillä pitäisi ainakaan kovin hankalampaa olla kuin javan swingillä, esim: https://www.ohjelmointiputka.net/koodivinkit/
Minä olen ohjelmoinut sekä Watcom C++ että MicroSoft Visual C++ että SUN Java ohjelmointi kielillä..
en ymmärrä minkä takia et opettelisi Java kieltä ensin,
se on helpompi ja soveltuu ensimmäiseksi kieleksi todella hyvin,
ja jos kyllästyt niin Sun.Java on ilmainen..
ei tule kovinkaan montaa tilannetta mieleen jossa tarvitsisi C++ kieltä
kun käyttää Javaa, nyky Java on monipuolinen ja hyvä ohjelma..
(Javan muistinkäyttö on kenties vähän niin ja näin)
vinkkilinkki - http://java.sun.com/docs/books/tutorial/ -
kannattaa myös googlata -"java onlinetutorial socket/awt/swing"
nyky Java on nopea ja hyvä ohjelmointi kieli ja sama ohjelma toimii
niin windows linux kuin mac ympäristöissä ilman muutoksia..
//----
JariTapio / Helsinki
C++ voi ehkä olla aluksi aika iso pala, jos motivaatio ei ole kunnossa. Käsittääkseni Javalla pääset paljon nopeammin alkuun, eli saat toimivia ohjelmia vähemmällä työllä (mutuvaroitus, itse en osaa kumpaakaan kieltä, joten olen ihan kuulopuheilla tässä liikkeellä). Kuten Blazekin sanoi, kun opit jomman kumman, C++:n tai Javan, ei siirtymän sitten toiseen pitäisi kovinkaan vaikea olla.
Itse sanoisin että opiskele ensin Java. Mutta nähtävästi olet jo C++:n opiskelun aloittanut, voit ihan hyvin tietty jatkaa sitäkin. Sillä on vain taivas rajana, voit vaikka tehdä oman käyttöjärjestelmän, jos rahkeet ja aika riittää :)
Blaze kirjoitti:
Kielissä kun on aina ne samat perusasiat, ehto- ja toistorakenteet, oliot, yms.
Joissain funktionaalisissa kielissä ei ole toistoratkenteita ollenkaan, niiden sijaan käytetään rekursiota.
C++ on todellakin ehkä vähän vaikea aluksi (terv. kokemusta on..), mutta toisaalta taas oppii yhden kielen kautta todella ison läjän erilaista yleispätevää huttua, että sinänsä ihan käypä vaihtokauppa - usein on helpompi mieltää laajempi kokonaisuus kun siihen tutustuu heti alussa. Motivaatiota jos on, niin ihan hyvä reitti IMO.
Blaze kirjoitti:
Heittäkääs muuten C++:istit widgettikirjastosuosituksia. Mikä on hyvä ja helppo?
wxWidgets on ainakin hyvä, vaikkakin hiukan raskaampi ja moni|mutkaisempi(-puolisempi) (kuinka pahasti raiskasin kieliopin?), josta itellä on ihan myönteisiä kokemuksia. Koodia kyllä tulee, mutta niin tulee ulkoasuakin :)
FLTK (Fast, Light Toolkit) taas on vähän yksinkertaistetumpi, ja sitä myötä ehkä helpompi ja varmasti kevyempi, joka on ihan hyvä keskitason GUI:lle. Siinä on myös tuki 3D:lle. (OpenGL-rajapinta)
Kummatkin tukevat vähintäänkin kunnollista läjää Unix-pohjaisia käyttiksiä, wintoosaa ja Mac OS X:ää.
Jompi kumpi tahi kampi korvaa näistä WinAPIn ihan kevyesti, ja SDL-net taas netin kanssa sähellettäessä on aika kätsy monelle alustalle vääntyvä kirijasto.
Miten tuo wxWidgets DevPack asennetaan löytyykö mistään neuvoja vai osaatteko te sanoa suoraan. Itse kyllä löysin tuollaisia paketteja, mutta ei millään muista miten ne asennettin niin että se varmasti toimis. Olis hyvä jos sen pystys automaattisesti ladata koneeseen. Tuossa jotaki värkkäsin, mutta eihän se tietenkään tuottanu tulosta se sen asentaminen.
Nyt en todellakaan halua vielä aloittaa ohjelmoimaan sellasia kuin vasta sitten kun osaan perusteet täysin, mutta olis ihan kiva kokeilla jo nyt kääntää joku valmis lähdekoodi niin sais tuntumaa. Toivottavasti sitä sitten joskus oppis, mutta nyt olis kuitenkin hyvä oppia ensin uusien kirjastojen asentaminen Dev-Cpp:lle.
Azure: DevPak-tiedostot ovat Dev-C++:n paketteja, ja sen mukana tulee myös Pakman-ohjelma niiden asentamiseen. Yleensä Pakman asettuu asennettaessa oletusohjelmaksi DevPak-tiedostojen avaamiseen. Ne voi purkaa itsekin MinGW-kääntäjän käyttöön vaihtamalla niiden päätteeksi .tar.bz2 ja avaamalla ne sopivalla pakkausohjelmalla, mutta jos kerran Dev-C++:aa käyttää, kannattaa käyttää Pakmania DevPak-pakettien kanssa.
Kyllä minä tiesin, että DevPack on Dev-C++:n paketti ja että sillä on tuo Pakman ohjelma(Packet Manager), mutta se tässä onkin ongelma kun se jotenki ei suostu asentamaan niitä vaikka olen yrittäny ladata sourceforgesta ja vielä tuolla Dev-C++:n omalla pakettin lataus komponentilla tai miksi sitä nyt sanoisi. Mutta kokeilempa tässä pian uudelleen jos kerran väität, että pitäisi onnistua sillä kuitenkin.
Azure kirjoitti:
Kyllä minä tiesin.
Ja silti piti kysyä? ;)
Minulla ainakin toimi se wxWidgets, jonka Dev-C++:n oma paketinlataustoiminto osasi ladata (devpaks.orgista muistaakseni). Suosittelen tuon toiminnon käyttämistä, se löytynee Dev-C++:n Tools-valikosta. Jos ei auta, kannattaa varmaankin kertoa, mitä Pakman valittaa. Onhan varmasti Dev-C++:n uusin versio (siis 4.9.9.2)? Voit myös purkaa itse tiedostot oikeisiin paikkoihin, jos et muuten saa onnistumaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.