Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Scalaträff i Stockholm 8/9 fulltecknad
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 26 - 35 of 35 - Collapse all  -  Translate all to Translated (View all originals) < Older 
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Viktor Klang  
View profile   Translate to Translated (View Original)
 More options Jun 18 2010, 6:54 am
From: Viktor Klang <viktor.kl...@gmail.com>
Date: Fri, 18 Jun 2010 12:54:15 +0200
Local: Fri, Jun 18 2010 6:54 am
Subject: Re: [scala-sverige] Scalaträff i Stockholm 8/9 fulltecknad

Om jag inte minns fel så är vals i Scala backade av ett private field och en
getter-metod som du kan ändra visibility på,
så du har samma inkapsling som Java

2010/6/18 Olle Kullberg <olle.kullb...@gmail.com>

--
Viktor Klang
| "A complex system that works is invariably
| found to have evolved from a simple system
| that worked." - John Gall

Akka - the Actor Kernel: Akkasource.org
Twttr: twitter.com/viktorklang


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Peter Lewerin  
View profile   Translate to Translated (View Original)
 More options Jun 18 2010, 7:03 am
From: Peter Lewerin <peter.lewe...@swipnet.se>
Date: Fri, 18 Jun 2010 13:03:13 +0200
Local: Fri, Jun 18 2010 7:03 am
Subject: Re: [scala-sverige] Scalaträff i Stockholm 8/9 fulltecknad
Viktor Hedefalk skrev:

> Jag tycker dock att liknelsen med matematiska funktioner kan vara
> ganska kraftfull f r att f rklara "ren" FP.

Visst r den, det r bara jag som r verdrivet petig.  D rmed inte sagt
att jag har fel, f r det har jag inte :)

Det r ocks intressant att notera att m nga FP-k nnare r tydliga med
att p peka att Scala *inte* r FP, fast det h r v l iofs n stan till
genren.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jörgen Lundberg  
View profile   Translate to Translated (View Original)
 More options Jun 18 2010, 7:08 am
From: Jörgen Lundberg <jorgen.lundb...@gmail.com>
Date: Fri, 18 Jun 2010 13:08:46 +0200
Local: Fri, Jun 18 2010 7:08 am
Subject: Re: [scala-sverige] Scalaträff i Stockholm 8/9 fulltecknad
2010/6/18 Mikael Sundberg <mikael.sundber...@gmail.com>:

> http://cstjanster.idg.se/losnummer/?pid=23334&date=2010-6
> man kan köpa pdf om man tycker det är roligt. Det är nog enda sättet att
> läsa den online.
> /Micke

Här är den online:
http://computersweden.idg.se/2.2683/1.328072

/Jörgen


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jonas Bonér  
View profile   Translate to Translated (View Original)
 More options Jun 18 2010, 7:15 am
From: Jonas Bonér <jbo...@gmail.com>
Date: Fri, 18 Jun 2010 13:15:43 +0200
Local: Fri, Jun 18 2010 7:15 am
Subject: Re: [scala-sverige] Scalaträff i Stockholm 8/9 fulltecknad

2010/6/18 Jörgen Lundberg <jorgen.lundb...@gmail.com>

> 2010/6/18 Mikael Sundberg <mikael.sundber...@gmail.com>:
> > http://cstjanster.idg.se/losnummer/?pid=23334&date=2010-6
> > man kan köpa pdf om man tycker det är roligt. Det är nog enda sättet att
> > läsa den online.
> > /Micke

> Här är den online:
> http://computersweden.idg.se/2.2683/1.328072

Ok. Tack. Av mer an 30 min intervju blev det tva meningar citat. Hmm.

--
Jonas Bonér

work:   http://jayway.com
code:   http://akkasource.com
blog:    http://jonasboner.com
twitter: @jboner


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Christoffer Sawicki  
View profile   Translate to Translated (View Original)
 More options Jun 18 2010, 10:25 am
From: Christoffer Sawicki <christoffer.sawi...@gmail.com>
Date: Fri, 18 Jun 2010 16:25:15 +0200
Local: Fri, Jun 18 2010 10:25 am
Subject: Re: [scala-sverige] Scalaträff i Stockholm 8/9 fulltecknad
Såhär här har jag förstått det:

Om du vill gömma konstruktorargumenten så bör du inte heller använda
`case class`:er. Det stämmer att de saknar inkapsling, men det är inte
alltid man behöver det. Som Burak skriver så är de bara syntaktiskt
socker och vill du gömma något argument men ändå mönstermatcha så kan
du implementera din egen `unapply`. Exempel:

class Person(private val name: String, val age: Int)
object Person { def unapply(p: Person) = Some(p.age) }

scala> val o = new Person("olle", 123)
o: Person = Person@7e5284e9

scala> o match { case Person(n) if n > 18 => true; case _ => false }
res0: Boolean = true

Detta sagt, det känns lite konstigt att `private val` godkänns med
`case class` av kompilatorn.

Med vänlig hälsning,
Christoffer Sawicki

2010/6/18 Olle Kullberg <olle.kullb...@gmail.com>:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Viktor Klang  
View profile   Translate to Translated (View Original)
 More options Jun 18 2010, 10:29 am
From: Viktor Klang <viktor.kl...@gmail.com>
Date: Fri, 18 Jun 2010 16:29:54 +0200
Local: Fri, Jun 18 2010 10:29 am
Subject: Re: [scala-sverige] Scalaträff i Stockholm 8/9 fulltecknad

2010/6/18 Christoffer Sawicki <christoffer.sawi...@gmail.com>

Du kan även ha curried primary constructor:

case class Foo(age : Int)(awesomenessFactor : BigInt)

--
Viktor Klang
| "A complex system that works is invariably
| found to have evolved from a simple system
| that worked." - John Gall

Akka - the Actor Kernel: Akkasource.org
Twttr: twitter.com/viktorklang


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Joakim Ohlrogge  
View profile   Translate to Translated (View Original)
 More options Jun 18 2010, 10:54 am
From: Joakim Ohlrogge <joakim.ohlro...@gmail.com>
Date: Fri, 18 Jun 2010 16:54:27 +0200
Local: Fri, Jun 18 2010 10:54 am
Subject: Re: [scala-sverige] Scalaträff i Stockholm 8/9 fulltecknad

Jag brukade tycka att inkapsling var superviktigt, jag tycker inte att det
är lika viktigt längre. Jag tror att en anledning är att immutabilitet löser
en del problem jag tidigare använde inkapsling för att lösa. Jag tror att en
annan anledning är att jag tenderar att skriva kortare klasser nu (men fler)
och där varje klass har en mycket större andel publikt API än vad mina
äldre, större klasser hade. Jag tror att jag segmenterar koden på en annan
ledd nu.

Har inte inkapsling fått lite orättvist mycket fokus i OO? (Jag säger inte
att det är meningslöst och dåligt bara att det kanske fått mer uppmärksamhet
än det förtjänar, kanske främst för att c++, java och c# kräver att man
deklarerar och döljer sina fält).

När jag kodar i scala skriver jag ganska sällan private. Antagligen för att
man får inkapslade fält på köpet och för att det faller sig så naturligt att
hålla mängden mutabilitet nere och för att det är så väldigt enkelt att
bryta upp sina klasser i flera i scala.

Någon annan som börjat slappna av lite med inkapslingen eller tycker listan
att jag borde gå hem och smiska upp mig själv tills jag kommer upp på banan
igen?

-----------------------------------------------------
Joakim Ohlrogge
Agical AB
Västerlånggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
E-mail: joakim.ohlro...@agical.se

2010/6/18 Viktor Klang <viktor.kl...@gmail.com>


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Viktor Klang  
View profile   Translate to Translated (View Original)
 More options Jun 18 2010, 11:03 am
From: Viktor Klang <viktor.kl...@gmail.com>
Date: Fri, 18 Jun 2010 17:03:09 +0200
Local: Fri, Jun 18 2010 11:03 am
Subject: Re: [scala-sverige] Scalaträff i Stockholm 8/9 fulltecknad

2010/6/18 Joakim Ohlrogge <joakim.ohlro...@gmail.com>

> Jag brukade tycka att inkapsling var superviktigt, jag tycker inte att det
> är lika viktigt längre. Jag tror att en anledning är att immutabilitet löser
> en del problem jag tidigare använde inkapsling för att lösa. Jag tror att en
> annan anledning är att jag tenderar att skriva kortare klasser nu (men fler)
> och där varje klass har en mycket större andel publikt API än vad mina
> äldre, större klasser hade. Jag tror att jag segmenterar koden på en annan
> ledd nu.

Framförallt så gör ju möjligheten att skriva metod-definitioner inuti
metoder att man faktiskt kan undvika private-metoder i många fall.

> Har inte inkapsling fått lite orättvist mycket fokus i OO? (Jag säger inte
> att det är meningslöst och dåligt bara att det kanske fått mer uppmärksamhet
> än det förtjänar, kanske främst för att c++, java och c# kräver att man
> deklarerar och döljer sina fält).

Jag tror inte att man ska ha ett korståg för inkapsling utan att vara lite
pragmatisk och faktiskt applicera de tekniker som finns där de gör som mest
nytta.

> När jag kodar i scala skriver jag ganska sällan private. Antagligen för att
> man får inkapslade fält på köpet och för att det faller sig så naturligt att
> hålla mängden mutabilitet nere och för att det är så väldigt enkelt att
> bryta upp sina klasser i flera i scala.

Absolut, möjligheten att med en liten rad kod skapa en case-class skapar ju
incitament att faktiskt bryta upp sina klasser bättre.

> Någon annan som börjat slappna av lite med inkapslingen eller tycker listan
> att jag borde gå hem och smiska upp mig själv tills jag kommer upp på banan
> igen?

+1

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Olle Kullberg  
View profile   Translate to Translated (View Original)
 More options Jun 18 2010, 4:20 pm
From: Olle Kullberg <olle.kullb...@gmail.com>
Date: Fri, 18 Jun 2010 22:20:08 +0200
Local: Fri, Jun 18 2010 4:20 pm
Subject: Re: [scala-sverige] Scalaträff i Stockholm 8/9 fulltecknad

Hej Joakim, du skrev:

"Jag brukade tycka att inkapsling var superviktigt"

Intressant (vi släpper case-klasserna för stunden). Jag tillhör nog
fortfarande det gamla gardet där inkapsling fortfarande är numero uno. Min
syn på inkapsling har egentligen inte ändrats sedan C-tiden, där alla
publika funktioner deklarerades i header-filen, övriga blev privata. Jag
brukar tänka mig att i större system så bidrar inkapsling till att minska
den mentala belastningen på oss kodare. Vi har t.ex. en typisk klass med 20
metoder, varav bara 3 av dessa anropas utifrån. Vi har då två fall:

1) Alla 20 metoderna är publika.
2) Bara 3 metoder är publika, de som faktiskt anropas utifrån.

Alternativ 1) innebär att när du läser klassen så måste du tänka dig att
alla dessa metoder potentiellt kan anropas utifrån, något som kan vara
förvirrande. Alternativ 2) brukar göra det lättare för mig att refaktorisera
de 17 privata metoderna, eftersom jag vet att de bara används internt. I ett
statiskt typat språk som Scala är det oftast inte så svårt att kolla vilka
klasser som har beroende till en metod, men det medför ändå märkbar mental
belasting IMO.

För att närma sig dynamiska språk har Scala släppt på inkapsling genom att
göra default-synligheten till publik. Precis som du säger leder detta till
att man oftare väljer publik synlighet än tidigare. Mindre och fler klasser
är en enorm fördel med Scala, men har egentligen inget med inkapsling att
göra (om inte private används i dessa klasser d.v.s.)

Som Scalafanatiker och inkapslingsdiggare ligger mitt hopp nu alltså till
Actors (och Akka). Jag drömmer om en inkapsling lika obeveklig som den som
går att finna i Erlang:

"An Erlang system can be thought of as a communicating network of black
boxes."

(märk att inkapsling inte används inuti dessa svarta lådor (=aktörer), bara
mellan dem).

Hur som helst är det en spännande värld vi lever i... vi får se hur detta
utvecklar sig.

/mvh Olle

2010/6/18 Viktor Klang <viktor.kl...@gmail.com>

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Joakim Ohlrogge  
View profile   Translate to Translated (View Original)
 More options Jun 18 2010, 6:46 pm
From: Joakim Ohlrogge <joakim.ohlro...@agical.com>
Date: Sat, 19 Jun 2010 00:46:53 +0200
Local: Fri, Jun 18 2010 6:46 pm
Subject: Re: [scala-sverige] Scalaträff i Stockholm 8/9 fulltecknad

Inkapsling är inte struket från min lista men det är inte numero uno längre.
Fler och mindre klasser är som du säger inte inkapsling, det är mera...
segmentering. Segmentering är också ett sätt att förenkla användningen av
ditt system. Ditt publika api med 3 metoder på klass a delegerar i sin till
instanserna B och C som i sin tur har X publika metoder och kanske i sin tur
delegerar till ytterligare instanser. Här vägleder man användaren genom att
organisera sin kod så att det är tydligt vad som hör ihop och vilka
naturliga ingångar som finns tex genom paket osv.

Jag tror också att det kan vara mycket mer intressant att "gömma undan"
funktionalitet som privat om man skriver ett API som används av många som du
inte har snabb och enkel dialog med. Då kan du vilja försäkra dig om att
ditt system används på rätt sätt med mer än bara konvension. Det kan dock
bli lite tröttsamt att använda API:er som är allt för strikta i de
avseendena... det är en svår balans.

Viktors synpunkt om anonyma funktioner är också intressant, kanske far
mycket sådant som tidigare var privat in i ett pussel av funktioner som kan
kombineras ihop till funktionalitet bakom en eller flera olika publika
facader? Inkapsingen kanske inte har försvunnit, den har tagit en annan
form.

Erlang-exemplet är väldigt intressant för det är väl egentligen essensen av
OO, meddelande som skickas mellan "aktörer" trots att det ser så underligt
ut mot vad vi är vana vid. Ur den aspekten så tycker jag också att
inkapsling är intressant att kunna garantera att ingen annan pillar på
"mitt" state. Mycket av den problematiken kan man ju även angripa med
immutable objekt och pure functions. I erlang så snurrar ju statet så att
säga runt mellan aktörerna i form av meddelanden (om jag nu inte är helt ute
och snurrar, jag ska erkänna att jag mest läst om Erlang och inte så
mycket).

Kanske är det så att jag tar mer inkapsling för given nu och därmed inte
tror att jag bryr mig i lika stor utsträckning?

Ibland känner jag det som att scala ger dig mycket valfrihet i hur du vill
skriva ditt system men att man ofta väljer om man vill vara mer funktionell
eller mer objektorienterad och att det speglar större delar av systemet. Jag
upplever att bra OO ofta är "all tell" och bra FP ofta är "all ask" och att
det när man binder ihop dem kan bli lite... onaturligt att vända håll. Man
kan vara ganska all tell och OO mellan actors och ganska all ask och FP inom
actors men inte alltid att OO och FP möts så väl på samma plan? Kanske är
det beroende på vilket stilval man har gjort hur illa det känns att bända
bända ut värdena ur en case klass? På sätt och vis så är det ju lite det de
är till för, att kunna plocka det man vill ha ur dem med pattern-matching,
använder man sina case-klasser så så kanske de tenderar att vara lite
simplare databärare med mindre "betende" än vad som skulle kännas mer
"riktig" OO, Man vänder liksom ut och in på objekten. Det är en av de
sakerna som jag debatterar med mig själv nu och då. För tillfället föredrar
jag att hålla case-klasserna enkla, gärna oneliners, mer som structar i
syfte att matcha på dem. Entiteter i DDD termer?

Hur använder ni andra case klasser? Är det kanske så att de är för öppna för
vissa stilar men funkar bra med andra?
-----------------------------------------------------
Joakim Ohlrogge
Agical AB
Västerlånggatan 79, 2 tr
111 29 Stockholm, SWEDEN

Mobile: +46-708-754004
Blog: johlrogge.wordpress.com
E-mail: joakim.ohlro...@agical.se

2010/6/18 Olle Kullberg <olle.kullb...@gmail.com>

...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages < Older 
« Back to Discussions « Newer topic     Older topic »