Kirjoittaja Aihe: Ohjelmien teko Ubuntuun?  (Luettu 7911 kertaa)

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #20 : 28.08.09 - klo:08.30 »
Kysymys on niin sanotusta koodin ornamentoitumisesta. Ihmisten on helpompi lukea ja kirjoittaa kokonaisia sanoja kuin tulkita ja etsiä näppäimistön erikoismerkkejä.

En ainakaan itse ole kokenut millään muotoa vaikeaksi lukea koodia sen takia,
että muuttujien alussa on erikoismerkki. Eikä sitä kyllä kaukaa joudu etsimään.

Se, että luokan instanssit on määriteltävä new-sanalla on virhe kielen suunnittelussa. New-sana on syntaksissa tarpeeton. Se on ylimääräinen sana koodissa. Ei ole mitään merkitystä, onko Kissa() funktiokutsu vai luokan instanssin luonti, kunhan se palauttaa olion, joka kuvaa jollakin tapaa sanaa Kissa.

No onhan sillä isokin merkitys palautuuko sieltä olion instanssi vaiko vain muuttuja.

Jos Kissa palauttaakin arvon 12 eikä oliota jolla on metodeita, niin sitten kun koetat viitata
olion metodeihin niin kyllähän se räjähtää koko roska.

Funktiokutsut kirjoitetaan implisiittisesti pienellä alkukirjaimella, joten kysymyksessä on olion nimi.

x = Kissa()

palauttaa itsestäänselvyytenä viittauksen olioon Kissa, jonka instanssi viittauksella luotiin. Mitään epäselvyyttä ei pitäisi jäädä.

Mielestäni ei voida millään muotoa pitää itsestäänselvyytenä että _kaikki_ maailman koodarit kirjoittaisivat juuri samalla tyylillä kuin sinä/minä/joku muu haluaisi.

Syytä olla.

No jaa. Ja kuka tämän syntaksin määrittelisi mitä kaikkien maailman koodareiden pitäisi noudattaa että ei tulisi väärinymmärryksiä? Kääntäjä/tulkki?

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #21 : 28.08.09 - klo:08.35 »
Se merkki voi jäädä lisäämättä tai sen saattaa kirjoittaa väärin. Lienee selvää että virhetodennäköisyys kasvaa. Eri asia sitten on kuinka merkittävästi se kasvaa...

No ainahan sen merkin _voi_ jättää lisäämättä tai kirjoittaa väärin, mutta en nyt pitäisi sitä olennaisena virhemahdollisuutena. Pitää vain katsoa mitä kirjoittaa.

Isompana (ja realistisempana) haittana pidän sitä, että PHP:ssä et voi pakottaa käyttäjiä esittelemään muuttujiaan. Tätä olen kaivannut useammankin kerran muiden koodia lukiessani.

Pitäisin oleellisempana seikkana sitä kuinka helposti tuollainen virhe havaitaan. PHP:n tapauksessa se todennäköisesti jää havaitsematta ja jossain vaiheessa koodi räjähtää kasvoille ;)

No kyllä parseri ainakin ; merkin puuttumisesta kitisee.
Jos ei kitise niin sitten on omat PHP:n asetukset huonosti. Pitää vain laittaa errorleveli korkeammalle.

Olen kyllä silti samaa mieltä tuosta, että kielen funktiot ja parametrit pitäisi olla aina nimetty samoin
ja mennä samoissa järjestyksissä. Se on kieltämättä epälooginen, mutta ei tuo kyllä ole hirveästi
hidastanut. Edelleen isoin puute PHP:ssä mielestäni on se, että ei voida pakottaa käyttäjiä alustamaan
muuttujiaan, vaikka onkin tyypittämätön kieli. Se olisi silti todella iso plussa.

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #22 : 28.08.09 - klo:09.36 »
No jaa. Ja kuka tämän syntaksin määrittelisi mitä kaikkien maailman koodareiden pitäisi noudattaa että ei tulisi väärinymmärryksiä? Kääntäjä/tulkki?

Esimerkiksi kielen kehittänyt taho. Homma on toiminut suhteellisin hyvin sekä Javalla että C#:lla.

snifi

  • Vieras
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #23 : 28.08.09 - klo:15.30 »
Kielen kauneus on tietenkin mielipidekysymys siinä missä ruoan maku. Itse pidän koodin luettavuutta ja erikoismerkkien käytön välttämistä kriittisenä tekijänä kielen valinnalle. (Ja tietenkin samalla toivon, että mahdollisimman moni muukin tekisi samoin...)

x = Kissa()

Jos Kissa() palauttaa arvon 12, on kysymys semanttisesta ohjelmointivirheestä. Kissa() ei edes periaatteessa voi palauttaa arvoa 12, koska se ei millään tavalla kuvaa kissa-oliota. Kissa():n on siis palautettava olio joka kuvaa kissaa. Koodari toki voi upottaa koodiinsa semanttisia virheitä haluamassaan määrin, mutta on meidän käyttäjien vastuu, ettemme hyväksy tälläistä. Semanttisia virheitä harrastavan koodaajan koodi on syytä hylätä.

Jos sen sijaan

x = kissan_pituus()

on ilmiselvästi kysymyksessä skalaari, jonka arvo voi olla 12.

x = kissan_dimensiot()

puolestaan todennäköisesti palauttaa taulukon, tai olion, jossa kissan dimensiot on lueteltuina. Jos on epäselvää, millainen taulukko tai olio kissan_dimensiot on, se ei ole dramaattinen ongelma. Kissan dimensioiden tyyppiä, ja metodikutsujen nimiä voidaan tällöin kysyä oliolta itseltään: type(x), str(x), dir(x), help(x), jne...

Pythonin koodiin on kuriositeettina upotettuna kielen suunnittelufilosofia, "The Zen of Python", jonka saa näkyviin kirjoittamalla "import this". Ihan kaikkien lauseiden merkitystä en tunne, mutta suurimmalta osaltaan pitäisin ohjeita hyvinä ihan minkä tahansa ohjelmointikielen suunnittelussa:
Koodia: [Valitse]
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>>   



Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #24 : 29.08.09 - klo:11.36 »
Ei ole mitään merkitystä, onko Kissa() funktiokutsu vai luokan instanssin luonti, kunhan se palauttaa olion, joka kuvaa jollakin tapaa sanaa Kissa.

Minusta kyllä voi olla suurestikin merkitystä sillä palautetaanko esim. viittaus aiemmin muistissa pidettyyn olioon vai varataanko muistia ihan uudelle oliolle.

Funktiokutsut kirjoitetaan implisiittisesti pienellä alkukirjaimella, joten kysymyksessä on olion nimi.

Huomasitko muuten että Pythonin suunnittelufilosofiassa on heti toisena käskynä lause "Explicit is better than implicit"?

Tässä vielä pari lisätehtävää. Laske kuinka monta uutta kissaa luodaan:
Koodia: [Valitse]
kissa();
Kissa();
kissa();
kissa();
kissa();
Kissa();
Kissa();
kissa();
kissa();
kissa();
kissa();
Kissa();
kissa();
kissa();
Kissa();

Tässä toinen tehtävä. Laske kuinka monta uutta kissaa luodaan:
Koodia: [Valitse]
kissa();
new Kissa();
kissa();
kissa();
kissa();
new Kissa();
new Kissa();
kissa();
kissa();
kissa();
kissa();
new Kissa();
kissa();
kissa();
new Kissa();

mrl586

  • Käyttäjä
  • Viestejä: 4516
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #25 : 30.08.09 - klo:12.05 »
Yksi vaihtoehto on myös (tämän takia minut varmaan hirtetään ;) PHP ja PHP-GTK jos haluat
tehdä helposti graafisia ja ei-graafisia ohjelmia. Voin suositella jos kiinnostaa vain tehdä helposti
ohjelmia ja joiden koodaus on inhimillistä.
Tähän voisi lisätä seuraavan yhdistelmän PHP ja PHP-Qt

peran

  • Vieras
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #26 : 30.08.09 - klo:12.36 »
Yksi vaihtoehto on myös (tämän takia minut varmaan hirtetään ;) PHP ja PHP-GTK jos haluat
tehdä helposti graafisia ja ei-graafisia ohjelmia. Voin suositella jos kiinnostaa vain tehdä helposti
ohjelmia ja joiden koodaus on inhimillistä.
Tähän voisi lisätä seuraavan yhdistelmän PHP ja PHP-Qt

Php:llä ei ole helppo tehdä ohjelmia. Jos scripti-kieltä meinaa käyttää niin suosittelisin pythonin opiskelua. Se kun tulee suoraan Ubuntussa ja sillä on kätevä tehdä ohjelmia. Se ei ole lähellekään niin kankea kuin php, ja sillä on pakko tehdä selkeännäköistä koodia. Lisäksi monet asiat siinä voidaan tehdä lyhemmällä koodimäärällä, joten aloittelijan kynnys on pieni.

snifi

  • Vieras
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #27 : 30.08.09 - klo:15.25 »
Minusta kyllä voi olla suurestikin merkitystä sillä palautetaanko esim. viittaus aiemmin muistissa pidettyyn olioon vai varataanko muistia ihan uudelle oliolle.
Huomasitko muuten että Pythonin suunnittelufilosofiassa on heti toisena käskynä lause "Explicit is better than implicit"?
Tässä vielä pari lisätehtävää. Laske kuinka monta uutta kissaa luodaan:
Tässä toinen tehtävä. Laske kuinka monta uutta kissaa luodaan:

Tämä sinun ajatuskuviosi on siinä mielessä virheellinen, että olioita voidaan luoda myös aliohjelmakutsuilla. Jos olet huolestunut muistia varaavien olioiden lukumäärästä, ongelmaa ei juurikaan helpota se kuinka helppoa on pääohjelman varaamien olioiden lukumäärän laskeminen, sillä se ei ole asian koko totuus. Funktiokutsu on siten siinä mielessä saman arvoinen kuin uuden olion luominen, ja esimerkiksi Pythonin suunnittelufilosofiassa nämä toimenpiteet on aika pitkälle samaistettu. Uuden olion luominen ei siten ole luonteeltaan "eksplisiittinen" toimenpide, joka tulisi kielen perusfilosofian mukaan erikseen huomioida.

snifi

  • Vieras
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #28 : 30.08.09 - klo:15.51 »
Jos vielä selvennän edellistä  esimerkillä:

Koodia: [Valitse]
>>> class Kissa(object):
...   def __init__(self):
...     pass
...
>>> x=Kissa()
>>> Kissa
<class '__main__.Kissa'>
>>> x
<__main__.Kissa object at 0x2ac35cecdfd0>
>>> def luo_kissa():
...   return Kissa()
...
>>> y=luo_kissa()
>>> y
<__main__.Kissa object at 0x2ac35ced50d0>
>>> luo_kissa
<function luo_kissa at 0x2ac35cec08c0>
>>>
x ja y ovat tässä molemmat Kissa-olioita, toinen luotiin luokan instanssina, toinen funktiokutsulla. Myös funktiokutsut ovat Pythonissa olioita, ja funktio-oliosta saadaan funktio kaarisulkeilla: f -> f().

meizirkki

  • Käyttäjä
  • Viestejä: 1039
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #29 : 30.08.09 - klo:15.56 »
Ihan siis graafisen käyttöliittymän omaavien ohjelmien tekeminen on todella helppoa Qdevelop nimisen ohjelmiston avulla. Käyttöliittymän pääsee itse suunnittelemaan ja C++:aakaan ei paljon tarvitse handlata.

Helppo tutoriaali tuossa:

http://www.clivecooper.co.uk/tutorial/

Qt:n käyttämisessä on se etu, että Qtlle kirjoitetut softat saa toimimaan jokapaikassa mihin Qt on käännetty :) Windowsin ja Linuxin lisäksi siis myös esim. Symbian, Maemo ja WinMO älykännyköissä!  ;)
Fanitan:
Bitcoin, maailman suurin virtuaalivaluutta ja hajautetun laskennan projekti.
Enlightenment, helposti kustomoitava työpöytä. => PPA ubuntulle

Jiku

  • Käyttäjä
  • Viestejä: 233
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #30 : 30.08.09 - klo:16.37 »
Nyt viimeistään minut heitetään rikkinäisen ikkunan kautta pihalle, mutta
jos ohjelmointia ei halua opiskella, niin ainahan voi käyttää gambas2:ta joka löytyy pakettienhallinnasta.
sillä voi tehdä ohjelmia ilman koodaustaitoa aivan kuten windowsissa visual basicilla.
piirretään käyttöliittymä ja tarinoidaan mitä sen pitää tehdä.
helppoa ja usein omaan käyttöön täysin hyvä ratkaisukin.

jos oikeasti haluaa edes vähän opetella ohjelmointia, on ratkaisuna lazarus. se on vähän kuin delphi windowilla mutta parempi kuitenkin. syntaksi on sama.

mikäli haluaa osoittaa että ongelmanratkaisukykyä on, niin sitten koodaa vain bash-skriptejä ja tekee niille käyttöliittymän vaikkapa paketilla zenity.

itse käytän nykyään pääsääntöisesti noita bash-skriptejä zenityllä kun en vain jaksa enkä viitsi kaikkea tehdä alusta asti. linuxille on niin valtava määrä valmiita konsolissa toimivia ohjelmia että on niille kätevää tehdä vain graafinen käyttöliittymä.
tosin se onnistuu sitten ihan millä tahansa kielellä vain.

allekirjoitukseni ehkä osaltaan kertoo sen, miksi menen aina yli siitä missä aita on matalin :)

Puoliksi suunniteltu on hyvin tehty

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #31 : 30.08.09 - klo:22.43 »
Ihan siis graafisen käyttöliittymän omaavien ohjelmien tekeminen on todella helppoa Qdevelop nimisen ohjelmiston avulla.

useiille linuxissa käytetyille ui toolkiteille on myös ui-builderit joiden avulla käyttöliittymän rakentaminen on helppoa. se logiikka vaan pitää osata kirjoittaa sinne taustalle sitten jollain kielellä. käytännössä noille toolkiteille on kyllä sitten bindingsit aika monelle kielelle.

Qt:n käyttämisessä on se etu, että Qtlle kirjoitetut softat saa toimimaan jokapaikassa mihin Qt on käännetty :) Windowsin ja Linuxin lisäksi siis myös esim. Symbian, Maemo ja WinMO älykännyköissä!  ;)

sama pätee tietty noihin muihinkin toolkitteihin (gtk+, wxwidgets).

tarpeen ja mieltymyksen mukaan, mutta työpöytäohjelmointia varten on kyllä erinomaisen turha opetella php:tä. mieluummin joku kieli joka on alunperin tarkoitettukin sellaiseen käyttöön. aloittelijalle tietysti mielellään helposti omaksuttava, syntaksiltaan konsistentti ja nopeasti tuloksia tuottava kieli ;)
Janne

Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #32 : 31.08.09 - klo:18.31 »
Funktiokutsu on siten siinä mielessä saman arvoinen kuin uuden olion luominen, ja esimerkiksi Pythonin suunnittelufilosofiassa nämä toimenpiteet on aika pitkälle samaistettu. Uuden olion luominen ei siten ole luonteeltaan "eksplisiittinen" toimenpide, joka tulisi kielen perusfilosofian mukaan erikseen huomioida.

Pythonissakin uusien olioiden luomisesta täytyy eksplisiittisesti erikseen huolehtia esim. kopiointi käskyillä, aina silloin kun tarve vaatii.

new-käsky on yksiselitteinen merkki siitä että tässä kohdassa varataan muistia, tehdään uusi olio oletusarvoilla, ja palautetaan viittaus tähän uuteen olioon. New on eräänlainen pohjakosketus, johon tukeutuen voi suunnistaa eteenpäin. Ilman new:tä pohjakosketus täytyy hakea vielä syvempää, luokkien määrittelyistä.

snifi

  • Vieras
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #33 : 31.08.09 - klo:22.16 »
Pythonissakin uusien olioiden luomisesta täytyy eksplisiittisesti erikseen huolehtia esim. kopiointi käskyillä, aina silloin kun tarve vaatii.

Millaista esimerkkiä tässä ajattelet?

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #34 : 01.09.09 - klo:08.45 »
Php:llä ei ole helppo tehdä ohjelmia.

Kertoisitko vielä perustelut että miksi ko. kielellä ei ole helppoa tehdä ohjelmia?
Minusta sillä on erittäin helppoa tehdä ohjelmia, ainoastaan Visual Basic on ollut helpompi,
joten olisi mielenkiintoista kuulla miksi muka ei olisi?

Jos scripti-kieltä meinaa käyttää niin suosittelisin pythonin opiskelua. Se kun tulee suoraan Ubuntussa ja sillä on kätevä tehdä ohjelmia.

No jaa. Kätevyys on suhteellista. Minusta on kätevää löytää joku funktio netistä ja copy-pasteta
se tarvittaessa. Parhaassa tapauksessa sama ei toimi Pythonissa jos pastebini vääntää tabit spaceksi.
Sitten väännät jokaisen rivin sisennykset kuntoon että parsinta menee läpi.
Kätevää? Not.

Toki, on Python ihan kiva monessakin ja olen sillä jotain Maemollekkin vääntänyt, ei siinä,
mutta on siinäkin huonot puolensa.

Se ei ole lähellekään niin kankea kuin php, ja sillä on pakko tehdä selkeännäköistä koodia. Lisäksi monet asiat siinä voidaan tehdä lyhemmällä koodimäärällä, joten aloittelijan kynnys on pieni.

Ei PHP:lläkään ole pakko tehdä pitkää koodia monestikkaan.
Mieluummin kirjoitan 3 selkeää riviä kuin yhden pitkän ja monimutkaisen, ottamatta nyt kantaa millä kielellä se on kirjoitettu.

Millä tapaa PHP on mielestäsi kankea?

Ja mitä tulee pakkoon tehdä selkeännäköistä koodia, niin onhan se selkeää mutta sitten kun avaat eri editorilla jossa sisennysvälit ovat eri ja teet pari riviä ja huomaat että sisennykset eivät menneet täysin yksiin edellisten kanssa ja sitä sitten selvittelet niin kyllä siinä vaiheessa mielessä käy että onko tämäkään nyt niin hyvä tapa.

Mute

  • Käyttäjä
  • Viestejä: 58
    • Profiili
    • Kotisivuni
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #35 : 03.09.09 - klo:21.29 »
Onko kaikki unohtanut jo Urban Müllerin luoman Brainfuck-kielen. Se on parasta :P. Ei oo ainakaan liikaa komentoja. http://en.wikipedia.org/wiki/Brainfuck

peran

  • Vieras
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #36 : 03.09.09 - klo:23.29 »
Php:llä ei ole helppo tehdä ohjelmia.

Kertoisitko vielä perustelut että miksi ko. kielellä ei ole helppoa tehdä ohjelmia?
Minusta sillä on erittäin helppoa tehdä ohjelmia, ainoastaan Visual Basic on ollut helpompi,
joten olisi mielenkiintoista kuulla miksi muka ei olisi?

Koska siinä ei ole olemassa kunnon debuggaustoimintoja. Pythonissa voi kirjoittaa koodin suoraan tulkille ja näet heti mitä koodisi tekee. Sen jälkeen vain kopioit käskysi tiedostoon ja tallennat, jolloin scripti on jo valmis. Lisäksi käskyt eivät toimi loogisesti samalla rakenteella kaikelta osin.

Esimerkiksi näiden parametrijärjestys on ainakin oman assosiaationi mukaan erilaiset, vaikka toiminta on hyvin pitkälle samantapaista eli etsitään merkkijonoa. Ainakin minun mielestä php:ssä olisi parempi, jos str_replace:n parametrijärjestys olisi: subject, search, replace, count.
string strstr ( string $haystack , mixed $needle [, bool $before_needle= false ] )
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

Lisäksi tossa strstr-funktiossa ja monessa muussakin vakiokirjaston funktiossa epäloogisesti voi palauttaa kahta eri tyyppistä palautetta, vaikka parametrit olisivatkin identtisen tyyppiset.

Jos scripti-kieltä meinaa käyttää niin suosittelisin pythonin opiskelua. Se kun tulee suoraan Ubuntussa ja sillä on kätevä tehdä ohjelmia.

No jaa. Kätevyys on suhteellista. Minusta on kätevää löytää joku funktio netistä ja copy-pasteta
se tarvittaessa. Parhaassa tapauksessa sama ei toimi Pythonissa jos pastebini vääntää tabit spaceksi.
Sitten väännät jokaisen rivin sisennykset kuntoon että parsinta menee läpi.
Kätevää? Not.

Jeps, tota pasteamista pythonin parseriin voisi kehittää siten, että se itse korjaisi automaattisesti noita sisennysongelmia.

Toki, on Python ihan kiva monessakin ja olen sillä jotain Maemollekkin vääntänyt, ei siinä,
mutta on siinäkin huonot puolensa.

Se ei ole lähellekään niin kankea kuin php, ja sillä on pakko tehdä selkeännäköistä koodia. Lisäksi monet asiat siinä voidaan tehdä lyhemmällä koodimäärällä, joten aloittelijan kynnys on pieni.

Ei PHP:lläkään ole pakko tehdä pitkää koodia monestikkaan.
Mieluummin kirjoitan 3 selkeää riviä kuin yhden pitkän ja monimutkaisen, ottamatta nyt kantaa millä kielellä se on kirjoitettu.

Millä tapaa PHP on mielestäsi kankea?

No, php on tehty sivujen scriptaus kieleksi, ja siinä se ajaa usein asiansa, mutta aloittelijaa kyseinen suorastaa kannustaa tekemään spakettikoodia, koska olio-ominaisuudet ovat siihen jälkikäteen lisätty. Lisäksi olio-ominaisuuksista taitaa edelleen puuttua täydellinen kapselointi. Tosin luultavasti tämä ongelma korjataan, jos ei ole jo korjattu.  Valitettavasti moni aloittelija aloittaa php:llä, ja tekee reikäistä koodia omalle serverilleen, josta pahantahtoinen crackkeri saa serverin hallintaan ainakin osan aikaa.

Oletko kokeillut tehdä säikeitä php:llä?

Ja mitä tulee pakkoon tehdä selkeännäköistä koodia, niin onhan se selkeää mutta sitten kun avaat eri editorilla jossa sisennysvälit ovat eri ja teet pari riviä ja huomaat että sisennykset eivät menneet täysin yksiin edellisten kanssa ja sitä sitten selvittelet niin kyllä siinä vaiheessa mielessä käy että onko tämäkään nyt niin hyvä tapa.

Kuitenkin toi sisennyksiin pakottaminen on varsinkin aloittelijoille tärkeää, vielä kun ohjelmat ovat lyhyitä ymmärtää sisentämättömänkin ohjelman toiminnan, mutta jos ja kun huono ohjelmointitapa jää päälle, tulee ongelmia myöhemmin VARMASTI.

[OffTopic]
Vaikken pidäkään php:tä hyvänä kielenä aloittelijalle, niin siitä huolimatta tulen todennäköisesti opettamaan kyseistä kieltä ensimmäiseksi ohjelmointikieleksi. Lisäksi vielä dynaamisille nettisivuille.  :P

Lisää OffTopicia:
Minun mielestäni loppujen lopuksi ei ole suurtakaan väliä minkä suositun kielen valitsee ensimmäiseksi ohjelmointikielekseen, koska suosituimmissa kielissä ei kuitenkaan ole kovin suuria eroja, joten kun opettelee ensimmäisen kielen, niin sen jälkeen oppii nopeasti toisen kielen, mikäli sellaista tarvitsee.
Itse opettelin ohjelmoimaan Basic:llä 80-luvulla. Siinä oli paljon puutteita, ja väkisinkin joutui ohjelmoimaan spakettikoodia isommissa projekteissa. Onneksi nykyään on lähes kaikki ohjelmointikielet ovat niin kehittyneitä, ettei ohjelmoija ole pakoitettu tekemään spakettia (jopa assembler). Assembleria en nyt kuitenkaan suosittelisi ensimmäiseksi ohjelmointikieleksi.
[/OffTopic]

Jantunen

  • Käyttäjä
  • Viestejä: 254
  • Hö.
    • Profiili
    • Strobotti.com: Valokuvausta ja kameraharrastusta
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #37 : 04.09.09 - klo:16.20 »
Php:llä ei ole helppo tehdä ohjelmia.

Kertoisitko vielä perustelut että miksi ko. kielellä ei ole helppoa tehdä ohjelmia?
Minusta sillä on erittäin helppoa tehdä ohjelmia, ainoastaan Visual Basic on ollut helpompi,
joten olisi mielenkiintoista kuulla miksi muka ei olisi?

Koska siinä ei ole olemassa kunnon debuggaustoimintoja. Pythonissa voi kirjoittaa koodin suoraan tulkille ja näet heti mitä koodisi tekee. Sen jälkeen vain kopioit käskysi tiedostoon ja tallennat, jolloin scripti on jo valmis.

PHP:n funktioiden loogisuuden suhteen olen samaa mieltä, mutta kyllä PHP:lle on olemassa command-line interpreter:

Koodia: [Valitse]
sudo aptitude install php5-cli
php -a
Lenovo Thinkpad T420 Intel i5 16Gt/SSD512GB+HDD2TB, Ubuntu 16.04 Xenial Xerus 64bit; Kuvia ja lätinää valokuvauksesta: https://www.strobotti.com/

odysseus

  • Käyttäjä
  • Viestejä: 367
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #38 : 04.09.09 - klo:18.48 »
Tämä onkin mielenkiintoinen ketju.

Itse herättäisin kiistelyn sijaan ihan ensimmäiseksi ajatuksen seuraavista seikoista:

1) Kysyttiin ohjelmointikieltä: On olemassa erilaisia; käännettäviä, pseudokäännettäviä ja tulkattavia!
2) Mikä on paras mihinkin tarkoitukseen?

Itse pidän (ja on >20v kokemusta) C:stä ja sen laajennuksesta (C++) kun tarvitsee tehdä käännettyä koodia (sen hybridiominaisuuksien vuoksi, eli että se sisältää C:n).
Käyttöliittymäpuolella (GUI) arvostan QT:ta sen laitteistoalustariippumattomuuden vuoksi.
Webbipuolella ja nopeissa ratkaisuissa suosin PHP:tä sen helppouden (ja hybridiominaisuuksien) vuoksi.

Ylipäätään arvostan noita hybridikieliä (esim C++ ja PHP)  pelkän oliomallin sijaan (esim Java).

Voin myös sanoa, että kartan ja kierrän kaukaa ratkaisuja, jotka ovat laitealustaan sidottuja (esim. .NET, C#, Visual Basic, erilaiset alustariippuvat kirjastot jne) sekä Java sen versioherkkyyden ja suunnattoman monimutkaisen luokkakirjasto- sekä paketointimallinsa vuoksi.


Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Ohjelmien teko Ubuntuun?
« Vastaus #39 : 08.09.09 - klo:12.05 »
No, php on tehty sivujen scriptaus kieleksi, ja siinä se ajaa usein asiansa, mutta aloittelijaa kyseinen suorastaa kannustaa tekemään spakettikoodia, koska olio-ominaisuudet ovat siihen jälkikäteen lisätty.

Tästä olen eri mieltä. Ei aloittelijoiden ole mikään pakko tehdä spagettikoodia eikä kieli mielestäni siihen kannusta. Kielessä on nykyään kohtalaiset olio-ohjelmointiominaisuudet, joten ne ovat käytettävissä.
Vaikka ne on jälkeenpäin lisätty, ei se ole syy huonoon koodiin. Onhan autoihinkin lisätty turvavyöt jälkikäteen mutta eivät autot silti kannusta ajamaan ilman niiden käyttöä (näin totaalisen offtopiccina).

Oletko kokeillut tehdä säikeitä php:llä?

En, sillä ei ole koskaan tainnut olla edes tarvetta. Ja toki kieli pitää valita tarpeen mukaan.