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

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Suositelkaa ohjelmointiympäristöä
« : 29.09.21 - klo:14.33 »
Moi!

Haluaisin opiskella ohjelmointia ja etsin sitä varten sekä kieltä, että sopivaa graafista ympäristöä. Aiempi kokemus on Visual Basicista, joka olisi liki täydellinen tarpeisiini. En siis tee mitään monimutkaisia ohjelmia, vaan enemmänkin kyse on tiedon järjestelystä yms. ohjelmallisesti helposta toiminnasta. Tärkeää olisi kuitenkin kyetä luomaan monipuolisia ikkunoita, joista sekä syöttää tietoa että hakea sitä.

Eräs esiin noussut vaihtoehto olisi Gambas, joka lienee varsin lähellä Visual Basicia.
http://gambas.sourceforge.net/en/main.html#

Toinen vaihtoehto voisi olla, että opettelen Pythonia, mutta en ole löytänyt sille yhtään helppoa (paino sanalla helppo) IDE:tä. Ericiä ja Spyderiä olen tutkinut, mutta ehkä liian monimutkaisia näin alkuun, eivätkä ainakaan suoraan tuo tuota ohjelma-ikkunan ulkoasun muokkaamista. 
https://eric-ide.python-projects.org/

Mitäpä muita on olemassa?

Käytössä Xubuntu 20.04



Xubuntu 22.04 LTS, Fujitsu Lifebook E754

nm

  • Käyttäjä
  • Viestejä: 16363
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #1 : 29.09.21 - klo:15.09 »
Qt on kehittynein vaihtoehto, mutta toki se on myös melko monimutkainen Visual Basiciin verrattuna. Käyttöliittymän voi piirtää Qt Designerilla, joskaan se ei välttämättä merkittävästi helpota työtä, koska kytkennät täytyy kuitenkin tehdä koodin puolella. Itse tykkään enemmän siitä, että käyttöliittymä määritellään koodilla, jolloin kokonaisuuden hallinta ja ylläpito on helpompaa, eikä spagettikoodia generoiva suunnittelutyökalu pääse sotkemaan asioita.

Hyvä Qt-opas Pythonille: https://www.pythonguis.com/pyqt-tutorial/


Jotkut kehuvat PySimpleGUI:ta yksinkertaisten käyttöliittymien rakenteluun. Siinä ei ole graafista editoria, mutta koodi on yksinkertaisempaa kuin useimmissa GUI-kirjastoissa.
Aloitusohje: https://realpython.com/pysimplegui-python/

Pythonin jälkeen toiseksi suosituin ohjelmointikieli eli Java tarjoaa myös hyvät työkalut graafisten käyttöliittymien suunnitteluun. Suosituista kehitysympäristöistä ainakin Eclipse, Netbeans ja IntelliJ IDEA tarjoavat graafiset GUI-editorit Javan Swing-käyttöliittymäkirjastolle. Uudemmalle JavaFX-käyttöliittymäkirjastolle tuki on valitettavasti heikompaa. Javan eduksi voi laskea sovelluksen jar-paketin suoran siirrettävyyden eri käyttöjärjestelmiin, kunhan JRE on asennettu järjestelmään. Python-sovellusten paketointi ja käyttöönotto eri alustoilla on astetta haastavampaa.
« Viimeksi muokattu: 29.09.21 - klo:15.29 kirjoittanut nm »

kamara

  • Käyttäjä
  • Viestejä: 3017
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #2 : 29.09.21 - klo:15.25 »
Itse olen hiljattain tutustunut tkinter:iin Pyhtonilla tehdessäni GUI-ympäristöön ohjelmia.

Tosin en osaa/tiedä, kuinka hyvä se on, mutta se ajaa asiansa. Esimerkkejä löytyy kuitenkin varsin hyvin, ja tukee python 3:sta.

Edit - Editororina käytän kate:a, vaikka se ei olekaan kovin kehittynyt, mutta se on melko kevyt kuitenkin. Toki koodin kirjoittamiseen voi käyttää vaikka nano:a, joten editorin valinta on mielipidekysymys.

Edit - Googlaukseni...
https://www.google.com/search?channel=fs&client=ubuntu&q=tkinter
« Viimeksi muokattu: 29.09.21 - klo:15.28 kirjoittanut kamara »

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #3 : 29.09.21 - klo:15.29 »
Itse olen hiljattain tutustunut tkinter:iin Pyhtonilla tehdessäni GUI-ympäristöön ohjelmia.


Katselin tuosta pari esittelyvideota ja sen mukaan ikkunan luominen on melko työlästä. Ei voi oikein edes verrata VB:n helppouteen.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

nm

  • Käyttäjä
  • Viestejä: 16363
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #4 : 29.09.21 - klo:15.31 »
Katselin tuosta pari esittelyvideota ja sen mukaan ikkunan luominen on melko työlästä. Ei voi oikein edes verrata VB:n helppouteen.

No ei kai se nyt ole kuin muutama rivi koodia:

Koodia: [Valitse]
import tkinter as tk

root = tk.Tk()
root.mainloop()

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #5 : 29.09.21 - klo:15.34 »
Qt on kehittynein vaihtoehto, ...

Pythonin jälkeen toiseksi suosituin ohjelmointikieli eli Java tarjoaa myös hyvät työkalut graafisten käyttöliittymien suunnitteluun. Suosituista kehitysympäristöistä ainakin Eclipse, Netbeans ja IntelliJ IDEA tarjoavat graafiset GUI-editorit Javan Swing-käyttöliittymäkirjastolle. Uudemmalle JavaFX-käyttöliittymäkirjastolle tuki on valitettavasti heikompaa. Javan eduksi voi laskea sovelluksen jar-paketin suoran siirrettävyyden eri käyttöjärjestelmiin, kunhan JRE on asennettu järjestelmään. Python-sovellusten paketointi ja käyttöönotto eri alustoilla on astetta haastavampaa.

Tuo "raaka" QT on kyllä poissuljettu, kun ei tarkoitus ole alkaa ohjelmoijaksi, vaan saada aikaan muutamia helppoja sovelluksia. Analogisesti jos haluan kirjoittaa hyvin muotoillun tekstin, ei kannata tehdä sitä editorilla, vaan tekstikäsittelyohjelmalla. Ei paino on sisällössä, ei ulkoasun koodaamisessa.

Tuohon Javaan pitää tutustua. Alustariippumaton jakelu voisi olla hyödyksi, vaikka lähinnä omaan käyttöön on tarve.

Jos päädyn Gambas-ohjelmaan, niin softa pitää sitten kirjoittaa uudestaa VB:lle, jos haluaa sen windows-ympäristöön. Se on iso miinus.

Xubuntu 22.04 LTS, Fujitsu Lifebook E754

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #6 : 29.09.21 - klo:15.37 »
Katselin tuosta pari esittelyvideota ja sen mukaan ikkunan luominen on melko työlästä. Ei voi oikein edes verrata VB:n helppouteen.

No ei kai se nyt ole kuin muutama rivi koodia:

Koodia: [Valitse]
import tkinter as tk

root = tk.Tk()
root.mainloop()

Tarkoitin ikkunalla ikkunaa + widgettejä, niiden tekstejä ja niiden asemointia ikkunassa. VB:ssä se tehdään simppelisti hiirellä ja samalla syntyy automaattisesti eri elementeille parametrit ja muu linkitys, josta ohjeman tekijän ei tarvitse paljoa ymmärtää.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

nm

  • Käyttäjä
  • Viestejä: 16363
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #7 : 29.09.21 - klo:15.41 »
Lazarus unohtui vielä vaihtoehdoista. Delphi-kloonina se muistuttaa hyvin paljon Visual Basicia: https://www.lazarus-ide.org/

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #8 : 29.09.21 - klo:18.44 »
Suosituista kehitysympäristöistä ainakin Eclipse, Netbeans ja IntelliJ IDEA tarjoavat graafiset GUI-editorit Javan Swing-käyttöliittymäkirjastolle.

Tutkailin hieman tuota Netbeansia ja vaikuttaa varsin pätevältä, joskin laajalta ohjelmistolta. Ainakin siinä VB:a vastaava GUIn rakennus.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #9 : 30.09.21 - klo:02.49 »
Pythonia voit opiskella: https://ohjelmointi-21.mooc.fi

startx

  • Käyttäjä
  • Viestejä: 414
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #10 : 30.09.21 - klo:16.58 »
Yksi vaihtoehto on, M$:n Visual Studio community, joka on maksuton ja voi Linux ohjelmiakin tehdä nykyään. Tuo on melko helpoksi tehty ja tahtoo suuri osa ohjevideoistakin tuota käyttää. Sitten, kun homman on oppinut voi siirtyä muihin kehitystyökaluihin. Vaatii toki windows 10:n, joka kannattaa virtualboxiin laittaa. Voi sitten koodiakin näppärästi siirrellä eri ohjelmien välillä.

https://visualstudio.microsoft.com/downloads/

nm

  • Käyttäjä
  • Viestejä: 16363
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #11 : 30.09.21 - klo:17.14 »
Yksi vaihtoehto on, M$:n Visual Studio community, joka on maksuton ja voi Linux ohjelmiakin tehdä nykyään.

Visual Studiossa graafinen GUI-suunnittelu rajautuu kuitenkin WPF:ään eli Windows Presentation Frameworkiin. WPF-sovelluksia ei voi kääntää Linuxissa, koska tarvittavia rajapintoja ei ole olemassa. Winellä voi tietty ajaa Windows-binäärejä .NET-kirjastojen kanssa.

Jere Sumell

  • Käyttäjä
  • Viestejä: 737
  • Talous, Hallinto ja Markkinointi (AMK, 2017),B.B.A
    • Profiili
    • Tietokone-blogi
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #12 : 01.10.21 - klo:09.35 »
Rekkasin itseni 2015 tuonne Helsingin yliopiston mooc-ympäristöön Java-ohjelmoinnin kurssille itseni, ja sen sai integroitua NetbeansIDE:n kanssa, jossa onnistui myös tuo harjoitusten lähettäminen siten, että niistä sai palautteen, jos vastaus oli "virheellinen". En tiedä, pystyykö Netbeansilla tai miksei pystyisi myös Pythonia koodaamaan, mutta Python nyt ihan mielekäs ja kiva ohjelmointikieli, vaikka opiskelisi perusteita.

Pythonin Graafisista IDE:istä ei ole kokemusta, kun ohjelmoin Pythonia Nanolla, jossa siinäkin saa sen sarkainvälin asetettua itse, jos luo tuollaisen .rc -configtiedoston, joka sisältää sitten ne ajoparametrit, hyödyllinen myös ehkä muissa tilanteissa luoda se, kuin pelkästään nanolla Pythonia ohjelmoidessa.
Free Internet and  people for humans all over the globe!

(Profiilikuvassa oma valokuvani GIMPissä editoituna Disney Classic-väripaletin väreihin ja muunnettuna bittikartta-tiedostosta vektorigrafiikaksi.)

matsukan

  • Käyttäjä
  • Viestejä: 2151
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #13 : 01.10.21 - klo:13.19 »
Jetbrains:n PyCharm on hyvä vaihtoehto Pythonin IDE:tä kaipaaville.  Ilmaisessa versiossa on mukana skriptien debuggaus mukana mutta siitä karsittu joitakin omainaisuuksia pois mitkä on sitten maksetussa versiossa. Siitä on hyvä lähteä liikkeelle. Ja yksittäisen käyttäjän vuosilisenssi ei nyt päätä huimaa .
« Viimeksi muokattu: 01.10.21 - klo:13.22 kirjoittanut matsukan »
Pohjois-pohjanmaa
-- motto:  backupin tarve huomataan aina liian myöhään

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #14 : 01.10.21 - klo:13.40 »
Sellainen kysymys, että kun jollain IDE:lla luodaan ajettava graafinen ohjelma, niin vaatiiko se ajoympäristöltä mitään kirjastoja tms? Eli jos tekee vaikka tuolla Gambasilla tai Lazaruksella tietokannan käyttöliittymän, niin voiko sitä sitten jakaa niin, että toimii kaikissa Linux-jakeluissa? Eli kaikki tarvitava tulee ohjelman mukana ja ajokoneella ei tarvita mitään Gambasiin tai Lazarukseen liittyvää? Onko sama logiikka Windowsin puolella? Eli jos teen ohjelman VB6:sellä, niin sen käännetty versio sitten toimii kaikissa Windows-koneissa?

Sori, jos oli triviaali kysymys, mutta tätä tämä opettelu on. :)
« Viimeksi muokattu: 01.10.21 - klo:13.41 kirjoittanut Snufkin »
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #15 : 01.10.21 - klo:13.54 »
Jetbrains:n PyCharm on hyvä vaihtoehto Pythonin IDE:tä kaipaaville.  Ilmaisessa versiossa on mukana skriptien debuggaus mukana mutta siitä karsittu joitakin omainaisuuksia pois mitkä on sitten maksetussa versiossa. Siitä on hyvä lähteä liikkeelle. Ja yksittäisen käyttäjän vuosilisenssi ei nyt päätä huimaa .

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.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

matsukan

  • Käyttäjä
  • Viestejä: 2151
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #16 : 01.10.21 - klo:13.56 »
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.
[/quote]

Kaikki Ui liittymät tarvitsevat kirjastoja. Qt/C++ ja Widget on tuohon oikein hyvä ja tuettu vaihtoehto. Ja jos niitä ei ole oletuksena käyttöjärjestelmässä jo valmiiksi asenntuna niin ne on laitettava sovellusohjelman asennuspakettiin mukaan.  Tai tieto siitä mitä tarvitaan.
« Viimeksi muokattu: 01.10.21 - klo:13.58 kirjoittanut matsukan »
Pohjois-pohjanmaa
-- motto:  backupin tarve huomataan aina liian myöhään

kamara

  • Käyttäjä
  • Viestejä: 3017
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #17 : 01.10.21 - klo:13.56 »
Sellainen kysymys, että kun jollain IDE:lla luodaan ajettava graafinen ohjelma, niin vaatiiko se ajoympäristöltä mitään kirjastoja tms? Eli jos tekee vaikka tuolla Gambasilla tai Lazaruksella tietokannan käyttöliittymän, niin voiko sitä sitten jakaa niin, että toimii kaikissa Linux-jakeluissa? Eli kaikki tarvitava tulee ohjelman mukana ja ajokoneella ei tarvita mitään Gambasiin tai Lazarukseen liittyvää? Onko sama logiikka Windowsin puolella? Eli jos teen ohjelman VB6:sellä, niin sen käännetty versio sitten toimii kaikissa Windows-koneissa?

Sori, jos oli triviaali kysymys, mutta tätä tämä opettelu on. :)

Linukka puolella riippuu, mitä ominaisuuksia (siis kirjastoja) käytät sovelluksessasi. Näin ainakin pythonin puolella.

Winukkapuolella käsittääkseni ainakin aiemmissa versioissa VB:ssa tarvitsi kopioida polun varteen vbrun.dll koneeseen, jossa on ohjelmaa on tarkoitus käyttää. Käsittääkseni toi VB6 ei vielä pyöri .NET-ympäristössä, joten se tarvinneen kyseisen dll:n (vai olikos se ddl - ei voi muistaa).

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #18 : 01.10.21 - klo:14.41 »
Kaikki Ui liittymät tarvitsevat kirjastoja. Qt/C++ ja Widget on tuohon oikein hyvä ja tuettu vaihtoehto. Ja jos niitä ei ole oletuksena käyttöjärjestelmässä jo valmiiksi asenntuna niin ne on laitettava sovellusohjelman asennuspakettiin mukaan.  Tai tieto siitä mitä tarvitaan.

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?

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?
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Suositelkaa ohjelmointiympäristöä
« Vastaus #19 : 01.10.21 - klo:14.48 »
Linukka puolella riippuu, mitä ominaisuuksia (siis kirjastoja) käytät sovelluksessasi. Näin ainakin pythonin puolella.

Winukkapuolella käsittääkseni ainakin aiemmissa versioissa VB:ssa tarvitsi kopioida polun varteen vbrun.dll koneeseen, jossa on ohjelmaa on tarkoitus käyttää. Käsittääkseni toi VB6 ei vielä pyöri .NET-ympäristössä, joten se tarvinneen kyseisen dll:n (vai olikos se ddl - ei voi muistaa).

Eli pitääkö applikaatiota ajavalla koneella olla ne samat kirjastot, joita on sen koodissa kutsuttu? Eli tuo ohjelman käännös ajotiedostoksi ei mitenkään kopioi niitä mukaansa? (ajattelen ohjelmakirjaston ikään kuin tiedostona, jossa vain aliohjelman koodeja. Se ehkä hieman virheellinen kuva?

Winukka-puolelta luin, että VB6:sella luotuja ohjelmia tuetaan win10:ssa loppuun asti. Eli sille löytynee tarvittavat kirjastot. Tausta-ajatus tässä on se, että jos teen ohjelman Gambasilla (vain Linux) voinen melko helposti tehdä siitä Windows-version VB6:sella. 

Xubuntu 22.04 LTS, Fujitsu Lifebook E754