Kirjoittaja Aihe: Suositelkaa ohjelmointiympäristöä  (Luettu 4803 kertaa)

nm

  • Käyttäjä
  • Viestejä: 15245
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #20 : 01.10.21 - klo:15.49 »
Tässä oli nyt enemmän kyse tuon graafisen ulkoasun (helposta) luomisesta, kun itse softakoodin luomisesta. Siihen löytyy toki paljon tarjontaa, mutta VisualBasicin kaltaisia ympäristöjä on vähän. Tuo aiemmin mainittu , Pascal-pohjainen Lazarus voisi olla yksi, mutta en ole löytänyt suurta eroa Basic-pohjaiseen Gambasiin.

Gambas toimii vain Linuxissa. Lazaruksella kehitetyt graafiset sovellukset voi kääntää suurin piirtein suoraan eri käyttöjärjestelmille. Riippuu toki osittain siitä, mitä muita ulkoisia kirjastoja niissä kutsuu, ja mitä oletuksia sovelluksen omassa koodissa tehdään alustasta, kuten hakemistopoluista.

Kun esim. tuo Gambas ilmoittaa käyttävänsä QT4-GUI-kirjastoja, niin tarkoittaako tuo käytännössä, että ne löytyvät suuremmista Linux-jakeluista?

Qt4 on jo niin vanha, ettei se ole suoraan saatavilla uudemmissa jakeluissa. Viimeisen Qt4-version tuki on loppunut vuonna 2015.

Gambas käyttää nykyisin kuitenkin Qt5:ttä, joka on suoraan saatavilla kaikkien yleisten jakeluiden ohjelmalähteistä.

Uusi Qt6 ei toimi vanhemmissa jakeluissa, kuten Ubuntu 18.04:ssä. Sen yleistyminen ottaa vielä aikansa.

Haen takaa lähinnä sitä, että miten helppo noita tehtyjä ohjelmia on sitten levittää. Jos teen vaikka oman laskukone-ohjelman (applikaation), niin tarvitseeko sen ajamisen toisella Linuxilla mukaan nuo kirjastot vai toimiiko pelkkä ajokelpoinen tiedosto?

Perinteisesti Linux-sovellukset on paketoitu jakelukohtaisesti siten, että tarvittavat riippuvuudet asentuvat automaattisesti jakelun ohjelmalähteistä. Tällöin sovelluksen oma paketti pysyy kohtuullisen kokoisena eikä levytilaa kulu moninkertaisiin samojen kirjastojen asennuksiin kuten Windowsissa. Kehittäjän kannalta työmäärä voi kuitenkin nousta suureksi, jos paketit on rakennettava ja testattava Ubuntussa, Fedorassa, OpenSUSE:ssa, Debianissa jne.

Vaihtoehtoisesti tarvittavat kirjastot voi toimittaa sovelluksen mukana. AppImage helpottaa tällaista paketointia. En tiedä, kuinka helppoa tämä olisi Gambasin tapauksessa.

Modernit paketointi- ja jakelujärjestelmät kuten Flatpak ja Snap toimivat näiden ääripäiden välillä, pyrkien maksimoimaan paketin suoran yhteensopivuuden eri Linux-jakelujen välillä, ja samalla minimoimaan levytilan ja muistin käytön, välttäen olemassa olevien kirjastojen ja muiden riippuvuuksien asentamista useaan kertaan. Lisäksi niissä on tuki sovellusten sandboxaukseen eli niiden oikeuksien tarkkaan rajaamiseen ja erottamiseen muista sovelluksista. Flatpak ja Snap tarjoavat myös alustan sovellusten jakeluun:
https://flathub.org/home
https://snapcraft.io/

Ubuntun sovellusvalikoima tarjoaa suoraan Snapcraftin paketteja, ja Flathub on mahdollista ottaa käyttöön. Periaatteessa pitäisi olla täysin mahdollista paketoida Gambas-sovellus Snapilla tai Flatpakilla.
« Viimeksi muokattu: 01.10.21 - klo:15.52 kirjoittanut nm »

Snufkin

  • Käyttäjä
  • Viestejä: 266
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #21 : 01.10.21 - klo:18.51 »
Gambas toimii vain Linuxissa.
Juu, tuo rajoitus on tiedossa. Siksi mietin, että jos sama koodi olisi sitten kohtuullisen helppo siirtää VB6:seen, niin saisi toimimaan myös Windowsissa.


Perinteisesti Linux-sovellukset on paketoitu jakelukohtaisesti siten, että tarvittavat riippuvuudet asentuvat automaattisesti jakelun ohjelmalähteistä. Tällöin sovelluksen oma paketti pysyy kohtuullisen kokoisena eikä levytilaa kulu moninkertaisiin samojen kirjastojen asennuksiin kuten Windowsissa. Kehittäjän kannalta työmäärä voi kuitenkin nousta suureksi, jos paketit on rakennettava ja testattava Ubuntussa, Fedorassa, OpenSUSE:ssa, Debianissa jne.

Vaihtoehtoisesti tarvittavat kirjastot voi toimittaa sovelluksen mukana. AppImage helpottaa tällaista paketointia. En tiedä, kuinka helppoa tämä olisi Gambasin tapauksessa.

Modernit paketointi- ja jakelujärjestelmät kuten Flatpak ja Snap toimivat näiden ääripäiden välillä, pyrkien maksimoimaan paketin suoran yhteensopivuuden eri Linux-jakelujen välillä, ja samalla minimoimaan levytilan ja muistin käytön, välttäen olemassa olevien kirjastojen ja muiden riippuvuuksien asentamista useaan kertaan. Lisäksi niissä on tuki sovellusten sandboxaukseen eli niiden oikeuksien tarkkaan rajaamiseen ja erottamiseen muista sovelluksista. Flatpak ja Snap tarjoavat myös alustan sovellusten jakeluun:
https://flathub.org/home
https://snapcraft.io/

Ubuntun sovellusvalikoima tarjoaa suoraan Snapcraftin paketteja, ja Flathub on mahdollista ottaa käyttöön. Periaatteessa pitäisi olla täysin mahdollista paketoida Gambas-sovellus Snapilla tai Flatpakilla.

Kiitos tästä "selvennyksestä". :) Huomaan (taas) että tietoni ovat hyvin vajavaiset ja paljon pitää vielä selvittää ennen kuin pystyy tekemään mitään yleiseen jakeluun. Sattaa olla hyvä ensin keskittyä tuohon ohjelmointiin ja miettiä sitten näitä alustasopivuuksia.

matsukan

  • Käyttäjä
  • Viestejä: 2144
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #22 : 01.10.21 - klo:18.56 »
VB6 on ilmeisesti jo käytöstä poistumasta joten en lähtisi katsomaan Visual Basicin perään.  M$ tarjoaa sitten dot net kieltä mutta sen tuki Linuxissa on niin ja näin.

Jos itse tekisin ohjelmaa moneen ympäristöön niin lähtisin ensiksi katsomaan onko Qt:sta ratkaisu ongelmaan. Toki siinäkin on omat lisenssointiin liittyviä ongelmia jos puhutaan kaupallisesta ympäristöstä.

Sitten onkin vaihtoehdot vähissä jos esim Qt ei käy. CopperSpice ? Pascalia en ole käyttänyt pitkään aikaan mutta siinä voi tulla vastaan kielestä johtuvia ongelmia.
 
Pohjois-pohjanmaa
-- motto:  backupin tarve huomataan aina liian myöhään

Snufkin

  • Käyttäjä
  • Viestejä: 266
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #23 : 01.10.21 - klo:20.14 »
VB6 on ilmeisesti jo käytöstä poistumasta joten en lähtisi katsomaan Visual Basicin perään. 

Taitaa olla jo poistunut. Pointti oli siinä, että se lienee melko lähellä tuota Gambas-ohjelman koodia ja olisi helppo muunnos. VB6 löytynee myös ilmaiseksi jostain ja sen ajotiedostoja tuetaan win10 elinkaaren loppuun asti, ehkä pidemmällekin.

Noin pidemmällä tähtäimellä kannattanee panostaa Pythoniin ja opetella sille joku hyvä graafinen ympäristö. On vain näin vasta-alkajan roolista melkoinen savotta.