Het is wel een goed voorbeeld dat een beetje de denkprocessen van de PHP 'designers' in beeld brengt.Barryvdh schreef op donderdag 06 maart 2014 @ 11:28:
Dan is dat nu toch niet meer relevant?
https://niels.nu
Het is wel een goed voorbeeld dat een beetje de denkprocessen van de PHP 'designers' in beeld brengt.Barryvdh schreef op donderdag 06 maart 2014 @ 11:28:
Dan is dat nu toch niet meer relevant?
https://niels.nu
1
2
3
| $a = array("fiets", "a23", "a123", "23", "123"); sort($a); echo implode("\n", $a); |
1
2
3
4
5
| 23 123 a123 a23 fiets |
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
.oisyn schreef op donderdag 06 maart 2014 @ 11:34:
Ontopic. Dit is toch compleet absurd?
PHP:
1 2 3 $a = array("fiets", "a23", "a123", "23", "123"); sort($a); echo implode("\n", $a);
code:
1 2 3 4 5 23 123 a123 a23 fiets
1
2
3
| $a = array("fiets", "a23", "a123", "23", "123"); sort($a, SORT_STRING); echo implode("\n", $a); |
[ Voor 16% gewijzigd door Rob op 06-03-2014 11:50 ]
In the beginning the Internet was a bunch of smart users with dumb terminals. Now...
Je hebt aannames maken en aannames maken, aan de ene kant vind ik dat programmeurs never, ever een aanname mogen maken dat gebruikersinput is wat je verwacht dat het is.. maar afgezien daarvan zijn er logische grenzen..Rutix schreef op donderdag 06 maart 2014 @ 08:06:
[...]
Precies. Hiervoor zei iemand dat programmeurs geen aannames mogen maken (wat natuurlijk onmogelijk is want je kunt niet alles weten) maar ik vind dat talen dat sowieso niet mogen doen en precies om de reden die .oisyn aangeeft.
Lekker op de bank
django-cms komt tegenwoordig best een eind.. ze hebben nog wel wat te gaan, maar het is redelijk vriendelijk al.TheNephilim schreef op donderdag 06 maart 2014 @ 11:53:
Zijn er nog vrijwilligers die een Python/Ruby variant van Wordpress willen maken?![]()
Nee niet een willekeurige CMS in één van de genoemde talen, maar gewoon een kopie met dezelfde gebruiksvriendelijkheid voor de klant, maar dan met fatsoenlijke architectuur en code. Oh en het moet ook makkelijk uit te breiden en aan te passen zijn...
Maar, ik heb nog veel te leren. Ik vind het alleen zo lastig om iets te maken waarvoor ik ook meteen een toepassing heb. Anders komt het er toch niet van. Daarnaast zijn er nog zoveel andere dingen die ik wil/moet doen.
/me Mist .oisyn's Quick-Quote functie...
Daar heb ik dus zelf niet zoveel last van. Enerzijds omdat veel dingen gewoon helemaal niet zo ambigu zijn (waar het in javascript nogal vervelend uitpakt met ints en strings en de +-operator geeft dat in php geen onjuiste resultaten), en anderzijds omdat validatie van input of params over het algemeen om hele andere dingen gaat dan type alleen. En als je daar steeds rekening mee houdt verdwijnen de meeste type ambiguiteiten als sneeuw voor de zon.ZaZ schreef op donderdag 06 maart 2014 @ 11:59:
Mijn grootste bezwaar is dat het gewoon alles vreet. Als je dus een foutje hebt gemaakt, hobbelt je code gewoon vrolijk verder in kreupele staat en zonder dat jij doorhebt dat er een fout zit.
Wanneer zo'n fout zich dan (vaak veel te laat) openbaart, ben je je rot aan het zoeken naar het probleem
Never explain with stupidity where malice is a better explanation
Dat is het mooie: er is overal een oplossing voorZaZ schreef op donderdag 06 maart 2014 @ 11:59:
Ik zie vaak dat al dat soort eigenaardigheden in PHP dan soort van tafel geveegd worden met een voorbeeld hoe het is op te lossen.
In the beginning the Internet was a bunch of smart users with dumb terminals. Now...
Omdat dat expliciet numerieke operatoren zijn in PHP en string concatenatie plaats vindt met de speciaal daarvoor gereserveerde . operator, ja. Ga daarentegen maar eens met de comparison operators spelen en kijk dan eens welk type coercion systeem meer logisch in elkaar steekt; PHP of JS. Ik weet het antwoord al...incaz schreef op donderdag 06 maart 2014 @ 12:04:
(waar het in javascript nogal vervelend uitpakt met ints en strings en de +-operator geeft dat in php geen onjuiste resultaten)
Hoe is dat mooi? Ik zeg niet dat andere talen geen eigenaardigheden hebben, maar zoveel eigenaardigheden en dan workarounds aanbieden vind ik niet 'mooi'.Rob schreef op donderdag 06 maart 2014 @ 12:30:
[...]
Dat is het mooie: er is overal een oplossing voor
In het verleden zijn er rare dingen bedacht die ze in PHP gestopt hebben. Deze rare dingen hebben ze opgelost, maar wel op aan manier waarop het nog backwards compatible is.
Lekker op de bank
Dus je moet voor elke functie onthouden welke rare bijeffecten je krijgt? Nee dank je.Rob schreef op donderdag 06 maart 2014 @ 11:49:
ik begrijp je punt overigens heel goed. Punt is wel dat een iedereen die een programmeertaal zich goed moet verdiepen in de functies die er zijn
https://niels.nu
Ik ben nu overigens wel heel erg benieuwd wat ze in hemelsnaam onder een "regular" sort verstaan (dat is die tweede param namelijk standaard: SORT_REGULAR). Ik weet niet hoe ze die vergelijkingen intern doen, maar als dat volgens dezelfde regels gaat als in PHP dan ben je tijdens je sort dus steeds op een andere manier aan het vergelijkenRob schreef op donderdag 06 maart 2014 @ 11:49:
[...]
PHP:
1 2 3 $a = array("fiets", "a23", "a123", "23", "123"); sort($a, SORT_STRING); echo implode("\n", $a);
ik begrijp je punt overigens heel goed. Punt is wel dat een iedereen die een programmeertaal zich goed moet verdiepen in de functies die er zijn
Jij wilt dus zeggen dat je niet documentatie van de hele jar-jungle uit je hoofd kent?Hydra schreef op donderdag 06 maart 2014 @ 13:28:
[...]
Dus je moet voor elke functie onthouden welke rare bijeffecten je krijgt? Nee dank je.
Lekker op de bank
Dat dus. Het gedrag is hetzelfde als gewoon de standaard < operator.Patriot schreef op donderdag 06 maart 2014 @ 13:29:
[...]
Ik ben nu overigens wel heel erg benieuwd wat ze in hemelsnaam onder een "regular" sort verstaan (dat is die tweede param namelijk standaard: SORT_REGULAR). Ik weet niet hoe ze die vergelijkingen intern doen, maar als dat volgens dezelfde regels gaat als in PHP dan ben je tijdens je sort dus steeds op een andere manier aan het vergelijken
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
KloptNMe schreef op donderdag 06 maart 2014 @ 15:08:
PHP heeft helemaal geen overloading
Klopt niet.en pretendeert dat voor zover ik weet ook niet?
PHP's interpretation of "overloading" is different than most object oriented languages. Overloading traditionally provides the ability to have multiple methods with the same name but different quantities and types of arguments.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
NMe schreef op donderdag 06 maart 2014 @ 15:45:
Kittens just died.
1
2
3
4
5
6
7
8
9
10
11
12
13
| class MyKittenClass() { public function createNewKittens($kittens, $kittensDie = true) { if($kittensDie) { foreach($kittens as $kitten) { kill($kitten); } } } } |
[ Voor 12% gewijzigd door Merethil op 06-03-2014 16:03 ]
This is a misuse of the term overloading. This article should call this technique "interpreter hooks".
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
... Eh wat. Dat slaat nergens op. Moet je nagaan, had het stuk niet eens goed gelezenNMe schreef op donderdag 06 maart 2014 @ 16:07:
Ja, dat is wat ik dacht dat bedoeld werd. Maar blijkbaar ging het over magic methods in classes om je properties te kunnen getten en setten, en dat noemen ze dan overloaden. De bovenste commenter slaat de spijker op zijn kop:
[...]
1
2
3
4
5
6
7
| public void createNewKittens(Collection<Kitten> kittens) { createNewKittens(kittens,true); } public void createNewKittens(Collection<Kitten> kittens, boolean kittensDie) { /* implementation */ } |
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Kittens just died again...Janoz schreef op donderdag 06 maart 2014 @ 16:41:
Een typisch php-er antwoord zou daarop zijn:
Nee hoor, dat is er wel. Kijk, zo kun je dat doen:
Java:
1 2 3 4 5 6 7 public void createNewKittens(Collection<Kitten> kittens) { createNewKittens(kittens,true); } public void createNewKittens(Collection<Kitten> kittens, boolean kittensDie) { /* implementation */ }
NMe schreef op donderdag 06 maart 2014 @ 16:07:
Ja, dat is wat ik dacht dat bedoeld werd. Maar blijkbaar ging het over magic methods in classes om je properties te kunnen getten en setten, en dat noemen ze dan overloaden. De bovenste commenter slaat de spijker op zijn kop:
[...]
Interpreter hooks? Smalltalk noemde het doesNotUnderstand...This is a misuse of the term overloading. This article should call this technique "interpreter hooks".
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Never explain with stupidity where malice is a better explanation
Maar is dit niet nog duidelijker?incaz schreef op zaterdag 15 maart 2014 @ 20:53:
En dan scoort het alweer 1 abomination minder dan python ( "str".join(list))
1
| s = str.join(sep, iterable) |
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Klopt, maar het is een beetje een pipe dream. Programmeurs over de hele wereld roepen al jaren dat ze dat soort bewerkingen op die manier willen kunnen doen, net zoals er al jaren geroepen wordt om een consistentere ervaring in PHP en het mogelijk maken van type hinting op primitieve types. Ik zie niet helemaal hoe dat blog (en het blog dat de aanleiding daarvan was) bij kunnen dragen aan het daadwerkelijk overhalen van de developers om het eindelijk toe te voegen?Barryvdh schreef op zaterdag 15 maart 2014 @ 23:42:
Het lost iig het probleem van de inconsistente API open het leest ook wel wat makkelijker lijkt me.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
[ Voor 57% gewijzigd door Zoijar op 16-03-2014 13:44 ]
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Nouja, nikic is wel een van de ontwikkelaars die ook echt functionaliteit toevoegt aan php, hij heeft al meerdere rfc's voorgesteld, laten accepteren en ook ontwikkeld. Zoals hij al zegt heeft hij ook al een php extensions geschreven met een deel van de functionaliteit en heeft hij discussies gehad met andere ontwikkelaars. Ircmaxell is iig ook iemand die werkt aan php/rfc's, dus het is niet zomaar een blog van een random ontwikkelaar met een idee, maar daadwerkelijk iemand die weet waar hij over praat.NMe schreef op zondag 16 maart 2014 @ 12:42:
[...]
Klopt, maar het is een beetje een pipe dream. Programmeurs over de hele wereld roepen al jaren dat ze dat soort bewerkingen op die manier willen kunnen doen, net zoals er al jaren geroepen wordt om een consistentere ervaring in PHP en het mogelijk maken van type hinting op primitieve types. Ik zie niet helemaal hoe dat blog (en het blog dat de aanleiding daarvan was) bij kunnen dragen aan het daadwerkelijk overhalen van de developers om het eindelijk toe te voegen?
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Ik zou het eerder zo stellen; wat er aan PHP op het moment uitgebouwd wordt, komt neer op wolkenkrabbers bouwen op drijfzand. De fundering is en blijft ruk en dat zal door blijven schijnen. Zo niet in quirky architectuurkeuzes en verwrongen APIs dan wel in performance degradatie door alle lagen extra dekverf die er nodig zijn om de drek weg te poetsen.NMe schreef op zondag 16 maart 2014 @ 14:10:
PHP heden ten dage nog afdoen als "het blijft een template engine" is niet eerlijk. Er zijn nog héél veel dingen stuk maar die opmerking doet eigenlijk alle stappen die de ontwikkelaars van de taal hebben gezet om de taal op te laten groeien af als onbelangrijk, en zo ver zou ik niet willen gaan.
NMe schreef op donderdag 06 maart 2014 @ 15:45:
Kittens just died.
Het is PHP; alle kittens zijn a lang en breed verzopen in het drijfzand.Merethil schreef op donderdag 06 maart 2014 @ 16:59:
Kittens just died again...
De mate waarin het door blijft schijnen is natuurlijk sterk afhankelijk van wat je zelf met je code doet. Wanneer je een goed framework gebruikt met ORM, namespaces, een arsenaal aan fatsoenlijke wrappers voor standaardfunctionaliteit, enz. kom je al een heel eind. De enige "problemen" die je dan regelmatig tegen zou kunnen komen hebben te maken met dynamic/weak typing, het niet kunnen type hinten van primitieve types en een paar andere dingen waar best mee te werken zijn. Ik kan me de laatste keer dat ik door een ==/===-probleem in de problemen kwam niet eens meer herinneren en het typehintingprobleem vang je grotendeels af met PHPDoc en een goeie IDE. De meeste dingen die geopperd worden als probleem in PHP zijn weliswaar in de basis echt onhandig maar hebben doorgaans ook oplossingen die het probleem trivialiseren zonder dat je erover hoeft na te denken.R4gnax schreef op dinsdag 18 maart 2014 @ 21:56:
[...]
Ik zou het eerder zo stellen; wat er aan PHP op het moment uitgebouwd wordt, komt neer op wolkenkrabbers bouwen op drijfzand. De fundering is en blijft ruk en dat zal door blijven schijnen. Zo niet in quirky architectuurkeuzes en verwrongen APIs dan wel in performance degradatie door alle lagen extra dekverf die er nodig zijn om de drek weg te poetsen.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Het nadeel is alleen dat het wolkenbouwers blijven.NMe schreef op dinsdag 18 maart 2014 @ 22:09:
[...]
De mate waarin het door blijft schijnen is natuurlijk sterk afhankelijk van wat je zelf met je code doet. Wanneer je een goed framework gebruikt met ORM, namespaces, een arsenaal aan fatsoenlijke wrappers voor standaardfunctionaliteit, enz. kom je al een heel eind.
Je verhaal is leuk, maar dat er speciale Wordpress en Magento hosting is geeft puur en alleen aan dat die waardeloos zijn mbt architectuur, niets anders.Gomez12 schreef op woensdag 19 maart 2014 @ 00:43:
[...]
Het nadeel is alleen dat het wolkenbouwers blijven.
Een goed PHP-framework is over het algemeen niet cheap (qua performance) en dat vind ik toch zonde. De php-broncode is best snel, maar frameworks die in php gebouwd zijn om pijnpunten binnen php op te lossen zijn echt vele malen trager waardoor je er weer een apc / nginx etc voor moet zetten en het idee van lean and mean en snel iets opzetten verdwijnt en het meer richting een enterprise programmeertaal gaat, alleen dan zonder de specifieke optimalisaties en met de php-ondergrond (en op sommige plekken nog de bovengrond)
Zie bijv dat je php-hosting hebt, maar daarnaast ook wordpress / magento pakketten omdat die veelal niet goed presteren onder standaard php-hosting (waarmee ik niet wil zeggen dat wordpress / magento juweeltjes zijn qua programmeren of de meest briljante frameworks gebruiken maar het geeft wmb toch iets aan)
PHP is te gebruiken voor grotere toepassingen, maar dan ben je veelal de voordelen boven een willekeurige "grotere" taal kwijt (lean and mean, snel inzetbaar, snel resultaat) en houdt je toch de kleine irritaties van php. Plus dat je beheer opeens uit vele ongerelateerde pakketten gaat bestaan.
Voor een echte enterprise toepassing is bovenstaande niet zo relevant (daar heb je die geintjes ongeacht welke taal je kiest) maar voor de kleine / iets grotere toepassingen heeft het wmb weinig voordeel terwijl ik wel de nadelen blijf behouden.
Lambda calculus?hillbillie schreef op woensdag 19 maart 2014 @ 10:23:
Tuurlijk, php heeft soms zijn eigenaardigheden, maar noem mij eens een taal waar je dit niet in hebt... juist
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Dat hangt van het framework af. Zoals ik eerder al riep in dit topic gebruiken we vanwege enkele specifieke eisen op kantoor een in-house ontwikkeld framework en de performance daarvan is amper (verwaarloosbaar) lager dan die van native code.Gomez12 schreef op woensdag 19 maart 2014 @ 00:43:
[...]
Het nadeel is alleen dat het wolkenbouwers blijven.
Een goed PHP-framework is over het algemeen niet cheap (qua performance) en dat vind ik toch zonde.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Hoe is dat eigenlijk getest? (vergeef me mijn onkunde, ik heb nu eenmaal weinig met softwareontwikkeling te maken)NMe schreef op woensdag 19 maart 2014 @ 11:52:
[...]
Dat hangt van het framework af. Zoals ik eerder al riep in dit topic gebruiken we vanwege enkele specifieke eisen op kantoor een in-house ontwikkeld framework en de performance daarvan is amper (verwaarloosbaar) lager dan die van native code.
...
Mezzanine is een zeer goed Django gebaseerd CMS, wat volgens mij behoorlijk dicht in de buurt komt van Wordpress.TheNephilim schreef op donderdag 06 maart 2014 @ 11:53:
Zijn er nog vrijwilligers die een Python/Ruby variant van Wordpress willen maken?![]()
Nee niet een willekeurige CMS in één van de genoemde talen, maar gewoon een kopie met dezelfde gebruiksvriendelijkheid voor de klant, maar dan met fatsoenlijke architectuur en code. Oh en het moet ook makkelijk uit te breiden en aan te passen zijn...
Maar, ik heb nog veel te leren. Ik vind het alleen zo lastig om iets te maken waarvoor ik ook meteen een toepassing heb. Anders komt het er toch niet van. Daarnaast zijn er nog zoveel andere dingen die ik wil/moet doen.
/me Mist .oisyn's Quick-Quote functie...
[ Voor 5% gewijzigd door Sh4wn op 19-03-2014 12:31 ]
Ik weet er het fijne ook niet van omdat ik die tests niet zelf uitgevoerd heb maar degene die het getest heeft zal sowieso naar de parsetijd gekeken hebben en naar de CPU- en memory-footprint.begintmeta schreef op woensdag 19 maart 2014 @ 12:06:
[...]
Hoe is dat eigenlijk getest? (vergeef me mijn onkunde, ik heb nu eenmaal weinig met softwareontwikkeling te maken)
[ Voor 38% gewijzigd door NMe op 19-03-2014 12:27 ]
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Nouja, het is natuurlijk wel lastig vergelijken met 'native php', want een framework doet ook veel meer. Het is alleen altijd de afweging dat een framework niet veel meer gaat doen dan dat je nodig hebt. En een framework maakt het meestal ook weer makkelijk om bijvoorbeeld caching te gebruiken, zodat het juist weer sneller wordt.NMe schreef op woensdag 19 maart 2014 @ 12:27:
[...]
Ik weet er het fijne ook niet van omdat ik die tests niet zelf uitgevoerd heb maar degene die het getest heeft zal sowieso naar de parsetijd gekeken hebben en naar de CPU- en memory-footprint.
[ Voor 11% gewijzigd door SvMp op 19-03-2014 18:01 ]
Zoals de Symfony HttpFoundation dus? http://symfony.com/doc/cu...ndation/introduction.htmlSvMp schreef op woensdag 19 maart 2014 @ 18:00:
PHP heeft een aantal hele 'lelijke' eigenschappen.
Een van de meest vreselijke dingen is het keyword global.
Daarnaast het niet OOP-karakter. Ik heb veel liever dat iedere request een class is en alle onderdelen via ingebouwde classes afgehandeld worden. Zo zou elke request een object kunnen zijn van een class die zaken als cookies, sessies en request data bij houdt. Beter dan die rare globale arrays.
PHP6 zou eigenlijk moeten breken met wat het nu is en zoals Java helemaal gericht moeten zijn op classes.
In PHP, the request is represented by some global variables ($_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, ...) and the response is generated by some functions (echo, header, setcookie, ...).
The Symfony2 HttpFoundation component replaces these default PHP global variables and functions by an object-oriented layer.
[ Voor 23% gewijzigd door Barryvdh op 19-03-2014 18:59 ]
Niemand dwingt je dat te gebruiken. De meeste moderne talen hebben ook een goto en toch zal vrijwel iedere programmeur wel 100 keer nadenken of er geen betere oplossing is voor 'ie die gebruikt.SvMp schreef op woensdag 19 maart 2014 @ 18:00:
PHP heeft een aantal hele 'lelijke' eigenschappen.
Een van de meest vreselijke dingen is het keyword global.
Zonder daadwerkelijk een framework te hebben zou je vervolgens zonder globals geen enkele manier hebben om die cookies, sessies en requestgegevens aan te spreken. In een framework heb je waarschijnlijk iets als Kernel::getApplication()->getRequest()->getPostParameter('foo') of een makkelijke shorthand daarvoor, maar de library van PHP biedt daar geen ruimte voor. Je hebt hier dan ook geen kritiek mee op de taal maar op het standaardframework, en dat framework is niet begonnen als framework maar als library. Zend heeft vrij vroeg het Zend Framework opgezet als "fatsoenlijk" alternatief daarvoor. Tegenwoordig is Symfony een van de betere PHP-frameworks waarmee je je code vrijwel geheel zo op kan zetten als je omschrijft.Daarnaast het niet OOP-karakter. Ik heb veel liever dat iedere request een class is en alle onderdelen via ingebouwde classes afgehandeld worden. Zo zou elke request een object kunnen zijn van een class die zaken als cookies, sessies en request data bij houdt. Beter dan die rare globale arrays.
Met het eerste deel van die zin ben ik het eens, maar met het tweede deel niet. Een taal hoeft echt niet volledig OOP te zijn om er volledig OOP mee te kunnen werken.PHP6 zou eigenlijk moeten breken met wat het nu is en zoals Java helemaal gericht moeten zijn op classes.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
[ Voor 211% gewijzigd door simplicidad op 19-03-2014 22:37 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Waarom in hemelsnaam de Pascal-syntax voor returntypes?
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
[ Voor 55% gewijzigd door .oisyn op 20-03-2014 19:11 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Is gewoon gewenning, Actionscript 3 en typescript hebben het ook op die manier.
Zoals ik het lees heeft het soort volk niets met PHP te maken, maar meer met het bedrijf waar je werkt.simplicidad schreef op woensdag 19 maart 2014 @ 21:48:
Waar ik mij soms nog het meest aan stoor - alhoewel de inconsistenties hoog genoteerd staan - is het soort van volk die het aantrekt.
Ik werk als Drupal* ontwikkelaar en eerlijk gezegd ik kom dagdagelijks dingen tegen waar ik toch even van in mijn haar krab. PHP ontwikkelaars die zelf geen basis kennis van OOP hebben, met moeite weten wat een singleton is of die code schrijven alsof het nog altijd het jaar 1997 is.
Laatst werd ik nog teruggefloten omdat ik unit tests schreef en dat niet wenselijk was omdat we geen "echte" software ontwikkelden. Een ander argument was ook dat qua offertes we tegenover bedrijven staan die het op dat vlak ook niet nauw namen en dat financieel (tijdverlies) te kostelijk is. Dat zegt eigenlijk al veel over de standaard die men soms hanteert.
Ik betwijfel toch ten zeerste of PHP een relevant deel van het it-budget inpikt op enterprise nivo.In die zin ik las hier ergens de opmerking dat je PHP niet snel terugvind in de enterprise sector of bij grote bedrijven, maar daar zou je toch schromelijk in kunnen vergissen.
NMe schreef op donderdag 06 maart 2014 @ 15:45:
Kittens just died.
Saved by the buoyancy of citrus
Python diskwalificeert zichzelf wat mij betreft door betekenis te geven aan whitespace; formatting heeft niks met de werking van je code te maken. En Ruby draait op bijna geen enkele host, dus daar gaan je goedkope hostingkeuzes.Kajel schreef op zaterdag 22 maart 2014 @ 11:41:
De traditioneel "sterke" kant van PHP, webdevelopment, kan tegenwoordig heel goed - nee, beter zelfs - met een hoop andere talen, zoals Java, Scala, Python, Ruby etc. En als we het hebben over laagdrempeligheid, dan zijn Ruby on Rails en bijvoorbeeld Python met Flask, prima instap-mogelijkheden.
Een aardig statement. Wie ben jij om dat te bepalen? Misschien is brede ondersteuning bij hosters wereldwijd wel een vereiste van het product dat je neer wil zetten.Er is geen enkele job waarbij PHP een betere keuze is dan andere talen.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Die brede ondersteuning wereldwijd is niet zo zeer een eigenschap van PHP, maar eerder een eigenschap van het feit dat er lang niets anders geweest is wat voor een lage kostprijs op een serve te draaien viel. Het is een verschijnsel wat puur voortgekomen is uit het feit dat PHP op de low-end hosting markt een monopolie positie had en die situatie begint zich nu er alternatieven zijn, pas te veranderen.NMe schreef op zaterdag 22 maart 2014 @ 13:54:
Misschien is brede ondersteuning bij hosters wereldwijd wel een vereiste van het product dat je neer wil zetten.
Maar waarom zou een programmeertaal geen betekenis aan whitespace geven als mensen dat wel doen?NMe schreef op zaterdag 22 maart 2014 @ 13:54:
[...]
Python diskwalificeert zichzelf wat mij betreft door betekenis te geven aan whitespace; formatting heeft niks met de werking van je code te maken.
1
2
3
| if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail; goto fail; |
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Enige reden dat PHP marktaandeel groeit is dat een heleboel gratis CMS systemen zoals Wordpress in PHP geschreven zijn en door veel mensen neer gezet worden. Als je dat soort gegevens in je statistieken meeneemt, dan kom je er heel snel achter dat PHP al jaren in een zachtjes dalende lijn zit met af en toe een kleine opleving.dylanvana schreef op zaterdag 22 maart 2014 @ 15:35:
Iedereen lekker haten op PHP terwijl het telkens maar marktaandeel blijft snoepen van de "traditionele" talen.
[ Voor 3% gewijzigd door R4gnax op 22-03-2014 15:54 ]
Waar het door komt boeit niet. Effectief is PHP nog steeds "marktleider" als het gaat om ruime beschikbaarheid en wereldwijde ondersteuning bij vrijwel elke hoster. Voor bedrijven die bijvoorbeeld forumsoftware, CMS'en, enz. ontwikkelen is het domweg een eis dat er een zo breed mogelijk publiek aangesproken kan worden. Dan kun je wel koppig je product in Ruby of Python schrijven, maar feit blijft dat je product dan veel minder gebruikt zal worden omdat de ondersteuning minder is.R4gnax schreef op zaterdag 22 maart 2014 @ 15:21:
[...]
Die brede ondersteuning wereldwijd is niet zo zeer een eigenschap van PHP, maar eerder een eigenschap van het feit dat er lang niets anders geweest is wat voor een lage kostprijs op een serve te draaien viel. Het is een verschijnsel wat puur voortgekomen is uit het feit dat PHP op de low-end hosting markt een monopolie positie had en die situatie begint zich nu er alternatieven zijn, pas te veranderen.
Mensen doen het voor leesbaarheid, niet voor functionaliteit.RayNbow schreef op zaterdag 22 maart 2014 @ 15:45:
[...]
Maar waarom zou een programmeertaal geen betekenis aan whitespace geven als mensen dat wel doen?
[ Voor 12% gewijzigd door NMe op 22-03-2014 16:56 ]
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Complete larie, als ik even je Mono voorbeeld overneem (maar het gaat op voor de meeste andere voorbeelden ook).R4gnax schreef op zaterdag 22 maart 2014 @ 15:21:
[...]
Vanuit de business kant is het nog steeds een goed argument, maar het spreekt niet voor of tegen PHP specifiek. Als Microsoft jaren geleden besloten had om Mono stevig te backen en uit te ontwikkelen, dan had PHP op dit moment al in de goot gelegen en hadden alle hosters in plaats daarvan goedkoop Mono aangeboden.
Echt erg is dat de tabs en spaties gemixt kunnen worden. En dan kun je dus toch hele rare effecten krijgen, ook in python.RayNbow schreef op zaterdag 22 maart 2014 @ 15:45:
[...]
Maar waarom zou een programmeertaal geen betekenis aan whitespace geven als mensen dat wel doen?
Never explain with stupidity where malice is a better explanation
Mono is geen taal en daarnaast had MS uiteraard al het werk dat ze nu in hun eigen .net stack hebben gestouwd in mono kunnen steken. Dan was het waarschijnlijk net zo ver geweest, alleen dan cross-platform.Gomez12 schreef op zaterdag 22 maart 2014 @ 16:36:
[...]
Mono is gewoon vanuit beheersoogpunt geen low-maintenance / low-performance taal en Microsoft had Mono wel gigantisch stevig moeten backen (waardoor hun eigen .Net weer minder was geworden, want je kan niet alles backen) en er gigantische hoeveelheden geld / programmeeruren in moeten steken om het enigszins op het low-cost level van een PHP te krijgen dat ze dat geld nooit terugverdiend hadden.[...]
[ Voor 5% gewijzigd door Caelorum op 22-03-2014 16:55 ]
Ten eerste word thet mixen van tabs en spaties al door veel mensen als een doodzonde beschouwd en vandaar dat ook veel mensen hun editor zo instellen dat of de een of de ander gebruikt wordt, niet beide.incaz schreef op zaterdag 22 maart 2014 @ 16:41:
[...]
Echt erg is dat de tabs en spaties gemixt kunnen worden. En dan kun je dus toch hele rare effecten krijgen, ook in python.
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
FYI: Microsoft hád al een portable, semi-open-source implementatie van .NET gemaakt (Rotor, zie ook Wikipedia). Als ze een OSS implementatie van .NET wilden backen hadden ze dat project dus beter een OSS licentie kunnen geven, dan had Mono nooit ontwikkeld hoeven worden.Caelorum schreef op zaterdag 22 maart 2014 @ 16:55:
Mono is geen taal en daarnaast had MS uiteraard al het werk dat ze nu in hun eigen .net stack hebben gestouwd in mono kunnen steken. Dan was het waarschijnlijk net zo ver geweest, alleen dan cross-platform.
Het punt is dat PHP zelfs op een crappy virtual host nog redelijk performt, wat een belangrijk selling point is in de low budget hosting markt.Ik snap overigens niet waarom iemand een low-performance platform zou willen hebben?
Je bent al de lul als je iemand anders z'n code base over moet nemen of erger nog: samen met een ander moet werken. Zelfs als er conventies zijn die je onderling afspreekt is een gewoonte erg lastig af te leren en als je het eenmaal fout doet in Python zit je te debuggen op spul dat niet eens in je code staat. PHP is een ramp, maar Python is ronduit achterlijk door die betekenis van whitespace.RayNbow schreef op zaterdag 22 maart 2014 @ 17:15:
[...]
Ten eerste word thet mixen van tabs en spaties al door veel mensen als een doodzonde beschouwd en vandaar dat ook veel mensen hun editor zo instellen dat of de een of de ander gebruikt wordt, niet beide.
Ten tweede, als je per se tabs en spaties gaat mixen, dan moet je vooral zelfdiscipline hebben (of een intelligente editor als die bestaat) en de tabs en spaties ook zodanig gebruiken waarvoor ze bedoeld zijn: tabs voor inspringen, spaties voor uitlijnen.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Ik vind het zo fijn dat die argumenten zo voorspelbaar zijnRayNbow schreef op zaterdag 22 maart 2014 @ 17:15:
[...]
Ten eerste word thet mixen van tabs en spaties al door veel mensen als een doodzonde beschouwd en vandaar dat ook veel mensen hun editor zo instellen dat of de een of de ander gebruikt wordt, niet beide.
Never explain with stupidity where malice is a better explanation
Dat is nogal een zwart/wit argument; als Python 90% van de problemen weet af te vangen, heeft het dan géén meerwaarde omdat dat minder dan 100% is?incaz schreef op zaterdag 22 maart 2014 @ 17:40:
Python lost het probleem dat hierboven werd aangehaald van misleidende whitespace niet op omdat de taal nog steeds geen consistente niet-ambigue whitespace enforcet. En als je toch op editors en zelfdiscipline moet vertrouwen is het dus geen meerwaarde van die taal.
Zou kunnen, maar je bent ook een aap als je productie-code van random blogs copy/pastet. (Overigens is de kwaliteit van PHP code op random weblogs ook niet bijster hoog!)Python had trouwens daarin ook een heel praktisch probleem: het delen van code via websites gaat nog wel eens mis omdat de blogsoftware daar niet consistent mee omgaat.
Aangezien de praktijk zo zwaar meetelt: het probleem dat je net beschrijft ben ik in de praktijk nog nooit tegengekomen. Ik vraag me af wat voor Python programmeur je bent als je het probleem hebt dat je Python code niet goed werkt omdat je het slecht gecopy/paste hebt...De praktijk is voor mij belangrijker dan een mooie theoretische onderbouwing.
[ Voor 3% gewijzigd door Soultaker op 22-03-2014 18:02 ]
Mag ik vragen wat voor editor jij gebruikt dat dit een probleem is? Het moet wel een vrij waardeloos ding zijn als ie uit zichzelf tabs/spaties gaat mixen.NMe schreef op zaterdag 22 maart 2014 @ 17:37:
[...]
Je bent al de lul als je iemand anders z'n code base over moet nemen of erger nog: samen met een ander moet werken. Zelfs als er conventies zijn die je onderling afspreekt is een gewoonte erg lastig af te leren en als je het eenmaal fout doet in Python zit je te debuggen op spul dat niet eens in je code staat. PHP is een ramp, maar Python is ronduit achterlijk door die betekenis van whitespace.
Het moet een waardeloze editor zijn als hij het gaat mixen en dan ga jij aankomen met editor-instellingen die gewoon 1 toets op je toetsenbord waardeloos maken als antwoord?Wolfboy schreef op zaterdag 22 maart 2014 @ 18:10:
[...]
Mag ik vragen wat voor editor jij gebruikt dat dit een probleem is? Het moet wel een vrij waardeloos ding zijn als ie uit zichzelf tabs/spaties gaat mixen.
Mijn editors (Vim, Eclipse, Pycharm) geven allemaal bij een tab gewoon 4 spaties en mocht iemand hier van willen afwijken dan is dit per project instelbaar. Daarnaast zou het eventueel nog te fixen zijn met een simpele git commit hook als je je dan echt zo stoort aan spaties/tabs.
Tsja tis een keuze om indenting / formatting als onderdeel van de syntax te beschouwen.Gomez12 schreef op zaterdag 22 maart 2014 @ 18:19:
[...]
Ik vind dit allemaal maar lelijke workarounds (vooral de git-commit hook is een lelijke als ik multiline text wil produceren vooraf gegaan door een tab, dan moet ik opeens erop gaan letten want anders commit ik andere code dan die ik gerund heb) voor een probleem wat simpelweg in de taal zit, niet in de editors.
Elke normale programmeertaal kan ik een willekeurige editor pakken en code typen, behalve bij python daar moet ik eerst allerlei checken omdat ik anders spontaan een kans heb dat ik in een moeras beland.
[ Voor 22% gewijzigd door gekkie op 22-03-2014 18:31 ]
Waardeloos? Het tab knopje werkt bij mij precies zoals ik verwacht dat een tab knop werkt.Gomez12 schreef op zaterdag 22 maart 2014 @ 18:19:
[...]
Het moet een waardeloze editor zijn als hij het gaat mixen en dan ga jij aankomen met editor-instellingen die gewoon 1 toets op je toetsenbord waardeloos maken als antwoord?
Dat is ook een lelijke workaround, maar als mensen erop staan om non-conform te zijn heb je workarounds nodig.Of je kan een git commit hook instellen?
Ik vind dit allemaal maar lelijke workarounds (vooral de git-commit hook is een lelijke als ik multiline text wil produceren vooraf gegaan door een tab, dan moet ik opeens erop gaan letten want anders commit ik andere code dan die ik gerund heb) voor een probleem wat simpelweg in de taal zit, niet in de editors.
Bij elke fatsoenlijke editor staan de settings al goed, we hadden het nu over editors die blijkbaar niet-conform reageren. Daarom vroeg ik ook welke editor dat wasElke normale programmeertaal kan ik een willekeurige editor pakken en code typen, behalve bij python daar moet ik eerst allerlei checken omdat ik anders spontaan een kans heb dat ik in een moeras beland.
Ik betwist die 90%: python heeft mij met de ambigue whitespace meer problemen opgeleverd dan misleidende whitespace in php ooit heeft gedaan. Het lost dus niets op, het creeert een nieuw probleem. Vooral inderdaad op het vlak van het integreren van code die andere achtergronden en dus andere coding standards had.Soultaker schreef op zaterdag 22 maart 2014 @ 18:01:
[...]
Dat is nogal een zwart/wit argument; als Python 90% van de problemen weet af te vangen, heeft het dan géén meerwaarde omdat dat minder dan 100% is?
Nice frame :y Maar ik kopieer inderdaad wel eens voorbeeldjes om te proberen, shame on me, hoe durf ik!Zou kunnen, maar je bent ook een aap als je productie-code van random blogs copy/pastet. (Overigens is de kwaliteit van PHP code op random weblogs ook niet bijster hoog!)
Geeft niks, ik ben het false indenting probleem in php nog nooit tegengekomen. (En het zou door mijn editor netjes geflagd worden trouwens.)Aangezien de praktijk zo zwaar meetelt: het probleem dat je net beschrijft ben ik in de praktijk nog nooit tegengekomen.
Never explain with stupidity where malice is a better explanation
Ik verwacht dat er een tab neergezet wordt.Wolfboy schreef op zaterdag 22 maart 2014 @ 18:25:
[...]
Waardeloos? Het tab knopje werkt bij mij precies zoals ik verwacht dat een tab knop werkt.
Het indent m'n code... wat verwacht jij dat je tab knop doet dan?
Dus conform is volgens jou dat een druk op de tab-toets geen tab produceert, maar 4 spaties?[...]
Bij elke fatsoenlijke editor staan de settings al goed, we hadden het nu over editors die blijkbaar niet-conform reageren. Daarom vroeg ik ook welke editor dat was
Conform is voor mij het produceren van output die verwacht wordt volgens de style guide van een bepaalde taal. Wat dat ook mag zijn, is dat bij jouw taal een tab dan moet het een tab doen, is het bij jouw taal een verzameling spaties dan moet het dat doen.Gomez12 schreef op zaterdag 22 maart 2014 @ 18:47:
Dus conform is volgens jou dat een druk op de tab-toets geen tab produceert, maar 4 spaties?
En ik vrees dat ik weinig van jouw "fatsoenlijke" editors ken, de meeste van mijn editors produceren simpelweg een tab en dan kan ik die instelling wijzigen naar hoeveel spaties ik wil (2 of 4 of 6 net naargelang het project en de codingstyle)
Wacht even... Als je code van een andere bron integreert, dan doe je dat normaal gesproken op bijv. module-niveau. Je plempt dus, in het geval van Python, de .py files naast de jouwe. Wanneer je dit doet, heb je geen probleem dat de code op een andere manier opgemaakt is.incaz schreef op zaterdag 22 maart 2014 @ 18:31:
[...] ambigue whitespace [...] Vooral inderdaad op het vlak van het integreren van code die andere achtergronden en dus andere coding standards had.
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Mijn editor converteert alles prima naar spaties maar ik werk niet altijd aan projecten die spaties gebruiken voor indentering, of dat nu komt omdat ik samenwerk met iemand die zo nodig tabs wil gebruiken of omdat ik aan wat opensource-spul werk. En dan kan ik wel een conversie doen, maar dan heb ik weer alle bestanden in de repository gewijzigd voor zoiets achterlijks als whitespace, en alleen maar omdat een taal daar betekenis aan geeft. Het interesseert me niet als een ander tabs gebruikt zolang de tab spacing maar overeenkomt.Wolfboy schreef op zaterdag 22 maart 2014 @ 18:10:
[...]
Mag ik vragen wat voor editor jij gebruikt dat dit een probleem is? Het moet wel een vrij waardeloos ding zijn als ie uit zichzelf tabs/spaties gaat mixen.
In elke andere taal is het geen probleem. Mensen geven hier uitgebreid af op PHP omdat het arbitraire dingen doet, maar een veel gekkere designkeuze dan betekenis geven aan whitespace kan ik niet bedenken...Python 3 laat overigens geen tab/space mixing toe
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Tja, zoals ik al zei : Ik ben bang dat ik weinig van favoriete editors ken, voor mij moet een editor namelijk taal-onafhankelijk zijn. Een IDE mag taalafhankelijk zijn, maar een editor is maar een editor wmb.Wolfboy schreef op zaterdag 22 maart 2014 @ 18:51:
[...]
Conform is voor mij het produceren van output die verwacht wordt volgens de style guide van een bepaalde taal.
Als developer geef ik er juist geen ene mallemoer om, daarom gebeurt het nog wel eens dat ze door elkaar heen gebruikt worden in 1 project over meerdere pc's / meerdere developers.Als developer begrijp ik niet waarom je er uberhaupt om geeft of het tabs of spaties zijn.
Ok, dus ik ben iets aan het maken. Ik zoek even wat documentatie over 1 statement op. Ik zie daar op inet 1 of 2 lange regels die ik voor 90% wil hebben. Natuurlijk copy/paste ik die (en indent ik die iets meer/minder) ipv over te typen, maar jij kan niet begrijpen waarom ik dit zou doen?RayNbow schreef op zaterdag 22 maart 2014 @ 18:56:
[...]
Als je onder integreren verstaat dat je code handmatig gaat kopiëren van de ene source file naar de andere (geen idee waarom je dit wilt doen, maar goed), dan is er geen probleem wanneer je top-level definities kopiëert.
Ik integreer geen code op moduleniveau, ik gebruik gewoon een voorbeeld voor een bepaald probleem wat ik daarna aanpas aan mijn eigen wensen. Is dat iets dat je nooit doet?gekkie schreef op zaterdag 22 maart 2014 @ 18:25:
Wacht even... Als je code van een andere bron integreert, dan doe je dat normaal gesproken op bijv. module-niveau. Je plempt dus, in het geval van Python, de .py files naast de jouwe. Wanneer je dit doet, heb je geen probleem dat de code op een andere manier opgemaakt is
Never explain with stupidity where malice is a better explanation
Devil's advocate ... pas je de indenting en codestyle van het ge-inlinde stuk ook aan .. of laat jeincaz schreef op zaterdag 22 maart 2014 @ 19:13:
[...]
Ik integreer geen code op moduleniveau, ik gebruik gewoon een voorbeeld voor een bepaald probleem wat ik daarna aanpas aan mijn eigen wensen. Is dat iets dat je nooit doet?
Maar het punt is gewoon dat whitespace nogal fragiel is: als je altijd binnen je eigen editor blijft is het niet zo'n probleem maar als je daarbuiten komt krijg je code die makkelijk incorrect is. Een probleem dat je bij {}-blocks gewoon niet hebt.
Amen.Gomez12 schreef op zaterdag 22 maart 2014 @ 19:08:
[...]
Als developer geef ik er juist geen ene mallemoer om, daarom gebeurt het nog wel eens dat ze door elkaar heen gebruikt worden in 1 project over meerdere pc's / meerdere developers.
Alleen met python heb je een taal waarbij het opeens niet meer triviaal is en je er juist als developer opeens om moet gaan geven.
In PHP of zo'n beetje elke andere taal is het ergste dat je kan gebeuren dat de code onleesbaar is. In Python is het dermate onderdeel van de taal dat er dingen stuk kunnen gaan als je indenting niet klopt. Niet bepaald de "standaard tabs-versus-spaties-discussie" dus.ValHallASW schreef op zaterdag 22 maart 2014 @ 19:15:
Hoe is dat python-specific? Dat is toch de standaard tabs-versus-spaties-discussie? Als je tabs en spaties mixt in PHP dan wordt dat óók een bende.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Counter argument zal wel zijn dat dat de interpreter niet boeit .. en die opzich de code nog wel netjes uitvoert ... dus het doet wat het moet doen.ValHallASW schreef op zaterdag 22 maart 2014 @ 19:15:
Hoe is dat python-specific? Dat is toch de standaard tabs-versus-spaties-discussie? Als je tabs en spaties mixt in PHP dan wordt dat óók een bende. Dan ziet het er in jouw editor toevallig OK uit (omdat jij je tabs als 2 spaties hebt ingesteld), maar in een andere editor wordt het een rotzooitje (omdat diegene zijn tabs als 8 spaties heeft ingesteld).
Python 3 dwingt af dat je consistent bent in je indentation, python 2 geeft je ook nog de vrijheid om ze te mixen, zolang je je editor maar op 8 spaties per tab instelt.
Conclusie: Python zorgt ervoor dat code éénduidig te interpreteren is (met de eis dat je editor een tab als 8 spaties weergeeft). In elke andere taal moet je maar hopen dat tab-en-spatie-combinaties daadwerkelijk overeenkomen met hoe de blokken bedoeld waren.
Natuurlijk pas ik dat aan. Maar alt-shift-F weet gewoon wat het doen moetgekkie schreef op zaterdag 22 maart 2014 @ 19:15:
[...]
Devil's advocate ... pas je de indenting en codestyle van het ge-inlinde stuk ook aan .. of laat je
dat dan gewoon soep zijn?
Never explain with stupidity where malice is a better explanation
Erhmmm de discussie was nou net dat je geen handige editor nodig moest hebben.incaz schreef op zaterdag 22 maart 2014 @ 19:22:
[...]
Natuurlijk pas ik dat aan. Maar alt-shift-F weet gewoon wat het doen moetEn als de code incorrect is, kan dat niet hersteld worden door een handige editor.
Mijn hele handige editor meldt overigens ook netjes als de haakjes niet matchen.
[ Voor 9% gewijzigd door gekkie op 22-03-2014 19:36 ]
Het idee stamt uit 1966 (ISWIM, If you See What I Mean).NMe schreef op zaterdag 22 maart 2014 @ 19:06:
[...]
In elke andere taal is het geen probleem. Mensen geven hier uitgebreid af op PHP omdat het arbitraire dingen doet, maar een veel gekkere designkeuze dan betekenis geven aan whitespace kan ik niet bedenken...
Het zijn 1-2 regels? Als je dat in je eigen code plakt, dan zie je meteen in 1 oogopslag als je de code verkeerd plakt.Gomez12 schreef op zaterdag 22 maart 2014 @ 19:08:
[...]
Ok, dus ik ben iets aan het maken. Ik zoek even wat documentatie over 1 statement op. Ik zie daar op inet 1 of 2 lange regels die ik voor 90% wil hebben. Natuurlijk copy/paste ik die (en indent ik die iets meer/minder) ipv over te typen, maar jij kan niet begrijpen waarom ik dit zou doen?
Ik wel. Ik vind of een package (en dan doe ik pip install awesomepkg en importeer vervolgens de jusite modules... lang leve code reuse)...
...of ik vind een stukje functionaliteit en dump ik het in een module/functie (lang leve code reuse).ik gebruik gewoon een voorbeeld voor een bepaald probleem wat ik daarna aanpas aan mijn eigen wensen. Is dat iets dat je nooit doet?
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Er zullen misschien een paar mensen zijn die tabs gebruiken met Python, maar in principe gebruikt iedereen spaties (dat is ook wat de officiele style guide adviseert) dus dat probleem zou je eigenlijk nooit moeten hebben. Als het voor een bepaald project wel een probleem is, wat me bij open source problemen tot nu toe 2x gebeurd is, dan is het advies om het om te zetten meestal voldoende en krijg je eigenlijk nooit bezwaren om het gewoon om te zetten.NMe schreef op zaterdag 22 maart 2014 @ 19:06:
[...]
Mijn editor converteert alles prima naar spaties maar ik werk niet altijd aan projecten die spaties gebruiken voor indentering, of dat nu komt omdat ik samenwerk met iemand die zo nodig tabs wil gebruiken of omdat ik aan wat opensource-spul werk. En dan kan ik wel een conversie doen, maar dan heb ik weer alle bestanden in de repository gewijzigd voor zoiets achterlijks als whitespace, en alleen maar omdat een taal daar betekenis aan geeft. Het interesseert me niet als een ander tabs gebruikt zolang de tab spacing maar overeenkomt.
Tja... fatsoenlijke indenting is wegens de leesbaarheid aan te raden en wordt in principe in de meeste talen sowieso al gedaan dus ik zie het probleem eigenlijk niet.In elke andere taal is het geen probleem. Mensen geven hier uitgebreid af op PHP omdat het arbitraire dingen doet, maar een veel gekkere designkeuze dan betekenis geven aan whitespace kan ik niet bedenken...
Een handige editor kan geen foute code corrigeren. Fucked up whitespace == incorrecte code. Mogelijk niet eens parse errors, maar incorrect werkende code.gekkie schreef op zaterdag 22 maart 2014 @ 19:31:
[...]
Erhmmm de discussie was nou net dat je geen handige editor nodig moest hebben.
In een handige editor die herkent dat het python is .. zou die het ook gewoon consistent kunnen maken bij
een reformat.
Never explain with stupidity where malice is a better explanation
Het is ook geen noodzakelijkheid voor de taal. Het is best mogelijk tabs en spaties te mixen (in Python 2 iig) alleen is het absoluut niet aan te raden.incaz schreef op zaterdag 22 maart 2014 @ 19:42:
[...]
Een handige editor kan geen foute code corrigeren. Fucked up whitespace == incorrecte code. Mogelijk niet eens parse errors, maar incorrect werkende code.
En ik ben helemaal voor handige editors die je leven prettiger maken - het moet alleen geen noodzakelijkheid zijn voor de taal.
1
2
3
4
5
6
7
| def spam(): print 'within spam with spaces' print 'within spam with tabs' print 'Before calling spam' spam() print 'After calling spam' |
Before calling spam within spam with spaces within spam with tabs After calling spam
[ Voor 5% gewijzigd door Wolfboy op 22-03-2014 19:51 ]
Never explain with stupidity where malice is a better explanation
Om tabs te fixen heb ik niet de documentatie van de taal bijna continu open staan. Met de niet-logische parametervolgorde van PHP daarentegen...incaz schreef op zaterdag 22 maart 2014 @ 20:05:
Ik kan daar echt met mijn verstand niet bij. Daarbij valt een niet-logische paramvolgorde toch ver in het niet.
De coding standaard is 4 spaties, geen tabs. Maar als je ze toch wil mixen zal je 8 spaties per tab moeten gebruiken, waarvan ik overigens meermaals gezegd heb dat het een slecht idee is.incaz schreef op zaterdag 22 maart 2014 @ 20:05:
Wolfboy, maar seriously, 8 spaties voor 1 tab? Dus de coding standard is halve tabs? En je def spam wordt zelfs door de editor hier waardeloos geformatteerd... dan kun je toch werkelijk niet met droge ogen beweren dat dat een goed idee is??
Ik kan daar echt met mijn verstand niet bij. Daarbij valt een niet-logische paramvolgorde toch ver in het niet.
Apple iPhone 16e LG OLED evo G5 Google Pixel 10 Samsung Galaxy S25 Star Wars: Outlaws Nintendo Switch 2 Apple AirPods Pro (2e generatie) Sony PlayStation 5 Pro
Tweakers is onderdeel van
DPG Media B.V.
Alle rechten voorbehouden - Auteursrecht © 1998 - 2025
•
Hosting door TrueFullstaq