Nieuws:

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

Auteur Topic: Programmeertaal geschikt voor mij.  (gelezen 5004 keer)

Programmeertaal geschikt voor mij.
« Gepost op: 2012/02/02, 20:36:38 »
Hallo,

Ik heb al een tijdje het idee om te beginnen met programmeren. Nu heb ik eigenlijk geen idee wat voor mij en de Ubuntu gemeenschap (ik wil natuurlijk ook programma's voor Ubuntu/Linux maken) goed is. Wat ik wil:

-Helpen met de ontwikkeling van bestaande en nieuwe programma's
-Crossplatform, Linux,  Windows, BSD, Solaris (Mac OS X misschien) en webapps zou optioneel fijn zijn. En misschien Android?
-GUI's maken voor nieuwe en bestaande programma's, heb hier al een tijdje over nagedacht en denk zelf dat Qt het beste is?
-De hoeft zo weinig mogelijk te installeren, het liefste dat het programma gelijkt werkt in Ubuntu zonder iets anders te hoeven installeren.
-Niet zo heel moeilijk, zo'n goed geheugen heb ik niet :|
-Dat ik soms hulp kan krijgen als ik iets niet snap/werkend krijg.

Ik vroeg mij nu af waar zijn de meeste programma's op Ubuntu in gemaakt? (Firefox, GIMP bijvoorbeeld) C++, Phyton?

Ik heb zelf al een beetje zitten te denken:

C++: Te ingewikkeld?
Phyton: In principe goede basis lijkt mij.
Java: Ik wil vooral dus vooral programma's voor de desktop maken, en is ook niet de makkelijkste?
Ruby: Lijkt mij de perfecte taal, alleen nog niet de meest gebruikte taal?
Perl: Ziet er niet al te ingewikkeld uit en meer gebruikt dan Perl?

Wat is jullie mening, en wat is geschikt voor mij?

Alvast bedankt,
Fabian

« Laatst bewerkt op: 2012/02/03, 16:29:35 door lord4163 »
Meer weten over Ubuntu? Bezoek mijn site dan eens:
Simpelbuntu


Offline Nardon

  • Lid
Re: Programmeertaal geschikt voor mij.
« Reactie #1 Gepost op: 2012/02/03, 09:34:07 »
Binnen Ubuntu word vooral Python erg gepromoot als taal om in te ontwikkelen. Vooral als je zelf applicaties wilt gaan maken. En ben daar ook erg mee eens! De taal zit eenvoudig en overzichtelijk in elkaar (even wennen als je C-achtige talen gewend bent, er worden geen semicolons en curly braces gebruikt) maar daarnaast is het ook een zeer krachtige taal wat niet al te moeilijk is om te leren.

Ook heeft het een enorme standaard library waardoor eigenlijk alle functionaliteit die je nodig hebt al ingebouwd zit. En nog een voordeel: Alle Linux distro's komen al standaard met Python geïnstalleerd. ;)

Re: Programmeertaal geschikt voor mij.
« Reactie #2 Gepost op: 2012/02/03, 12:37:10 »
Zoals gewoonlijk raad ik aan Python, om te beginnen en leren wennen aan programmeerconcepten (conditionals, loops, functies, klassen), daarna Java of C# (sterke typering) en C++ voor het "serieuze" werk.

De "meest gebruikte" programmeertaal benoemen is niet gemakkelijk gezien verschillende talen voor verschillende doeleinden gebruikt worden.
  • Ubuntu promoot tegenwoordig Python zeer sterk. Echter, Python is ongelofelijk traag in vergelijking met sommige andere runtimes (zoals Java, C#, of natuurlijk een gecompileerde taal zoals C of C++). Python kampt een beetje met featureitis, bovendien is er geen sterke typering wat dingen nog een beetje trager en minder gestructureerd maakt. Python is ook niet zo eenvoudig om op andere besturingssystemen (Windows, Mac OS X) goed aan de praat te krijgen. Echter, je kan er heel snel kleine, nuttige applicaties mee schrijven. Een belangrijk systeemonderdeel zou ik toch niet in Python gaan maken.
  • Op Mac OS X en iOS wordt Objective-C gebruikt, daarbuiten bijna nergens. Objective-C is een C-extensie die onder de "we willen C gebruiken, en object-georiënteerd werken, maar toch geen C++". Wat mensen tegen C++ hebben en waarom ze halfbakken oplossingen over C++ prefereren weet ik niet, maar goed, het bestaat.
  • Microsoft promoot tegenwoordig heel sterk C# en de rest van de .NET talen, gezien er heel snel mee kan ontwikkeld worden. Alhoewel C# een open standaard heeft en er een zeer goede implementatie van bestaat voor Unix-systemen (mono) zie je toch nog zeer duidelijk de band met Microsoft.
  • In de bedrijfswereld worden voor interne applicaties vaak Java gebruikt. Java is vrij eenvoudig, maar toch sterk getypeerd en dankzij de zeer goede VM ongeveer even snel als C++. Echter, Java mankeert wat meer moderne features, zoals operator overloading en lambda's.
  • Android-applicaties worden ook in Java geschreven.
  • De meeste echt grote projecten, zoals browsers, office-suites en games, zijn in C++ geschreven. C++ heeft een goed gevulde featureset, maar niet zoveel dat het verwarrend wordt. Voor de beginner kan C++ wat te hoog gegrepen zijn: er is een goede kennis van de werking van een computer en een programmeertaal voor nodig. C++ ligt vrij dicht bij de hardware, maar laat toch enkele "hogere" features toe. Hierdoor wordt C++ vaak gerekend tot de "middle-level" programmeertalen. (Goede) C++-code is erg gestructureerd, met een sterke nadruk op het typesysteem. Dit uitgebreide typesysteem en de verschillende verwijzingstypes kan voor een nieuwe programmeur vaak verwarrend zijn.
  • Oudere code, of code die gebaseerd is op oudere systemen, is vaak in C. De Linuxkernel, die stamt uit 1991, is C, net zoals de meeste GNU-tools. C ligt nog wat dichter bij de hardware dan C++, en mist bijvoorbeeld object-georiënteerde features, wat programmeren er in erg lastig maakt, zelfs voor meer ervaren programmeurs. C draait echter op zo goed als alle systemen.

Hoe dan ook, begin niet met één programmeertaal om daar bij te blijven. Kijk ook eens naar anderen. Voor grotere projecten raad ik een taal aan die sterk getypeerd is, niet alleen al om uitvoeringssnelheid, maar ook voor betere structuur. Het ultieme doel zou C++ zijn: erg veel software is hier in geschreven, je kan ongelofelijk veel "trukjes" uithalen die het je een pak gemakkelijker maken, maar met een grote kracht komt ook een grote verantwoordelijkheid.

Dus nogmaals om samen te vatten: begin met wat te klooien in Python, stap dan over naar Java of C#, om dan C++ te leren. Merk op dat dit niet in één week gaat, maar misschien wel een paar jaar kan duren eer je zo ver komt.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: Programmeertaal geschikt voor mij.
« Reactie #3 Gepost op: 2012/02/03, 15:09:34 »
Bedankt voor je uitleg, toch blijf ik Ruby intressant vinden, wat is hier dan mis mee?
Meer weten over Ubuntu? Bezoek mijn site dan eens:
Simpelbuntu


Offline MKe

  • Lid
Re: Programmeertaal geschikt voor mij.
« Reactie #4 Gepost op: 2012/02/03, 16:21:21 »
Ruby? Niets, het is een vergelijkbare taal als Python. Zelf vind ik Python wat leesbaarder, maar dat is persoonlijke smaak. Verder is Ruby een prima keus om mee te werken i.p.v. Python.

SeySayux maakt eengoed punt. C++ voor het echte serieuze werk.
Ik wil nog een ding toevoegen. Java is naar mijn mening meer restricted, omdat het je dwingt alles "the JAVA way" te doen (zo kun je b.v. niet anders dan OOP programmeren). Bij de andere talen is dat minder. PERL zit wat dat betreft aan de andere kant van het spectrum. Daar kan alles op wel een miljoen manieren, wat vaak leidt tot totaal onbegrijpelijke code.

Overigens is JAVAScript niet hetzelfde als JAVA. JAVAScript is meer een soort macrotaal voor webbrowsers. Ik zou die niet in het rijtje zetten van Python t/m C++.

Overigens is de executie snelheid van Python sterk te beïnvloeden door de stijl van programmeren. Hierdoor gaat Python meer doen in de onderliggende C-code met alle voordelen van dien. Daarmee kan Python aanzienlijk versneld worden.

Offline commandoline

  • LoCo-contact
    • marten-de-vries
    • Marten-de-Vries.nl
Re: Programmeertaal geschikt voor mij.
« Reactie #5 Gepost op: 2012/02/03, 22:18:56 »
SeySayux maakt eengoed punt. C++ voor het echte serieuze werk.
Het lijkt me wel goed om 'het echte werk' hier even duidelijk te definieren. Talen als C/C++ heb je bij normale programma's eigenlijk niet echt meer nodig, tenzij je een bepaalde bewerking heel vaak moet doen, of als die bewerking een heleboel tijd neemt en als 'ie dan ook al in de high-level taal geoptimaliseerd is. C/C++ zijn prima talen, maar ik zou ze er later bij leren en beginnen met iets als Python/Ruby. De eerste wordt meer gebruikt in de Ubuntu-community, verder denk ik niet dat het weinig uitmaakt (ik ken Ruby niet). Perl vind ik persoonlijk wat ingewikkelder qua syntax, ik zie niet de meerwaarde boven bijv. Python.

Overigens is JAVAScript niet hetzelfde als JAVA. JAVAScript is meer een soort macrotaal voor webbrowsers. Ik zou die niet in het rijtje zetten van Python t/m C++.
Ik wel ;). JavaScript overtreft zolangzamerhand al talen als Python en Ruby qua snelheid door optimalisaties die browsermakers aan een stuk door uitvoeren. Het heeft daarnaast een aantal krachtige mogelijkheden, zo wordt bijv. prototype-based OOP ondersteund. Maar, voor de dingen die in de topicstart genoemd werden, lijkt het me (inderdaad) niet de eerste keus.

Re: Programmeertaal geschikt voor mij.
« Reactie #6 Gepost op: 2012/02/03, 22:35:16 »
Waarom is python dan meer gebruikt dan Ruby? Waarom is python beter?
Meer weten over Ubuntu? Bezoek mijn site dan eens:
Simpelbuntu


Offline MKe

  • Lid
Re: Programmeertaal geschikt voor mij.
« Reactie #7 Gepost op: 2012/02/03, 22:50:38 »
Waarom is python dan meer gebruikt dan Ruby? Waarom is python beter?
Het is niet "beter" het is gewoon populairder. Dat is niet hetzelfde. Eigelijk zijn perl, python en ruby gemiddeld even goed, met elk hun sterke punten. Verschil is vooral persoonlijke smaak.

@comandline
Ik zou toch niet graag een volledig deskto programma in JAVAScript maken. Daarvoor is het te veel browser gericht naar mijn smaak.
« Laatst bewerkt op: 2012/02/03, 22:53:07 door MKe »
Mijn blokkendoos blog: http://mke21.wordpress.com/

Re: Programmeertaal geschikt voor mij.
« Reactie #8 Gepost op: 2012/02/04, 11:04:55 »
Volgens Github wordt Ruby zelfs meer gebruikt (in de projecten op hun site) dan Python. Merk op dat Github niet altijd een correcte weergave is (C staat bijvoorbeeld op nummer 7, maar een hele hoop C-projecten zijn closed source of staan niet op Github).

Zoals ik al eerder zei, beperk je zeker niet tot één taal. Begin met een taal naar keuze om de concepten te leren (misschien een eenvoudige taal zoals Python of Ruby). Nadat je vertrouwd bent met het achterliggende idee zijn bijna alle talen die van C afstammen (C, C++, Java, C#, Perl, Python, Ruby, PHP, Javascript, Lua, ...) hetzelfde op een paar features meer of minder.

Het lijkt me wel goed om 'het echte werk' hier even duidelijk te definieren. Talen als C/C++ heb je bij normale programma's eigenlijk niet echt meer nodig, tenzij je een bepaalde bewerking heel vaak moet doen, of als die bewerking een heleboel tijd neemt en als 'ie dan ook al in de high-level taal geoptimaliseerd is.
In de trant van "prove me wrong" (dat wil zeggen: ik heb geen weet van iets anders), noem mij een van de volgende projecten die geen proof of concept is (ik bedoel, er zijn besturingssystemen in Java geschreven! Java!) in Python:
  • Webbrowser
  • 3D-game (zonder al te veel escapes naar C/C++)
  • Behoorlijke muziekspeler
  • Compiler (maakt niet uit voor welke taal)
  • Office suite
  • IDE
  • ...

Inderdaad, er zijn een hele hoop voorbeelden van bovenstaande categorieën te vinden die niet in C of C++ geschreven zijn (ik denk bijvoorbeeld Java of C#), maar Python is wat lastiger. Waarom? Omdat Python geen sterke typering heeft, wat het moeilijk maakt om het overzicht te bewaren in grote projecten.

C# zelf ligt heel erg dicht bij C++ (feitelijk is het zo goed als C++ met garbage collection, vereenvoudigde templates en geen pointer arithmetic), wat het een populaire keuze maakt.

Sorry, maar persoonlijk vind ik Python overhypet. Okee, het is een mooie, efficiënte taal waarmee je snel kleine programma's kan schrijven, maar dat zijn Perl, Ruby, en ja zelfs Java ook.

C/C++ zijn prima talen, maar ik zou ze er later bij leren en beginnen met iets als Python/Ruby.
Precies wat ik ook zei.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: Programmeertaal geschikt voor mij.
« Reactie #9 Gepost op: 2012/02/04, 11:13:17 »
Leuk om te weten dat Ruby ook vaak gebruikt word.

Eigenlijk maakt het dus weinig uit of ik begin met Python of Ruby? Ruby trekt mij eigenlijk wat meer aan. Wat voor features bied Python dan bijvoorbeeld boven Ruby en andersom?
Meer weten over Ubuntu? Bezoek mijn site dan eens:
Simpelbuntu


Offline MKe

  • Lid
Re: Programmeertaal geschikt voor mij.
« Reactie #10 Gepost op: 2012/02/04, 12:14:23 »
Voor zover ik weet weinig. Python is standaard geintegreerd in Ubuntu en Ruby volgens mij niet. Python staat bekend om zijn goede documentatie. Ik weet niet hoe dat bij Ruby is omdat ik het weinig gebruik. De paar keer dat ik met Ruby bezig was vond ik het een prettige, efficiënte taal, net als Python. Maar ook had het voor mij geen voordeel boven Python en aangezien ik Python beter beheers heeft dat mijn voorkeur. Verder is een taal zo goed als de libraries die je ervoor kunt krijgen. Ik ben zelf Bio-informaticus en gebruik de bio-python modules veel. Maar Bio-Perl b.v. is veel uitgebreider, dus is Perl in dat opzicht een betere keus. Zo moet je dus gaan kijken welke taal beter geschikt is voor jouw toepassing. Als je web-ontwikkeling gaat doen is Ruby heel sterk vanwege Ruby on Rails. Maar Python heeft Django, dus ook weer, kies welke het beste bij je toepassing past.

Re: Programmeertaal geschikt voor mij.
« Reactie #11 Gepost op: 2012/02/04, 23:03:46 »
Daar heb je vast gelijk in. Ik ben begonnen met Ruby. Toch heb ik hier nog een paar links voor degene die ook geïnteresseerd in Ruby zijn.

http://www.rubyinside.com/media/poignant-guide.pdf

The Little Book of Ruby

Ruby in 20 minuten

En dit zijn echt geweldige videos, heel goed en super simpel uitgelegd. Op zijn channel staan videos voor bijna elke programmeertaal. http://www.youtube.com/playlist?list=PL1512BD72E7C9FFCA&feature=plcp

Meer weten over Ubuntu? Bezoek mijn site dan eens:
Simpelbuntu


Re: Programmeertaal geschikt voor mij.
« Reactie #12 Gepost op: 2012/02/05, 13:03:44 »
Citaat
Inderdaad, er zijn een hele hoop voorbeelden van bovenstaande categorieën te vinden die niet in C of C++ geschreven zijn (ik denk bijvoorbeeld Java of C#)

Enn jaar of 3/4 geleden heb ik bij een vriend, op zijn HP, na een crash een herinstallatie gedaan via de ingebedde recovery-partitie, en heb toen kunnen vaststellen dat die recovery werkte met een Delphi (Object Pascal) programma. Of dat heden ten dage nog steeds zo is weet ik niet, maar blijkbaar gaf men toen bij de fabrikant van HP de voorkeur aan de taal Delphi (Object Pascal).

Zo zijn er wel meer toepassingen die daar op draaien dacht ik.  ;)
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)

Re: Programmeertaal geschikt voor mij.
« Reactie #13 Gepost op: 2012/02/05, 17:35:52 »
Citaat
Inderdaad, er zijn een hele hoop voorbeelden van bovenstaande categorieën te vinden die niet in C of C++ geschreven zijn (ik denk bijvoorbeeld Java of C#)

Enn jaar of 3/4 geleden heb ik bij een vriend, op zijn HP, na een crash een herinstallatie gedaan via de ingebedde recovery-partitie, en heb toen kunnen vaststellen dat die recovery werkte met een Delphi (Object Pascal) programma. Of dat heden ten dage nog steeds zo is weet ik niet, maar blijkbaar gaf men toen bij de fabrikant van HP de voorkeur aan de taal Delphi (Object Pascal).

Zo zijn er wel meer toepassingen die daar op draaien dacht ik.  ;)
Delphi wordt niet meer zoveel gebruikt dacht ik, en bijna niet buiten Windows.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: Programmeertaal geschikt voor mij.
« Reactie #14 Gepost op: 2012/05/18, 18:16:41 »
Ik doe de laatste tijd veel in Bash, misschien later Ruby nog eens studeren. Bash is namelijk erg leuk, en is veel makkelijker dan al die andere talen. Maar wat bied Ruby dan meer dan Bash?
Meer weten over Ubuntu? Bezoek mijn site dan eens:
Simpelbuntu


Offline commandoline

  • LoCo-contact
    • marten-de-vries
    • Marten-de-Vries.nl
Re: Programmeertaal geschikt voor mij.
« Reactie #15 Gepost op: 2012/05/19, 14:30:30 »
Ik doe de laatste tijd veel in Bash, misschien later Ruby nog eens studeren. Bash is namelijk erg leuk, en is veel makkelijker dan al die andere talen. Maar wat bied Ruby dan meer dan Bash?
Ik ken zelf geen Ruby, maar het biedt i.i.g. classes en daarmee is het stukken beter geschikt voor object oriented programming, toch wel handig/een must wat mij betreft bij grotere programma's.

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: Programmeertaal geschikt voor mij.
« Reactie #16 Gepost op: 2012/05/19, 14:43:55 »
Ik doe de laatste tijd veel in Bash, misschien later Ruby nog eens studeren. Bash is namelijk erg leuk, en is veel makkelijker dan al die andere talen. Maar wat bied Ruby dan meer dan Bash?
Zoals hier al eerder een beetje is doorgeschemerd. Zoek een geschikte tool bij je doel (he, dat rijmt).

Als je een backup scriptje wilt schrijven, raad ik bash aan. Wil je een simpele dynamische website bouwen, raad ik PHP, Python of Ruby aan. Wil je een simpele Ubuntu  App, pak Python (en verdiep je in Quickly).
Is performance erg belangrijk (ik denk het voorlopig niet), wijk dan uit naar talen als C/C++ of evt. Java.
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!