Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   Programmeer taal (https://forum.scholieren.com/showthread.php?t=1816047)

spiderhomer 01-10-2010 23:03

Programmeer taal
 
Ik wil dus beginnen met een programmeer taal... Ik heb nog nooit wat geprogrammeerd (ik weet wel mee als de meeste computergebruikers) maargoed...

Ik wil dus een simpelere programeer taal die goed is om mee te beginnen...

Enige suggesties? (ik hen toegang tot een Mac en een Windows Pc)

Warsocket 02-10-2010 02:30

Visual Basic ben ik destijds me gestart, voraal voor gui gebasseerde progrmma's heel handig.
Met python zou je ook kunnen beginnen, is meer richting een scripting taal maar je kan er in principe ook alles mee.

freyk 02-10-2010 09:39

Weet je al iets wat je wil maken, spiderhomer?

Je kan op verschillende manieren/volgordes programmeer/scripting talen leren:
Ik ben begon met scripting (batch file / Powershell voor windows, Bash voor BSD/Linux en Mac OSX) om de basis dingen te leren.
Later leerde ik Pascal en in de toekomst wil ik C en Java leren.

Het leuke is dat de meeste talen veel op elkaar lijken.

ILUsion 02-10-2010 10:19

Ik ben indertijd zelf begonnen met QBASIC (voorloper van Visual Basic), nadien onder andere Object Pascal (Delphi) en Python. Ik zou je niet aanraden om met Visual Basic te beginnen: die taal is niet echt mooi en zeker indertijd met QBasic waren vuile technieken meer de regel dan de uitzondering.

Als beginner wil je langs een kant een goede IDE hebben, dat is een Integrated Development Environment. Kort gezegd is dat een programma waarin je je code schrijft en dat programma moet je helpen bij het schrijven van die code (bv. door te zeggen wanneer je een typfout maakt, door bij het zoeken van problemen (debuggen) je daarvoor tools aan te bieden, door je te helpen bij het maken van een grafische interface (GUI), door je te zeggen welke mogelijkheden je hebt met bepaalde objecten en methodes, etc). Maar ook de taal waarin je werkt moet een beetje doenbaar zijn: in sommige talen (C, assembler, ...) moet je zo veel zelf doen, dat je uiteindelijk wel weet hoe alles intern werkt; maar dat je de eerste weken helemaal geen plezier beleeft). Talen zoals Python, Pascal, Basic geven minder inzicht in wat er intern gebeurt, maar je bent veel sneller begonnen met het echte (leuke) werk.

Begin dan liever met Object Pascal (bijhorende IDE van Borland is Delphi, maar er bestaat ook een open source versie Lazarus); de interface is vergelijkbaar met Visual Basic. Nadeel is wel dat Pascal de laatste jaren grondgebied verloren is aan andere talen (vroeger werd het heel erg veel gebruikt onder knutselaars).

Ook Python kan ik aanraden, maar daarvoor is er niet zo'n mooie IDE (wel tientallen die bruikbaar zijn, maar niets echt in de buurt van de Delphi IDE of Visual Studio; bv. SPE). Voordeel van Python is wel dat je niet moet compileren; dat wilt zeggen dat je in een command line direct kan zien wat de uitkomst is van een bepaald stukje code; en bijkomend voordeel is dat je in Python meestal mooiere code schrijft dan in andere talen (maar dat is natuurlijk slechts een mening).

Oh ja, als je vragen hebt over je taal of je code: hier lopen genoeg mensen rond die van de meest gekende talen wel iets afweten of je bij het programmeren in het algemeen kunnen helpen.

freyk 02-10-2010 14:32

Nog ff een tip: kies een taal uit dat veel gebruikt word.
Persoonlijk raad ik je dan Java aan, omdat deze (zonder of met weinig aanpassingen) op verschillende (mobile)besturingsystemen kan draaien.

TopDrop 03-10-2010 00:41

Op de uni was ons eerste programmeervak ook Java. 't Lijkt me wel een goede taal om mee te beginnen.

ILUsion 03-10-2010 10:03

Citaat:

freyk schreef: (Bericht 30912638)
Nog ff een tip: kies een taal uit dat veel gebruikt word.
Persoonlijk raad ik je dan Java aan, omdat deze (zonder of met weinig aanpassingen) op verschillende (mobile)besturingsystemen kan draaien.

Java kan inderdaad ook; als IDE is NetBeans niet slecht, een alternatief is Eclipse. Als je Engels goed op peil is, kan je op internet ook veel materiaal (video's, tutorials, handboeken, ...) vinden om te leren programmeren, gebaseerd op Java (of een van de andere talen). Bv. bij de Stanford-universiteit.

deadlock 03-10-2010 19:44

Stort jezelf op C++ en C#. Is heel veel vraag naar en helemaal met de eerste kan je fatsoenlijke applicaties schrijven.

spiderhomer 03-10-2010 22:59

Citaat:

freyk schreef: (Bericht 30912057)
Weet je al iets wat je wil maken, spiderhomer?

Je kan op verschillende manieren/volgordes programmeer/scripting talen leren:
Ik ben begon met scripting (batch file / Powershell voor windows, Bash voor BSD/Linux en Mac OSX) om de basis dingen te leren.
Later leerde ik Pascal en in de toekomst wil ik C en Java leren.

Het leuke is dat de meeste talen veel op elkaar lijken.

Nou t liefst een iPhone app schrijven ;) maar dat duurt nog wel evenjes haha

Verder wil ik dus niet gelijk met C++ ofzo beginnen dus Java en Phyton/Pascal lijkt me goed om mee te beginnen...

freyk 04-10-2010 05:49

Citaat:

spiderhomer schreef: (Bericht 30917628)
Nou t liefst een iPhone app schrijven ;) maar dat duurt nog wel evenjes haha

Zo moeilijk is dat niet met de SDK voor IOS of app inventor voor Andriod.

deadlock 04-10-2010 06:44

Citaat:

spiderhomer schreef: (Bericht 30917628)
Nou t liefst een iPhone app schrijven ;) maar dat duurt nog wel evenjes haha

Verder wil ik dus niet gelijk met C++ ofzo beginnen dus Java en Phyton/Pascal lijkt me goed om mee te beginnen...

Maar C++ en Java verschillen stiekem niet bizar veel en applicaties geschreven in C++ performen wel. Ze hebben tien jaar geleden Doom eens naar Java geport. Jammere was dat er nog geen computer was waar het mee gespeeld kon worden, zo inefficiënt is die geïnterpreteerde bagger.

ILUsion 04-10-2010 11:41

Citaat:

deadlock schreef: (Bericht 30917858)
Maar C++ en Java verschillen stiekem niet bizar veel en applicaties geschreven in C++ performen wel. Ze hebben tien jaar geleden Doom eens naar Java geport. Jammere was dat er nog geen computer was waar het mee gespeeld kon worden, zo inefficiënt is die geïnterpreteerde bagger.

Java is enerzijds niet geïnterpreteerd (wordt gecompileerd naar bytecode die dan uitgevoerd wordt door een VM; maar er zijn bv. wel computers die native bytecode kunnen draaien); en anderzijds kan je dingen van 10 jaar niet vergelijken met nu. Java is een relatief jonge taal (1995), in 2000 was er dus zeker nog veel sprake van performanceproblemen. Tegenwoordig al veel minder en bovendien zijn de computers ook veel sneller geworden op die tijd.

Het feit dat Java (J2ME) bv. draait op telefoons zegt in mijn ogen genoeg over performance; langs de andere kant wordt er ook variant op Java gebruikt bij Android (Java als taal, maar geen Sun/Oracle VM maar eentje van Google en ook hun eigen bytecode: Dalvik).

Als je voor iOS wilt programmeren, daar is de taal die gebruikt wordt Objective-C (ik weet niet in hoeverre je ook andere talen kan gebruiken of hoe moeilijk het is om te leren). Let er wel op dat je enkel een IDE hebt op Mac OS X.

C++ en Java hebben misschien wel naast elkaar gelegen; maar in mijn ogen is het beter om iemand te laten beginnen met een taal die veel voor je doet; zodat je je kan focussen op het echte programmeren. Nadien kan je nog steeds naar C/C++/... overstappen als performance echt kritisch zou zijn (in de meeste gevallen is dat echter niet het geval).

deadlock 04-10-2010 12:47

Citaat:

ILUsion schreef: (Bericht 30918259)
Java is enerzijds niet geïnterpreteerd (wordt gecompileerd naar bytecode die dan uitgevoerd wordt door een VM; maar er zijn bv. wel computers die native bytecode kunnen draaien); en anderzijds kan je dingen van 10 jaar niet vergelijken met nu. Java is een relatief jonge taal (1995), in 2000 was er dus zeker nog veel sprake van performanceproblemen. Tegenwoordig al veel minder en bovendien zijn de computers ook veel sneller geworden op die tijd.

Dat is slechts gedeeltelijk waar. De JIT compiled de bytecode net voordat het wordt uitgevoerd. In principe komt dat wel neer op interpreted code. De leeftijd mag geen issue zijn. De nieuwe telgen uit de .NET familie hadden het probleem namelijk niet. Evenals een hele sloot andere talen. Daar zaten wel bugs in, maar het valt in het niet met de extreem slechte start die Java hierin heeft gemaakt.

Citaat:

Het feit dat Java (J2ME) bv. draait op telefoons zegt in mijn ogen genoeg over performance; langs de andere kant wordt er ook variant op Java gebruikt bij Android (Java als taal, maar geen Sun/Oracle VM maar eentje van Google en ook hun eigen bytecode: Dalvik).
Dat klopt, maar tegenwoordig zijn de meeste (mobiele) processoren uitgerust met instructies om Java code te versnellen of zo ingericht dat het makkelijker te verwerken is in het algemeen. Juist voor mobiele CPU's lijkt me dat performance hoog moet zijn, omdat er zoveel verschillende instructiesets ronddartelen dat het niet meer te doen zou zijn. Sun heeft meerdere keren gezegd dat Java eigenlijk bedoeld is om op specifieke daarvoor ontworpen hardware te draaien btw. Daar is nog een mooi relletje over geweest op El Reg.

Citaat:

C++ en Java hebben misschien wel naast elkaar gelegen; maar in mijn ogen is het beter om iemand te laten beginnen met een taal die veel voor je doet; zodat je je kan focussen op het echte programmeren. Nadien kan je nog steeds naar C/C++/... overstappen als performance echt kritisch zou zijn (in de meeste gevallen is dat echter niet het geval).
Ik ben het hier niet mee eens. En dan al helemaal niet met Java. Dan zou ik veel sneller naar .NET grijpen. De community is tegenwoordig ook massief dus support heb je zo, en C# is simpelweg veel eleganter.

Zazum 04-10-2010 13:06

Uhm, ik zou beginnen met een vrij makkelijke taal; Visual Basic,
Maar dan zou ik wel beginnen met VB.Net en niet VB6,
Daarna zou je C#, C of C++ kunnen leren, maar ik zou beginnen met VB

ILUsion 04-10-2010 14:59

Citaat:

deadlock schreef: (Bericht 30918467)
Dat is slechts gedeeltelijk waar. De JIT compiled de bytecode net voordat het wordt uitgevoerd. In principe komt dat wel neer op interpreted code. De leeftijd mag geen issue zijn. De nieuwe telgen uit de .NET familie hadden het probleem namelijk niet. Evenals een hele sloot andere talen. Daar zaten wel bugs in, maar het valt in het niet met de extreem slechte start die Java hierin heeft gemaakt.

Waaraan jij de term JIT compilation hangt, zit bij mij vervat in de term VM. Er blijft inderdaad overhead zitten in het proces waarbij bytecode omgezet wordt naar native machine-instructies. Maar op het moment dat je al bytecode hebt, is het gros van de compilatie al achter de rug (vermits bytecode meer wegheeft van een low-level taal). In ieder geval kan ik noch weerleggen, noch bevestigen dat .NET of Java betere performance heeft. In ieder geval is die performance in beide gevallen genoeg voor de meeste toepassingen; enkel voor heel zware software is het echt vereist om puur gecompileerde of zelfs geassembleerde talen te gebruiken).

Citaat:

Dat klopt, maar tegenwoordig zijn de meeste (mobiele) processoren uitgerust met instructies om Java code te versnellen of zo ingericht dat het makkelijker te verwerken is in het algemeen. Juist voor mobiele CPU's lijkt me dat performance hoog moet zijn, omdat er zoveel verschillende instructiesets ronddartelen dat het niet meer te doen zou zijn. Sun heeft meerdere keren gezegd dat Java eigenlijk bedoeld is om op specifieke daarvoor ontworpen hardware te draaien btw. Daar is nog een mooi relletje over geweest op El Reg.
Microsoft wilt met .NET eigenlijk ook bereiken dat er op termijn hardwarematige versnelling daarvoor komt (en gelijk hebben ze: het is sneller om dergelijke code in hardware te draaien dan met een softwarematige VM errond). Bovendien is dat ook een handig scenario om af te stappen van x86 op de langere termijn.

Citaat:

Ik ben het hier niet mee eens. En dan al helemaal niet met Java. Dan zou ik veel sneller naar .NET grijpen. De community is tegenwoordig ook massief dus support heb je zo, en C# is simpelweg veel eleganter.
Ik beweer nergens dat Java een elegante taal is (dat is het in mijn ogen helemaal niet); en ik zou C# inderdaad naast of zelfs boven Java plaatsen, ware het niet dat .NET eigenlijk wel platformafhankelijk is (enkel Windows namelijk). Ja, het is leuk dat er ook Mono bestaat voor Mac en Linux (en al de rest), maar als MS iedereen naar .NET wilt, hadden ze maar de moeite moeten doen om zelf alles te ondersteunen. Java is nog steeds zo goed als platformonafhankelijk: het maakt niet uit of je Linux, Mac of Windows (of iets anders gebruikt).

In ieder geval: een beginnende programmeur moet je in mijn ogen niet te veel lastig vallen met moeilijke dingen zoals pointers. En als je uitgebreide datatypes kan aanbieden, dan is dat ook handig meegenomen. Het is leuker om een applicatie te maken die doet wat je wilt dan uren te lopen klungelen met pointers of met datatypes waar je zelf nog een hoop design aan moet doen voordat zelfs maar de basisbouwstenen van je programma kunnen werken. Op termijn moet iedere programmeur dat wel kunnen; maar als je de beginners eerst kan leren hoe te programmeren en nadien pas die moeilijke stukken aanbiedt, zal hij alles veel beter verteren (en dus ook meer plezier beleven aan het geheel).

spiderhomer 04-10-2010 21:35

Wat een discussie

Ja ik weet dat met iOS in objective-C wordt geschreven maar C en objective C liggen dicht bij elkaar dus waarom niet allebei haha...

Ik wil inderdaa nie beginnen met een taal waarbij ik gelijk alles zelf moet doen... (Pascal of phyton als ik t goed begrijp)

Warsocket 05-10-2010 17:36

Citaat:

spiderhomer schreef: (Bericht 30921172)
Wat een discussie

Ja ik weet dat met iOS in objective-C wordt geschreven maar C en objective C liggen dicht bij elkaar dus waarom niet allebei haha...

Ik wil inderdaa nie beginnen met een taal waarbij ik gelijk alles zelf moet doen... (Pascal of phyton als ik t goed begrijp)

By python hoef je juist heel weinig zelf te doen

jacobdb 05-10-2010 20:46

python is idd nogal straight forward, maar is meer scripting dan programma's maken. ( wil nog niet zeggen dat python enorm handig is en een goede basis)

spiderhomer 05-10-2010 22:05

Citaat:

Warsocket schreef: (Bericht 30923070)
By python hoef je juist heel weinig zelf te doen

Dat zei ik toch ook ...???

BlackBetty 06-10-2010 15:07

Als je games wilt programmeren raad ik je aan om naar www.gamedevforum.nl te gaan (sorry voor de reclame). Dit forum is speciaal gericht om games te maken. We krijgen binnenkort een volledige homepage.

Verder is c++ wel het meest gebruikt, maar is best moeilijk voor een leek om te leren.

spiderhomer 06-10-2010 23:04

Nouja niet persee games en als ik een game wil schrijven dan toch voor iPhone met Objective-C maar daar wil ik nu nog niet aan beginnen

ILUsion 07-10-2010 11:58

Als je wilt focussen op games; kan je in functie daarvan al je taal kiezen natuurlijk. Niets houdt je tegen om in Objective-C te beginnen (ik ken het zelf niet, maar aan de naam vermoed ik dat het niet zo simpel is als het lijkt; langs de andere kant kiest Apple meestal vrij toegankelijke technieken uit).

Programmeren is immers iets dat wel een bepaalde basis vereist; maar ook bepaalde speciale eisen/vaardigheden afhankelijk van het type programma dat je schrijft. Webapplicaties, games, wetenschappelijke software, gewone GUI, ... allemaal is het programmeren maar bepaalde dingen die je intuïtief op een bepaalde manier aanpakt, kunnen soms echt slechte resultaten geven als je ze uitvoert. Bv. bij games moet je weten dat je best een double buffer gebruikt voor het weergeven van je grafische gedeelte; anders krijg je geflikker. Gelukkig bestaan er wel boeken die al die kneepjes van het vak uit de doeken doen (daar kan je ook naar op zoek gaan om direct daar te beginnen).

Mocht je voor Python kiezen; kan je ook altijd eens kijken naar PyGame: een framework dat heel wat taken die je bij het ontwikkelen van een spel op zich neemt (gelijkaardige dingen zullen ook in de SDK van de iPhone wel bestaan).

spiderhomer 07-10-2010 22:40

Objective-C is gebaseerd op C++ zover ik weet...
Maar het punt was ik wil niet games schrijven ik wil alleen later ooit een iPhone app/game schrijven nu nog niet.

Verder wil ik een taal als C++ niet als basis hebben omdat ze zegmaar lastiger zijn dan kan ik beter beginnen met een wat eenvoudigere taal en vanuit daar het opbouwen

Warsocket 09-10-2010 02:47

Ik blijf bij
Python
Java
VB.NET
(op die volgorde, voor imperatieve talen)

imperatief betekent kort door de bocht dat jij de pc vertelt hoe hij wat moet doen.
er zijn nl ook talen waarbij ej de pc verteld wat er met data gebeurd oet worden en de pc zoek dan uit hoe.

Kortom er zijn grof gezien 3 soorten programmeertalen

turing achting, (assembler)
imperatief (alle .NET talen, java Python, php, etc)
functioneel(Clean, Haskel, Prolog(meer logisch bewijs en inferentie maar ok))

Maar imperatief is het makkelijkst om mee te beginnen, tenzij je erg onderlegd bent inde logica dan is prolog miss iets.


Alle tijden zijn GMT +1. Het is nu 03:25.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.