Ik had precies de tegenovergestelde ervaring. Ik heb in de loop van de tijd verschillende pogingen gedaan om Java onder de knie te krijgen, maar ik kan echt niet wennen aan alle overbodige rompslompcode en regeltjes (en wilde het ook niet meer vanaf het moment dat ik Python leerde kennen).quote:Op woensdag 6 juli 2011 23:40 schreef vriendelijkevriend het volgende:
[..]
Ja, ik heb helaas ooit een p2p-client gemaakt in Python.
voorbeeld?quote:Op donderdag 7 juli 2011 00:00 schreef keesjeislief het volgende:
[..]
Ik had precies de tegenovergestelde ervaring. Ik heb in de loop van de tijd verschillende pogingen gedaan om Java onder de knie te krijgen, maar ik kan echt niet wennen aan alle overbodige rompslompcode en regeltjes (en wilde het ook niet meer vanaf het moment dat ik Python leerde kennen).
"Als je platform specifieke dingen wilt doen ben je niet platform onafhankelijk". No shit sherlockquote:Op woensdag 6 juli 2011 23:30 schreef Henno het volgende:
Met Java zit je gevangen in hun framework als je platformonafhankelijk wil zijn. Zodra je de leuke OS-services wil gaan aanspreken waarin het framework niet voorziet, dan ben je niet platformonafhankelijk meer. Bijvoorbeeld als je onder OS X van die Java-bindings naar Cocoa (het framework dat je zou moeten gebruiken daar) gaat gebruiken om van de leuke OS X features gebruik te kunnen maken.
Dat heb je in C net zo goed. Als je in C gebruik maakt van Windows-specifieke functionaliteit dan gaat dat ook niet op Linux werken. Daarom abstraheer je de OS specifieke meuk in een aparte laag, dat geldt voor elk cross-platform project. Maar Java is wel, hoe dan ook, in de basis cross platform. Vergeet niet dat je de gecompileerde classes niet hoeft te hercompileren, dat doet de VM voor je.quote:En dan kan je net zo goed gewoon de boel in Objective-C gaan coden, want werken op Windows en Linux etc. doet het niet meer in die hoedanigheid
Als je een desktop applicatie bouwt die onder zo'n beetje alle OSen moet werken ben je gewoon dom als je dat niet in een platform onafhankelijke taal doet.quote:Plus: Java heeft de footprint van een olifant in een porseleinkast met die hele VM eronder. Leuk als academisch taaltje om de principes te leren, mede omdat het je genadeloos terugfluit als je niet netjes werkt... maar een serieuze desktop applicatie zou ik er zelf nooit mee schrijven.
Je bedoelt dus dat je OO programmeren niet snapt en daarom niet doorgezet hebt. Da's dezelfde reden dat een hoop mensen maar in PHP blijven kutten omdat dat wel zo'n lekker 'duidelijke' taal is. Hun argument is ook dat "print "Blaat"; een stuk 'duidelijker' is dan System.out.println("Blaat");. Nou, als dat je 'argument' is, prima. Zulke mensen moeten bij Java wegblijven want die halen alleen maar het gemiddelde niveau omlaagquote:Op donderdag 7 juli 2011 00:00 schreef keesjeislief het volgende:
Ik had precies de tegenovergestelde ervaring. Ik heb in de loop van de tijd verschillende pogingen gedaan om Java onder de knie te krijgen, maar ik kan echt niet wennen aan alle overbodige rompslompcode en regeltjes (en wilde het ook niet meer vanaf het moment dat ik Python leerde kennen).
Een paar simpele devvers die wat roepen zegt nog weinig over de echte wereld. Sorry johquote:Op donderdag 7 juli 2011 11:06 schreef Daeron het volgende:
Ach, hoe minder Java devvers hoe meer werk er voor mij is
quote:Op donderdag 7 juli 2011 09:58 schreef Catbert het volgende:
[..]
"Als je platform specifieke dingen wilt doen ben je niet platform onafhankelijk". No shit sherlock
[..]
Dat heb je in C net zo goed. Als je in C gebruik maakt van Windows-specifieke functionaliteit dan gaat dat ook niet op Linux werken. Daarom abstraheer je de OS specifieke meuk in een aparte laag, dat geldt voor elk cross-platform project. Maar Java is wel, hoe dan ook, in de basis cross platform. Vergeet niet dat je de gecompileerde classes niet hoeft te hercompileren, dat doet de VM voor je.
[..]
Als je een desktop applicatie bouwt die onder zo'n beetje alle OSen moet werken ben je gewoon dom als je dat niet in een platform onafhankelijke taal doet.
[..]
Je bedoelt dus dat je OO programmeren niet snapt en daarom niet doorgezet hebt. Da's dezelfde reden dat een hoop mensen maar in PHP blijven kutten omdat dat wel zo'n lekker 'duidelijke' taal is. Hun argument is ook dat "print "Blaat"; een stuk 'duidelijker' is dan System.out.println("Blaat");. Nou, als dat je 'argument' is, prima. Zulke mensen moeten bij Java wegblijven want die halen alleen maar het gemiddelde niveau omlaag![]()
Ach, er zijn talloze voorbeelden, maar een ding wat ik me nog duidelijk herinner is dat gekloot met verschillende constructors. Neem dit voorbeeldje van internet, een class Employee die met een verschillend aantal argumenten geinitieerd kan worden. In Java krijg je:quote:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class Employee { private String myEmployeeName; private int myTaxDeductions = 1; private String myMaritalStatus = "single"; //--------- constructor #1 ------------- public Employee(String EmployeName) { this(employeeName, 1); } //--------- constructor #2 ------------- public Employee(String EmployeName, int taxDeductions) { this(employeeName, taxDeductions, "single"); } //--------- constructor #3 ------------- public Employee(String EmployeName, int taxDeductions, String maritalStatus) { this.employeeName = employeeName; this.taxDeductions = taxDeductions; this.maritalStatus = maritalStatus; } |
| 1 2 3 4 5 | class Employee(): def __init__(self, employeeName, taxDeductions=1, maritalStatus="single"): self.employeeName = employeeName self.taxDeductions = taxDeductions self.maritalStatus = maritalStatus |
Dat ik Perl gebruik om een bak tekst te om te klussen betekent ook niet dat Perl een goede taal is om mee te beginnen.quote:Op donderdag 7 juli 2011 12:50 schreef keesjeislief het volgende:
. Alle grotere programma's, waaronder administratieve software en vooral veel code voor wetenschappelijke doeleinden, die ik geschreven heb zijn volledig OO, maar als ik snel een progje wil dat een bergje foto's herschaalt en hernoemt kan ik dat in 10 regels doen en heb ik geen taal nodig die stampvoetend eist dat ik per se OO gebruik. Python laat mij als programmeur de beste benadering kiezen en laat me o.a. daarmee heel snel en efficient zijn.
Nou, wat een verschil. Alsof daar je tijd in gaat zitten bij het coden.quote:Ach, er zijn talloze voorbeelden, maar een ding wat ik me nog duidelijk herinner is dat gekloot met verschillende constructors. Neem dit voorbeeldje van internet, een class Employee die met een verschillend aantal argumenten geinitieerd kan worden. In Java krijg je:
[ code verwijderd ]
In Python is dat veel simpeler en eleganter:
[ code verwijderd ]
Dat lijkt me geen reden om een taal 'verschrikkelijk' te vinden. Als het al zo'n verschil uitmaakt zou ik het eerder een voordeel vinden, want het maakt de code veel duidelijker. Ik vraag me echt af wat de redenen van Trollface zijn want ik vind het zelf echt een hele plezierige taal.quote:Op woensdag 6 juli 2011 23:19 schreef Henno het volgende:
[..]
De meeste mensen die ermee beginnen die hoor ik over de message passing syntax:
[ code verwijderd ]
i.p.v. iets als in Java of PHP:
[ code verwijderd ]
We zijn zo ongelooflijk gewend aan de syntax van voorbeeld twee, dat Objective-C er gewoon alien uitziet voor veel mensen. Merk op dat er bij voorbeeld 1 misschien meer tekst staat, maar dat het wel zichzelf beter uitlegt. Je roept geen methode aan, maar je stuurt een bericht. In dit geval het bericht kist:pak:enDoe. Je ziet dat je aan parameters een naam kan hangen, wat je code zelf juist leesbaarder kan maken doordat je er een betekenis aan hangt.
Ik denk dat ik als Microsoft certified engineer wel weet waar ik over praat ja.quote:Op woensdag 6 juli 2011 19:14 schreef Catbert het volgende:
[..]
Nee, het is daarvoor ontwikkeld. Dat is wat anders. Het heeft t.o.v. XML het voordeel dat het minder overhead heeft. Daarnaast gebruik ik het gewoon om simpele config files e.d. in te lezen en zal het me een worst wezen waarvoor het 'bedoeld' is volgens sommigen.
[..]
Ja, en daarom worden zoveel grote projecten gedaan in Java![]()
Kneus. Als je niet weet waar je 't over hebt, hou dan je mond. Met je 'geinterpreteerd'
Python is een uitstekende taal om mee te beginnen. Ik heb echt geen zin om alle argumenten nog een keer te gaan herhalen, hier staat bijv. een goed stuk van een Amerikaanse prof. CS en hier een stuk tekst van een mailing list:quote:Op donderdag 7 juli 2011 12:54 schreef Catbert het volgende:
[..]
Dat ik Perl gebruik om een bak tekst te om te klussen betekent ook niet dat Perl een goede taal is om mee te beginnen.
quote:Carlos,
John also has an excellent textbook: Python Programming: An
Introduction to Computer Science. We are in our second year of using
this book in our CS1 class and are very happy with it. Because of
its power and simplicity we have found that students enjoy the class
and can do more interesting projects in their first course than they
could with Java.
For example my students are now (in week 7 of the semester) writing
functions to enlarge images, smooth the enlarged images, and do edge
detection on the images the image library is so simple that the
students can really concentrate on the problem solving parts of the
exercise. For me these are great introductory exercises that get
them using nested loops, simple conditionals, and functions. I think
the students have more fun and are more successful when they can see
the results of their work visually.
We also use Python in our CS2 course which focuses on data
structures, and one of our colleagues is using Python in his advanced
data structures course this year. The great thing about using Python
in a data structures course is that there is almost a one-to-one
mapping from pseudocode to Python. So the students can really see
the how the concepts get mapped to code without all the extra
overhead that a language like Java imposes.
Of course we also teach and use Java but we don't introduce our
students to Java until the third course in our introductory
sequence. The nice thing about holding off on Java until the third
course is that the students now know enough computer science that we
can work on bigger and more interesting problems while they are
learning Java. In addition I can now use Python to compare and
contrast as I introduce new language concepts in Java.
Brad
--
Brad Miller, PhD
Assistant Professor
Luther College
Ja, dat gaat het, samen met die honderden andere kleinere en grotere voorbeelden van constructies waarin Python eleganter en intuitiever is. Daarom ook zo'n 5-10 maal minder regels code in Python voor dezelfde taak.quote:Nou, wat een verschil. Alsof daar je tijd in gaat zitten bij het coden.
Python is goud waard, maar wordt meestal gebruikt als script taal in een of andere toepassing die dus in een andere programmeertaal echt gemaakt wordt. Bijvoorbeeld Blender: Geschreven in C/C++ en gebruikt Python als script taal voor add ons en dergelijke.quote:Op donderdag 7 juli 2011 14:03 schreef keesjeislief het volgende:
[..]
Python is een uitstekende taal om mee te beginnen. Ik heb echt geen zin om alle argumenten nog een keer te gaan herhalen, hier staat bijv. een goed stuk van een Amerikaanse prof. CS en hier een stuk tekst van een mailing list:
[..]
[..]
Ja, dat gaat het, samen met die honderden andere kleinere en grotere voorbeelden van constructies waarin Python eleganter en intuitiever is. Daarom ook zo'n 5-10 maal minder regels code in Python voor dezelfde taak.
Post er eens een paar dan?quote:Op donderdag 7 juli 2011 14:03 schreef keesjeislief het volgende:
Ja, dat gaat het, samen met die honderden andere kleinere en grotere voorbeelden van constructies waarin Python eleganter en intuitiever is. Daarom ook zo'n 5-10 maal minder regels code in Python voor dezelfde taak.
quote:Op donderdag 7 juli 2011 13:55 schreef Raven_NL het volgende:
[..]
Ik denk dat ik als Microsoft certified engineer wel weet waar ik over praat ja.
Java is een interpreter taal net als basic. Dat de code in een andere verborgen taal wordt omgezet om dit te verbergen doet uiteraard niet terzake.
Dit is ook een van de belangrijkste verschillen in werking tussen C# (.NET framework) en java
C# is WEL een taal die naar machinecode gecompileerd wordt.
En noem eens EEN groot stand alone programma dat in java geschreven is...
Inderdaad. Nooit van MSIL gehoord kennelijk.quote:Op donderdag 7 juli 2011 14:16 schreef Daeron het volgende:
Dan zou ik toch eens heel gauw je certificaat inleveren want C# is net als Java een taal die naar bytecode omgezet wordt en daarna met een JIT compiler runtime wordt omgezet naar machine code.
Kan je alleen maar dom doen ?quote:Op donderdag 7 juli 2011 14:16 schreef Daeron het volgende:
[..]
Dan zou ik toch eens heel gauw je certificaat inleveren want C# is net als Java een taal die naar bytecode omgezet wordt en daarna met een JIT compiler runtime wordt omgezet naar machine code.
Juist....quote:Op donderdag 7 juli 2011 14:24 schreef Catbert het volgende:
Ik denk dat je sowieso beter niet met C++ kunt beginnen. Later C++ leren is IMHO een aanrader, net zoals iedere goeie programmeur IMHO wel eens dingen in assembly gedaan heeft, maar om mee te beginnen nee. Ik weet nog dat ik toen ik met C++ begon gewoon 2 dagen bezig ben geweest met een suffe fout van me (schrijven naar geheugen dat als "read only" gealloceerd was ofzo) en doodleuk een "kernel panic" voor m'n neus kreeg. Dan is Java (of C#) toch een heel stuk n00b-vriendelijker
.Net spul wordt naar MSIL gecompileerd, java naar bytecode. Beiden zijn binaire-code 'like' die dan door de VM (ja, .Net heeft ook een VM) omgezet worden naar platform-specifieke binaire code.quote:Op donderdag 7 juli 2011 14:24 schreef Raven_NL het volgende:
C# ( en andere .NET code) wordt eenmalig gecompileerd voor de machine waar het programma op gaat draaien. Alleen als code of framework veranderen is nieuwe compilatie nodig.
Java wordt net zo goed als .Net at runtime omgezet naar platform specifieke code.quote:Java wordt omgezet naar bytecode die vervolgens regel voor regel tijdens de uitvoering wordt geinterpreteert voor de java virtual machine.
En dat laatste is gewoon een ronduit trieste opmerking.quote:Er zijn op dit punt behoorlijk wat verschillen tussen C# en java..
Maarja een C# ontwikkelaar rijdt ook meestal in een dikkere auto dan een java programmeurtje
Als je het ergens niet mee eens bent, vertel gerust. Maar met zo'n opmerking kan ik niet zo veel.quote:
http://en.wikipedia.org/wiki/Common_Intermediate_Languagequote:Op donderdag 7 juli 2011 14:24 schreef Raven_NL het volgende:
[..]
Kan je alleen maar dom doen ?
C# ( en andere .NET code) wordt eenmalig gecompileerd voor de machine waar het programma op gaat draaien. Alleen als code of framework veranderen is nieuwe compilatie nodig.
Java wordt omgezet naar bytecode die vervolgens regel voor regel tijdens de uitvoering wordt geinterpreteert voor de java virtual machine.
Er zijn op dit punt behoorlijk wat verschillen tussen C# en java..
Maarja een C# ontwikkelaar rijdt ook meestal in een dikkere auto dan een java programmeurtje
Tadaa, Java en C# (of eigenlijk elke .Net taal) worden beide naar bytecode omgezet en daarna runtime omgezet met een JIT-compiler.quote:During compilation of .NET programming languages, the source code is translated into CIL code rather than platform or processor-specific object code. CIL is a CPU- and platform-independent instruction set that can be executed in any environment supporting the Common Language Infrastructure,[2] such as the .NET runtime on Windows, or the cross-platform Mono runtime. In theory, this eliminates the need to distribute different executable files for different platforms and CPU types. CIL code is verified for safety during runtime, providing better security and reliability than natively compiled executable files.
Wat klopt daar niet aan? Waarom zou je iemand die net begint memory management door de strot heen duwen? Sowieso, ik wil me er niet eens mee bezig houden, de klant betaalt voor functionaliteit, niet voor basale dingen die ook voor je gedaan kunnen wordenquote:
Mensen hebben verschillende definities van platform-onafhankelijk. Java kan platform-afhankelijk zijn als je platform-afhankelijke libraries gebruikt. C++ code (niet de binaries) kan platform-onafhankelijk zijn; applicatie die alleen van de standaard libs gebruik maakt kun je zonder wijzigingen voor zowel windows als linux compileren. Voor en tegenstanders (wat an sich al triest is, 'tegen' een programmeertaal zijn) van bepaalde talen hanteren verschillende definities al naar gelang wat hun het best uitkomt.quote:Op donderdag 7 juli 2011 14:32 schreef Pheno het volgende:
Ik zie in de OP dat C en C++ als platformonafhankelijk worden gezien door TS. Maar een C-programma gecompileerd op windows gaat op mijn mac niet werken, ik zal moeten hercompileren.
Platformonafhankelijkheid wil niet per definitie zeggen dat het op andere platformen kan draaien zonder opnieuw te compileren. Als het goed is kan je trouwens gewoon onder Windows je C applicatie compilen voor het Mac OS platform en andersom.quote:Op donderdag 7 juli 2011 14:32 schreef Pheno het volgende:
Ik zie in de OP dat C en C++ als platformonafhankelijk worden gezien door TS. Maar een C-programma gecompileerd op windows gaat op mijn mac niet werken, ik zal moeten hercompileren.
[..]
Wat klopt daar niet aan? Waarom zou je iemand die net begint memory management door de strot heen duwen? Sowieso, ik wil me er niet eens mee bezig houden, de klant betaalt voor functionaliteit, niet voor basale dingen die ook voor je gedaan kunnen worden
Dat is de definitie van platform-onafhankelijk die bijvoorbeeld Sun voor Java gebruikt. Er is niet maar 1 definitie, ieder heeft zo z'n eigen definitie.quote:Op donderdag 7 juli 2011 14:33 schreef Daeron het volgende:
Platformonafhankelijkheid wil niet per definitie zeggen dat het op andere platformen kan draaien zonder opnieuw te compileren.
Ik zie platformonafhankelijk als overal te draaien zonder hercompilatie, anders ben je het eenvoudigweg niet. Je bent als programma toch afhankelijk waarop je gecompileerd bent en waar je op dat moment gaat draaienquote:Op donderdag 7 juli 2011 14:33 schreef Daeron het volgende:
[..]
Platformonafhankelijkheid wil niet per definitie zeggen dat het op andere platformen kan draaien zonder opnieuw te compileren. Als het goed is kan je trouwens gewoon onder Windows je C applicatie compilen voor het Mac OS platform en andersom.
Dat BLIJFT een compromis... en zal nooit zo goed werken als een specifiek voor een machine geschreven programma in C++ bvquote:Op donderdag 7 juli 2011 14:33 schreef Daeron het volgende:
[..]
Platformonafhankelijkheid wil niet per definitie zeggen dat het op andere platformen kan draaien zonder opnieuw te compileren. Als het goed is kan je trouwens gewoon onder Windows je C applicatie compilen voor het Mac OS platform en andersom.
Dat klopt, maar ik ben het eens met Sun. Ik moet een programma kunnen compileren op een as/400 en kunnen gebruiken op een windows machine, sort a speak.quote:Op donderdag 7 juli 2011 14:36 schreef Catbert het volgende:
[..]
Dat is de definitie van platform-onafhankelijk die bijvoorbeeld Sun voor Java gebruikt. Er is niet maar 1 definitie, ieder heeft zo z'n eigen definitie.
Bubblesort a speak? Quicksort a speak?quote:
Met "goed werken" bedoel je puur snelheid. Klopt, C++ is typisch sneller dan de andere mainstream talen, met Java als close second:quote:Op donderdag 7 juli 2011 14:39 schreef Raven_NL het volgende:
Dat BLIJFT een compromis... en zal nooit zo goed werken als een specifiek voor een machine geschreven programma in C++ bv
Op de uni hebben ze vast wel weer een of andere theoretisch snellere sort. Niet dat iemand die wil implementeren, want elke fatsoenlijke taal heeft al een geoptimaliseerde en door en door geteste sort-functionaliteitquote:Op donderdag 7 juli 2011 14:41 schreef Litpho het volgende:
[..]
Bubblesort a speak? Quicksort a speak?
Snelheid van oplossend programmeren lijkt me belangrijker. Als je goed bent in C pak je dat, ben je goed in java, doe je dat. Dat eeuwige gejank over welke taal de beste is. Er is geen beste, want dan zou iedereen die gebruikenquote:Op donderdag 7 juli 2011 14:43 schreef Catbert het volgende:
[..]
Met "goed werken" bedoel je puur snelheid. Klopt, C++ is typisch sneller dan de andere mainstream talen, met Java als close second:
http://shootout.alioth.de(...)on&php=on&calc=chart
Maar pure snelheid is in heel veel projecten niet de voornaamste reden om het te gebruiken, vooral omdat de snelheid van de (web)applicatie zelf sowieso geen bottleneck is.
Sure. Maar je moet wel weten hoe dergelijke algorithmes werken puur om te kunnen apprecieren dat het behoorlijk bewerkelijk is. Als je het puur als een "call" naar een library ziet, heb je gewoon niet door dat er redelijk wat number-crunching bij komt kijken. Als je het aan het ontwikkelen bent merk je niet dat je inefficient bezig bent, dat merk je pas als de app server bij 10 concurrent users het geheel onverwacht spaans benauwd krijgt.quote:Op donderdag 7 juli 2011 14:44 schreef Pheno het volgende:
Op de uni hebben ze vast wel weer een of andere theoretisch snellere sort. Niet dat iemand die wil implementeren, want elke fatsoenlijke taal heeft al een geoptimaliseerde en door en door geteste sort-functionaliteit
Eensch. Persoonlijk vind ik Java het 'best' voor back-end stuff, vooral omdat daar enorm veel voor te vinden is aan open source spul dat gewoon goed werkt, en .Net erg sterk is voor mooie webapplicaties. Zijn genoeg projecten waar dat ook gewoon prima samenwerkt. Al het ESB spul is Java, alleen de webapplicatie is .Net.quote:Op donderdag 7 juli 2011 14:46 schreef Pheno het volgende:
Snelheid van oplossend programmeren lijkt me belangrijker. Als je goed bent in C pak je dat, ben je goed in java, doe je dat. Dat eeuwige gejank over welke taal de beste is. Er is geen beste, want dan zou iedereen die gebruiken
Is trouwens geen garantie. Heb laatst een keer een aantal xml databases tegenover elkaar gebenchmarked voor een project op de uni. Bleek dat een db engine geschreven in Java sneller presteerde dan een db engine geschreven in C++.quote:Op donderdag 7 juli 2011 14:43 schreef Catbert het volgende:
[..]
Met "goed werken" bedoel je puur snelheid. Klopt, C++ is typisch sneller dan de andere mainstream talen, met Java als close second:
http://shootout.alioth.de(...)on&php=on&calc=chart
Maar pure snelheid is in heel veel projecten niet de voornaamste reden om het te gebruiken, vooral omdat de snelheid van de (web)applicatie zelf sowieso geen bottleneck is.
SQLite versus HSQL toevallig?quote:Op donderdag 7 juli 2011 14:51 schreef Daeron het volgende:
Is trouwens geen garantie. Heb laatst een keer een aantal xml databases tegenover elkaar gebenchmarked voor een project op de uni. Bleek dat een db engine geschreven in Java sneller presteerde dan een db engine geschreven in C++.
Nee, de ontwikkelaar des te meerquote:Kortom, de taal zegt niets over de efficiėntie of werkbaarheid van de applicatie.
quote:Ik sluit me aan bij de heersende conclusie, programmeren is eerder een mindset die je hebt dan je kunsten in een bepaalde taal.
XML Databases dus geen SQL maar xqueryquote:
Nou, inderdaad, die rukkers van MIT bijvoorbeeld. Oh wacht, hun programma wordt gezien als een van de beste in de US.quote:Op donderdag 7 juli 2011 14:16 schreef Catbert het volgende:
Sorry maar dat geeft dus goed aan wat het niveau is van een gemiddelde "CS" study daar. Je leert daar niet hoe dingen werken, je leert hoe je een library gebruikt die iemand anders voor je gemaakt heeft. Dat is niet leren programmeren. De taal boeit hier overigens weinig in, ik vind alleen het gezeur over hoe geweldig Python wel niet is gewoon irritant, het is niks bijzonders. Net zoals mensen die los gaan over Scala. "Kijk eens hoe weinig regels code", ja, maar is het leesbaar?
Leren programmeren is leren hoe dingen werken. Dus in plaats van een resize library te gebruiken, leer dat eens ZELF pixel voor pixel te doen. In plaats van een linked list te gebruiken, leer er eerst ZELF eens een te maken. Dat is informatica, en niet dat gesufkut van tegenwoordig waar je maar een paar libraries tegen je probleem aan gooit in de hoop dat dat de oplossing is.
Het maakt in deze ook weinig uit of je begint in Perl, Python, Java, C# of C++, als je maar de juiste opleiding krijgt. Ik vind Smalltalk een nog betere taal om mee te beginnen, hoewel je daar in "het echt" ook niet snel mee zult gaan werken. Leren programmeren is leren hoe bepaalde constructies werken, zoals algorithmes, OO programmeren en design patterns herkennen. Als de geschiktheid van een taal afhangt van hoe 'makkelijk' een image bewerkings library is, dan zit er in de belevingswereld van de docent iets compleet scheef, en dat past goed bij het hedendaagse HBO (en de vergelijkbare studies in de VS).
Zodat jij er weer over kunt zeggen dat je het geen probleem vindt en dat het niet belangrijk is? Dag.quote:Post er eens een paar dan?
enquote:writing them. The results indicate that, for the given pro-
gramming problem, which regards string manipulation and
search in a dictionary, “scripting languages” (Perl, Python,
Rexx, Tcl) are more productive than “conventional lan-
guages” (C, C++, Java). In terms of run time and mem-
ory consumption, they often turn out better than Java and
not much worse than C or C++.
quote:Designing and writing the program in Perl, Python,
Rexx, or Tcl takes no more than half as much time as
writing it in C, C++, or Java and the resulting program
is only half as long.
De taal is platformonafhankelijk, het programma nietquote:Op donderdag 7 juli 2011 14:32 schreef Pheno het volgende:
Ik zie in de OP dat C en C++ als platformonafhankelijk worden gezien door TS. Maar een C-programma gecompileerd op windows gaat op mijn mac niet werken, ik zal moeten hercompileren.
De vraag van TS was toch met welke taal hij best kon beginnen? Geen idee waarom je cijfers over productiviteit erbij haalt, dat is namelijk voor ene beginner totaal irrelevant. Wil je snappen wat objecten zijn, dan is een in jouw ogen minder productieve taal handiger. Ook geen frameworks als Spring of weet ik wat, maar gewoonweg Java of C++. Daarna kun je altijd nog naar een andere taal springen.quote:Op donderdag 7 juli 2011 14:59 schreef keesjeislief het volgende:
[..]
Nou, inderdaad, die rukkers van MIT bijvoorbeeld. Oh wacht, hun programma wordt gezien als een van de beste in de US..
[..]
Zodat jij er weer over kunt zeggen dat je het geen probleem vindt en dat het niet belangrijk is? Dag.. Er staan talloze voorbeelden op internet. Een leuk wetenschappelijk artikel is bijv. deze, waarin implementaties voor verschillende taken worden vergeleken voor C, C++, Java, Perl, Python, Rexx en Tcl. Conclusie:
[..]
en
[..]
Oke, op die fiets. Ik denk in resultaat, vandaar dat ik het vreemd er uit vind zien. Ik programmeer niet om de code, maar om een applicatie te makenquote:Op donderdag 7 juli 2011 15:03 schreef retorbrapi het volgende:
[..]
De taal is platformonafhankelijk, het programma niet
Waarom? Omdat jij het categoriseert als een 'scripttaal'? Je kunt er alles mee doen wart je maar wilt. Geen beperkingen. Paar voorbeelden van http://www.python.org/about/quotes/:quote:Op donderdag 7 juli 2011 14:14 schreef Raven_NL het volgende:
[..]
Python is goud waard, maar wordt meestal gebruikt als script taal in een of andere toepassing die dus in een andere programmeertaal echt gemaakt wordt. Bijvoorbeeld Blender: Geschreven in C/C++ en gebruikt Python als script taal voor add ons en dergelijke.
Als je in een team mee wil doen is Python zeker de moeite waard. Het is echter niet bedoeld om complete programma's te schrijven
quote:"Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers," said Cuong Do, Software Architect, YouTube.com.
"Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python, and we're looking for more people with skills in this language." said Peter Norvig, director of search quality at Google, Inc.
"Journyx technology, from the source code of our software to the code that maintains our Web site and ASP sites, is entirely based on Python. It increases our speed of development and keeps us several steps ahead of competitors while remaining easy to read and use. It's as high level of a language as you can have without running into functionality problems. I estimate that Python makes our coders 10 times more productive than Java programmers, and 100 times more than C programmers." -- Curt Finch, CEO, Journyx
"Python enabled us to create EVE Online, a massive multiplayer game, in record time. The EVE Online server cluster runs over 50,000 simultaneous players in a shared space simulation, most of which is created in Python. The flexibilities of Python have enabled us to quickly improve the game experience based on player feedback" said Hilmar Veigar Petursson of CCP Games.
Euh, je linkt naar een computertechniek opleiding, niet naar een informatica opleiding. Wat deze mensen leren is vooral elektrotechniek. M'n vader heeft een soortgelijke opleiding gedaan, en hij is gewoon Elektrotechnicus. MIT is een van de leidende engineering instituten op de wereld maar de focus ligt daar niet op het leveren van de volgende lichting Java programmeurs. Als je wil leren programmeren moet je ook niet aan de UT gaan studeren.quote:Op donderdag 7 juli 2011 14:59 schreef keesjeislief het volgende:
Nou, inderdaad, die rukkers van MIT bijvoorbeeld. Oh wacht, hun programma wordt gezien als een van de beste in de US..
Het stukje "In general, the differences between languages tend to be smaller than the typical differences due to different programmers within the same language." laat je voor het gemak maar even weg?quote:Zodat jij er weer over kunt zeggen dat je het geen probleem vindt en dat het niet belangrijk is? Dag.. Er staan talloze voorbeelden op internet. Een leuk wetenschappelijk artikel is bijv. deze, waarin implementaties voor verschillende taken worden vergeleken voor C, C++, Java, Perl, Python, Rexx en Tcl. Conclusie:
Waar komt toch altijd die bewijsdrang van Python aanhangers vandaan? Het is een prima taal hoor, maar het is niet "beter" of "slechter" dan Java perse. Natuurlijk staan op die site dat soort quotes, quotes in de trant van "we hebben Python bekeken maar het mist de hoeveelheid meuk die al voor Java bestaat dus we laten het hier bij" zul je niet zien. Dat is gewoon marketing. op onze site staan ook quotes van klanten die een positiever beeld geven dan wat de werkelijkheid is wat betreft hun mening over ons.quote:Op donderdag 7 juli 2011 15:10 schreef keesjeislief het volgende:
Waarom? Omdat jij het categoriseert als een 'scripttaal'? Je kunt er alles mee doen wart je maar wilt. Geen beperkingen. Paar voorbeelden van http://www.python.org/about/quotes/:
Daar ging de discussie al niet meer over. Daarnaast is mijn link erg relevant voor TS, omdat die aangeeft dat Python door MIT wordt gebruikt in een van hun eerste colleges voor studenten electrical engineering. Een goede onderbouwing van het feit dat Python een heel geschikte taal is om mee te beginnen.quote:Op donderdag 7 juli 2011 15:05 schreef Pheno het volgende:
[..]
De vraag van TS was toch met welke taal hij best kon beginnen? Geen idee waarom je cijfers over productiviteit erbij haalt, dat is namelijk voor ene beginner totaal irrelevant. Wil je snappen wat objecten zijn, dan is een in jouw ogen minder productieve taal handiger. Ook geen frameworks als Spring of weet ik wat, maar gewoonweg Java of C++. Daarna kun je altijd nog naar een andere taal springen.
Hij wil desktop-apps schrijven? Ik kan ook Prolog gaan aanbevelen, maar dat is ook alleen maar zinvol in bepaalde gebiedenquote:Op donderdag 7 juli 2011 15:14 schreef keesjeislief het volgende:
[..]
Daar ging de discussie al niet meer over. Daarnaast is mijn link erg relevant voor TS, omdat die aangeeft dat Python door MIT wordt gebruikt in een van hun eerste colleges voor studenten electrical engineering. Een goede onderbouwing van het feit dat Python een heel geschikte taal is om mee te beginnen.
Idd. Voor Windows desktop-apps zou ik ook eerder .Net aanraden dan Java.quote:Op donderdag 7 juli 2011 15:17 schreef Pheno het volgende:
Hij wil desktop-apps schrijven? Ik kan ook Prolog gaan aanbevelen, maar dat is ook alleen maar zinvol in bepaalde gebieden
TS wil leren programmeren zonder een informaticus te worden, precies zoals die studenten op MIT. Hij zit veel dichter bij jouw vader en bij mij, die snel en productief een programmeertaal willen gebruiken waarmee ze alles kunnen doen wat ze willen, dan bij suffe informatici die het vanuit een theoretischer perspectief bekijken.quote:Op donderdag 7 juli 2011 15:10 schreef Catbert het volgende:
[..]
Euh, je linkt naar een computertechniek opleiding, niet naar een informatica opleiding. Wat deze mensen leren is vooral elektrotechniek. M'n vader heeft een soortgelijke opleiding gedaan, en hij is gewoon Elektrotechnicus. MIT is een van de leidende engineering instituten op de wereld maar de focus ligt daar niet op het leveren van de volgende lichting Java programmeurs. Als je wil leren programmeren moet je ook niet aan de UT gaan studeren.
Zucht. Kijk nou eens naar de post die ik quotte. Daarin wordt beweerd dat Python slechts een scripttaaltje is en ongeschikt voor 'hele programma's'. Als ik daarop reageer met een aantal quotes waaruit duidelijk wordt dat Python gebruikt wordt voor heel grote projecten heb ik opeens 'bewijsdrang'.quote:Waar komt toch altijd die bewijsdrang van Python aanhangers vandaan? Het is een prima taal hoor, maar het is niet "beter" of "slechter" dan Java perse. Natuurlijk staan op die site dat soort quotes, quotes in de trant van "we hebben Python bekeken maar het mist de hoeveelheid meuk die al voor Java bestaat dus we laten het hier bij" zul je niet zien. Dat is gewoon marketing. op onze site staan ook quotes van klanten die een positiever beeld geven dan wat de werkelijkheid is wat betreft hun mening over ons.
Ja, of een van de andere miljoenen talen waarmee dat kan.quote:Op donderdag 7 juli 2011 15:17 schreef Pheno het volgende:
[..]
Hij wil desktop-apps schrijven? Ik kan ook Prolog gaan aanbevelen, maar dat is ook alleen maar zinvol in bepaalde gebieden
Je zit het hele topic te spugen op het feit dat Python te simpel is om 'goed te leren programmeren', en nu raad je .net aan, wat betekent dat TS een IDE gaat downloaden en met klikkerdeklak formpjes in elkaar gaat plakken? Serieus?quote:Op donderdag 7 juli 2011 15:21 schreef Catbert het volgende:
[..]
Idd. Voor Windows desktop-apps zou ik ook eerder .Net aanraden dan Java.
Je hoeft niet te prediken hoor, daar ben ik immuun voor. Het leuke is dat elke taal zegt bovenstaande te zijn namelijkquote:Op donderdag 7 juli 2011 15:26 schreef keesjeislief het volgende:
[..]
Ja, of een van de andere miljoenen talen waarmee dat kan.. Punt is dat Python er bij uitstek geschikt voor is,
omdat het zo'n mooie, compacte en intuitieve taal is en erg fijn voor beginners.
. Voor de 1000e keer.
.
.
Ja en? Dat klinkt als een oude opa die de oorlog heeft meegemaakt en zijn kleinkinderen geen speelgoed gunt omdat hij dat ook nooit gehad heeft en ze zo wil leren dat het allemaal heus niet uit de lucht komt vallen. Het is een onzinargument. Je gaat toch ook niet in een assemblytaal zitten programmeren om "eens even goed te leren hoe je elke bit het meest efficient kunt gebruiken!quote:Op donderdag 7 juli 2011 15:38 schreef Pheno het volgende:
[..]
Je hoeft niet te prediken hoor, daar ben ik immuun voor. Het leuke is dat elke taal zegt bovenstaande te zijn namelijkIk denk dat er nu gevallen wordt over het compacte, want het doet zo veel voor je. Dat kun je pas waarderen als je weet hoe rot het in 'mindere' talen gaat.
Voor een programmeur is het zeker niet verkeerd om eens in assembly te programmeren, dan leer je pas echt hoe een computer in de basis in elkaar zit. Iets wat veel programmeurs die alleen in hogere orde talen programmeren niet meer weten.quote:Op donderdag 7 juli 2011 15:50 schreef keesjeislief het volgende:
[..]
Ja en? Dat klinkt als een oude opa die de oorlog heeft meegemaakt en zijn kleinkinderen geen speelgoed gunt omdat hij dat ook nooit gehad heeft en ze zo wil leren dat het allemaal heus niet uit de lucht komt vallen. Het is een onzinargument. Je gaat toch ook niet in een assemblytaal zitten programmeren om "eens even goed te leren hoe je elke bit het meest efficient kunt gebruiken!"? Je schrikt mensen die vooral willen leren programmeren alleen maar af met teveel randzaken en verbose geouwehoer. Python is een goede, heel complete, duidelijke en intuitieve taal die erg dicht bij menselijke logica staat. En daar is het behoorlijk uniek in. Dat zorgt ervoor dat nieuwelingen het snel kunnen leren, het een plezier is om in te programmeren en dat je je als prorgrammeur kunt storten op het meest interessante werk, nl. het in structuren en algoritmes vangen van het probleem dat je op wilt lossen. Een soortgelijke reden gaf MIT ook voor hun belsuit om Python te gaan gebruiken zoals uitgelegd in een bovenstaande post.
Nou, kom maar op met een feit van belang over de werking van computers dat ik niet weet en jij wel.quote:Op donderdag 7 juli 2011 15:52 schreef themole het volgende:
[..]
Voor een programmeur is het zeker niet verkeerd om eens in assembly te programmeren, dan leer je pas echt hoe een computer in de basis in elkaar zit. Iets wat veel programmeurs die alleen in hogere orde talen programmeren niet meer weten.
Hij heeft wel gelijk, je komt dichter tegen de hardware aan te zitten met ASM. Je kan bijvoorbeeld zien welke memory adressen er aangestuurd worden door bepaalde handelingen, iets wat je met C++ niet echt snel zal tegen komen. Het geeft een completer beeld.quote:Op donderdag 7 juli 2011 15:54 schreef keesjeislief het volgende:
[..]
Nou, kom maar op met een feit van belang over de werking van computers dat ik niet weet en jij wel.
Wil je mijn oorlogswond zien?quote:Op donderdag 7 juli 2011 15:50 schreef keesjeislief het volgende:
[..]
Ja en? Dat klinkt als een oude opa die de oorlog heeft meegemaakt en zijn kleinkinderen geen speelgoed gunt omdat hij dat ook nooit gehad heeft en ze zo wil leren dat het allemaal heus niet uit de lucht komt vallen. Het is een onzinargument.
Ik zeg niet dat jij het niet weet, echter ik denk dat veel programmeurs en ontwikkelaars de architectuur rondom de processor toch echt niet goed kennen. Het kan heel handig zijn om te weten wat er diep in de computer gebeurt als jij iets gaat optimaliseren.quote:Op donderdag 7 juli 2011 15:54 schreef keesjeislief het volgende:
[..]
Nou, kom maar op met een feit van belang over de werking van computers dat ik niet weet en jij wel.
quote:Op donderdag 7 juli 2011 15:58 schreef EggsTC het volgende:
[..]
Hij heeft wel gelijk, je komt dichter tegen de hardware aan te zitten met ASM. Je kan bijvoorbeeld zien welke memory adressen er aangestuurd worden door bepaalde handelingen, iets wat je met C++ niet echt snel zal tegen komen. Het geeft een completer beeld.
Nog steeds geen voorbeelden?quote:Op donderdag 7 juli 2011 16:13 schreef themole het volgende:
[..]
Ik zeg niet dat jij het niet weet, echter ik denk dat veel programmeurs en ontwikkelaars de architectuur rondom de processor toch echt niet goed kennen. Het kan heel handig zijn om te weten wat er diep in de computer gebeurt als jij iets gaat optimaliseren.
Nogmaals, bewijsdrang much?quote:Op donderdag 7 juli 2011 15:29 schreef keesjeislief het volgende:
Je zit het hele topic te spugen op het feit dat Python te simpel is om 'goed te leren programmeren', en nu raad je .net aan, wat betekent dat TS een IDE gaat downloaden en met klikkerdeklak formpjes in elkaar gaat plakken? Serieus?.
Snap je het voordeel niet van begrijpen wat er van die Java (of wat dan ook) code door je compiler gemaakt wordt echt niet?quote:
Hardware debugging.quote:Op donderdag 7 juli 2011 16:17 schreef keesjeislief het volgende:
[..]
[..]
Nog steeds geen voorbeelden?
Mwa, ben het voor het grootste deel wel met je eens, maar over het algemeen wordt Python als makkelijker beschouwd. Ik weet ook niet precies waarom veel mensen Python als makkelijker beschouwen, het gebrek aan een goede IDE zoals bijvoorbeeld Eclipse stoorde mij enorm (je hebt/had wel iets van Wing o.i.d....maar dat zoog als IDE volgens mij). Ik denk dat de meeste Python als makkelijker beschouwen omdat ze pas later met OO in aanraking komen, iets waar je bij Java/C# gelijk rekening mee moet houden.quote:Op donderdag 7 juli 2011 16:19 schreef Catbert het volgende:
[..]
Nogmaals, bewijsdrang much?
Ik vind Java een betere leertaal dan Python. Ondanks dat sommige dingen wat omslachtiger zijn, wordt je bij Java meer gedwongen OO te programmeren en vooraf te bedenken of iets een String of een int oid is. Ik "spuug" niet op Python, ik vind het voor mezelf niet echt een toegevoegde waarde hebben. Tools maak ik in Java meestal, simpele scripts meestal in Perl. Op dit is in dit onderwerp de exacte taal waarin je dingen leert redelijk ondergeschikt aan HOE je dingen leert. Als je een goeie leraar hebt, maakt het geen zak uit. Als je jezelf dingen aan gaat leren, dan kun je beter niet met een taal bezig gaan die je alles maar leert doen. Ik ben toen ik 15 was in Qbasic geworden en heb me toen ik me met Java bezig ging houden een hoop dingen af moeten leren.
Wat betret GUI programmeren: ik raad mensen sowieso af om met GUIs te beginnen. Maar als je desktop apps wilt bouwen en de keuze hebt tussen C# en Java, zou ik voor C# gaan.
quote:Op donderdag 7 juli 2011 16:17 schreef keesjeislief het volgende:
[..]
[..]
Nog steeds geen voorbeelden?
bron:http://onlamp.com/pub/a/onlamp/2004/05/06/writegreatcode.htmlquote:This is very good advice. After all, high-level compilers translate their high-level source statements into low-level machine code. So if you know assembly language for your particular machine, you'll be able to correlate high-level language constructs with the machine language sequences that a compiler generates. And with this understanding, you'll be able to choose better high-level language statements based on your understanding of how compilers translate those statements into machine code.
All too often, high-level language programmers pick certain high-level language sequences without any knowledge of the execution costs of those statements. Learning assembly language forces the programmer to learn the costs associated with various high-level constructs. So even if the programmer never actually writes applications in assembly language, the knowledge makes the programmer aware of the problems with certain inefficient sequences so they can avoid them in their high-level code.
Waarschijnlijk heeft dat meer te maken met het bouwen van compilers voor bepaalde processoren (embedded devices enzo). Je moet dan wel enige kennis hebben van assembly. Of het je echt een betere programmeur maakt als je in een willekeurig high level taaltje werkt betwijfel ik.quote:Op donderdag 7 juli 2011 16:34 schreef themole het volgende:
[..]
[..]
bron:http://onlamp.com/pub/a/onlamp/2004/05/06/writegreatcode.html
Niet voor niets dat de TU Delft hun informatici nog altijd assembly leert.
Op zich mee eens, maar als ik naar mezelf kijk denk ik toch dat je als je niet begint met OO 'denken' het juist moeilijker is later om te schakelen dan wanneer je begint met een "een Auto heeft view Wielen en is een Voertuig"-achtige concepten. Verder vind ik strongly typed talen een must. Als ik ergens een hekel heb is het wel PHP scripts waar vars op het ene moment gebruikt worden als counter en een stuk later voor de inhoud van een textbox misbruikt worden.quote:Op donderdag 7 juli 2011 16:30 schreef QBay het volgende:
[..]
Mwa, ben het voor het grootste deel wel met je eens, maar over het algemeen wordt Python als makkelijker beschouwd. Ik weet ook niet precies waarom veel mensen Python als makkelijker beschouwen, het gebrek aan een goede IDE zoals bijvoorbeeld Eclipse stoorde mij enorm (je hebt/had wel iets van Wing o.i.d....maar dat zoog als IDE volgens mij). Ik denk dat de meeste Python als makkelijker beschouwen omdat ze pas later met OO in aanraking komen, iets waar je bij Java/C# gelijk rekening mee moet houden.
Persoonlijk vind ik Java of Python niet beter dan de andere. Met Python kan je ook complete applicaties (en zelfs games...zie Unknown Horizons) bouwen, al zie je deze applicaties een stuk minder dan Java applicaties. Wat een persoonlijk gevoel is (heb geen keiharde onderbouwing), is het feit dat beide talen niet erg snappy voelende applicaties oplevert. Applicaties in Python en Java voelen wat log en traag. C# applicaties voelen wat dat betreft sneller. maar nogmaals, dat is persoonlijk waarschijnlijk.
Voor een beginneling zou ik ook Java aanbevelen, vooral omdat het multiplatform is. Als blijkt dat het abstractieniveau van Java nog wat te hoog gegrepen is, probeer dan Python eens. Via Python leer je uiteindelijk hetzelfde, alleen duurt het wat langer voordat je in aanraking komt met OO principes. Beide talen zijn prima. Ik vind iemand die programmeren 'geleerd' heeft via Java niet beter of slechter dan iemand die met Python is begonnen.
Programmeren draait om het abstract kunnen denken, problemen oplossen en mensen tevreden stellen. Welke taal je daarbij gebruikt boeit niet.
Ik denk juist dat kennis hebben van de werking van een CPU maar ook de werking van bepaalde algorithmen (hoe doorzoek ik een boom, hoe sorteer ik een array) belangrijk is omdat je dan als het ware instinctief weet wat dure en goedkope operaties zijn. Niet dat je dat automatisch een goeie programmeur maakt, maar omgekeerd denk ik dat goeie programmeurs dat ook zelf interessant vinden en dat soort dingen graag willen weten.quote:Op donderdag 7 juli 2011 16:57 schreef Core2 het volgende:
Waarschijnlijk heeft dat meer te maken met het bouwen van compilers voor bepaalde processoren (embedded devices enzo). Je moet dan wel enige kennis hebben van assembly. Of het je echt een betere programmeur maakt als je in een willekeurig high level taaltje werkt betwijfel ik.
Een goede analyse van de complexiteit van het algoritme is dan belangrijker. Wat heeft het doorzoeken van een boom met wat low level instructies te maken, hoe helpt die kennis je dan? Het is belangrijker om te analyseren wat het algoritme precies doet met welke running time (worst case, average case, etc) en met wat voor een soort input je te maken hebt. De vraag of je een bepaalde statement of expressie dan anders moet formuleren voor optimalisatie is dan echt ondergeschikt.quote:Op donderdag 7 juli 2011 17:15 schreef Catbert het volgende:
Ik denk juist dat kennis hebben van de werking van een CPU maar ook de werking van bepaalde algorithmen (hoe doorzoek ik een boom, hoe sorteer ik een array) belangrijk is omdat je dan als het ware instinctief weet wat dure en goedkope operaties zijn. Niet dat je dat automatisch een goeie programmeur maakt, maar omgekeerd denk ik dat goeie programmeurs dat ook zelf interessant vinden en dat soort dingen graag willen weten.
De werking van een algorithme is een parallel met de werking van een CPU, volgens mij was dat wel duidelijk. Je kunt een bepaald algorithme prima gebruiken zonder te weten hoe het werkt, maar ik denk wel dat dat belangrijk is. Dit geldt in zekere mate, vind ik tenminste, ook voor snappen hoe een computer low level met instructies omgaat.quote:Op donderdag 7 juli 2011 18:08 schreef Core2 het volgende:
Een goede analyse van de complexiteit van het algoritme is dan belangrijker. Wat heeft het doorzoeken van een boom met wat low level instructies te maken, hoe helpt die kennis je dan? Het is belangrijker om te analyseren wat het algoritme precies doet met welke running time (worst case, average case, etc) en met wat voor een soort input je te maken hebt. De vraag of je een bepaalde statement of expressie dan anders moet formuleren voor optimalisatie is dan echt ondergeschikt.
Python wordt als makkelijker gezien omdat er veel minder 'boilerplate' code nodig is, de code (o.a. daardoor) leesbaarder is en de taal goed aansluit bij je intuitie. Verder zijn er (inmiddels?) uitstekende editors beschikbaar, maar tegelijkertijd is het juist een illustratie van de eenvoud van de taal dat je helemaal geen (geavanceerde) editor nodig hebt.quote:Op donderdag 7 juli 2011 16:30 schreef QBay het volgende:
[..]
Mwa, ben het voor het grootste deel wel met je eens, maar over het algemeen wordt Python als makkelijker beschouwd. Ik weet ook niet precies waarom veel mensen Python als makkelijker beschouwen, het gebrek aan een goede IDE zoals bijvoorbeeld Eclipse stoorde mij enorm (je hebt/had wel iets van Wing o.i.d....maar dat zoog als IDE volgens mij). Ik denk dat de meeste Python als makkelijker beschouwen omdat ze pas later met OO in aanraking komen, iets waar je bij Java/C# gelijk rekening mee moet houden.
Huh? Hoe is deze lijst niet multiplatform?quote:Voor een beginneling zou ik ook Java aanbevelen, vooral omdat het multiplatform is.
Het is al een tijd geleden hoor dat ik met Python heb gewerkt, dus als jij zegt dat er nu betere IDE's zijn dan geloof ik jequote:Op donderdag 7 juli 2011 18:39 schreef keesjeislief het volgende:
[..]
Python wordt als makkelijker gezien omdat er veel minder 'boilerplate' code nodig is, de code (o.a. daardoor) leesbaarder is en de taal goed aansluit bij je intuitie. Verder zijn er (inmiddels?) uitstekende editors beschikbaar, maar tegelijkertijd is het juist een illustratie van de eenvoud van de taal dat je helemaal geen (geavanceerde) editor nodig hebt.
[..]
Huh? Hoe is deze lijst niet multiplatform?
OO is een hulpmiddel, geen doel. Zie niet in dat dwang tot gebruik van OO een goede eigenschap is voor een taal. Eerder een negatieve.quote:Op donderdag 7 juli 2011 19:21 schreef QBay het volgende:
[..]
Het is al een tijd geleden hoor dat ik met Python heb gewerkt, dus als jij zegt dat er nu betere IDE's zijn dan geloof ik je.
Python is ook multiplatform inderdaad, dus ook een prima taal. Ik verkies alleen Java boven Python omdat je meer en eerder gedwongen wordt om aan object georiėnteerd programmeren te doen, iets wat zeker voor een beginner handig is.
Kan je ook uitleggen waarom?quote:Op donderdag 7 juli 2011 21:48 schreef ralfie het volgende:
[..]
OO is een hulpmiddel, geen doel. Zie niet in dat dwang tot gebruik van OO een goede eigenschap is voor een taal. Eerder een negatieve.
Ja, want een mix tussen OO en niet OO in een applicatie leidt tot leesbare en onderhoudbare code.quote:Op donderdag 7 juli 2011 21:48 schreef ralfie het volgende:
OO is een hulpmiddel, geen doel. Zie niet in dat dwang tot gebruik van OO een goede eigenschap is voor een taal. Eerder een negatieve.
Dat WTF-gevoel had ik ook toen ik Python voor het eerst zag, maar na er 2 dagen mee gewerkt te hebben begon ik het stiekem wel briljant te vinden.quote:Op donderdag 7 juli 2011 17:15 schreef Catbert het volgende:
[..]
Python zal best een fijne taal zijn, maar ik vind bepaalde dingen gewoon ergerlijke keuzes, zoals whitespaces en underscores die een betekenis hebben. Niet dat dat het een slechte taal maakt, maar ik vind dat persoonlijk (en dat zal vast met m'n C++/Java/.Net achtergrond te maken hebben) eigenlijk een enorme WTF.
De meeste talen hebben wel een WTF-component. Neem nou COBOL waarin je records kan maken met meerdere definities. En niemand die je tegenhoudt om definitie 1 te gebruiken om het record te vullen en vervolgens definitie 2 om het uit te lezen.quote:Op donderdag 7 juli 2011 22:54 schreef thabit het volgende:
[..]
Dat WTF-gevoel had ik ook toen ik Python voor het eerst zag, maar na er 2 dagen mee gewerkt te hebben begon ik het stiekem wel briljant te vinden.
Ik met Objective-Cquote:Op donderdag 7 juli 2011 22:54 schreef thabit het volgende:
[..]
Dat WTF-gevoel had ik ook toen ik Python voor het eerst zag, maar na er 2 dagen mee gewerkt te hebben begon ik het stiekem wel briljant te vinden.
| 1 | [object doSomethingWith:@"this" andWith:@"that"] |
| 1 | 1.times { print "hoi" } |
Zolang je maar consequent werkt en het niet door elkaar gebruikt. Daar hebben veel PHP-developers een handje van, omdat de taal het toelaat en ze lui zijn. Niks mis met een taal die gewoon een bepaalde denkwijze opdringt.quote:Op donderdag 7 juli 2011 21:48 schreef ralfie het volgende:
[..]
OO is een hulpmiddel, geen doel. Zie niet in dat dwang tot gebruik van OO een goede eigenschap is voor een taal. Eerder een negatieve.
Ik weet niet waar je dat aan het doen bent maar bij de Fontys in Eindhoven valt het assembly en cisco gehalte erg mee (non existent).quote:Op maandag 4 juli 2011 22:36 schreef FoolWithMokey het volgende:
Ben op dit moment Technische informatica aan het studeren, maar twijfel erg of ik moet overstappen naar informatica. Wat ik niet leuk vind aan Technische informatica:
PLC programmeren![]()
Netwerken(Cisco)
Waar ik nog niet uit ben of ik het leuk vind of niet:
Technische informatica gaat ook meer over hardware en is erg low level, je krijg ook een hoop assembly, Het zit een beetje tussen Electrotechniek en Informatica.
Informatica vind ik leuker omdat het veel meer programmeren is. Ik zit thuis zelf vaak gewoon te programmeren in java of c# of c omdat ik het gewoon leuk vind. Plc en Cisco opdrachten maak ik alleen maar omdat het moet, en vind eigenlijk niet leuk.
Wat mij ervan weerhoudt om te switchen naar informatica: Ben bang dat ik teveel achterstand heb qua programmeren vergeleken met informatica studenten die vanaf begin informatica doen.
Tips?
Beetje kort door de bocht wat ik nu zeg, maar Java is C++ zonder de geheugenellende.quote:Op vrijdag 8 juli 2011 11:02 schreef darpios het volgende:
.
PHP voor allround webapplicaties, C en C++ voor cross-platform desktopapplicaties, Python, Perl en Bash voor grof aankutwerk. Ik heb niks met dat hele .NET/C# en Java, veel te omslachtig voor mij.
Deels eens, alleen ik heb liever controle over wat ik met mijn geheugen doe. C++ maakt het wel een stuk makkelijk met new/delete (helemaal bij arrays) dan C met malloc/realloc/free.quote:Op vrijdag 8 juli 2011 11:05 schreef Pietverdriet het volgende:
[..]
Beetje kort door de bocht wat ik nu zeg, maar Java is C++ zonder de geheugenellende.
Waarom wil je welke controle over je geheugengebruik dan? Ik ken wel hele specifieke toepassingen waar het nuttig kan zijn, maar ik zie in de meeste gevallen echt het voordeel niet van zelf je geheugen beheren en het levert vaak gewoon enorm irritante bugs op. Memoryleaks zijn na threading issues (race conditions, deadlocks e.d.) wel de meest lastige bugs IMHO.quote:Op vrijdag 8 juli 2011 11:08 schreef darpios het volgende:
Deels eens, alleen ik heb liever controle over wat ik met mijn geheugen doe. C++ maakt het wel een stuk makkelijk met new/delete (helemaal bij arrays) dan C met malloc/realloc/free.
Dat inderdaad. Ik denk ook dat je op z'n best even goede performance krijgt als een garbage collector als je zelf aan de gang gaat met geheugenbeheer, of je moet erg goed zijn.quote:Op vrijdag 8 juli 2011 11:11 schreef Catbert het volgende:
[..]
Waarom wil je welke controle over je geheugengebruik dan? Ik ken wel hele specifieke toepassingen waar het nuttig kan zijn, maar ik zie in de meeste gevallen echt het voordeel niet van zelf je geheugen beheren en het levert vaak gewoon enorm irritante bugs op. Memoryleaks zijn na threading issues (race conditions, deadlocks e.d.) wel de meest lastige bugs IMHO.
PHP voor allround webapplicaties, en Python voor grof aankutwerk?quote:Op vrijdag 8 juli 2011 11:02 schreef darpios het volgende:
Native assembly is een beetje overkill voor desktopmachines. Inline assembly in C wil ik nog wel geloven voor extra performance. Of je moet shit gaan schrijven voor handheld ARM- en Z80-cores machines waar goede performance nog uitmaakt. Sowieso zit je dan met een compleet andere instructieset dan op Intel processoren.
PHP voor allround webapplicaties, C en C++ voor cross-platform desktopapplicaties, Python, Perl en Bash voor grof aankutwerk. Ik heb niks met dat hele .NET/C# en Java, veel te omslachtig voor mij.
Ja.quote:Op vrijdag 8 juli 2011 11:17 schreef Henno het volgende:
[..]
PHP voor allround webapplicaties, en Python voor grof aankutwerk?
Ooit gehoord van Django?
Ik ben geen programmeur van huis uit, maar heb wel een tijdje complex programmeerwerk gedaan. In mijn ervaring wist ik altijd al instinctief waar de pijnpunten lagen. Je zit de ganse dag op de automatische piloot te werken, waar zo ongeveer het enige van belang is dat je gestructureerd aan de slag gaat. Iedereen is dolblij als hij echt tegen een complex stukje aanloopt en dat wordt gelijk druk bij de koffie bediscussieerd.quote:Op donderdag 7 juli 2011 17:15 schreef Catbert het volgende:
Ik denk juist dat kennis hebben van de werking van een CPU maar ook de werking van bepaalde algorithmen (hoe doorzoek ik een boom, hoe sorteer ik een array) belangrijk is omdat je dan als het ware instinctief weet wat dure en goedkope operaties zijn. Niet dat je dat automatisch een goeie programmeur maakt, maar omgekeerd denk ik dat goeie programmeurs dat ook zelf interessant vinden en dat soort dingen graag willen weten.
In Java/C# kan je net zo snel en makkelijk memory leaks krijgen...ondanks de garbage collectionquote:Op vrijdag 8 juli 2011 11:11 schreef Catbert het volgende:
[..]
Waarom wil je welke controle over je geheugengebruik dan? Ik ken wel hele specifieke toepassingen waar het nuttig kan zijn, maar ik zie in de meeste gevallen echt het voordeel niet van zelf je geheugen beheren en het levert vaak gewoon enorm irritante bugs op. Memoryleaks zijn na threading issues (race conditions, deadlocks e.d.) wel de meest lastige bugs IMHO.
Python voor grof aankutwerk? Ik verbaas me er ook over dat sommige Python echt als waardeloos zien. Het is in begin een beetje een vreemde taal, maar Python is echt wel geschikt voor gestructureerde programma's.quote:Op vrijdag 8 juli 2011 11:02 schreef darpios het volgende:
PHP voor allround webapplicaties, C en C++ voor cross-platform desktopapplicaties, Python, Perl en Bash voor grof aankutwerk. Ik heb niks met dat hele .NET/C# en Java, veel te omslachtig voor mij.
Programmeren is best lastig hoor. Als je de juiste denkwijze en het gewenste abstractie-niveau niet hebt, krijg je een lastige taak als programmeur. De taal is niet het moeilijkste, het gaat om het aanpassen en trainen van je hersenen. Zodra je het juiste gevoel te pakken hebt gaat alles een stuk makkelijk inderdaad.quote:Op vrijdag 8 juli 2011 11:34 schreef kingmob het volgende:
[..]
Ik ben geen programmeur van huis uit, maar heb wel een tijdje complex programmeerwerk gedaan. In mijn ervaring wist ik altijd al instinctief waar de pijnpunten lagen. Je zit de ganse dag op de automatische piloot te werken, waar zo ongeveer het enige van belang is dat je gestructureerd aan de slag gaat. Iedereen is dolblij als hij echt tegen een complex stukje aanloopt en dat wordt gelijk druk bij de koffie bediscussieerd.
Ik gooi er mijn eigen ramen wellicht mee in voor de toekomst (programmeren is mijn fall-back cariere), maar ik denk niet dat programmeren nou werkelijk zo lastig is. Zodra je de - over het algemeen warrig geschreven - documentatie doorhebt ben je er.
Ik droom nog steeds van een taal en IDE waar je min of meer alleen klikkerdeklak op high level doet en enkel echt bijzondere zaken zelf moet implementeren. Min of meer een extrapolatie van de huidige evolutie van talen, als je bijvoorbeeld C, C++ en C# bekijkt.
Het kan, als je echt goed bent en ervaring hebt, best goed verdienenquote:
Een taal kunnen gebruiken voor grof aankutwerk != waardeloze taal.quote:Op vrijdag 8 juli 2011 12:39 schreef QBay het volgende:
[..]
Python voor grof aankutwerk? Ik verbaas me er ook over dat sommige Python echt als waardeloos zien. Het is in begin een beetje een vreemde taal, maar Python is echt wel geschikt voor gestructureerde programma's.
Grappig maar je weet ook wel dat je daar in Java redelijk je best voor moet doenquote:Op vrijdag 8 juli 2011 12:39 schreef QBay het volgende:
In Java/C# kan je net zo snel en makkelijk memory leaks krijgen...ondanks de garbage collection![]()
De syntax die totaal niet logisch bij C past (ik noem een + en een - om te bepalen of een method statisch of niet is), de onnodige verbositeit soms, [[object alloc] init]. Verder is wat mij betreft weinig op te merken aan de taal - al weet ik niet wat ik van de dynamic typing moet denken dat het kennelijk ondersteunt. Misschien had ik het ook ietwat verkeerd verwoord - ik vind de taal an sich niet verschrikkelijk, maar voornamelijk de syntax en gedeeltelijk de filosofie.quote:Op dinsdag 5 juli 2011 17:42 schreef retorbrapi het volgende:
[..]
Ik vraag me af wat je 'verschrikkelijk' vindt aan Objective-C?
Het is beter dan kippen aan haken hangen of kentekenplaten stansen.quote:Op vrijdag 8 juli 2011 12:39 schreef QBay het volgende:
Het kan, als je echt goed bent en ervaring hebt, best goed verdienen.
Python in combinatie met C werkt op zich wel lekker. Python voor het hogere programmeerwerk, C voor optimalisatie waar dat nodig is. Het enige wat daarbij nog mist is een goede ondersteuning voor parallellisatie.quote:Op vrijdag 8 juli 2011 12:39 schreef QBay het volgende:
[..]
Python voor grof aankutwerk? Ik verbaas me er ook over dat sommige Python echt als waardeloos zien. Het is in begin een beetje een vreemde taal, maar Python is echt wel geschikt voor gestructureerde programma's.
Dat was ook ongeveer mijn gedachte destijdsquote:Op vrijdag 8 juli 2011 13:28 schreef Pietverdriet het volgende:
[..]
Het is beter dan kippen aan haken hangen of kentekenplaten stansen.
Een bekend probleem in de programmeerwereld. De meeste programmeurs kennen maar 1 taal en zijn alleen maar op die ene taal gefocust.quote:Op vrijdag 8 juli 2011 13:46 schreef Pietverdriet het volgende:
Wat me wel opvalt is dat de meeste programmeurs hier niet verder dan hun eigen bordje kijken.
Dat bedoel ik niet echt, ik bedoel dat ze niet verder kijken dan hun eigen programmeren, niet hoe dat in architectuur of design past, in teamwerk, ontwikkel, debugging en licentiekosten, etc etc.quote:Op vrijdag 8 juli 2011 13:56 schreef thabit het volgende:
[..]
Een bekend probleem in de programmeerwereld. De meeste programmeurs kennen maar 1 taal en zijn alleen maar op die ene taal gefocust.
Correctquote:Op vrijdag 8 juli 2011 14:06 schreef thabit het volgende:
Het een hangt natuurlijk wel met het ander samen.
Ik denk dat dat ook afhankelijk is van de manager die boven de programmeur staat. Als die toestaat dat een programmeur vooral zijn eigen ding doet en totaal geen rekening houdt met zijn collega's heb je een slechte manager.quote:Op vrijdag 8 juli 2011 14:00 schreef Pietverdriet het volgende:
[..]
Dat bedoel ik niet echt, ik bedoel dat ze niet verder kijken dan hun eigen programmeren, niet hoe dat in architectuur of design past, in teamwerk, ontwikkel, debugging en licentiekosten, etc etc.
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |