Kumpi on yleisempi kieli tehdä ohjelmia linuxeille?
Entä basic, mitä basic-kääntäjiä (niin ei siis tulkkeja vaan binaareja tekeviä kääntäjiä) löytyy *buntuille, debianille ym.?
Olen C-kielissä melkoisen nyyppä, basicilla tullut vähän enemmän puuhasteltua joten pidän sen varalla jos C-kielellä en onnistu saamaan mitään aikaan.
Niin ja tarkoitus siis tehdä ajokelpoisia binaareja (windows-maailmassa puhutaan exe-tiedostoista) jotka toimivat ilman tulkkeja, ei siis tarvii levittää koko ohjelmointiympäristöä ohjelman mukana. Tulkit sopii kokeiluun mutta kääntäjät parempia kun haluaa oikeasti tehdä jotain.
Entä basic, mitä basic-kääntäjiä (niin ei siis tulkkeja vaan binaareja tekeviä kääntäjiä) löytyy *buntuille, debianille ym.?
Olen C-kielissä melkoisen nyyppä, basicilla tullut vähän enemmän puuhasteltua joten pidän sen varalla jos C-kielellä en onnistu saamaan mitään aikaan.
Niin ja tarkoitus siis tehdä ajokelpoisia binaareja (windows-maailmassa puhutaan exe-tiedostoista) jotka toimivat ilman tulkkeja, ei siis tarvii levittää koko ohjelmointiympäristöä ohjelman mukana. Tulkit sopii kokeiluun mutta kääntäjät parempia kun haluaa oikeasti tehdä jotain.
Vastaukset 37
Vanhimmat
C && C . Muita vaihtoehtoja sinulla ei tule oleman.
"Kumpi on yleisempi kieli tehdä ohjelmia linuxeille?"
Kumpaakin käytetään.
Tulkattavien kanssa ei kannata alkaa pelleilemään jos kyseessä on yhtään suurempi projekti kuin matopeli.
Onhan linuxeille mm. erilaisia Pascal-versioitakin, heti tulee mieleen Lazarus. Ja mitä tulkkeihin tulee, niin juuri sanoinkin aloituksessa että tulkkeja en halua käyttää vaan vain kääntäjiä.
Ai niin, mites sen basicin kanssa? Kai nyt linuxeillekin löytyy joku basic-kääntäjä? Olis meinaan helpompi aloittaa sillä.
"Ai niin, mites sen basicin kanssa? Kai nyt linuxeillekin löytyy joku basic-kääntäjä?"
En tiedä yhtään.
"Olis meinaan helpompi aloittaa sillä."
Jaa? Voihan se olla niinkin. Kannattaa kuitenkin ehkä ennemmin alkaa opettelemaan sitä C:tä ;)
"Onhan linuxeille mm. erilaisia Pascal-versioitakin, heti tulee mieleen Lazarus. "
Onhan niitä ja vaikka mitä muutakin. Totuus on kuitenkin se että C-kielellä on hyvin vahva asema. Tietenkin on hyvä muistaa että eri asioita on helpompi toteuttaa jollain toisella kielellä. Homma riippuu hyvin paljon lopullisesta tarkoituksesta. Esim. laitteistoajuria tuskin kannattaa alkaa tekemään ihan millä tahansa kielellä.
se on mun käsittääkseni ihan kääntäjä eikä tulkki ja toimii windowsissa ja linuxissa, ts. linuxille on olemassa ihan oma natiivi linux-versionsa eikä tarvii ajaa winen avulla.
paljonko on pythonilla kirjoitettuja ohjelmia. Eikä tarvitse levittää tulkkia ohjelman mukana, jos ei aio windowsille julkaista valmispakettia...
tehdä ohjelma josta on sekä windows- että linux-versiot. Mahdollisesti myös dos-versio. Siksi haluaisin kielen jolla voi tehdä ohjelmia moneen ympäristöön. Macillekin tekisin mutta en omista ainuttakaan Macia jolla voisi testata, so..
C on sitten varmasti "vaivattomin".
dos??
Niin?
"myös dos-versio"
No älä nyt oikeasti viitsi..
Aika monet gtk-examplet tehdään sekä c:lle että pythonille, pythonin pitäisi olla varsin tehokas ja helposti omaksuttava joskin tulkattava ja sikäli jossain hidasteleva. Meinaan että gnomen ohjelmiin sattuisi kuitenkin.. ei sentään dosiin ;D
kyllä päivän/illan/yön paras :D
Mahtaisiko sille saada edes toimivaa ajan tasalla olevaa kääntäjää mistään kovin helpolla :)
tulkattavien kielten hitaus on hmm... hidasta. En tuosta pythonin nopeudesta tiedä, mutta ainakin javan nopeus on lähinnä vitsi. Noilla tiedoilla mitä aloittaja on antanut niin suosittelisin edelleen sitä C:tä.
Vaikea on muuta sanoa, kun ei tiedä mitä hän on tekemässä.
Olen mittaillut Javaa ja ei se välttämättä ole kuin 2x hitaampi kuin C. Python sitten on jotain 100x hitaampi..
pitkälti siitä, tehdäänkö matopeli vai joku helvetin iso tietokanta ohjelmisto.
http://dan.corlan.net/bench.html#COPT
Tuossa on aika yksinkertaisesti vertailtuna eri kielien nopeuksia. Java on hämmästyttävästi miltei C:n tasolla jos minkäänlaisia kutsuja ei käytetä. Niiden kanssa homma sitten kuseekin jo välittömästi.
Käytännössä koodi yleensä kuitenkin on pidempi kuin 2 funktiota ja kaikkihan tiedämme miten hidas java on kun koodia alkaa olla enemmän(2x ei varmasti pidä silloin paikkaansa).
Toki myös kääntäjällä on merkitystä, koodaustyylillä ja vähän kaikella.
koodaustyylistä.
-----------------------------------------
int tradam(int x){
x ;
return x;
}
int main(){
int a=0;
return tradam(a);
}
------------------------------------
ylempi on hitaampi
-----------------------------------------
inline int tradam(int x){
x ;
return x;
}
int main(){
int a=0;
return tradam(a);
}
------------------------------------
Pyythono luikerteleekin sitten jossain.. Nimen voisi muuttaa Turtle:ksi.
En tiedä milloin tuo 'testi' on tehty, joten tilanne on voinut sittemmin muuttua. Tuskin kuitenkaan kovinpaljoa.
Eli loppujen lopuksi ohjelman nopeus on pitkälti koodaajasta riippuvainen asia :)
No mutta se siitä. Alottaja ottanee käyttöönsä C:n niiden binääriensä tekoon :D
hihihi...Dos.... :D:D:D
Ihan oikeasti ja vakavissani. Jos en muille niin itselleni. Dossille on, usko pois, vielä käyttöä. Vaikka vähemmän onkin niin kumminkin.
vaan....APUOHJELMIA, engl. TOOLS.
Siksi Dossillekin voi vielä tehdä jotain pientä. Samoin wintoosallekin voisi tehdä appareita.
Siksi pyyttonit ei tule kyseeseen, ei edes ne pyyttonit jotka luikahtaa housuun (yleensä tosin vain Penteillä).
Ainoat vaihtoehdot siis basic ja C. joista Basic on mulle tutumpi joten haluaisin aloittaa sillä. Dosille ja wintoosalle mulla on jo basic-kääntäjät (Quick Basic 4.5, Visual Basic for Dos 1.0 joka onkin ainoa Dossille tehty VB, Visual Basic 2.0 std, Visual Basic 3.0 Pro sekä Visual Basic 6.0 Learning edition) ja joku mainitsi jo Freebasicin joten sitä pitää kokeilla koska sen saa linuxillekin.
Pitää tuo ihan lisäyksenä vielä laittaa että ei sit Javaakaan. Mä vihaan Javaa, enkä ole siihen törmännyt muualla kuin yhdessä verkkokaupassa. Sampopankissa kuuleman mukaan myös on Javaan perustuva systeemi mutta onneksi en ole sen paskapankin asiakas enää joten ei ole tarvinnut sen kanssa olla tekemisissä.
En ole Javasta edes kuullut mitään hyvää, pelkkiä negatiivisia juttuja vain.
Jos haluat binääreitä tehdä jotka toimii ilman mitään ajoympäristöjä ja joita haluat siirtää joka paikkaan niin tarvitset standardoidun kielen joka tekee natiivikoodia. C on paras, ja C jos haluat olioita. Jotkut basic viritykset on epästandardeja ja niiden kanssa on kusessa. Se basic kun on erilainen riippuen siitä millä työkalulla teet ja työkalut tulee ja menee joten ohjelmat lahoaa ja ne pitäisi sitten kirjoittaa uudestaan ja joka paikkaan ei kaikkia aina saa.
C# olisi yksi vaihtoehto mutta tämän ajoympäristöä ei vielä ole joka paikassa, mutta jos teet Monolla ja linkkaat Monon ajoympäristön mukaan niin sitten toimii sekin. Tosin Hello World voi viedä sitten pari megaa tms.
"En ole Javasta edes kuullut mitään hyvää, pelkkiä negatiivisia juttuja vain."
Montakohan niistä sitten pitää paikkansa...
Todellisuudessa, Java on paras virtuaalikoneessa toimiva kieli/työkalu tänä päivänä. Ei siis ole natiivikoodille tehty vaan sitä varten, että koneessa on Javaympäristö ja kun se löytyy niin Javalla tehty ohjelma toimii. Kieli on epästandardi, mutta sitä kehitetään pitkälti yhteistyössä vaikka Sun Microsystemsillä on yksistään oikeus kumota päätöksiä, että se on sellainen semiturvallinen vaihtoehto.
Java on paras vaihtoehto tällä hetkellä jos haluaa suorituskykyistä ja skaalautuvaa softaa palvelimeen tai haluaa tehdä selaimeen rikkaan sovelluksen mihin ECMAScript ei riitä, tai haluaa saman softan toimimaan sellaisenaan joka paikassa ettei tee erikseen käännöksiä eri käyttöjärjestelmille ja arkkitehtuureille. Vaatimuksena on kuitenkin se, että Javaympäristö pitää löytyä.
Mutta kun et halunut mitään ajoympäristöjä niin sinulle oikea vaihtoehto on lähteä opettelemaan C:tä.
"Ainoat vaihtoehdot siis basic ja C. "
Ainoa vaihtoehto on C. basicin mukana saa roudata järkyttävän määrän runtimea jos meinaa niitä hirviöitä saada toimimaan missään.
Turhaan sinä kidutat itseäsi basicillä. Ota vain suoraan härkää sarvista :)
"Siksi Dossillekin voi vielä tehdä jotain pientä"
Se on kyllä täysin turhaa puuhaa.
sontaa, minkäs sille voi.
"Mä vihaan Javaa, enkä ole siihen törmännyt muualla kuin yhdessä verkkokaupassa."
oletpa selvinnyt vähällä :)
"Ainoa vaihtoehto on C. basicin mukana saa roudata järkyttävän määrän runtimea jos meinaa niitä hirviöitä saada toimimaan missään.
Turhaan sinä kidutat itseäsi basicillä. Ota vain suoraan härkää sarvista :)"
Olen koittanut ottaa C-kielestä vähän selkoa, mutta monet toiminnot on perkeleellisen hankalia, esim. kun basicissa on string eli merkkijono niin tämä puuttuu C-kielestä. C-kielessä joutuu tekemään kikkailuja ja määrittämään esim. char:lle pituuden, siis esmes näin:
C:ssä:
char nimi[50]
kun taas basicissa ei tällaista tarvita koska se sisältää tyypin merkkijono. Entä jos en esim etukäteen tiedä kuinka pitkä tulee olemaan charin tarvitsema tila?
Tää on vain yksi esimerkki siitä miksi C-kieli on vaikeampaa kuin basic.
Sitäpaitsi ei niitä runtimeja tarvii kuljettaa mukana, varmaan on vb:ssä sellasia versioita että niillä voidaan tehdä täysin stand-alone versio binaarista joka ei runtimeja tarvitse (ei tosin tuo VB6 Learning edition kykene siihen mutta Pro-versio varmaan pystyy), exe:n koko tosin hieman kasvaa silloin. Ja sitten Linuxeissa tuollaisia runtimeja tuskin edes käytetäänkään.
VB for Dosissakin on tällainen mahdollisuus, voit kääntää exe:ksi joko niin että käytetään runtimeja tai sitten voit kääntää täysin stand-alone exen jolloin runtimeja ei tarvita. Ihan käyttäjän omasta valinnasta riippuen.
>"Siksi Dossillekin voi vielä tehdä jotain pientä"<
"Se on kyllä täysin turhaa puuhaa."
Ei mielestäni. En minä mitään varsinaisia sovelluksia meinaa dossille tehdä, vaan ainoastaan apuohjelmia. Dos mahtuu mihin vaan, ja se pyörii missä vaan koneessa joten jos tarvii ainoastaan suorittaa jokin tietty toimenpide niin eikun io.sys, msdos.sys, command.com tarpeelliset härpäkkeet mukaan...mahtuu vaikka korpulle joten vanhatkin koneet voi hyödyntää.
>"Mä vihaan Javaa, enkä ole siihen törmännyt muualla kuin yhdessä verkkokaupassa."
oletpa selvinnyt vähällä :)<
Kyllä ja olen siitä hyvilläni. Ei tarvitse turhia tuollaisia kökköjä koneessaan pitää. Tosin parempi olis jos tuokin verkkokauppa luopuisi Javasta, se kun ei tuo mitään erikoisempaa toiminnallisuutta vaan saman voi tehdä muillakin keinoilla. Lisäksi kun tuo on vielä sellanen kauppa että sieltä voi ostaa sellasta kivaa roinaa mitä ei muualta löydä. :(
..selaimeen: http://www.runescape.com/
Ja palvelinpuolellahan Java on loistava, aivan kuten vaikka PHP.
"Olen koittanut ottaa C-kielestä vähän selkoa, mutta monet toiminnot on perkeleellisen hankalia, esim. kun basicissa on string eli merkkijono niin tämä puuttuu C-kielestä. C-kielessä joutuu tekemään kikkailuja ja määrittämään esim. char:lle pituuden, siis esmes näin:"
C :sta löytyy string luokka, C:ssä merkkijonot on vain taulukkoja missä merkkejä tai dynaamisesti varattuja muistialueita mihin osoitellaan pointterilla.
"Entä jos en esim etukäteen tiedä kuinka pitkä tulee olemaan charin tarvitsema tila?"
Kuten yllä sanoin, dynaamisella muistin varauksella. Toki voit kirjoittaa itsellesi C:lle jonkun merkkijonoluokan ja varmasti valmiina löytyy joku Unicode kirjasto missä voit käytellä Unicodena merkkijonoja ja tiedostoja. C on hyvä kieli mutta siinä ei oikein ole mitään valmiina ja siitä puuttuu jopa merkkijonokäsittelyä.
C nyt onkin oikeastaan nykypäivänä matalamman tason juttuihin kuten kirjastoihin mutta se olisi hyvä opetella ensiksi ja sitten vasta C missä on vähän oiottu asioita, mutta C :n kanssa pitää olla hyvin varovainen sillä se kieli on suunniteltu pitämään ohjelmoijien palkat korkeana.. Eli sillä voi hyvin helposti tehdä ohjelmia joita ei vaan saa toimimaan koska kieli mahdollistaa tekemään asioita väärin. Esimerkiksi operaattorien ylikuormitukset, moniperintä, iostream yms.
Eli joo, tämä on konekielen jälkeen sieltä hankalammasta päästä mutta näin tilanne vain on on nykypäivänä.
Yleensä järkevämpää on näpertää omaan käyttöön pikkuohjelmia Pythonilla vaikka moniin käyttiksiin tarvitsee hankkia eriskeen se ajoympäristö ja vaikka kieli onkin hidas. Se on sellainen nykypäivän Basic. Jos sitten haluaa tehdä vähän parempaa laatua niin sitten viilaa sitä C:tä ja C :aa systeemin kirjastoilla.
Pythonissa sitten on erittäin laajat standardikirjastot mikä helpottaa sitten hommia kun C/C :ssa sitten tarvitsee enemmän niitä kirjastoja erikseen tai niitä pitää itse tehdä. Sama vahvuus on myös Javassa sillä tämän standardikirjastot sisältää ~kaiken.
"En minä mitään varsinaisia sovelluksia meinaa dossille tehdä, vaan ainoastaan apuohjelmia. Dos mahtuu mihin vaan, ja se pyörii missä vaan koneessa joten jos tarvii ainoastaan suorittaa jokin tietty toimenpide niin eikun io.sys, msdos.sys, command.com tarpeelliset härpäkkeet mukaan...mahtuu vaikka korpulle joten vanhatkin koneet voi hyödyntää."
Eli sinun pitäisi tehdä C/C :lla. Djgpp:ssä kun on GCC ja saman kääntäjän saa Windowsille myös, on valmiina linuxeissa, BSD johdannaisissa ja Mac OS X:ssä ja joka paikassa.
on monta muutakin veikeää juttua kuten se, että saa läiskiä muuttujiin sisällöksi mitä lystää ja muutenkaan ei tarvitse välittää oikeastaan edes mistään perusasioista. Koodia voi tehdä yhteen pötköön ilman funktioita jos huvittaa ja liekö tuolla rivin vaihdollakaan on mitään merkitystä(
Miksi se olisi hankalaa?
"Se on ihan hauskaa kun voi 'tuottaa' koodia äkkiä oikeastaan ajattelematta mitään, vähän kuin javallakin."
Javahan on ihan natsikieli ja pakottaa vahvasti oliomalliin. Tämä onkin suosittu kun on useampi kokki ttekemässä soppaa ja ohjelmoijien tasoissa on vaihtelua kun Java pakottaa väistämättä huononkin ohjelmoijan tekemään jokseenkin järjellistä koodia.
Todellisuudessa oliomalli ei ole mitenkään ideaalinen mutta sillä saa huononkin ohjelmoijan ojennukseen. Funktionaalinen rakenne on paljon paremmin hallittava.
"Miksi se olisi hankalaa?"
Eipä taida Flash tajuta mistään 3D kiihdytyksistä hittojakaan eikä muutenkaan toimi niin hyvin kuin Java ja Moonlight on ihan vaiheessa. Pelkällä Javascriptillä homma ei myöskään onnistu.
Vai millä tavalla muuten tekisit tuollaisen pelin selaimeen paremmin?
en ajatellut että sen on just pakko olla jossain selaimessa :)
Onhan siinä syntaksi.
Ohjelman toimintahan on periaatteessa täysin sama kuin millä tahansa muullakin. clienttia ajetaan toisessa ja serveriä toisessa päässä. clientin gui n alustana nyt vain sattuu olemaan selain :S Siitä voi sitten halutessaan tietysti olla montaa mieltä onko se järkevää.
Joka tapauksessa java on epävakaa ja hidas räpellys eikä asia muutu miksikään, vaikka sille ei kunnon korviketta olisikaan.
Eiköhän nyt vain lopeteta jänkkääminen, eihän tällaista jaksa tervejärkinen.
"Joka tapauksessa java on epävakaa ja hidas räpellys eikä asia muutu miksikään, vaikka sille ei kunnon korviketta olisikaan."
Kun se Java ei ole mikään epävakaa ja sillä pyöritetään aika tärkeitä juttuja kuten rahaliikennettä monessa paikoissa. 2x hitaampi kyllä kuin C, mutta nopein virtuaalikoneratkaisu mille voi olla käyttöä myös esimerkiksi turvallisuussyistä tai jos ei haluta tehdä käännöksiä joka paikkaan.
Suurin osa Javan hitaudesta kitinät kyllä tulee jostain menneisyydestä, sillä Java 6:n Update 10:ssä se ajoympäristö nopeutui ihan hemmetisti.
Mini-filosofiana esitän että jos henkilö tekee itselleen ohjelman niin eihän sillä ole väliä millä se on tehty ja millainen se on, tai jos tekee vielä kaverillekin niin silloinkin on pelivaraa mutta jos tekee "suurelle yleisölle" niin ohjelman on oltava graafinen, selkeä ja helppokäyttöinen, nyt eletään nykyaikaa kuitenkin joten ei mitään komentorivi-virityksiä ellei ne ole tarkoitettu pienen piirin käyttöön. Jos linux-ohjelmoijat ottavat toisen kannan kuin esitin niin Linux pysyy yhä pitkään pienen piirin käyttiksenäkin mutta toki jotkut toivovatkin sitä.
..eri käyttiksille niin opettele C. C :lla saa sitten olio-ominaisuudet mutta sitä on fiksuinta käyttää kuin C:tä missä on oliot, joten opettele C.
Eikös realbasic tee ihan natiivia koodia? Ei omakohtaista kokemusta kun jos jotain tarttee tehdä, niin lazarus on basicia jopa helpompi.
tehnyt mitään matopeliä monimutkasempaa niistä, jotka "tulkattavien kielten hitaudesta" narisevat. MKarin 2x ja 100x mittaukset varsinkin olis tosi mielenkiintosia :)
kuin pari varastokirjanpitoa ja muutaman laitteistoajurin. Loput sitten mitä sattuu milloinkin eteen tulemaan ja nappaa mitään yleensä koodata. Se vaan on niin rasittavaa hommaa. Javalla en ole tehnyt juuri mitään, mutta olen kyllä nähnyt muutaman suuremman 'toiminnan' käytännössä. Enkä muuten tule tekemäänkään :)
Mitä tulee tuohon mkarrin mainitsemaan updateen ja sen 'huippunopeuteen', niin siinähän sitä ongelmaa sitten on kun 'vanhat' sovellukset saattavat alkaa toimia miten saattuu kun pätsätään alusta. Nopeudesta en tiedä, enkä edes välitä tietää :)
Suurempaa sovellusta on hankala 'hallita' jos alusta muuttuu jatkuvasti. Näin se vaan on, vaikka miten päin asian kääntäisi. Tietenkin runtimen voi pitää aina samana, mutta liekö sekään niin kovin viisasta.
Todella upea viritys se ei kuitenkaan ole. Käyttäköön ken haluaa.
Että moi vaan, alan tehdä nyt jotain järkevämpää. Vaikkapa piirtämään.