mboost-dp1

Google Inc.
- Forside
- ⟨
- Forum
- ⟨
- Nyheder
0, null og "" evaluere til false i boolske operationer.arne_v (50) skrev:0 og "" har ikke noget med null at gøre. De kommer kun ind i billedet når folk bruger en forkert operator.
Og så kan vi jo begynde at snakke om problemet med at JavaScript ikke er enig med sig selv om hvornår der skal bruges undefined, og hvornår der skal bruges null.
Så mange pitfalls synes jeg er et udemærket argument for at kalde JavaScript et dårligt designet sprog.
(Og jeg er heller ikke imponeret over hvordan 0 og 1 evaluere til true/false i C/C++/PHP.)
Windcape (51) skrev:Så mange pitfalls synes jeg er et udemærket argument for at kalde JavaScript et dårligt designet sprog.
Et sprog er ikke uden fejl ... ting som ikke bare kan laves om, pga legacy code.
Windcape (51) skrev:(Og jeg er heller ikke imponeret over hvordan 0 og 1 evaluere til true/false i C/C++/PHP.)
Det du næsten siger er at de for næsten 40 siden skulle have lavet det perfekte sprog?
I stedet for at du konstant kaster om dig med fy ord om det meste, og altid siger der er en bedre måde at gøre det. Burde du så ikke fikse de problemer. Du lader jo til at kende sandheden?
Sprog har intet at gøre med legacy kode.syska (52) skrev:Et sprog er ikke uden fejl ... ting som ikke bare kan laves om, pga legacy code.
Og du kan godt lave breaking-changes i et sprog.
Nu er JavaScript fra 1995. Der burde man vide nok om det. Selvom de sidste 10 år har gjort underværker for sprog-design (måske fordi at det er så meget nemmere at skrive en compiler i dag)syska (52) skrev:Det du næsten siger er at de for næsten 40 siden skulle have lavet det perfekte sprog?
Der er designet massere af sprog, som er perfekte på forskellige måder.syska (52) skrev:Burde du så ikke fikse de problemer. Du lader jo til at kende sandheden?
Nok specielt Haskell , er det ultimative sprog.
... men den praktisk værdi er en helt anden. Jeg argumentere ikke for at skifte JavaScript ud, jeg argumentere for at det er et dårligt sprog.
Det må man godt.
Windcape (53) skrev:Sprog har intet at gøre med legacy kode.
Og du kan godt lave breaking-changes i et sprog.
Det tror jeg der er mange som vil blive kede af. Hvis det var så simplet som du får det til at lyde, tror jeg man "bare" havde rettet de ting som var trælse i et sporg.
Hvis du mener man nemt kan lave breaking changes i et sprog, hvorfor er det så ikke sket? Som du selv siger ... C/C++ og 0 er false. JS ... er det ikke alt sammen pga legacy code man ikke ændre det. Måske vi snakker forbi hinanden.
Windcape (53) skrev:Nu er JavaScript fra 1995. Der burde man vide nok om det. Selvom de sidste 10 år har gjort underværker for sprog-design (måske fordi at det er så meget nemmere at skrive en compiler i dag)
Jeg tror der er flere grunde til at der ikke tidligere er blevet rettet op på det, selvom man måske nok godt havde opdaget de fejl og mangler.
Uden at vide en drøjt om det, så tror jeg næsten mange antog det for at ville dø på et tidspunkt. Ligepludselig gennem et par år blev det alt for udbrudt til at man bare kunne fikse det.
Windcape (53) skrev:Jeg argumentere ikke for at skifte JavaScript ud, jeg argumentere for at det er et dårligt sprog.
Dvs du mangler bare sukker på maden? (Dvs brokke sig fordi man kan, selvom man ved det ikke kan blive bedre)
Windcape (53) skrev:Det må man godt.
Man kan gøre det på måder som ikke får en til at fremstå som en bitter gammel mand. Det tjener intet formål.
Ah, med legacy-code mener du backward-comparability (som altså ikke er det samme).syska (54) skrev:er det ikke alt sammen pga legacy code man ikke ændre det.
Jeg mindes bla. PHP5 har breaking-changes, men min hukommelse er ikke fantastisk i disse dage.
Som med så mange andre sprog, er det nærmere fordi at der blev opbygget en stor mængde kode af skaberne (Netscape), som de så ikke ville af med.syska (54) skrev:Uden at vide en drøjt om det, så tror jeg næsten mange antog det for at ville dø på et tidspunkt. Ligepludselig gennem et par år blev det alt for udbrudt til at man bare kunne fikse det.
Eller fordi at udviklerne havde blind kærlighed til sprogets design (*host* Java *host*).
Nej, jeg argumentede imod en idiot (#42) som mente at JS var et perfekt sprog :psyska (54) skrev:Dvs du mangler bare sukker på maden? (Dvs brokke sig fordi man kan, selvom man ved det ikke kan blive bedre)
Men jeg er en bitter gammel mand!syska (54) skrev:Man kan gøre det på måder som ikke får en til at fremstå som en bitter gammel mand. Det tjener intet formål.
Windcape (55) skrev:Ah, med legacy-code mener du backward-comparability (som altså ikke er det samme).
Nej, ja ... det er vel som man ser det, backward-comparability pga legacy code :-)
Jeg er da ikke interesset i at jeg skal skrive min kode om bare fordi der kommer en ny version af .NET.
Ligesom public modifier på abstract classes i .NET ... det giver jo ikke meget mening. Men der er nok meget kode som ikke vil compile hvis de satte et krav på at den ikke måtte være public men skulle være private/protected.
Men jeg giver dig ret, breaking changes mange steder er nødvendigt. Fuck lagacy code ... :-p Do it right the first time.
Windcape (55) skrev:Jeg mindes bla. PHP5 har breaking-changes, men min hukommelse er ikke fantastisk i disse dage.
Sikkert ... tror ikke rigtig .NET har nogen breaking changes. (Tror store firmaet ville blive lidt pissed på MS)
Windcape (55) skrev:Eller fordi at udviklerne havde blind kærlighed til sprogets design (*host* Java *host*).
Jeg ved hvor meget du elsker Java. Husk ... Den man tugter elsker man :-p *hahah*
Windcape (55) skrev:Nej, jeg argumentede imod en idiot (#42) som mente at JS var et perfekt sprog :p
Ahhh, ja ... ham "php" manden. Virker mere som om han har noget i klemme hvis det skulle komme frem at JS ikke var perfekt.
Windcape (55) skrev:Men jeg er en bitter gammel mand!
Bitter og gammel ... hvad gør det så mig til :-( *heh*
Windcape (51) skrev:0, null og "" evaluere til false i boolske operationer.
Det har jo ikke noget at gøre med flere null's.
Det har noget at gøre med implicit konvertering ved brug af visse operatorer.
Windcape (51) skrev:Og så kan vi jo begynde at snakke om problemet med at JavaScript ikke er enig med sig selv om hvornår der skal bruges undefined, og hvornår der skal bruges null.
JavaScript definerer vel kun betydningen af dem.
Det er op til programmørerne at bruge sprogets features konsistent.
Windcape (51) skrev:Så mange pitfalls synes jeg er et udemærket argument for at kalde JavaScript et dårligt designet sprog.
Det er klart et dårligt design hvis det var en top prioritet at fange så mange fejl som muligt ved udvikling og ikke efter ibrugtagning.
Men det var det jo ikke.
syska (56) skrev:tror ikke rigtig .NET har nogen breaking changes. (Tror store firmaet ville blive lidt pissed på MS)
MS er rimeligt gode til at beholde kompabiliteten.
Bl.a. ved at nye keywords kun er keywords i den rigtige context, således at nye keywords ikke breaker gammel kode som har brugt de pågældende navne. Det er rigtigt smart. Hvis Java kunne have introduceret enum keyword på samme måde ville der havde været sparet millioner.
Der er dog nogle få breaking changes i .NET.
De er dokumenteret her:
http://msdn.microsoft.com/en-us/library/cc713578%2...
http://msdn.microsoft.com/en-us/library/ee855831.a...
arne_v (61) skrev:????
en public ctor på en abstract class i .NET giver ikke meget mening. Fik vist ikke lige det hele med i går da jeg skrev det indlæg.
Men igen ... småting.
Men hvis jeg brugte reflection til at finde klasser med public ctors, så ville jeg nok blive lidt skuffet da man jo ikke som sådan kan kalde en public ctor på en abstract class(kun ved arv). (I hvert fald ikke lige hvad min viden rækker til, men via beskidte tricks kan man måske godt)
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.