Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Eigen applicatie bouwen voor ubuntu/linux  (gelezen 4811 keer)

Eigen applicatie bouwen voor ubuntu/linux
« Gepost op: 2009/07/07, 21:08:04 »
Goedenavond!

In welke programmeer taal kan je een eigen applicatie bouwen voor Ubuntu/linux?

Bij windows gaat het vaak in C(++). En moet ik een compiler gebruiken? Zo ja, welke?

Zijn er verder nog tips?

Thnx!
Peter

Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #1 Gepost op: 2009/07/07, 21:16:38 »
Er zijn zoveel mogelijkheden.
Als je een programma wilt maken die "alleen" op Gnome werkt, heb je GTK, GTK+ of GTK# nodig.
Wil je een KDE exclusive programma, dan doe je het met Qt, Qt+, etc.
Of als je een Universele wilt, met Java.
Of als het op elke OS (alle Linux distro's, Solaris, *BSD, Windows, OS X, etc.), dan is Python de beste optie.

Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #2 Gepost op: 2009/07/07, 21:19:41 »
Als je een programma wilt maken die "alleen" op Gnome werkt, heb je GTK, GTK+ of GTK# nodig.
Wil je een KDE exclusive programma, dan doe je het met Qt, Qt+, etc.
Of als je een Universele wilt, met Java.
Of als het op elke OS (alle Linux distro's, Solaris, *BSD, Windows, OS X, etc.), dan is Python de beste optie.

Niet echt waar. GTK+ werkt ook op KDE. QT werkt ook op Gnome. En ze werken alletwee ook op Windows en Mac.

Python is inderdaad mooi. Maar zogoed als alle talen werken op alle Linux distro's (en Windows en Mac).

Offline Double12

  • Lid
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #3 Gepost op: 2009/07/07, 21:54:09 »
Je moet een taal en een toolkit kiezen. Een toolkit is een bibliotheek die je in een taal gebruikt om o.a. een user interface weer te kunnen geven.

Als je een command line-applicatie schrijft, kun je dat gewoon in een bepaalde taal doen. Een toolkit heb je niet nodig, de functies voor invoer en uitvoer van tekst in een terminal zitten al ingebouwd in de standaardbibliotheek van die taal.

Wil je echter een userinterface bij je programma hebben, dan moet je ook kiezen voor een toolkit. GTK+ wordt het meest gebruikt in combinatie met C, maar kan ook met bijv. C++ of Python. Qt word meestal gebruikt in combinatie met C++, maar kan ook met Python of Java. Verder heb je nog een aantal minder belangrijke toolkits, zoals wxWidgets, FLTK, FOX, etc.

Een compiler/interpreter met de benodigde standaardbibliotheek kun je installeren uit de repositories van Ubuntu.
Voor C is dat bijvoorbeeld gcc en voor C++ is dat g++.

Daarna kun je met een editor code typen, en die met de compiler/interpreter compileren/uitvoeren. Het handigst is een editor waar menu-opties inzitten om met een druk op de knop te compileren.
Je kunt ook een IDE installeren, dat is een editor waar de compiler en een interface-ontwerper mooi in integreren.

Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #4 Gepost op: 2009/07/07, 22:22:26 »
Ik zou zeggen, lees dit eens door: http://forum.ubuntu-nl.org/programmeren/voorbereiding-startgids-programmeren-in-ubuntu/

En ook wat topics hier in hte Programmeren gedeelte.

Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #5 Gepost op: 2009/07/07, 22:30:05 »
Realbasic is oook nog wel leuk :)

Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #6 Gepost op: 2009/07/08, 07:44:23 »
Je programmeert gewoon hetzelfde als hoe je op Windows gewend bent. C, C++, Python, Java: het is allemaal platformonafhankelijk. Zelfs je mobieltje draait op Java, bijvoorbeeld.

Waar je wel op moet letten, is de grafische toolkit die je kiest. Maar dat is hierboven al goed uitgelegd ;)

Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #7 Gepost op: 2009/07/08, 10:50:55 »
Vraagje, waarom wordt Free Pascal hier nooit genoemd voor het programmeren op Linux, Delphi is ook een vrij gemakkelijke taal toch? Het is bovendien ook volledig gratis.
Laptop MSI U123 (160 GB) 1 GB ramMint Cinnamon 18 LTS
Laptop Toshiba Tecra  (80GB) 2 GB ram Fedora 24
Dell Latitude D600 Pentium M 1400MHz 512MB ram
Bouwjaar 2003 met Debian 8 (Jessie)

Offline Double12

  • Lid
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #8 Gepost op: 2009/07/08, 11:27:02 »
Vraagje, waarom wordt Free Pascal hier nooit genoemd voor het programmeren op Linux, Delphi is ook een vrij gemakkelijke taal toch? Het is bovendien ook volledig gratis.
FreePascal zou misschien best kunnen, FreeBasic bijvoorbeeld ook wel.

Maar het is maar de vraag of deze talen krachtiger of makkelijker zijn dan een taal als Python of C++. Daarnaast zijn veel libraries niet beschikbaar voor deze onbekende talen, en wel voor bekende talen als C/C++ en Python.

Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #9 Gepost op: 2009/07/08, 11:47:46 »
Citaat
Maar het is maar de vraag of deze talen krachtiger of makkelijker zijn dan een taal als Python of C++. Daarnaast zijn veel libraries niet beschikbaar voor deze onbekende talen, en wel voor bekende talen als C/C++ en Python.

http://www.freepascal.org/

Op deze link vindt men alle desbetreffende informatie, ook met betrekking tot de runtime-library.  :)
Laptop MSI U123 (160 GB) 1 GB ramMint Cinnamon 18 LTS
Laptop Toshiba Tecra  (80GB) 2 GB ram Fedora 24
Dell Latitude D600 Pentium M 1400MHz 512MB ram
Bouwjaar 2003 met Debian 8 (Jessie)

Offline EarthMind

  • Lid
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #10 Gepost op: 2009/07/08, 18:55:14 »
Aan je pseudoniem te zien "speedfreak" raad ik je aan van de Java of C/C++ pad te kiezen ;)
Geen Dropbox maar Wuala!

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #11 Gepost op: 2009/07/08, 19:18:39 »
Aan je pseudoniem te zien "speedfreak" raad ik je aan van de Java of C/C++ pad te kiezen ;)
Java? Dat kan dan enkel naar het freak-gedeelte verwijzen, want naar het speed-gedeelte in ieder geval niet :D
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline peter10

  • Lid
    • Mijn Hyve
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #12 Gepost op: 2009/07/08, 19:48:20 »
Ik heb op dit moment nog leeswerk liggen over Python, en ik denk dat die taal net zo machtig is als C/C++ (het is er immers op gebaseerd), maar veel rapper werkt.

Een simpel voorbeeld is het bekende "hello world" oefen-programma. In C++ :

#include <iostream.h>
void main()
{
cout << "Hello, world." << endl;
}

In Python:

print "Hello, world!"
Ik denk dus dat Python een goede keuze is. Het leeswerk waar ik het over had is "How to Think like a computer scientist: Learning with Python", een boek dat als PDF is te downloaden onder een GNU Free Documentation License.
« Laatst bewerkt op: 2009/07/08, 19:50:09 door Peter »

Offline Double12

  • Lid
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #13 Gepost op: 2009/07/08, 21:09:48 »
@Peter:
Ja dat is mooi appels met peren vergelijken. Het kan inderdaad zijn dat Python iets korter is dan C/C++, maar nu laat je bij Python de functie en de geimporteerde libraries weg, terwijl je die er bij C++ wel bijzet.

Het is dit:
cout << "Hello, world." << endl;in vergelijking met dit:
print "Hello, world."

Je noemt Python "rapper" dan C/C++. De code kan je inderdaad vaak iets sneller en korter opschrijven, maar C/C++ programma's lopen sneller dan Python-programma's omdat die gecompileerd zijn ipv geinterpreteerd. Voor kleine programmaatjes is dat geen probleem, maar voor zware rekenkundige programma's en games zal de keuze dus eerder niet naar Python uitgaan.

Offline peter10

  • Lid
    • Mijn Hyve
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #14 Gepost op: 2009/07/10, 00:50:27 »
Bedankt, weer wat geleerd.

Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #15 Gepost op: 2009/07/10, 11:03:56 »
Aan je pseudoniem te zien "speedfreak" raad ik je aan van de Java of C/C++ pad te kiezen ;)
Java? Dat kan dan enkel naar het freak-gedeelte verwijzen, want naar het speed-gedeelte in ieder geval niet :D
Van de geïnterpreteerde/bytecode-talen is Java een van de snelste hoor, dankzij een zeer low-level bytecode-formaat en de Just In Time compiler. Sommige Java-programma's kunnen bijna even snel zijn als C/C++ programma's. En voor zeer zware rekenkundige toepassingen (vb. OpenGL) wordt toch meestal een brug naar C gebruikt dmv JNI. Maar nu genoeg reclame over Java :P


Citaat van: Peter
#include <iostream.h>
void main()
{
cout << "Hello, world." << endl;
}

Zoek de 7 fouten? :P

#include <iostream>
int main() {
    std::cout << "Hello, world." << std::endl;
}
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #16 Gepost op: 2009/07/10, 16:26:50 »
Van de geïnterpreteerde/bytecode-talen is Java een van de snelste hoor, dankzij een zeer low-level bytecode-formaat en de Just In Time compiler. Sommige Java-programma's kunnen bijna even snel zijn als C/C++ programma's. En voor zeer zware rekenkundige toepassingen (vb. OpenGL) wordt toch meestal een brug naar C gebruikt dmv JNI. Maar nu genoeg reclame over Java :P
Java is inderdaad snel voor een geïnterpreteerde taal, maar nog steeds veel trager dan C/C++
(en dan hebben we het nog niet over het geheugengebruik).
OpenGL opzich is niet zwaar rekenkundig, de gedane GL calls worden toch afgehandeld door de GPU.
JNI is inderdaad een oplossing, maar dan gebruik je eigenlijk toch wel stiekem C, dus dan moet je dat ook kennen.
Allezja, tenzij je een bestaande library aanroept :P

Citaat van: Peter
#include <iostream.h>
void main()
{
cout << "Hello, world." << endl;
}

Zoek de 7 fouten? :P

#include <iostream>
int main() {
    std::cout << "Hello, world." << std::endl;
}
Jijzelf bent nog return 0; vergeten :rolleyes: =D
« Laatst bewerkt op: 2009/07/10, 16:28:52 door profoX »
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #17 Gepost op: 2009/07/10, 17:11:59 »
Van de geïnterpreteerde/bytecode-talen is Java een van de snelste hoor, dankzij een zeer low-level bytecode-formaat en de Just In Time compiler. Sommige Java-programma's kunnen bijna even snel zijn als C/C++ programma's. En voor zeer zware rekenkundige toepassingen (vb. OpenGL) wordt toch meestal een brug naar C gebruikt dmv JNI. Maar nu genoeg reclame over Java :P
Java is inderdaad snel voor een geïnterpreteerde taal, maar nog steeds veel trager dan C/C++
(en dan hebben we het nog niet over het geheugengebruik).
OpenGL opzich is niet zwaar rekenkundig, de gedane GL calls worden toch afgehandeld door de GPU.
JNI is inderdaad een oplossing, maar dan gebruik je eigenlijk toch wel stiekem C, dus dan moet je dat ook kennen.
Allezja, tenzij je een bestaande library aanroept :P

Citaat van: Peter
#include <iostream.h>
void main()
{
cout << "Hello, world." << endl;
}

Zoek de 7 fouten? :P

#include <iostream>
int main() {
    std::cout << "Hello, world." << std::endl;
}
Jijzelf bent nog return 0; vergeten :rolleyes: =D
Return 0 wordt automatisch aangenomen voor main. Staat in ISO C++ :rolleyes:

EDIT: citaat van ##c++:
Citaat
Tell that smartass to f*** off
« Laatst bewerkt op: 2009/07/10, 17:16:10 door SeySayux »
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline siegi

  • Lid
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #18 Gepost op: 2009/07/10, 17:25:15 »
De declaratie van main als void staat in veel boeken als voorbeeld. Het is alleen niet "proper" volgens de enkele websites. Maar de meeste compilers aanvaarden het wel en gebruiken het zelf ook als voorbeeld.
http://homepages.tesco.net/J.deBoynePollard/FGA/legality-of-void-main.html

Inplaats van overal std te liggen voortypen, waarom niet gewoon in het begin
using namespace std;
En over de insprong zou ik niet zo moeilijk doen, de betere editors doen dit voor jouw.

EDIT: return 0; bij main zou in principe volgens de laatste standaarden niet meer moeten maar is nog altijd een goede gewoonte is mij geleerd.
« Laatst bewerkt op: 2009/07/10, 17:31:23 door siegi »

Offline profoX

  • Lid
    • wesley
    • Lionslink
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #19 Gepost op: 2009/07/10, 17:31:07 »
Sorry, mijn beste vriend. Ik programmeer blijkbaar nogal veel in C de laatste tijd. In C++ is het inderdaad niet nodig, in tegenstelling tot C. :)
(dat neemt echter niet weg dat het steunen op deze impliciete eigenschap van C++ een zeer slechte programmeerstijl is)
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline EarthMind

  • Lid
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #20 Gepost op: 2009/07/10, 21:11:18 »
Aan je pseudoniem te zien "speedfreak" raad ik je aan van de Java of C/C++ pad te kiezen ;)
Java? Dat kan dan enkel naar het freak-gedeelte verwijzen, want naar het speed-gedeelte in ieder geval niet :D

Java programma's werken heel snel als ze goed geprogrammeerd zijn, bij het opstarten is wel een duidelijk verschil te merken op oude PC's.
Geen Dropbox maar Wuala!

Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #21 Gepost op: 2009/07/10, 21:24:48 »
Aan je pseudoniem te zien "speedfreak" raad ik je aan van de Java of C/C++ pad te kiezen ;)
Java? Dat kan dan enkel naar het freak-gedeelte verwijzen, want naar het speed-gedeelte in ieder geval niet :D

Java programma's werken heel snel als ze goed geprogrammeerd zijn, bij het opstarten is wel een duidelijk verschil te merken op oude PC's.

Java programma's moeten nog altijd omgezet worden door Java dat geïnstalleerd staat op je pc, en dat vertraagd de boel een hoop :)

Offline EarthMind

  • Lid
Re: Eigen applicatie bouwen voor ubuntu/linux
« Reactie #22 Gepost op: 2009/07/12, 23:25:58 »
Aan je pseudoniem te zien "speedfreak" raad ik je aan van de Java of C/C++ pad te kiezen ;)
Java? Dat kan dan enkel naar het freak-gedeelte verwijzen, want naar het speed-gedeelte in ieder geval niet :D

Java programma's werken heel snel als ze goed geprogrammeerd zijn, bij het opstarten is wel een duidelijk verschil te merken op oude PC's.

Java programma's moeten nog altijd omgezet worden door Java dat geïnstalleerd staat op je pc, en dat vertraagd de boel een hoop :)


Vergeleken met binaire programma's: ja; vergeleken met Python en andere interpreteer talen: nee.
Geen Dropbox maar Wuala!