Gå til innhold

Småprat om/rundt UiO (informatikk)


Sukkess

Anbefalte innlegg

Selv har jeg ikke programmert C siden 1998 :D

 

Har du gått på forelesningene? Tror du kunne ha snappet opp ganske mye av det på forelesninger og grupper. De greiene du nevner er vell kanskje mer teori-kunnskap enn C-kunnskap. Det blir en slags analogi til det som har blitt forelest om hvordan minnehåndtering på maskinen fungerer.

Lenke til kommentar
Videoannonse
Annonse
Blir det ikke advart mot æ, ø og å i variabel, klasse og metodenavn på forelesningene?

Uansett - ikke godkjent! :p

 

Det er ingenting i Java-standarden som tilsier at det er mindre trygt å bruke æ, ø og å i variabel-, og metodenavn enn us-ascii. Hvor i all verden har du dette fra? Ihvertfall ikke Java-standarden. Jeg tør påstå at i de fleste tilfeller er det mye bedre å bruke beskrivende, norske navn som "ordreløkke" istedenfor "ordreloekke" (eller enda verre: "commandLoop" i et ellers norsk program. Husk at programmer skrives for å leses av mennesker og ikke maskiner!

Lenke til kommentar

Problemet er at programmet faktisk blir lest av maskiner når de skal kompileres.

Folk bruker alle slags rare tegnsett, og æ,ø og å er ikke akkurat godt støttet fra det ene til det andre, noe som fører til at kompilatoren ikke forstår helt hva den skal gjøre.

 

Jeg nevnte det kun fra et praktisk synspunkt, ikke utifra hva standarden sier.

 

Selv fra en maskin til en annen på UiO vil du få "illegal character: \65533"-error for "ø".

Endret av Zerblat
Lenke til kommentar
Blir det ikke advart mot æ, ø og å i variabel, klasse og metodenavn på forelesningene?

Uansett - ikke godkjent! :p

 

Det er ingenting i Java-standarden som tilsier at det er mindre trygt å bruke æ, ø og å i variabel-, og metodenavn enn us-ascii. Hvor i all verden har du dette fra? Ihvertfall ikke Java-standarden. Jeg tør påstå at i de fleste tilfeller er det mye bedre å bruke beskrivende, norske navn som "ordreløkke" istedenfor "ordreloekke" (eller enda verre: "commandLoop" i et ellers norsk program. Husk at programmer skrives for å leses av mennesker og ikke maskiner!

 

Det som er mindre trygt er hvis du har en type tegnsett og sender det over til en venn som har et totalt annet type tegnsett. Det kan gjøre at programmet ikke kan kompilere på den andre maskiner hvis det er æøå andre steder enn i Stringer, chars og utskrifter.

Lenke til kommentar
Tror ikke dere skal lures til å gjøre feil. Hadde en del dårlig pre-kode i INF1010 i våres.

 

Altså, det er jo ikke direkte feil å bruke æ,ø,å , men du kan muligens få rare kompilerings feil eller whatnot. Lær like gjerne først som sist å skrive engelske klasse, variabel og metode navn!

 

Å lære engelsk er det lureste man gjør som programmerer, uansett. Men man får altså aldri kompileringsfeil av å bruke æ, ø og å i metode- og variabelnavn. Hvorfor påstår du det?

Lenke til kommentar
Problemet er at programmet faktisk blir lest av maskiner når de skal kompileres.

Folk bruker alle slags rare tegnsett, og æ,ø og å er ikke akkurat godt støttet fra det ene til det andre, noe som fører til at kompilatoren ikke forstår helt hva den skal gjøre.

 

Jeg nevnte det kun fra et praktisk synspunkt, ikke utifra hva standarden sier.

 

Selv fra en maskin til en annen på UiO vil du få "illegal character: \65533"-error for "ø".

 

Poenget er at dere opphøyer bruk av æ, ø og å i Javakode til et problem, noe det i 99% av tilfellene ikke er, se her:

 

[cberg]@padme ~ $ cat Tegnsett.java

class Tegnsett {

public static void main(String args[]) {

blåbærøyne();

}

 

static void blåbærøyne() {

System.out.println("Blå bær øyne ");

}

}

 

[cberg]@padme ~ $ javac Tegnsett.java

 

[cberg]@padme ~ $ java Tegnsett

Blå bær øyne

 

Hva er problemet?

Lenke til kommentar

Problemet er at studenter skriver oppgaven på hjemmemaskinen sin, som har et annet tegnsett enn min. De sender så inn oppgaven til retting og jeg må endre alle æ, ø og for at programmet i det hele tatt skal kompilere.

 

Det var vel i den sammenheng problemet ble nevnt, jeg antar du forstår irritasjonsmomentet der hvis du virkelig vil. :)

Endret av Zerblat
Lenke til kommentar
Poenget er at dere opphøyer bruk av æ, ø og å i Javakode til et problem, noe det i 99% av tilfellene ikke er, se her:

Klikk for å se/fjerne innholdet nedenfor

[cberg]@padme ~ $ cat Tegnsett.java

class Tegnsett {

public static void main(String args[]) {

blåbærøyne();

}

 

static void blåbærøyne() {

System.out.println("Blå bær øyne ");

}

}

 

[cberg]@padme ~ $ javac Tegnsett.java

 

[cberg]@padme ~ $ java Tegnsett

Blå bær øyne

Hva er problemet?

Her ser du problemet:

Kopierer inn programmet ditt på hjemmemaskinen (som bruker utf8 tegnsett):

$ javac Tegnsett.java 
$ java Tegnsett 
Blå bær øyne

Så kopierer vi filen til uio (som bruker ISO 8859-1 tegnsett):

javac Tegnsett.java 
Tegnsett.java:3: illegal character: \166
blåbærøyne();
  ^
Tegnsett.java:3: not a statement
blåbærøyne();
^
Tegnsett.java:3: illegal character: \184
blåbærøyne();
	 ^
Tegnsett.java:3: not a statement
blåbærøyne();
   ^
Tegnsett.java:6: illegal character: \166
static void blåbærøyne() {
			  ^
Tegnsett.java:6: illegal character: \184
static void blåbærøyne() {
				 ^
Tegnsett.java:6: invalid method declaration; return type required
static void blåbærøyne() {
				  ^
7 errors

 

Bruk av tegn utover det som er definert i standard ascii når man programerer er kjempe fy fy uavhengig av hvilke tegnset kompilator takler. Man skal _aldri_ bruke f. eks. norske tegn i kode.

Endret av cyclo
Lenke til kommentar
Har fått hjemmeeksamen i INF1060 nå. Virker ok tror jeg. Men også noe jeg ikke umiddelbart har forstått. Blir vel bedre etterhvert!

Mange folk på inf-stua som kan hjelpe til med sånt. Ikke bare orakler.

 

Det er ingenting i Java-standarden som tilsier at det er mindre trygt å bruke æ, ø og å i variabel-, og metodenavn enn us-ascii. Hvor i all verden har du dette fra? Ihvertfall ikke Java-standarden. Jeg tør påstå at i de fleste tilfeller er det mye bedre å bruke beskrivende, norske navn som "ordreløkke" istedenfor "ordreloekke" (eller enda verre: "commandLoop" i et ellers norsk program. Husk at programmer skrives for å leses av mennesker og ikke maskiner!

Java standarden støtter det i et ideellt miljø. Men som posten ovenfor nevner får man problemer når det er konflikt mellom tegnsett, shell som ikke støtter visse tegnsett (les: Windows) osv.

Endret av LordjOX
Lenke til kommentar
Poenget er at dere opphøyer bruk av æ, ø og å i Javakode til et problem, noe det i 99% av tilfellene ikke er, se her:

Klikk for å se/fjerne innholdet nedenfor

[cberg]@padme ~ $ cat Tegnsett.java

class Tegnsett {

public static void main(String args[]) {

blåbærøyne();

}

 

static void blåbærøyne() {

System.out.println("Blå bær øyne ");

}

}

 

[cberg]@padme ~ $ javac Tegnsett.java

 

[cberg]@padme ~ $ java Tegnsett

Blå bær øyne

Hva er problemet?

Her ser du problemet:

Kopierer inn programmet ditt på hjemmemaskinen (som bruker utf8 tegnsett):

$ javac Tegnsett.java 
$ java Tegnsett 
Blå bær øyne

Så kopierer vi filen til uio (som bruker ISO 8859-1 tegnsett):

Hvis filen er UTF8-enkodet og plattformen du kjører på bruker ISO-8859-1, må du angi dette når du kompilerer:

luke ~ $ file Tegnsett.java
Tegnsett.java: UTF-8 Unicode C++ program text
luke ~ $ javac -encoding UTF-8 Tegnsett.java
luke ~ $ java Tegnsett
Blå bær øyne

Javakompilatoren kan jo ikke gjette seg til dette...

javac Tegnsett.java 
Tegnsett.java:3: illegal character: \166
blåbærøyne();
  ^
Tegnsett.java:3: not a statement
blåbærøyne();
^
Tegnsett.java:3: illegal character: \184
blåbærøyne();
	 ^
Tegnsett.java:3: not a statement
blåbærøyne();
   ^
Tegnsett.java:6: illegal character: \166
static void blåbærøyne() {
			  ^
Tegnsett.java:6: illegal character: \184
static void blåbærøyne() {
				 ^
Tegnsett.java:6: invalid method declaration; return type required
static void blåbærøyne() {
				  ^
7 errors

 

Bruk av tegn utover det som er definert i standard ascii når man programerer er kjempe fy fy uavhengig av hvilke tegnset kompilator takler. Man skal _aldri_ bruke f. eks. norske tegn i kode.

 

Dette er altså en misforståelse som jeg prøver å oppklare! :)

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...