Gå til innhold

ProgrammeringsBaren! Småprat, om det du elsker!


Anbefalte innlegg

Videoannonse
Annonse

Eller språk der mellomrom teller, slik at det er umulig å refaktorere koden effektivt. Ja, jeg ser på deg, Python. :grumpy: (og atpåtil dynamisk typa gjør det enda verre)

Kva? Bruk ein skikkeleg tekst editor eller IDE?

Dessuten så Python sterk typa og ikkje svakt typa som PHP eller Javascript.

Lenke til kommentar

Kva? Bruk ein skikkeleg tekst editor eller IDE?

Det gjør jeg. Men begrenset hva de kan gjøre. Om jeg limer inn kode nedenfor en for (eller if, eller while, eller hva som helst), skal da denne koden indenteres slik at den er med i løkken eller ikke? Editoren vet ikke hva en vil. Hadde man brukt braces, "end" eller lignende kunne jeg limt inn koden på riktig side av det og alt ville virket som tiltenkt. (Og i mitt IDE blitt autoformatert til å se riktig ut i de fleste språk)

Lenke til kommentar

Både Komodo og PyDev(Eclipse) støtter whitespaces for å kunne sjå forskjell på tabbing og whitespacer

Sånn ser det ut hos meg med PyDev

post-5591-0-27040000-1355537198_thumb.png

Jeg mente ikke forskjell på tab og ws, men hvordan det har noe å si som gjør det vanskelig å flytte kode rundt uten at man manuelt må gå over og indentere alt riktig slik at koden faktisk gjør det man ønsker.

Lenke til kommentar

Jeg mente ikke forskjell på tab og ws, men hvordan det har noe å si som gjør det vanskelig å flytte kode rundt uten at man manuelt må gå over og indentere alt riktig slik at koden faktisk gjør det man ønsker.

En skikkelig god python-aware editor bør klare å håndtere det. Men jeg vet ikke om de som finnes, gjør det.

Lenke til kommentar

@zotbar1234 - slik som du argumenterer, så minner du meg om en fan-boy, som har gjort ditt valg, og alt annet er bare bæsj ...

 

Kan du la være å tilegne meg dine meninger? Aldri på noe tidspunkt har jeg sagt at "alt annet er bare bæsj".

 

Og skal du først slenge dritt om verktøy du ikke liker, så velg noen som faktisk er virkelig bedritne og virkelig hemmer deg i det daglige arbeidet.*

 

SVN er et slikt verktøy. Soleklart. Det finnes mange flere (gjerne da også verre enn svn), men det gjør ikke SVN til et bra valg.

 

Med henblikk, jeg burde ha etterspurt etter 3 ting som SVN gjør bedre enn dens alternativer opprinnelig; ikke bare 3 ting som SVN kan gjøre.

 

Faktum er at det er ikke alltid man kan velge verktøy i arbeidslivet, og da er det en bedre strategi å lære seg det verktøyet man har.

 

Bedre enn hva? Enn å la være å lære? Opplagt. Ingen har forhåpentligvis påstått at ignoranse er en fornuftig strategi uansett hvor mye forakt man har for emnet man skal/bør lære. Men selv om man har lært å leve med et dårlig verktøy og har døyvet smerteterskelen nok til å ignorere alt ubehaget som den pålagte verktøybruken medfører, gjør ikke det verktøyet bedre.

 

Og tilpasse seg den filosofien som ligger bak grunndesignet i verktøyet.

 

Helt klart. Det gjør fremdeles ikke verktøyet bedre.

Lenke til kommentar

Jeg mente ikke forskjell på tab og ws, men hvordan det har noe å si som gjør det vanskelig å flytte kode rundt uten at man manuelt må gå over og indentere alt riktig slik at koden faktisk gjør det man ønsker.

Fordi kopiert kode også skal kunne vere lesbart og det er heller ikkje meininga at du skal ha repetiv kode. Python har ein stylingstandard som heiter PEP8. Den sørger for at Python utviklere har så lik kodestruktur som mogleg.

Lenke til kommentar

En skikkelig god python-aware editor bør klare å håndtere det. Men jeg vet ikke om de som finnes, gjør det.

Men uansett hvor god den er, vil den aldri kunne *vite* hva jeg ønsker, bare gjette.

for i in range(5):
print "haha"
print "ferdig"

 

Og så limer jeg inn print "hehe" etter linje 2. Begge disse er muligheter:

for i in range(5):
print "haha"
print "hehe"
print "ferdig"

for i in range(5):
print "haha"
print "hehe"
print "ferdig"

Som gir helt forskjellig resultat. Enkelte ganger er det nr. 1 jeg ønsker, andre ganger nr. 2. I språk med definitive blokker ( "}", "end" osv.) ville jeg bare satt markøren på riktig side og alt ville vært som det skulle. (Dette tilfellet blir litt kunstig, og enkelte editorer klarer å skille basert på hvor caret er plassert, men fortsatt ikke like "definitivt" som i andre språk, og i mer kompliserte tilfeller opplever jeg ofte kluss)

 

Fordi kopiert kode også skal kunne vere lesbart og det er heller ikkje meininga at du skal ha repetiv kode. Python har ein stylingstandard som heiter PEP8. Den sørger for at Python utviklere har så lik kodestruktur som mogleg.

Du skjønner ikke poenget mitt. Det er ikke snakk om duplisering av kode, men refaktorering/flytting av kode. Kopiert kode i andre språk vil legge seg riktig og få riktig indentering og layout om man har en editor som støtter det (noe de fleste gjør).

Lenke til kommentar
Men uansett hvor god den er, vil den aldri kunne *vite* hva jeg ønsker, bare gjette.

Det kommer jo ann på deg som skriver koden,dette er aldrig en problemstilling for meg som bruker Python mye.

 

Som gir helt forskjellig resultat. Enkelte ganger er det nr. 1 jeg ønsker, andre ganger nr. 2.

Koden er krystal klart og gjør akkurat det den skal.

 

Du bruker vel alltid Indentering når du skriver kode?

Python har valgt og fjerne alle disse dumme {} ; utrykk og la Indentering definere kode blokken(ettersom du alltid bruker Indentering i utgangspunktet)

http://effbot.org/py...-statements.htm

Endret av SNIPPSAT
Lenke til kommentar
Ja, koden er klar (jeg vi ikke si krystallklar..), men i ett av tilfellene gjør den ikke det den skal fordi editoren brukte feil innrykk. Les igjen.

Den er grei,dette er vel et problem med editoren du bruker.

Jeg kan lime inn koden i editorer som jeg har installert og det blir riktig(Pyscripter,Spyder,PyDev og Komodo)

Lenke til kommentar

Men uansett hvor god den er, vil den aldri kunne *vite* hva jeg ønsker, bare gjette.

for i in range(5):
print "haha"
print "ferdig"

 

Og så limer jeg inn print "hehe" etter linje 2. Begge disse er muligheter:

for i in range(5):
print "haha"
print "hehe"
print "ferdig"

for i in range(5):
print "haha"
print "hehe"
print "ferdig"

Som gir helt forskjellig resultat. Enkelte ganger er det nr. 1 jeg ønsker, andre ganger nr. 2. I språk med definitive blokker ( "}", "end" osv.) ville jeg bare satt markøren på riktig side og alt ville vært som det skulle. (Dette tilfellet blir litt kunstig, og enkelte editorer klarer å skille basert på hvor caret er plassert, men fortsatt ikke like "definitivt" som i andre språk, og i mer kompliserte tilfeller opplever jeg ofte kluss)

 

 

Du skjønner ikke poenget mitt. Det er ikke snakk om duplisering av kode, men refaktorering/flytting av kode. Kopiert kode i andre språk vil legge seg riktig og få riktig indentering og layout om man har en editor som støtter det (noe de fleste gjør).

 

Slik jeg gjør dette:

Når jeg skal lime inn kode i editoren min, så velger jeg hvilket indentasjonsnivå jeg skal legge de på, dvs det samme som du gjør med brackets, bare at du må finne ut hva de forskjellige bracketene betyr, jeg bare finner riktig nivå. Så setter jeg markøren her og limer inn koden med Ctrl + Shift + V i Sublime Text, slik at all koden får riktig indentering. Jeg kan også lime inn vanlig, men da må jeg indentere koden riktig etterpå.

 

Så forskjellen er at du har to forskjellige ting å forholde deg til, indentering og brackets. Et menneske som leser ser på indenteringen, og en maskin ser på bracketsene. Så lenge disse har overenstemmelse, så er det greit, men med en gang det er en forskjell, så blir det kaos. I Python er det bare en ting å forholde seg til, nemlig indentering. Slik leser menneskene og maskinen den samme koden for å se hva som hører til hvor, og man er sikker på at det man ser som menneske er det samme som en maskin ser.

 

Ja, det er problemer med Python sin måte å gjøre det på, men med en skikkelig editor og kodestandarder så er ikke dette et problem. Jeg har aldri hatt problemer med python sin måte å gjøre ting på, men jeg har flere ganger glemt et semikolon i en kode og holdt på litt for lenge med å lure på hvor problemet ligger.

Lenke til kommentar

Kan du la være å tilegne meg dine meninger? Aldri på noe tidspunkt har jeg sagt at "alt annet er bare bæsj".

Hvorfor tror du at jeg prøver å tilegne deg mine meninger? Det jeg prøver å si, er et ut i fra din argumentasjon, så er det vanskelig å trekke andre konklusjoner enn de jeg har tatt. Du er veldig kategorisk, og lite villig til å akseptere at andre verktøy enn git faktiskt løser de oppgavene vi faktisk har...

  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...