Kirjoittaja Aihe: Freebasic versio  (Luettu 4006 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Freebasic versio
« : 26.08.10 - klo:22.44 »
Ubuntu 10.04.
Asensin Freebasic:n jokin  aika sitten. Ver 0.18. Käytin, kunnes huomasin, että versiossa on exec -komennossa bugi, joka alkoi tunkea virherttä 1020 suorituksen jälkeen.
Hain ja asensin ver 0.21. Tämä taas kaipaa libstdc++-dev.
Tätä kun lähtee asentamaan, saa ilmoisuken siitä, että asennus poistaa nipun essential tiedostoja, esim grep, apt, bash, hostname, login . . .
Mitä hiiskattia ?!
Mitävarten synaptic alkaa poistaa kamaa, kun haluan asentaa development -kirjastoja ?

Onko mitään tapaa saada freebasic:n tuore versio toimimaan Ubuntussa ?

juyli

  • Vieras
Vs: Freebasic versio
« Vastaus #1 : 27.08.10 - klo:12.09 »
Onko mitään tapaa saada freebasic:n tuore versio toimimaan Ubuntussa ?

En itse rikkoisi järjestelmää asentamalla "epämääräistä" deb-pakettia, (jollet ole itse kääntänyt ja paketoinut sitä omaan järjestelmääsi).
FreeBasic sivuilla tarjotaan mm. Linuxille kaksi FreeBasic 0.21.1 -versiota. Nuo asennetaan joko /usr/local tai This package may be run directly from the package/development tree or installed to /usr/share/freebasic by default

http://www.freebasic.net/index.php/details?page=download&category=bin&id=4
http://www.freebasic.net/index.php/details?page=download&category=bin&id=3

PS. Noita libstd++6-4.x-dev -paketteja on useita. x on yhdestä neljään.
« Viimeksi muokattu: 27.08.10 - klo:12.16 kirjoittanut juyli »

odysseus

  • Vieras
Vs: Freebasic versio
« Vastaus #2 : 27.08.10 - klo:16.55 »
Harrastustoimintaa en halua rajoittaa, mutta kyseenalaistaisin sen, että miksi ihmeessä joku epästandardi FreeBasic pitäisi saada koneelle ylipäätään?

Jos olette olleet Basic-koodaajia tai olette aloittamassa jonkun uuden ohjelmistokehitysprojektin, niin opetelkaa ja käyttäkää nyt hyvät ihmiset tekniikoita, jotka ovat;

a) standardeja
b) yleisesti tunnettuja (de-facto)
c) laajennettavia
d) skaalutuvia
e) modulaarisia
f) vikasietoisia
g) alustariippumattomia (ainakin nyt Unix/Linux, Win, Mac)
h) Open Sourcea (tämän voisi vaikka pistää kohdaksi b)
i) ja jos Internet kamaa, niin sellaisia, joille on tuki myös lähes kaikissa "hosteissa"

Hyviä pointtereita ovat esimerkiksi:

Clientille:
-Ansi-Gnu C / C++
-QT 4 (C++)
-Java (varauksin)

Palvelimelle:
-PHP
-Perl
-Python
-Ansi-Gnu C / C++
-Java (varauksin)
 jne....

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Freebasic versio
« Vastaus #3 : 15.10.10 - klo:15.59 »
Harrastustoimintaa en halua rajoittaa, mutta kyseenalaistaisin sen, että miksi ihmeessä joku epästandardi FreeBasic pitäisi saada koneelle ylipäätään?

Jos olette olleet Basic-koodaajia tai olette aloittamassa jonkun uuden ohjelmistokehitysprojektin, niin opetelkaa ja käyttäkää nyt hyvät ihmiset tekniikoita, jotka ovat;

a) standardeja
b) yleisesti tunnettuja (de-facto)
c) laajennettavia
d) skaalutuvia
e) modulaarisia
f) vikasietoisia
g) alustariippumattomia (ainakin nyt Unix/Linux, Win, Mac)
h) Open Sourcea (tämän voisi vaikka pistää kohdaksi b)
i) ja jos Internet kamaa, niin sellaisia, joille on tuki myös lähes kaikissa "hosteissa"


Jees, jees. Itse olen keittänyt koodia kasaan jokseenkin kaikilla tunnetuilla ohjelmointikielillä ja aika monilla tuntemattomillakin ja itsekin luonut muutaman hupimielessä. Kokemusta on tullut suuristakin projekteista.
En vaan käsitä, miksi yhä vieläkin Basic aiheuttaa niin suuria tunteita ihmisissä. Aikoinaan lehtien asioita tuntemattomat toimittajat ylläpitivät legendaa Basicin spagettikoodista, mutta noista ajoista on jo kohta kolmisenkymmentä vuotta.

Itse pidän edelleen Basicista, koska:
a) Koodi on alustariippumatonta siinä määrin, kuin mikään muukaan ohjelmointikieli.
b) koodia on helppo kääntää toisiin kieliin.
c) koodi on helppolukuista, helposti kommentoitavaa ja osittain itsedokumentoivaa
d) koodia on helppo aloittelijankin kirjoittaa.
e) matemaattisten probleemien käsittely on selkeää
f) funktiografiikka on vaivatonta

Laajennettavuudet, modulaarisuudet yms riippuvat ohjelmoijan taidoista
Muutkin luettelemasi kohdat täyttyvät Basic:ssa.

Ja se spagetti-koodi: Olen itsekin kirjoittanut C:llä ja Perlillä ohjelmia, joiden logiikasta en puolta vuotta myöhemmin ymmärtänyt mitään. Sittemmin olen totutellut välttämään näiden kielten kikkakonsteja ja pyrkinyt suoraviivaiseen ja yksinkertaiseen esitykseen, joka yllättävää kyllä näyttää aika paljon Basic:lta. Tietenkin myös koodin sisään kirjoitetut runsaat kommentit auttavat asiaa.
« Viimeksi muokattu: 15.10.10 - klo:16.03 kirjoittanut Mistofelees »

snifi

  • Vieras
Vs: Freebasic versio
« Vastaus #4 : 15.10.10 - klo:17.12 »
... ja itsekin luonut muutaman hupimielessä.

Miten ohjelmointikieliä luodaan hupimielessä? Olen sillon tällöin katsellut teorioita lexin ja yaccin takana, mutta minusta ne vaikuttavat aika monimutkaisilta.

odysseus

  • Vieras
Vs: Freebasic versio
« Vastaus #5 : 15.10.10 - klo:17.51 »
Itse pidän edelleen Basicista, koska:
a) Koodi on alustariippumatonta siinä määrin, kuin mikään muukaan ohjelmointikieli.

Eikä ole!
Basicista ei ole olemassa selkeää standardia.
Alustariippumattomuus vaatii sen, että kieli on standardoitu -Basic ei ole edes de factona selkeästi standardi muuten kuin varattujen sanojen ja kielenkäsittelyn osalta. Se ei sisällä mitään standardia (luokka)kirjastoa.

b) koodia on helppo kääntää toisiin kieliin.

Standardoimattomuutensa vuoksi se ei ole helppo kääntää yhtään mihinkään. Koskaan ei voi tietää mitä ulkopuolisia ja "Microsoft spesifisiä" juttuja siellä on käytetty.

c) koodi on helppolukuista, helposti kommentoitavaa ja osittain itsedokumentoivaa

Monet muutkin kielet ovat helppolukuisia. Kommetoitavuus sisältyy tietääkseni kaikkiin nykyisiin ohjelmointikieliin ja eipä kai se ole kovin vaikeaa kirjoittaa ja kommentoida vaikkapa C-koodia?
Implementaatiosta vapaan dokumentoinnin voi myös automatisoida. Tutustuppa vaikka työkaluihin nimeltä: JavaDoc, CppDoc, PhpDoc jne.

d) koodia on helppo aloittelijankin kirjoittaa.

Jos on aloittelija eikä tunne kieltä, niin on aivan yhtä helppoa aloittaa vaikka C-kielestä. Jokaisessa kielessä on omat ominaisuutensa ja ne on suurinpiirtein yhtä helppoa oppia.
C:n ja C++:n niinsanotun vaikeuden tekee ainoastaan se, että se tarjoaa paljon enemmän mahdollisuuksia. Kukaan ei tietenkään käske väenväkisin käyttämään näitä vaikeita metodeja ennenkuin on oppinut kielen.

e) matemaattisten probleemien käsittely on selkeää

Matematiikka on suhteellisen eksakti tiede, joten noiden probleemien käsittely tapahtuu kielessä kuin kielessä melkolailla samalla kaavalla.

f) funktiografiikka on vaivatonta

Funktiografiikka? En ymmärrä mitä haet.
Tarkoitatko, että on helppoa piirtää esimerkiksi sinikäyrää näytölle?

Laajennettavuudet, modulaarisuudet yms riippuvat ohjelmoijan taidoista
Muutkin luettelemasi kohdat täyttyvät Basic:ssa.

Paitsi pointterit! -iki-ihanat pointterit, joita ilman elämä olisi niin hankalaa!

Ja se spagetti-koodi: Olen itsekin kirjoittanut C:llä ja Perlillä ohjelmia, joiden logiikasta en puolta vuotta myöhemmin ymmärtänyt mitään. Sittemmin olen totutellut välttämään näiden kielten kikkakonsteja ja pyrkinyt suoraviivaiseen ja yksinkertaiseen esitykseen, joka yllättävää kyllä näyttää aika paljon Basic:lta. Tietenkin myös koodin sisään kirjoitetut runsaat kommentit auttavat asiaa.

Dokumentointi on kaiken a ja o. Koodi on huonosti kirjoitettu jos sen logiikasta ei ymmärrä mitään.


snifi

  • Vieras
Vs: Freebasic versio
« Vastaus #6 : 15.10.10 - klo:20.02 »
Alustariippumattomuus vaatii sen, että kieli on standardoitu

Mitä alustariippumattomuus tänä päivänä edes tarkoittaa? Alustoja ovat tänä päivänä graafiset käyttöliittymät, ja yhdelle graafiselle käyttöliittymälle koodattu ohjelma ei toimi toisessa graafisessa käyttöliittymässä. Konsoliin kirjoittaminen tuntuu kaukaa haetulta alustariippumattomuudelta kun ihmiset eivät käytännössä enää edes tiedä mikä konsoli on.


Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Freebasic versio
« Vastaus #7 : 15.10.10 - klo:21.14 »
Lainaus käyttäjältä: odysseus
Jos on aloittelija eikä tunne kieltä, niin on aivan yhtä helppoa aloittaa vaikka C-kielestä. Jokaisessa kielessä on omat ominaisuutensa ja ne on suurinpiirtein yhtä helppoa oppia.

Tästä kyllä täytyy kysyä, että mihinkä tämä arvio/tieto perustuu että olisi yhtä helppoa aloittaa suoraan C-kielellä kuin Basicilla? Väittäisin kyllä aivan muuta.

Ensinnäkin basiceissa, vaikkapa nyt sitten QBasicissa jos haluat tulostaa merkkijonon näytölle kirjoitetaan vain PRINT "Merkkijono" ja käynnistetään ohjelma. Komentoriville saadaankin nopeasti näppärästi tekstiä. C:llä käyttäjän pitää ensin tietää mikä kirjasto sisältää näytölle tulostamisen (stdio) funktiot, pitää osata liittää se omaan koodiinsa #includella, pitää osata tehdä main-funktio, kirjoittaa tulostusteksti ja vielä osata kääntää sekä linkittää ohjelmansa jotta pääsee testaamaan.

Kyllä itse väittäisin että C-kieli vaatii "hieman" enemmän aloittelijalta oppimista kuin basicin variaatiot eikä se no. ole aivan yhtä helppoa kuin basic aloittelijalle.

Lainaus käyttäjältä: odysseus
C:n ja C++:n niinsanotun vaikeuden tekee ainoastaan se, että se tarjoaa paljon enemmän mahdollisuuksia. Kukaan ei tietenkään käske väenväkisin käyttämään näitä vaikeita metodeja ennenkuin on oppinut kielen.

Kyllä C- sekä C++ -kielissä on myös muitakin hankaluuksia kuin se että sillä voi tehdä paljon enemmän, etenkin aloittelijalle. Kuten yllä aiemmin luettelin, käyttäjän pitää jossain vaiheessa perehtyä mitä on kirjastotiedostot, mitä on kääntäminen, mitä on esikääntäminen sekä linkittäminen, miten ohjelmia debugataan yms. Myös pointterit tulevat jossain vaiheessa kuvaan mukaan, samoin merkkijonojen käsittely on C:llä paljon hankalampaa kuin Basic-kielissä, samoin itse pitää hoitaa muistin varaamiset yms. Että en nyt ihan suoralta kädeltä sanoisi sitä yhtä helpoksi oppia kuin Basicit.

Eli lyhyesti, C-kielen sekä C++-kielen syntaksissa ja toimintatavoissa on hankalampia asioita kuin Basic-kielissä (esim. merkkijonojen käsittelyt ja muistin varaamiset merkkijonoille ja muistien vapauttamiset yms) eikä se johdu luultavastikaan siitä, että sillä voi tehdä enemmän. Yksinkertaisetkin merkkijonokäsittelyt ovat huomattavasti vaikeampia tehdä C:llä tai C++:lla kuin Basic-kielissä yleisesti ottaen.

PS. Tarkoituksena ei ole sanoa että C/C++ ei ole opittavissa oleva ja pidän itsekin C-kielestä, mutta en sitä kyllä helposti lähetstyttäväksi opettelukieleksi menisi sanomaan. Työkalu (eli ohjelmonitikieli) kannattaa toki aina valita oman tarpeensa mukaan. Jos se on jollakulla basic, olkoon niin. Pääasia että se tekee sen mitä käyttäjä haluaa, eikö?

EDIT: Pahoittelut että oli alunperin mennyt väärän henkilön nimiin siteeraukset. Kiitos huomautuksesta :)
« Viimeksi muokattu: 16.10.10 - klo:23.56 kirjoittanut Stargazers »

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Freebasic versio
« Vastaus #8 : 15.10.10 - klo:22.57 »
^Noissa lainauksissa on kyllä väärä henkilö.

Mutta asiaan, mulle ainakin tulee noista Mistofeleen vaatimuksista mieleen python eikä basic (eikä varsinkaan c (plussilla tai ilman)).

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Freebasic versio
« Vastaus #9 : 18.10.10 - klo:11.54 »
^Noissa lainauksissa on kyllä väärä henkilö.

Mutta asiaan, mulle ainakin tulee noista Mistofeleen vaatimuksista mieleen python eikä basic (eikä varsinkaan c (plussilla tai ilman)).

Olen jonkin verran käyttänyt Pythonia, mutta en ole erityisesti lämminnyt. Se on kyllä tehokas kieli moneen käyttöön, mutta yleensä oma käyttöni on aika tavalla erilaista.

Basicia pidän yleensä aina työkalupakissani muille kielille kirjoittaessani. Basic:lla on nopea keittää kasaan muutaman rivin ohjelmia. Erityisesti omituisten tiedostojen purkuun, funktiografiikkaan (sinikäyrien piirtelyyn, kuten joku edellä sitä nimitti) ja simppeliin laiteohjaukseen.
Aikoinaan puhuttiin eri kielten nopeuksista. Siinä unohdettiin kuitenkin säännöllisesti se, että usein omaan käyttöön ohjelmaa keittäessä menee monituhatkertaisesti se aika, mitä kuluu ohjelman ajoon.
Sittemmin Basic-kääntäjätkin ovat parantuneet, eikä nopeuseroista juuri puhuta. Pikemminkin ollaan kohta samassa tilanteessa, kuin 4.77MHz PC-koneiden aikoihin. Nopeusjärjestys oli QB2, Forth, Turbo-C, QB45, MsC.

Lähinnä olen kaivannut Basicissa 'Regular expression' -työkaluja Perlistä. FreeBasicissa alkaa jo olla niitäkin tarjolla.

Eri ohjelmointikieliä arvioitaessa pitäisi aina tehdä jako siinä, mihin niitä käyttää. C:llä on varmaan mukava kirjoittaa systeemitason ohjelmia. Se on toisaalta hankala, jos pitää nopeasti keittää ohjelmia, joita tarvitsee hetken jonkin simppelin ongelman ratkaisuun. Kummastakaan ei yleensä ole paljoa iloa WEB-sovellusten rakenteluun, johon taas PHP ja JavaScript ovat välttämättömiä Perlillä tuettuina.

Vielä Basic:n siirrettävyydestä: Itse olen tehnyt ohjelmia, joilla olen kääntänyt wanhoja Apple II:lle ja C64:lle kirjoitettuja koodeja QB:lle ja FB:lle. Samoin wanhoja F77 ja Pascal-ohjelmia on tullut käännettyä QB:lle ja FB:lle. F77 oli oikeastaan suoraan Basic:a, kunhan pysytteli erossa grafiikoista, laiteohjauksista ja äänistä.

Visual Basic oli versioon 4 saakka jollain tavoin lähes siedettävä. Sen jälkeen VB:stä ei ole ollut mitään iloa sellaiselle, joka tekee ohjelmia omaan käyttöönsä. Esimerkiksi juuri matemaattisten ongelmien käsitteyyn. VB:ssä MS on taas kerran kussut omille jaloilleen. Ensimmäinen kerta oli, kun MSDOS:n komentokieli erotettiin täydellisesti Basic:sta. Jos Command.com ja Basic olisi yhdistetty, olisi pystytty käyttämään todellisia scriptejä. Vrt Bash Linuxissa.

C:sta tulee vielä mieleen vanha (C:n opettajan lausuma) vitsi:
-"C:llä pystyy laskemaan yhteen kakkosen ja huutomerkin ja saamaan aikaan pointterin jonnekin, minne ei missään tapauksessa halua"
Tällä hän halusi muistuttaa siitä, että C:llä kirjoitetun koodin debuggaus on raakaa työtä.

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Freebasic versio
« Vastaus #10 : 18.10.10 - klo:12.14 »
... ja itsekin luonut muutaman hupimielessä.

Miten ohjelmointikieliä luodaan hupimielessä? Olen sillon tällöin katsellut teorioita lexin ja yaccin takana, mutta minusta ne vaikuttavat aika monimutkaisilta.

Teorioista en mitään tiedä, koska en koskaan ole virallisesti tietojen käsittelyä opetellut kuin ensimmäiseen vittuuntumiseen asti.

Yksinkertaisinta on kirjoittaa scripti, joka lukee tiedostosta kirjoittamaasi sorsakoodia, pilkkoo siitä komennot erilleen parametreineen ja korvaa komennot pointtereilla kohdekoodiin sekä osoittaa, mistä parametrit voi hakea ja minne tulokset voi pistää. Haarautumisia, hyppyjä ja rekursion tapaisia rakenteita varten luot osoitejärjestelmän.
Aloita parilla komennolla ja laajenna systeemiä mielenkiinnon mukaan.
Jossain vaiheessä herää kysymys, mitä yleensä tarkoitetaan ohjelmointikielellä.
Onko esim ohjelmointia, jos antaa ohjattavalle laitteelle jonon komentoja argumentteineen ?

Eihän tälläisestä mitään maailmoja syleilevää synny ilman vakavaa paneutumista, mutta kaikkea kannattaa kokeilla, paitsi ehkä hirressä roikkumista.