Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Koodauksen alkeet

Sivun loppuun

Putkimato [13.07.2012 00:06:32]

#

Haluaisin oppia koodausta. Mieluiten Java Eclipse, koska sillä olen tehnyt jo vähän kaikenlaista. Kysymys on, mistä aloitan? Olen vain katsonut kun jotkut on tehnyt peliä, ja siitä oppinut vähäsen. Ja kauan kestää että voin edes tehdä pienen tasohyppely pelin?

vuokkosetae [13.07.2012 00:15:09]

#

Kauan.

Tyvestä puuhun lähdetään kiipeämään. Ensin Hello worldia ja sitten kaikennäköistä pientä, että erilaiset tietorakenteet tulevat tutuiksi. Ja koska valintasi on Java, olio-ohjelmointi tarvitsee myös oppia.

Suosittelen jotain kirjaa. Tuntemattomalle alueelle hypätessä sopiva opus iltalukemisena ennen nukumaan menoa on hyvä tapa oppia. Kirjan ei tarvitse edes olla hyvä, koska se on kuitenkin vanha. Joitain perustavia asioita jää sitten päähän.

Kun kirja on luettu, tee python in hard way, mutta Javalla soveltuvin osin. Itse olen opettanut pienen nipun kielien alkeita sen verran tuon kanssa, että voin sörkkiä niitä itselleni rumasti.

Tukki [13.07.2012 10:07:49]

#

Jos lähdet ihan alkeista niin joku suomalainen kirja voisi olla hyvä apuri. Suosittelen myös unohtamaan sen Eclipsen vielä hetkeksi ja aloittamaan mahdollisimman alkeellisella ja tylsällä tekstieditorilla (pico, notepad,...) tai korkeintaan joillain vähän edistyneemmällä (gedit, notepad++,...). Harjoittele sitä käyttäen kielen perusteet kuten luokat, oliot, metodit ja kontrollirakenteet. Kun nuo on joten kuten hallussa, kokeile tehdä muutamasta luokasta ja ehkä parista paketista koostuva projekti. Sitten kun saat sen käännettyä itse komentoriviltä asettamalla luokkapolut ja muut tarvittavat asetukset kohdilleen sekä osaat vielä ajaa sen komentoriviltä, niin voit siirtyä käyttämään sitä Eclipseä. Tällä tavoin saat edes jonkilanisen käsityksen niistä Java-ohjelmoinnin perusjutuista mitä Eclipse (tai muu IDE) tekee puolestasi taustalla.

Putkimato [13.07.2012 11:57:40]

#

Kiitos molemmille!

peran [13.07.2012 13:52:48]

#

Ennen tasohyppelyä kannattaa tehdä vielä siitä yksinkertaisempi peli, kuten Tetris, Pacman tai matopeli.

lrp [13.07.2012 21:05:05]

#

Helsingin yliopistolla saa opetella javaa nettikursseilla.
mooc

jukkah [13.07.2012 22:04:27]

#

Tukki kirjoitti:

Jos lähdet ihan alkeista niin joku suomalainen kirja voisi olla hyvä apuri. Suosittelen myös unohtamaan sen Eclipsen vielä hetkeksi ja aloittamaan mahdollisimman alkeellisella ja tylsällä tekstieditorilla (pico, notepad,...) tai korkeintaan joillain vähän edistyneemmällä (gedit, notepad++,...). Harjoittele sitä käyttäen kielen perusteet kuten luokat, oliot, metodit ja kontrollirakenteet. Kun nuo on joten kuten hallussa, kokeile tehdä muutamasta luokasta ja ehkä parista paketista koostuva projekti. Sitten kun saat sen käännettyä itse komentoriviltä asettamalla luokkapolut ja muut tarvittavat asetukset kohdilleen sekä osaat vielä ajaa sen komentoriviltä, niin voit siirtyä käyttämään sitä Eclipseä. Tällä tavoin saat edes jonkilanisen käsityksen niistä Java-ohjelmoinnin perusjutuista mitä Eclipse (tai muu IDE) tekee puolestasi taustalla.

Minusta komentorivin käyttö ei ole enää nykypäivänä pakollinen osa alkutaipaleella. Tämä siis olettaen, ettei kyseessä ole kokenut komentorivin käyttäjä. IDE on iso ja monimutkainen sovellus, jonka perustoimintojen opettelu on minusta tärkeämpää.

Kuten vuokkosetae jo sanoikin, unohda kaikki pelien tekemiset (pariksi vuodeksi). Käytännössä yksinkertaisimmatkin pelit ovat melko monimutkaisia (esim. yksinkertainen matopeli C++:lla yli 500 koodiriviä, eikä Java ole niin paljon "parempi" ohjelmointikieli, että sillä se onnistuisi 10 koodirivillä).

Minäkin suosittelen HY:n moocia. Kurssin vastikään käyneenä voin sanoa, että materiaali on parempi kuin yksikään lukemani kirja (pitkä, kattava ja monipuolinen...). Tehtäviä on paljon ja ne alkavat todella yksinkertaisesta ja etenevät hitaasti mutta varmasti kohti haastavampia harjoituksia. PS. Koettakaa kestää, tämä on vasta toinen kerta, kun kehun kurssia. :)

The Alchemist [13.07.2012 22:23:39]

#

IDE on iso ja monimutkainen ohjelma ja juuri se esimerkiksi minua niissä ahdistaakin. Pienten sovellusten kanssa IDE:stä ei minusta hyödy kovin paljoa, ellei sitten ole niin huono koodari että on riippuvainen autocompletesta ja syntaksin reaaliaikaisesta tarkistamisesta.

Itse tykkään koodailla ihan tavan tekstieditorin ja terminaalin avustuksella prosessin helppouden ja yksinkertaisuuden vuoksi.

Vaan kun Eclipsestä on jo jotain kokemusta, niin sama kai sen parissa on pysytellä, ellei ala kokea sen haittaavan työskentelyä.

Grez [14.07.2012 02:06:28]

#

The Alchemist kirjoitti:

IDE on iso ja monimutkainen ohjelma ja juuri se esimerkiksi minua niissä ahdistaakin. Pienten sovellusten kanssa IDE:stä ei minusta hyödy kovin paljoa, ellei sitten ole niin huono koodari että on riippuvainen autocompletesta ja syntaksin reaaliaikaisesta tarkistamisesta.

No se riippuu tietty IDEstä. Tekstinkäsittelyohjelmatkin on nykyään isoja ja monimutkaisia ohjelmia.

Ja tietenkin mitä pienempi projekti, niin sitä vähemmän työtä helpottavasta työkalusta on hyötyä. En silti tiedä olisiko kaksi klapia järkevää pilkkoa puukolla ja vasaralla, ihan vaan projektin pienuuden takia, vaikka kirveskin olisi käsillä.

The Alchemist [14.07.2012 09:14:48]

#

Enpä minä koodia kirjoittaisi tekstinkäsittelyohjelmallakaan, joka on se tekstityökalu, mikä sopii koodaamiseen kaikista huonoiten. Harva niistä pitää edes muotoillun tekstin tuottamisessa.

Osuvampi analogia olisi ehkä se, että on turha lähteä autolla kauppaan, jos on tarkoitus pyörähtää tien toisella puolella lähikaupassa, joten sama kulkea jalan. Tai että turha ostaa klapintekokonetta, jos polttopuita tarvitsee vain pienen saunan lämmittämiseen kerran viikossa.

Tietysti olen vähän huono kommentoimaan kumpaankaan suuntaan, kun minulle tekstieditori saattaa merkitä hieman eri asiaa kuin useimmille...

Grez [14.07.2012 12:07:45]

#

The Alchemist kirjoitti:

Enpä minä koodia kirjoittaisi tekstinkäsittelyohjelmallakaan, joka on se tekstityökalu, mikä sopii koodaamiseen kaikista huonoiten. Harva niistä pitää edes muotoillun tekstin tuottamisessa.

Ymmärsit ehkä tahallasi väärin. Pointti oli, että yksinkertaisten asioiden tekemiseenkin tarkoitetut ohjelmat tuppaavat olemaan nykyään isoja ja monimutkaisia. Pointti ei ollut suinkaa että tekstinkäsittelyohjelmalla pitäisi koodata. Jos väärinkäsitys ei ollut tahallinen, niin olisi vissiin pitänyt puhua vaikka piirto-ohjelmasta.

Ja eikö tuossa Katessakin sinua sitten ahdista, että se on "iso ja monimutkainen ohjelma"

The Alchemist [14.07.2012 14:22:31]

#

Ei ole iso eikä monimutkainen koodaamiseen. Siitä löytyy ne perustarpeet, joita minä tarvitsen. Toki kaiken tauhkan saisi kytkettyä pois päältä, ja Katen saa melkein näkymään ja toimimaan kuten Notepad. Yhden tiedoston nopeaan editointiin käytänkin Kwriteä, joka jakaa Katen kanssa saman editorikomponentin, mutta on muuten konffattu paljon riisutummaksi.

Jokaiseen tarpeeseen löytyy omat softansa.

Metabolix [14.07.2012 14:26:53]

#

Pelkän IDEn käyttäminen voi rajoittaa ymmärrystä siitä, mitä kaikkea koodin kääntämiseen liittyy, aivan kuten vaikka mediasoittimen musiikkikirjaston käyttäminen voi rajoittaa ymmärrystä siitä, mihin musiikki on oikeasti tallennettu. Jos kaikki toimii, tämä ei ehkä haittaa, mutta ongelmatilanteita on vaikea ratkaista, jos ei ymmärrä asiasta muuta kuin sen, mitä graafinen käyttöliittymä kertoo.

Grez [14.07.2012 14:52:23]

#

Sinänsä on kaksi asiaa joita voi opetella:
- Ohjelmoinnin opettelu
- Ohjelmoinnissa käytettävien työkalujen käytön opettelu

Mielestäni työkalujen käytöstä olennaisempaa aloittelevalle kooderille on opetella esimerkiksi käyttämään debuggeria kuin se, että sattuuko hän käyttämään IDEä vai komentorivityökaluja. Toki jossain vaiheessa on hyvä opetella mitä pellin alla tapahtuu, ihan kuten kirvesmiehenkin on hyvä opetella kirveen teroittaminen.

Mielestäni esimerkiksi Java -ohjelmointia voi ihan hyvin opetella vaikka Javalassa ilman että tarvitsee miettiä työkaluja ollenkaan (vielä siinä vaiheessa)

lrp [19.07.2012 22:42:40]

#

mooc-työskentelyssä käytetään netbeansia harjoitusten tekemiseen, testaamiseen ja palauttamiseen.
Tuohon IDE keskusteluun sanoisin, että verrattuna notepadilla koodaamiseen se on aika paljon fiksumpaa kun saa virheistä heti vihiä.
Sitten kun on sillä tasolla, että ei tarvitse edes näyttöä koodaamiseen voi siirtyä notepadin/emacsin käyttöön.
Tosikoodaaja pääsee halvalla:
1 kpl Rasberry Pi 27,07€ Farnellista.
1 kpl 4GB SD-kortti, jonkun toisen kamerasta.
1 kpl Micro-USB teholähde, vähintään 700mA, luokkaa 20€
1 kpl USB-näppäimistö, joka löytyy roskiksesta.
1 kpl ethernet piuha, sekin roskiksesta

Jos epäilee itseään, tarvitsee näytön, johon käy TV.
Rasberry Pi

Meitzi [19.07.2012 23:40:28]

#

On väärin ajatella, että kaikkien pitäisi aina tietää mitä "pellin alla tapahtuu". Kun minä olin koulussa, opetettiin miten sectorit on järjestyneenä levylle. (niinhän ne oikeasti on) Mutta tuskinpa sitä opetetaan enää. Tarvitsetko tätä tietoa että saat tietokoneen päälle? Entä virheen selvitykseen sitten kenties?

Eli ei ohjelmoijan välttämättä koskaan tarvitse tietää, mitä siellä komentorivilä tapahtuu, jos homma pelaa. (ei toki siitä haittaakaan ole)

Ei oppimista tarvitse tehdä vaikeimman kautta. Paljon helpompi opetella editorilla joka tunnistaa kielen sanat joten näkee HETI onko kirjoittanut oikein. Siinä oppii laljon nopeammin kun ei tarvi edes kääntää ohjelmaa välissä.

lrp [20.07.2012 00:23:59]

#

Miksi hakata päätä seinään kirjoitusvirheiden etsimisessä? Opiskelun aloituksessa on varmasti muutenkin riittävästi hommaa.

vuokkosetae [20.07.2012 08:53:33]

#

Kerronpa taas väärän mielipiteeni. Osaan varmasti monia turhia asioita, koksa ATK tekee niistä monet automaattisesti ja minun ei tarvitse niistä varmaan välittää. Silti kun ne on kerran työkalupakkiin tippuneet, ne ovat siellä ja uskallan mennä pellin alle ryhdikkäästi.

Tietämättömyys tapahtumista pellin alla on johonkin asti mahdollista säilyttää. Se on onnellista aikaa. Se loppuu yleensä ensimmäiseen kummallisuuteen, jota kukaan ei ole koskaan aiemmin löytänyt.

Kuitenkin jossain vaiheessa tulee ongelma ja silloin se on joko selvitettävä tai kiukuteltava ja kierrettävä. Itse kuitenkin olen joutunut opettelemaan jokaisen ATK:ni aina rautaa myöten alkaen SYS 64738 päätyen ihmettelemään miten X86:n suhteelliset hypyt toimivat. Ei siksi, että ne minua oikeasti kiinnostaisi äärettömän paljon, vaan siksi, että aina tulee jokin ongelma johon tarjotaan kolmea eri pöljää ratkaisua. Silloin pitää pystyä valitsemaan vähiten pöljä tai tekemään itselle sopiva ratkaisu.

Jos päivityksessä kääntäjä lakkaa tukemasta jotain optiota niin silloin se komentorivin tuntemus on jees. Näkee ja voi testata mikä sitä kääntäjää harmittaa.

Toinen hyin yleinen väärinkkäsitys on esimerkiksi C:ssä
struct mun_juttu{
char a;
int b;
};
Tuo ei luo muistiin ensin yhden tavun a merkkiä ja sitten siihen inttiä, leikitään 32-bittiä, sen perään neljällä tavulla. Vaan se jättää osan välistä ja laittaa intin sopivasti luettavaan osoitteeseen. Avainsanat ovat struct ja pad. Tuollainen kun olisi jotenkin niin kiva tehdä, että
memcpy(jonnekin, &juttu, sizeof(mun_juttu). Ja lähettää vaikka socketin yli. Silloin lähetetään turhaa kamaa ja ei tosiaan olla varmoja miten vastaanottaja tulkitsee.

Ja joskus kääntäjä tekee jotain todella kummallista töhkää. Silloin on paras tehdä minimaalinen vastaavat temput tekevä otus ja katsoa, että se toimii. Ja verrata töhkän ja toimivan assylistausta. Tämä on varsinkin silloin kun debuggeri vaikuttaa suoritukseen.

Ja mitä tulee sektorien tietämiseen levyllä, niin eikö sinustakin ole mukavaa, jos voit asentaa käyttiksen ripeäksi? Laitat järjestelmän levyn alkuun (ulkoreunalle) ja datan keskelle levyn loppuun? Joskus järjestelmän hallinnassa osioinnilla kikkailu on vain tehtävä. Ja osiointikin muuttuu helpommaksi kun tietää jotain noista pyörivistä lätyistä. Tosin ei kaikkien tarvitse kirjoittaa omaa MBR:äänsä käsin, vaikka minä sen teinkin, kun oli kaikki vastassa.

Samaa mieltä olen siinä, että tasaava editori ja värittävä on ihana kumppani. Kun emacs tasaa jotain hassusti, tiedän sulkeisten olevan poskellaan ja puolipisteiden puuttuvan tai muuta hauskaa. En kuitenkaan pidä IDEn piilottaessa asioita minulta. Joku tulosti vain sen ulostulon ja mistä lähdekooditietodosta se irtosi. Ongelma oli yhden kirjaston linkkaamattomuus ja virheilmoitus viittasi aivan toisaalle. Hankalaksi tuli homma, koska komennosta olisi heti huomannut puuttuvan -ltarvittukirjasto. Lisäksi jos tarvitsee sanoa, että kääntäjä $LIPPUJA tiedosto $LISÄÄ_LIPPUJA jotain muuta, ainakin Eclipsen kanssa tuo on hankalaa.

Ohjelmoimaan oppii ohjelmoimalla, ongelmia ratkomaan niiden syiden selvittämisellä eikä vain paikkaamalla ja kiroilemaan ATK:lle lastentarhassa.

Itsehän suhtaudun jokaiseen uuteen kieleen jo aiemmin mainitsemallani tavalla:
http://learnpythonthehardway.org/book/ Teen nuo harjoitukset sovelletusti ja kuukauden kuluttua, voin sanoa hallitsevani useimmat koukut. Tähän asti olen tarjonnut tuota QT:lle (vaikkei olekaan oikeasti oma kieli), C#, Forthille ja nyt on menossa python.

Tähän perään se hauska GIF, jossa vasemmalla kädet heiluu ja lukee programming. Se on mitä ihmiset luulevat. Sitten oikealla on programming kiroilua yms. Se mitä se oikeasti on.

Grez [20.07.2012 09:59:16]

#

vuokkosetae kirjoitti:

Tietämättömyys tapahtumista pellin alla on johonkin asti mahdollista säilyttää. Se on onnellista aikaa. Se loppuu yleensä ensimmäiseen kummallisuuteen, jota kukaan ei ole koskaan aiemmin löytänyt.

Sanotaanko, että jos ohjelmoi vaikka Javalla ja Pythonilla, niin voi kyllä aika pitkälti säilyttää tietämättömyyden siitä miten homma toimii x86:n pellin alla. Ja vaikka itsekin olen koodannut assemblerilla, niin en kyllä näe miten se osaaminen hirveästi hyödyttää vaikka C# -koodaamisessa. Itse asiassa siitä voisi olla jopa haittaa jos fakkiutuisin "vanhoihin tapoihin" tehdä asia enkä osaisi riittävästi asennoitua että "kääntäjä hoitaa".

Ja sitten mitä enemmän pellin alle mennään, niin sitä vähemmän siitä tiedosta on oikeasti hyötyä esim. ohjelmoinnissa. Itsekin tutkin eilen yhtä prosessoria mikroskoopilla, mutta en usko siitä olevan koskaan mitään hyötyä ohjelmointijutuissani.

vuokkosetae kirjoitti:

Ja mitä tulee sektorien tietämiseen levyllä, niin eikö sinustakin ole mukavaa, jos voit asentaa käyttiksen ripeäksi? Laitat järjestelmän levyn alkuun (ulkoreunalle) ja datan keskelle levyn loppuun?

Eli SSD-levyn "alku" on nopeampi kuin "loppu"? Mikä noista piireistä on sitten ulkoreuna? Ei kun ai niin, joku käyttää vielä niitä perinteisiä levyjä.

vuokkosetae [20.07.2012 11:10:29]

#

No Javassa tulee vastaan kaiketi virtuaalikoneen toteutus ja miten se on sijoittunut ympäristöönsä. Vähän kokemusta kyseisestä kielestä itsellä. Jokin kirjastojen latauspolku voi tehdä mielenkiintoisen elämän. Sinänsähän ei voi syvälle JRE:n alle katsella ja yrittää ymmärtää vaan on luotettava virtuaalikoneen tekijän virheettömyyteen. Vähän samoin kuin pythonin tulkissa.

Ja mitä tulee vanhoihin pahoihin tapoihin niin niistä sietää tosiaan päästä eroon. Tosin joskus joutuu oikein miettimään, että mitä tässä tapahtuu, kun jonkin funktion suoritus romahtaa pienellä muutoksella dramaattisesti. Silloin on taas osattava neuvoa kääntäjää, että tees ny nätisti, mitä pyydän. Tai sitten on vain yritettävä uudelleen ja paremmin.

Ja jos menee vaikka javascriptillä tekeen jotain niin silloinhan se on täysin herran haltuun koko homma. Toivotaan, että tämä nyt on toteutettu nätisti, eikä käyttäjän nenästä lähde demoneja vilistämään.

SSD:ssä on sitten omat juttunsa. TRIM ja pari muuta hienoutta, kuten kirjoitusten minimointi ja datan alignementti. Pakko tunnustaa, että tällä viikolla tuli ensimmäinen SSD käyttöön ja se oli mielenkiintoinen. tutustumisprosessi, että käyttiksen asentaa kerralla oikein. Tähän saakka on menty usealla isolla pyörivällä levyllä ja RAIDilla.

The Alchemist [20.07.2012 12:51:20]

#

Eipä tarvinnut minun miettiä ssd:n kanssa käyttiksen asentamista ollenkaan. Sen kun tein Gdiskillä haluamani kokoiset osiot ja se itse piti huolen siitä, että osiot asettuvat sektoreille hyvin. Trimmistäkään ei tarvitse tietää muuta kuin miten sen saa päällä - ja ehkä että miksi sitä halutaan käyttää.

Kirjoitusten minimointi ssd:lle alkaa olla jo menneen talven lumia.

os [22.07.2012 17:23:36]

#

Meitzi kirjoitti:

On väärin ajatella, että kaikkien pitäisi aina tietää mitä "pellin alla tapahtuu". ...

Allekirjoitan Meitzin kommentin täysin. Vuonna 2012 voi olla ensiluokkainen (sovellus)ohjelmoija vaikka ei edes tietäisi, mitä x86 tarkoittaa. Aloittaessa riittää tietää, että kun painaa Eclipsessä nappulaa, niin tietokone suorittaa editoriin kirjoitetun koodin.

Ohjelmoinnin opettelu Javan muodossa kannattaa siis mielestäni ehdottomasti aloittaa Eclipsen tai NetBeansin kaltaisen IDE:n kanssa, jolloin voi keskittyä olennaiseen. IDE:n asentamiseen ja peruskäytön opetteluun voi mennä pari päivää, mutta se maksaa itsensä nopeasti takaisin kun aikaa ei mene joka käänteessä hukkaan tehottomien ja vanhanaikaisten kehitystyökalujen kanssa tapellessa.

jalski [22.07.2012 22:02:11]

#

os kirjoitti:

IDE:n asentamiseen ja peruskäytön opetteluun voi mennä pari päivää, mutta se maksaa itsensä nopeasti takaisin kun aikaa ei mene joka käänteessä hukkaan tehottomien ja vanhanaikaisten kehitystyökalujen kanssa tapellessa.

Itse en vielä ole ollut tyytyväinen yhteenkään IDE:n tekstieditori komponenttiin. En näe automaattisia tekstin täydennyksiä tai sisennyksiä edes tarpeellisina. Suurin osa "koodaajan editoreistakin" saa nuo yleensä tehtyä päin seiniä. Varsinkin jos koodatessa käyttää välilyöntiä sisentämiseen tabulaarin sijaan, niin voi olla varma tekstin olevan vinksallaan avattaessa tiedosto jollain muulla editorilla.

Ihmettelet varmaan, miksi sisentää välilyönnillä tabulaarin sijaan? Moni mainframe puolelta alkunsa saaneista ohjelmointikielistä, kuten esimerkiksi: RPG, Cobol tai PL/I saattavat odottaa tiettyjen asioiden löytyvän tietyltä sarakkeelta riviltä.

Nykyään ohjelmoidessa käytän ISPF-tyylistä rivieditoria. Tuo ei tee mitään itsestään, mutta tarjoaa varmasti IDE:n editoria monipuolisemmat työkalut koodin kirjoittamiseen ja hallitsemiseen.

Macro [22.07.2012 22:55:17]

#

jalski kirjoitti:

Ihmettelet varmaan, miksi sisentää välilyönnillä tabulaarin sijaan? Moni mainframe puolelta alkunsa saaneista ohjelmointikielistä, kuten esimerkiksi: RPG, Cobol tai PL/I saattavat odottaa tiettyjen asioiden löytyvän tietyltä sarakkeelta riviltä.

Netbeansistä voi valita käyttääkö välilyöntejä vai tabulaattoreita sisennyksissä, Eclipse käyttää tabulaattoreita automaattisesti. Varmasti monet muutkin IDE:t osaavat käyttää tabulaattoria.

jalski kirjoitti:

Itse en vielä ole ollut tyytyväinen yhteenkään IDE:n tekstieditori komponenttiin. En näe automaattisia tekstin täydennyksiä tai sisennyksiä edes tarpeellisina. Suurin osa "koodaajan editoreistakin" saa nuo yleensä tehtyä päin seiniä. Varsinkin jos koodatessa käyttää välilyöntiä sisentämiseen tabulaarin sijaan, niin voi olla varma tekstin olevan vinksallaan avattaessa tiedosto jollain muulla editorilla.

En tiedä mitä IDE:jä käytät, mutta ainakaan Eclipse tai Netbeans ei tee mitään kummempia täydennyksiä itse.

Kaikki varmaan voivat sentään myöntää, että IDE on loistava väline näyttämään virheet. Jotain Linuksin kaltaista järjestelmääkin on kiva kehittää Notepadilla, tehdä virhe, kääntää ohjelma ja huomata tunnin käännöksen jälkeen, että ohho, tosta puuttu piste.

jalski kirjoitti:

Nykyään ohjelmoidessa käytän ISPF-tyylistä rivieditoria. Tuo ei tee mitään itsestään, mutta tarjoaa varmasti IDE:n editoria monipuolisemmat työkalut koodin kirjoittamiseen ja hallitsemiseen.

Miten kirjottaminen eroaa ohjelmalla A ohjelmasta B, jos et kerran ole kiinnostunut siitä, että joku helpottaa kirjotustyötä? Samaa näppäimistöähän siinä käytetään...

jalski [23.07.2012 00:13:02]

#

Macro kirjoitti:

Miten kirjottaminen eroaa ohjelmalla A ohjelmasta B, jos et kerran ole kiinnostunut siitä, että joku helpottaa kirjotustyötä? Samaa näppäimistöähän siinä käytetään...

Kyllähän se kirjoittaminen eroaa paljonkin. PC puolella perinteisesti editorit ovat tavu pohjaisia, kun taas mainframe puolelta juurensa perineellä editorilla rivejä käsitellään kuin ne olisivat saman kokoisia tietueita. Sisennyksiin ei tarvitse käyttää välilyöntiä tai tabulaaria, riittää kun vie kursorin oikeaan kohtaan rivillä ja alkaa kirjoittamaan. Myöskään Enterin painallus ei yleensä lisää riviä.

Käyttämäni editori näyttää siis tältä

Ohjelmassa ylhäällä olevalle komentoriville voi syöttää pääkomentoja ja rivinumeroinnin kohdalle voi syöttää rivikomentoja. Rivinumeroinnin kohdalla oleva :P on tagi, joiden avulla saan helposti listan haluamistani asioista piilottamalla muun tekstin ja näyttämällä pelkät tietyin tagein varustetut rivit. Tagien lisäksi riveille voi laittaa labeleita. Komennot ja toiminnot ovat vapaasti yhdisteltävissä ja ne saa tietysti täysin kartoitettua näppäinkomentoihin.

Pystyykö esim. Eclipsen editori piilottamaan muun tauhkan ja näyttämään pelkästään sarakkeilla 2 olevat muuttuja määrittelyt? Saatko lisättyä tiedostoon rivinumeroinnin yhdellä napin painalluksella. Entä saatko rivinumeroinnin poistettua koko tiedostosta kätevästi, jos olet jostain esimerkkikoodin löytänyt jossa se pelkän opetustarkoituksen vuoksi on ollut näkyvillä?

Macro [23.07.2012 10:08:22]

#

jalski kirjoitti:

Pystyykö esim. Eclipsen editori piilottamaan muun tauhkan ja näyttämään pelkästään sarakkeilla 2 olevat muuttuja määrittelyt? Saatko lisättyä tiedostoon rivinumeroinnin yhdellä napin painalluksella. Entä saatko rivinumeroinnin poistettua koko tiedostosta kätevästi, jos olet jostain esimerkkikoodin löytänyt jossa se pelkän opetustarkoituksen vuoksi on ollut näkyvillä?

Tietty editorit on erilaisia, ei pyörää kannata keksiä uudelleen.

jalski kirjoitti:

Sisennyksiin ei tarvitse käyttää välilyöntiä tai tabulaaria, riittää kun vie kursorin oikeaan kohtaan rivillä ja alkaa kirjoittamaan.

Tietty kaikkeen tottuu, mutta mun mielestä on nopeempaa painaa tabulaattoria (tosin IDE:t tekee yleensä sisennykset automaattisesti) kuin viedä käsi näppäimistöltä hiirelle ja takaisin.

Edit.

jalski kirjoitti:

Käyttämäni editori näyttää siis tältä

Jokanen koodaa tavallaan... :)

Pekka Karjalainen [03.08.2012 11:19:11]

#

jalski kirjoitti:

Pystyykö esim. Eclipsen editori piilottamaan muun tauhkan ja näyttämään pelkästään sarakkeilla 2 olevat muuttuja määrittelyt? Saatko lisättyä tiedostoon rivinumeroinnin yhdellä napin painalluksella. Entä saatko rivinumeroinnin poistettua koko tiedostosta kätevästi, jos olet jostain esimerkkikoodin löytänyt jossa se pelkän opetustarkoituksen vuoksi on ollut näkyvillä?

Hauska aina välillä lukea miten eri ATK-kulttuureista tulevat ihmiset ajattelevat. Yllättävää vain, että näin itsestäänselvät asiat ovat kysymisen arvoisia. Vastaanpa huvikseni, vaikka epäilen, ettei Jalski varsinaisesti vastauksia halunnut, vaan yleistä ihmettelyä siitä, miten hänen hienot työkalunsa ovat parempia kuin muiden. :)

En käytä Eclipseä. En kommentoi sarakkeiden piilotusta, koska en oikein hahmota mihin tällaista ominaisuutta tarvittaisiin käyttämissäni kielissä.

Vim-editorilla muut mainitut toiminnot eivät tapahdu oletuksena yhden napin painalluksena, koska siinä yhden napin painallukset on varattu tarpeellisimpiin toimenpiteisiin. Sen voisi halutessaan konfiguroida tekemään toisin, jos tarvitsisi jostakin syystä usein rivinumeroita tai niiden poistamista.

Itse asiassa näitä ominaisuuksia ei ole edes rakennettu sisään tähän editoriin. Sen sijaan Vimissä voi ajaa valittuun tekstin osaan sovellettavia komentorivikäskyjä, joita löytyy tyypillisestä Unix-järjestelmästä erittäin paljon. Rivinumerot voi lisätä esim. valitsemalla ensin koko tekstipuskurin ja sitten kirjoittamalla :!cat -n , missä :! kertoo editorille, että sen tulee ajaa mainittu ohjelma ja antaa sen syötteeksi valittu osa puskuria.

Rivinumerot voi poistaa esim. valitsemalla taas koko tekstipuskurin ja kertomalle editorille, että teepä :!cut -f 2- sille puskurille. Tämä poistaa joka riviltä ensimmäisen (välein erotetun) kentän, tai toisin sanoen jättää kentät kahdesta loppuun asti jäljelle.

Jos editoriin kaipaa uusia ominaisuuksia, ne voi kirjoittaa itse millä tahansa kielellä ulkoisiksi ohjelmiksi ja sitten ajaa tällä tavalla. Komennot voi sitoa myös näppäimenpainalluksiin, jos niin haluaa. Toki Vimiä voi skriptata sisältäkin käsin, mutta miksi rajoittua yhteen keinoon. Editoria pitää voida laajentaa tarpeiden mukaan haluamillaan keinoilla, eikä tyytyä siihen, mitä ominaisuuksia siihen valmiina tulee.

En aio jatkaa tätä keskustelua. Editorisotahan tästä syttyisi, jos väittäisin, etteivät muut editorit tähän pysty. En kuitenkaan vaivaudu edes arvelemaan, mihin muut editorit pystyvät, kun en tunne niistä useimpia yhtään. Varmasti kaikissa hyvissä onnistuu sama suunnilleen yhtä helposti.

(Sitä en tiedä miksi ympäristöjä, missä ei voi ajaa komentoriviltä catin ja cutin kaltaisia ohjelmia nimitetään käyttöjärjestelmiksi. Käyttämättömyysjärjestelmiähän ne ovat. Trollaati trollaa.)

jalski [03.08.2012 15:53:01]

#

Pekka Karjalainen kirjoitti:

Vastaanpa huvikseni, vaikka epäilen, ettei Jalski varsinaisesti vastauksia halunnut, vaan yleistä ihmettelyä siitä, miten hänen hienot työkalunsa ovat parempia kuin muiden. :)

Jessus... Mainitsin vain, että en pidä useimmista IDE-ympäristöjen editorikomponenteista jotka tekevät asioita käyttäjän puolesta, kuten esimerkiksi automaattinen sisennys ja koodin automaattitäydennys. Sinä taas meinaat tuttuun tyyliisi tehdä tästä "my dick is bigger than yours" viestiketjun?

Pekka Karjalainen [03.08.2012 17:13:59]

#

jalski kirjoitti:

Pekka Karjalainen kirjoitti:

Vastaanpa huvikseni, vaikka epäilen, ettei Jalski varsinaisesti vastauksia halunnut, vaan yleistä ihmettelyä siitä, miten hänen hienot työkalunsa ovat parempia kuin muiden. :)

Jessus... Mainitsin vain, että en pidä useimmista IDE-ympäristöjen editorikomponenteista jotka tekevät asioita käyttäjän puolesta, kuten esimerkiksi automaattinen sisennys ja koodin automaattitäydennys. Sinä taas meinaat tuttuun tyyliisi tehdä tästä "my dick is bigger than yours" viestiketjun?

Ajattelin itse asiassa jättää kirjoittelematta lisää tähän ketjuun, mutta jos nyt kerran kiellon päälle. Minulla on sellainen paha tapa, että haluan oikaista virheellisiä käsityksiä, ja tulkitsin nyt, että sinulla oli tässä sellaisia. Sain nimittäin viestistäsi sellaisen käsityksen, että sinusta rivinnumeroiden lisääminen tai poistaminen on sen verran vaikeaa ja tärkeää, että siihen tarvitaan jokin erityinen työkalu, joka on rakennettu vain kunnon editorin sisään. Luonnollisesti halusin näyttää, että tällainen käsitys ei ole aivan oikea yksinkertaisen vastaesimerkin avulla.

Jos nyt ymmärsin väärin tai tapani esitellä oma näkemys asiasta oli jotenkin loukkaava, pahoittelen. Minua kyllä yhä jaksaa ihmetyttää, miten vaikeaa ohjelmointipiireissä on joskus puhua pelkistä tosiasioista. En minä haluaisi viestejäni tulkittavan niin, että jos kerron asialla X olevan ominaisuus Y, tarkoitaisin myös, että kaikkien pitää ajatella, että X on paras asia ikinä ja Y:tä on aina pakko käyttää joka kerta.

Ihan joskus yritän vain sanoa, että vastoin juuri esitettyä käsitystä X:llä voi tehdä Y:n. Ja tässä on todiste. Koska tosiasiat ovat kivoja. Mutta ehkä viestini eivät aina kuulosta tältä. Pitääpä harkita, osaisinko kirjoittaa paremmin ja vältellä turhaa piikittelyä.

Mutta lopetan piikittelyyn. Tuohon viimeiseen kommenttiisi täytyy nimittäin heittää, että eiväthän niin ilmeiset tosiasiat ole sopivia viestiketjun aiheita :)

jalski [03.08.2012 19:08:15]

#

Pekka Karjalainen kirjoitti:

Sain nimittäin viestistäsi sellaisen käsityksen, että sinusta rivinnumeroiden lisääminen tai poistaminen on sen verran vaikeaa ja tärkeää, että siihen tarvitaan jokin erityinen työkalu, joka on rakennettu vain kunnon editorin sisään. Luonnollisesti halusin näyttää, että tällainen käsitys ei ole aivan oikea yksinkertaisen vastaesimerkin avulla.

En väittänyt tuon olevan erityisen tärkeää vaan käytin sitä yhtenä esimerkkinä asiasta, mitä en osaa tehdä Eclipsen editorilla ja mihin kunnollinen perustekstieditori taipuu helposti.

Pekka Karjalainen kirjoitti:

En kommentoi sarakkeiden piilotusta, koska en oikein hahmota mihin tällaista ominaisuutta tarvittaisiin käyttämissäni kielissä.

Ensimmäisessä viestissäni puhuin rivien piilottamisesta, en sarakkeiden. Sanotaan vaikka käyttöesimerkiksi, että editoit vanhaa Cobol ohjelmaa ja haluaisit pitkästä ohjelmapätkästä tarkasteltavaksi kaikki 01 level muuttujat sekä paragraph nimet mitä procedure division pitää sisällään.

ISPF-tyylisellä editorilla seuraavanlainen primary komento hoitaisi homman kohtuullisen hyvin:

x all;f all p'^' 8;x all '*' 7

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta