beste programmeertaal om te leren?

Plaats reactie
Gebruikersavatar
Splitter
Elite Poster
Elite Poster
Berichten: 4578
Lid geworden op: 10 maa 2010, 12:30
Uitgedeelde bedankjes: 58 keer
Bedankt: 446 keer

laat me eerst zeggen dat ik "me wel kan redden" met bv php en bash scripting (en vroeger batch scripting ook)...
maar de tijd dat ik mezelf php aanleerde was in de tijd van php 3... je weet wel, totaal niet gemaakt voor meer dan simpele websites.
en dus heb ik mezelf (i know, shame on me) nooit object-oriented aangeleerd (wel de basis van werken met classes).

ik heb wel al eens wat naar java gekeken (best leuke met die javabridge tussen php en java), maar nog geen tijd in geinvesteerd verder.
gezien php7 binnenkort uitkomt, en dit me wel best veel op een "echte" programmeertaal begint te lijken, is de interesse terug wat aangewakkerd,
maar ik wil het deze keer, als ik er terug tijd insteek, wel GOED doen (probleem: ik zie graag snél resultaten, dus moet eenvoudig praktijkgericht te leren vallen en niet eerst een 300 pagina boek voor lezen), en dus wil ik ook een goede taal kiezen.

vereisten:

- cross-platform (liefst: linux, windows, web)
- object-oriented met een niet té hoge leercurve
- met een goede (free) editor (en dewelke?)
- liefst eentje dat ook een "springplank" biedt naar andere talen (wegens gelijkenissen)

ik zit dus in mijn hoofd met php7 (maar dat is nog steeds voornamelijk webbased), java (maar iets zegt me dat dat niet mijn ding is), python, en perl.
tips zijn welkom voor ik me ergens instort :)

tia!
butskristof
Elite Poster
Elite Poster
Berichten: 1457
Lid geworden op: 19 dec 2011, 18:42
Locatie: Heist-op-den-Berg
Uitgedeelde bedankjes: 483 keer
Bedankt: 98 keer
Contacteer:

Bij ons op de UA wordt er in het eerste jaar gestart met Python en vervolgens overgegaan naar c++.
Python gebeurt aan de hand van dit - gratis te downloaden - boek: http://www.greenteapress.com/thinkpython/ .
Python voldoet aan zowat al je eisen en is simpel genoeg om 'snel resultaten te zien'. Dat is trouwens iets waar het boek ook op inspeelt. Het boek speelt ook in op het leren programmeren zelf, niet specifiek op Python. Eens je dus vertrokken bent met de basisprincipes kan je deze ook redelijk makkelijk porteren naar andere talen.
Stroper
Elite Poster
Elite Poster
Berichten: 1749
Lid geworden op: 24 aug 2011, 10:27
Uitgedeelde bedankjes: 87 keer
Bedankt: 140 keer

Python lijkt mij inderdaad de beste keuze,
er zijn verschillende editors/IDE's mogelijk maar een persoonlijk zou ik gaan voor de gratis versie van PyCharm(ondersteunt wel niet alles wat de betalende versie van PyCharm ondersteunt).
euromusic
Plus Member
Plus Member
Berichten: 103
Lid geworden op: 03 feb 2013, 10:40
Uitgedeelde bedankjes: 19 keer
Bedankt: 9 keer

Of als je in de webwereld wilt blijven mogelijk Javascript en NodeJS :)
Nob
Erelid
Erelid
Berichten: 3373
Lid geworden op: 09 sep 2002, 18:19
Locatie: Belgium, Bever
Uitgedeelde bedankjes: 87 keer
Bedankt: 109 keer
Contacteer:

Als je echt oo wil gaan en je de syntax niet wil laten afhangen van spaties/tabs, dan zou ik voor Ruby kiezen.
Voldoet aan al je eisen en is een super instapper.

[Afbeelding Post made via mobile device ]
liber!
Elite Poster
Elite Poster
Berichten: 783
Lid geworden op: 09 apr 2006, 17:48
Twitter: nathan_gs
Uitgedeelde bedankjes: 130 keer
Bedankt: 55 keer

Python lijkt me een goede keuze, al is de afwezigheid van types een groot nadeel. Ruby heeft hetzelfde probleem als Python op dat vlak.

De Python wereld op dit moment is een beetje in split tussen 2 vs 3, ook iets om mee rekening te houden.

Er is de laatste jaren zeer veel te doen om Functioneel Programmeren, als je op zoek bent naar een taal die zowel OO als FP kan doen en tegelijk compatibel is met Java kan je best eens kijken naar Scala.
Gebruikersavatar
Dafke
Elite Poster
Elite Poster
Berichten: 2755
Lid geworden op: 04 mei 2006, 21:31
Uitgedeelde bedankjes: 181 keer
Bedankt: 142 keer
Contacteer:

Wat is het doel?
Gewoon uit interesse of om goed op de arbeidsmarkt te liggen?

Ik weet dat voor goede .net programmeurs ze redelijke mooie dagprijzen betalen.
wimpie3
Premium Member
Premium Member
Berichten: 460
Lid geworden op: 22 dec 2004, 14:17
Uitgedeelde bedankjes: 5 keer
Bedankt: 53 keer

Hangt er vanaf wat je wil... de "beste" programmeertaal is niet altijd de meest gebruikte op de arbeidsmarkt. En wat voor de één een leuke taal is, is voor de andere een pain in the ass...

Zie ook: http://www.tiobe.com/index.php/content/ ... index.html
fujiwara
Starter
Starter
Berichten: 15
Lid geworden op: 29 sep 2014, 13:06
Bedankt: 2 keer

Liber! schreef:Python lijkt me een goede keuze, al is de afwezigheid van types een groot nadeel. Ruby heeft hetzelfde probleem als Python op dat vlak.

De Python wereld op dit moment is een beetje in split tussen 2 vs 3, ook iets om mee rekening te houden.

Er is de laatste jaren zeer veel te doen om Functioneel Programmeren, als je op zoek bent naar een taal die zowel OO als FP kan doen en tegelijk compatibel is met Java kan je best eens kijken naar Scala.
Python heeft natuurlijk wel types! Net zoals Ruby! Anders zou je geen klassen kunnen aanmaken en gebruiken in beide talen. Waar jij het over hebt is dynamische of statische types. Bij Java moeten al je classes op voorhand gekend zijn bij compile time (statisch). Python & Ruby werken niet zo en wordt alles dynamisch ingeladen (op het moment dat je een stuk code gebruikt). Je kan in Python & Ruby op elk moment een nieuw type maken.

Beide systemen hebben hun voor & nadelen. Statisch zorgt ervoor dat je type fouten op voorhand al kunt achterhalen, met het nadeel minder flexibel te zijn in wat je kunt doen (of je hebt een pak meer code nodig). Je moet in dynamische talen ook niet denken in functie van 'types'. Je denkt daar in functie van welke interfaces die objecten ondersteunen. Welk specifiek type object het is kan je niet veel schelen.
brubbel
Elite Poster
Elite Poster
Berichten: 833
Lid geworden op: 04 jul 2012, 16:55
Uitgedeelde bedankjes: 63 keer
Bedankt: 167 keer

python.
Gebruikersavatar
Kenw00t
Elite Poster
Elite Poster
Berichten: 1778
Lid geworden op: 28 dec 2008, 19:38
Uitgedeelde bedankjes: 346 keer
Bedankt: 250 keer

Python kan je ook interactief en gratis leren op bepaalde websites zoals Codecademy: https://www.codecademy.com/
Ik vind dat echt een laagdrempelige manier om eraan te beginnen, en net dat is het belangrijkste.
Er is ook nog Learn Code The Hard Way: http://learncodethehardway.org/
Eigenlijk is dat betalend, maar het boek staat toch gratis online op die website. Ook hier hebben ze Python.

En hier nog een overzichtje van de populairste talen: http://www.wired.com/2015/08/github-dat ... landscape/
Afbeelding
butskristof
Elite Poster
Elite Poster
Berichten: 1457
Lid geworden op: 19 dec 2011, 18:42
Locatie: Heist-op-den-Berg
Uitgedeelde bedankjes: 483 keer
Bedankt: 98 keer
Contacteer:

Python is inderdaad misschien niet zo gegeerd op de arbeidsmarkt, maar vind ik persoonlijk wel de beste methode om vertrouwd te geraken met de basisprincipes van programmeren. Eens je die onder de knie hebt, is het maar een kwestie van syntax aanpassen en je kan je kennis porteren naar een andere programmeertaal.
fujiwara
Starter
Starter
Berichten: 15
Lid geworden op: 29 sep 2014, 13:06
Bedankt: 2 keer

Python heeft misschien in het bedrijfsleven niet de naam om veel gebruikt te worden. Maar verschiet niet hoe vaak het effectief wordt gebruikt :-).
Veel van Google's producten zijn in Python geschreven. Op mijn werk schrijf ik alle interne tools ook in python. Het is nu eenmaal een heel productieve taal. In java zou ik vaak het dubbel aantal lijnen code moeten schrijven om hetzelfde te bereiken.

Wat ook het leuke aan Python is dat je op alle niveaus kunt programmeren. Je kan een eenvoudig script maken zonder functies, daarna de zaken in functies gooien. Wordt het nog ingewikkelder kan je zaken groeperen in classes of over verschillende python files (modules). Dat maakt het ook toegankelijk om te groeien naargelang welke noden je hebt. Maar wat het belangrijkste voor jouw hier is dat je taal meegroeit met je kennis & kunnen. Je kan eenvoudig beginnen en stap voor stap opbouwen.
devastator
Elite Poster
Elite Poster
Berichten: 1218
Lid geworden op: 01 nov 2005, 10:53
Locatie: Pelt
Uitgedeelde bedankjes: 27 keer
Bedankt: 56 keer

Als het voor de arbeidsmarkt is, zou ik zeggen C++. Maar dan nog is het afhankelijk van in welke sector je werkzaam wil zijn.

Er zijn genoeg .NET ontwikkelaars, maar goede C++ ontwikkelaars zijn echt moeilijk te vinden.
butskristof
Elite Poster
Elite Poster
Berichten: 1457
Lid geworden op: 19 dec 2011, 18:42
Locatie: Heist-op-den-Berg
Uitgedeelde bedankjes: 483 keer
Bedankt: 98 keer
Contacteer:

+1 voor C++ op termijn, maar Python is veel makkelijker om mee te beginnen. Een je de basisprincipes kent is c++ wel veel leuker om mee te werken.
Gebruikersavatar
Splitter
Elite Poster
Elite Poster
Berichten: 4578
Lid geworden op: 10 maa 2010, 12:30
Uitgedeelde bedankjes: 58 keer
Bedankt: 446 keer

thx guys!

euromusic: ik zoek een taal die zowel web als applicatie kan, dus javascript en nodejs zijn niet aan mij besteed,
anders zou de keuze zowiezo php7 zijn (en die keuze kan er nog steeds zijn... ik heb in het verleden in oudere php versies ook apps gemaakt voor linux zoals - waar is de tijd - een irc bot)

voor de rest: het is zeker (nog) niet om dat als job te gaan doen, daarvoor moet ik wel wat meer tijd erin steken en écht serieus leren,
wat momenteel niet zo denderend is.
het komt er gewoon eigenlijk op neer dat ik het best ontzettend mis om dingen te maken en het erg begin te vinden dat mijn kennis - die niet optimaal was - ook begint weg te zinken.
ik heb vroeger nog .bat files gemaakt (dat was leuk), af en toe een bash scriptje (dat kan irritant zijn :p), en php gescript (en daar probeerde ik dus echt alles mee)

om nu dus terug wat te spelen + kennis op te doen ben ik op zoek naar de "beste" taal om cross-platform te werken, op een manier dat eenvoudig en praktijkgericht is, en waarbij je dus de kennis vergaart om vanalles te doen en eventueel sneller te switchen naar een andere taal.

het zal momenteel dus python worden, het aangehaalde pdf bestandje is erg handig + de site om python te leren is best leuk.
het feit dat je met python zowel in terminal als voor site zaken kan maken, staat me ook erg aan, gezien ik van die combinatie hou (lukt het ene ff niet, switchen naar het andere - en ja, ik ben best snel afgeleid)

wat ik wél merk is dat ik verdomde veel de neiging heb zaken te "kopieren" uit php in de verwachting "python zal dat ook wel kennen"...
dat bijt me nog best vaak in het gat :)

wel even een vraagje voor de python kenners: wat is de beste manier om een pagina-lijst te kiezen?
oftewel, laat me het ff duidelijker maken met een voorbeeldje:

http://prul.be is de site
http://prul.be/source.txt is de code

NATUURLIJK is dat alles behalve efficient/proper/... maar het is dan ook het eerste dat ik doe, en ik zoek nu even wat hints naar "hoe moet het eigenlijk",
zodat ik weer wat bij kan leren.
(ik leer veel beter van proberen en falen en vragen hoe het beter kan, dan van een boek en instructies te volgen)

edit: overigens is mijn editor momenteel gewoon vim, tot ik grafische dingen ga proberen - maar dat is nog een heel eind weg
butskristof
Elite Poster
Elite Poster
Berichten: 1457
Lid geworden op: 19 dec 2011, 18:42
Locatie: Heist-op-den-Berg
Uitgedeelde bedankjes: 483 keer
Bedankt: 98 keer
Contacteer:

Splitter schreef:edit: overigens is mijn editor momenteel gewoon vim, tot ik grafische dingen ga proberen - maar dat is nog een heel eind weg
Vim is love, vim is life <3
brubbel
Elite Poster
Elite Poster
Berichten: 833
Lid geworden op: 04 jul 2012, 16:55
Uitgedeelde bedankjes: 63 keer
Bedankt: 167 keer

:%s/\(vim\)/\1 rules/g
:wq
fujiwara
Starter
Starter
Berichten: 15
Lid geworden op: 29 sep 2014, 13:06
Bedankt: 2 keer

Wel eerst en vooral als je bepaalde functionaliteit nodig hebt, kijk eerst of het niet al in de standard libraries van Python zit! Je kan je niet voorstellen wat daar allemaal in zit :-).

Als je websites wilt maken kan je aanraden het wiel niet opnieuw uit te vinden. Er zijn toolkits genoeg in Python om een simpele web applicatie te maken.
Enkele libs:
- Flask (http://flask.pocoo.org/)
- of Bottle (http://bottlepy.org/docs/dev/index.html)
- Voor template zou ik Jinja2 aanraden (http://jinja.pocoo.org/docs/dev/)
- Voor databases kan niks tippen aan SQLAlchemy (http://www.sqlalchemy.org/)
- Als je full blown framework wilt gebruiken is in python Django heer en meester (https://www.djangoproject.com/)

Daarmee kan je snel iets maken waar je resultaat van zal zien! Altijd motiverend :-)
Splitter schreef:thx guys!

euromusic: ik zoek een taal die zowel web als applicatie kan, dus javascript en nodejs zijn niet aan mij besteed,
anders zou de keuze zowiezo php7 zijn (en die keuze kan er nog steeds zijn... ik heb in het verleden in oudere php versies ook apps gemaakt voor linux zoals - waar is de tijd - een irc bot)

voor de rest: het is zeker (nog) niet om dat als job te gaan doen, daarvoor moet ik wel wat meer tijd erin steken en écht serieus leren,
wat momenteel niet zo denderend is.
het komt er gewoon eigenlijk op neer dat ik het best ontzettend mis om dingen te maken en het erg begin te vinden dat mijn kennis - die niet optimaal was - ook begint weg te zinken.
ik heb vroeger nog .bat files gemaakt (dat was leuk), af en toe een bash scriptje (dat kan irritant zijn :p), en php gescript (en daar probeerde ik dus echt alles mee)

om nu dus terug wat te spelen + kennis op te doen ben ik op zoek naar de "beste" taal om cross-platform te werken, op een manier dat eenvoudig en praktijkgericht is, en waarbij je dus de kennis vergaart om vanalles te doen en eventueel sneller te switchen naar een andere taal.

het zal momenteel dus python worden, het aangehaalde pdf bestandje is erg handig + de site om python te leren is best leuk.
het feit dat je met python zowel in terminal als voor site zaken kan maken, staat me ook erg aan, gezien ik van die combinatie hou (lukt het ene ff niet, switchen naar het andere - en ja, ik ben best snel afgeleid)

wat ik wél merk is dat ik verdomde veel de neiging heb zaken te "kopieren" uit php in de verwachting "python zal dat ook wel kennen"...
dat bijt me nog best vaak in het gat :)

wel even een vraagje voor de python kenners: wat is de beste manier om een pagina-lijst te kiezen?
oftewel, laat me het ff duidelijker maken met een voorbeeldje:

http://prul.be is de site
http://prul.be/source.txt is de code

NATUURLIJK is dat alles behalve efficient/proper/... maar het is dan ook het eerste dat ik doe, en ik zoek nu even wat hints naar "hoe moet het eigenlijk",
zodat ik weer wat bij kan leren.
(ik leer veel beter van proberen en falen en vragen hoe het beter kan, dan van een boek en instructies te volgen)

edit: overigens is mijn editor momenteel gewoon vim, tot ik grafische dingen ga proberen - maar dat is nog een heel eind weg
Gebruikersavatar
Splitter
Elite Poster
Elite Poster
Berichten: 4578
Lid geworden op: 10 maa 2010, 12:30
Uitgedeelde bedankjes: 58 keer
Bedankt: 446 keer

nou, ik ben niet helemaal eens van het wiel niet opnieuw uit te vinden.
ja, frameworks zijn handig en veel logischer om te gebruiken- tuurlijk.
maar gezien ik nog python aan het leren ben, zou een framework gebruiken "the root of all evil zijn":

- je leert véél minder van de taal (het framework doet alles, en jij aanvaard dat het gewoon werkt)
- door van in het begin een framework te gebruiken, krijg je ook sneller een soort "vendor lock-in": dit ken ik, dus dit blijf ik gebruiken
het is verder ook niet de bedoeling (enkel) websites te maken met python, maar het is een handige springplank, gezien ik al html/css ken,
en in php vroeger al sites maakte.

uiteindelijk zal ik natuurlijk wel een framework gaan gebruiken als ik sites maak in python, eens ik de taal genoeg ken,
net zoals ik nu al mako gebruik als template engine (gezien dat sneller en properder werkt, en de code zo gefocust kan blijven op de code)

overigens wel eens even naar Bottle gekeken, en ondanks hun mening dat het simpel en eenvoudig is, heb ik het niet dadelijk aan de praat gekregen...
let ook: ik weiger zaken in mijn system-wide python installatie bij te installeren of andere zaken te doen waardoor het "minder portable" zou worden,
dus alles moet ook gewoon in de app dir zitten.
fujiwara
Starter
Starter
Berichten: 15
Lid geworden op: 29 sep 2014, 13:06
Bedankt: 2 keer

Ik snap wel dat je meer zult bijleren (over hoe je een web applicatie schrijft) als je geen framework gebruikt. Maar door code/libraries van andere te gebruiken leer je ook bij hoe je zaken kan ontwerpen. Of je kan leren hoe ze niet te ontwerpen :-D. Het hangt van je eigen af of je vast blijft hangen een een bepaalde tool. NU als iets goed werkt en je het ermee gedaan krijgt kan het op zich ook niet kwaad.

Je kan 'silos' van python environments maken voor elke applicatie apart zonder het in je algemene python te moeten installeren. Kijk eens naar virtualenv. Dat zal je veel moeite besparen! https://virtualenv.pypa.io/en/latest/userguide.html Meestal heb je het al staan als je Python installeert.

Aanmaken:
'virtualenv ./path/to_env/'

Gebruiken:
./path/to_env/Scripts/activate.bat
of
./path/to_env/bin/activate

Iets installeren kan je dan gewoon met pip:
pip install bottle
pip install mako
Plaats reactie

Terug naar “Development”