This page is no longer maintained — Please continue to the home page at www.scala-lang.org

scala meta debate

7 replies
H-star Development
Joined: 2010-04-14,
User offline. Last seen 2 years 26 weeks ago.

hi,

recently, my inbox was flooded by lots of and even more mails that contained, from my point of view, unproductive content. i am referring to
* scala is too complex, how to make it more simple, what is complexity
* yammer moving away from scala (which turned out to be wrong)

there was a lot of jumping at everything. please, slow down. if you have a specific idea which you want to discuss, start a new thread. good ideas will go lost in the flood of mails since most people will start skipping many. stay focused. keep the goal in mind. it will make it easier for everyone to follow you.
be respectful. assume the other guy to be as smart as you, he probably is - he just has a different viewpoint. if someone isn't taken seriously, he'll not share his or her ideas.

Simon Ochsenreither
Joined: 2011-07-17,
User offline. Last seen 42 years 45 weeks ago.
Re: scala meta debate
Thank you!

Imho that was really necessary.

One of the things which really annoy me are those page-long complaints and discussions about documentation. Why don't people write 4 paragraphs of documentation instead of spending 2 pages complaining about the lack of it?

Would be nice if we could get a more constructive approach here too.


Thanks and bye,

Simon
H-star Development
Joined: 2010-04-14,
User offline. Last seen 2 years 26 weeks ago.
Re: Re: scala meta debate

-------- Original-Nachricht --------
> Datum: Fri, 2 Dec 2011 04:55:28 -0800 (PST)
> Von: Simon Ochsenreither
> An: scala-debate [at] googlegroups [dot] com
> Betreff: [scala-debate] Re: scala meta debate

> Thank you!
>
> Imho that was really necessary.
>
> One of the things which really annoy me are those page-long complaints and
> discussions about documentation. Why don't people write 4 paragraphs of
> documentation instead of spending 2 pages complaining about the lack of
> it?
>
> Would be nice if we could get a more constructive approach here too.
>
>
> Thanks and bye,
>
> Simon

a good starting point should be here:
http://docs.scala-lang.org/cheatsheets/

imo, a sheet covering 90% of scala can fit on a few well structured pages

Jeff Nowakowski
Joined: 2011-11-30,
User offline. Last seen 42 years 45 weeks ago.
Re: scala meta debate

On 12/02/2011 07:13 AM, Dennis Haupt wrote:
>
> recently, my inbox was flooded by lots of and even more mails that
> contained, from my point of view, unproductive content.

Then don't read those threads. The whole point of the debate list is so
that these kind of discussions can be had.

> yammer moving away from scala (which turned out to be wrong)

It was not wrong. I assume you're referring to this link:

http://eng.yammer.com/blog/2011/11/30/scala-at-yammer.html

That's just spin. I challenge anybody to read that link in tandem with
the following paragraph from the original post:

"Right now at Yammer we're moving our basic infrastructure stack over to
Java, and keeping Scala support around in the form of façades and legacy
libraries. It's not a hurried process and we're just starting out on it,
but it's been a long time coming. The essence of it is that the friction
and complexity that comes with using Scala instead of Java isn't offset
by enough productivity benefit or reduction of maintenance burden for it
to make sense as our default language. We'll still have Scala in
production, probably in perpetuity, but going forward our main
development target will be Java."

This is never refuted in the link above.

H-star Development
Joined: 2010-04-14,
User offline. Last seen 2 years 26 weeks ago.
Re: Re: scala meta debate

-------- Original-Nachricht --------
> Datum: Fri, 02 Dec 2011 08:34:27 -0500
> Von: Jeff Nowakowski
> An: scala-debate [at] googlegroups [dot] com
> Betreff: [scala-debate] Re: scala meta debate

> On 12/02/2011 07:13 AM, Dennis Haupt wrote:
> >
> > recently, my inbox was flooded by lots of and even more mails that
> > contained, from my point of view, unproductive content.
>
> Then don't read those threads. The whole point of the debate list is so
> that these kind of discussions can be had.

i'm not saying everybody should stay silent, but how many of these mails actually identified problems or brought up solutions, and how many could have just been deleted without losing information?

the kind of discussions that i read before ignoring the mails make sense in small groups with very short response times (a chat maybe, or even a real life discussion), but the scala debate list is imo too big for this.

>
> > yammer moving away from scala (which turned out to be wrong)
>
> It was not wrong. I assume you're referring to this link:
>
> http://eng.yammer.com/blog/2011/11/30/scala-at-yammer.html
>
> That's just spin. I challenge anybody to read that link in tandem with
> the following paragraph from the original post:
>
> "Right now at Yammer we're moving our basic infrastructure stack over to
> Java, and keeping Scala support around in the form of façades and legacy
> libraries. It's not a hurried process and we're just starting out on it,
> but it's been a long time coming. The essence of it is that the friction
> and complexity that comes with using Scala instead of Java isn't offset
> by enough productivity benefit or reduction of maintenance burden for it
> to make sense as our default language. We'll still have Scala in
> production, probably in perpetuity, but going forward our main
> development target will be Java."
>
> This is never refuted in the link above.
>

sergei
Joined: 2011-03-29,
User offline. Last seen 1 year 20 weeks ago.
Re: scala meta debate

From my point of view, what's happening is an indication that Scala
has broken out of its initial circle of early adopters and is now
spreading over a wider, much more diverse population. The very
diversity of these new converts brings forward psychological and
social issues - sometimes shocking - that heretofore were of little
importance for rather homogeneous group of experienced programming
language polyglots mostly interested in discussing technical merits of
this or that design choice in Scala.

When issues of "talent inequality", "personal insecurity", "business
need", "corporate blame-shifting games", and other non-technical
issues are brought up as possible explanations for the phenomena we
are observing, many early adopters feel uncomfortable, because,
understandably, these themes are either not relevant or outright
taboos in their tightly-knit circle of true gentlemen.

In a context of a a broader slice of humanity though, the
psychological and social issues dominate the technical ones. I, for
instance, regularly have to make choices about what people we'd build
a team from, and what technologies we'd use to satisfy the company's
business needs, all in a way that keeps our team winning and safe in
the never-ending corporate game of fighting for resources and covering
one's rear.

I have to assess the talent (which is about 50% genetically
determined, according to a massive body of peer-reviewed research),
and psychological self-image (personal insecurity routinely results in
bouts of depression and/or resorting to blame-shifting under pressure
- huge team morale destroyers and productivity sinks).

On the technology front, I have to match the enhanced productivity
enabled by more advanced tools like Scala with the inherent complexity
of the project and learning rate of specific team members, and at
times (actually, in majority of cases so far), I would come to a
conclusion that using Scala would be counterproductive and a simpler,
more familiar to team members technology would do.

So I developed some mental models which, while not being 100%
accurate, are more helpful than the unrealistic homogeneous one that
leads to the "let's respect and treat everyone equally" attitude. If I
choose to present it on five levels, it is a "bicycle/car/truck/
airplane/fighter jet" analogy.

Clearly, virtually everyone can learn to ride a bicycle, which is not
the fastest means of transportation, yet it suffices in many cases
(think JavaScript). Progressing up the levels, we find that more and
more of genetically-determined inherent ability and learning time is
required to master a quicker, more advanced means of transportation. I
consider Scala+Akka+etc. to be at the airplane level (debatable of
course, just my personal opinion:-).

Naturally, this is a crude analogy - driving a Formula One car for
instance may be more challenging than piloting a Cessna - yet I hope
you get my drift. Also roughly, the level of compensation generally
grows with progression up the levels: this includes tangible and
intangible benefits.

Based on this mental model, I don't consider my assessment of a
particular hire candidate or existing team member as not suitable for
being trained by the company to become an "airplane pilot" as
belittling. Neither do I consider excessive my usually rather sharp
reaction to people playing unfair blame-shifting games. Sometimes such
guys, regrettably, need to be fired on the spot in order to keep the
team cohesive and project on track. Nothing personal ...

I talked before about the trap that some of less capable programmers
fall into (apologies for "belittling" again). Based on superficial
similarities, they expect Scala to be just as easy to learn and use as
JavaScript. When they encounter the true Scala learning curve, some of
them "break down" and enter the blame-shifting mode. You can't argue
with such a person in such a state logically, because acknowledging
the truth endangers his or her self-image, which usually has very
little margin for being further "belittled".

The best we can do is to set realistic expectation regarding Scala. It
is a powerful, sophisticated tool that, once mastered, allows one to
do more with less, quicker. Yet it doesn't come for free. A certain
level of inherent math ability is required. The training may induce
acute vertigo in some recruits. And the training itself is rather
lengthy and in fact never-ending. Yet after one is through its crucial
part, he or she becomes one of "the few, the proud", with lots of
tangible and intangible benefits.

By the way, I'm a big fan of probabilistic graphical models, and the
notion of inherent imprecision they entail, so I never consider my own
mental models 100% accurate or universally applicable. I always
welcome input (respectful or otherwise:-) that helps making them more
accurate and broadly applicable. Fire at will ;-)

John Nilsson
Joined: 2008-12-20,
User offline. Last seen 42 years 45 weeks ago.
Re: Re: scala meta debate

While I agree with the general principles of your arguments I think it is dangerous to assume it's application ls in specific situation.

Due to various cognitive biases we all apply in interpreting data it may very well be that we are unable to accurately assess the situation and mistakenly interpret a perfectly good complaint an instance of negative blame shifting.

Take the leaked mail as an example, to to me it seems like the perfect data point for further polishing Scala. I expect someone heavily invested in Scala with subconscious sensation of this being risky to interpret the same information as a threat and deal with it as such.

Whenever I have a strong emotional reaction I try to analyse any particular bias that might be active in my interpretation of the situation. Not an easy thing to do but often very enlightening. Often enough I discovered that it's the result of cognitive dissonance from not having fully understood the implications of my assumptions and decisions.

What starts out as a conflict ends up as an opportunity to learn something.

One exercise that is particularly enlightening is to assume that those people that are obviously very wrong did not arrive at their stance out of stupidity, laziness and ignorance. What if they employed the same effort and rigorous analysis as I to arrive at their conclusion? There must then be something very interesting to learn from the disagreement!

BR,
John

Den 4 dec 2011 19:19 skrev "Sergei" <hello [dot] sergei [at] gmail [dot] com>:
From my point of view, what's happening is an indication that Scala
has broken out of its initial circle of early adopters and is now
spreading over a wider, much more diverse population. The very
diversity of these new converts brings forward psychological and
social issues - sometimes shocking - that heretofore were of little
importance for rather homogeneous group of experienced programming
language polyglots mostly interested in discussing technical merits of
this or that design choice in Scala.

When issues of "talent inequality", "personal insecurity", "business
need", "corporate blame-shifting games", and other non-technical
issues are brought up as possible explanations for the phenomena we
are observing, many early adopters feel uncomfortable, because,
understandably, these themes are either not relevant or outright
taboos in their tightly-knit circle of true gentlemen.

In a context of a a broader slice of humanity though, the
psychological and social issues dominate the technical ones. I, for
instance, regularly have to make choices about what people we'd build
a team from, and what technologies we'd use to satisfy the company's
business needs, all in a way that keeps our team winning and safe in
the never-ending corporate game of fighting for resources and covering
one's rear.

I have to assess the talent (which is about 50% genetically
determined, according to a massive body of peer-reviewed research),
and psychological self-image (personal insecurity routinely results in
bouts of depression and/or resorting to blame-shifting under pressure
- huge team morale destroyers and productivity sinks).

On the technology front, I have to match the enhanced productivity
enabled by more advanced tools like Scala with the inherent complexity
of the project and learning rate of specific team members, and at
times (actually, in majority of cases so far), I would come to a
conclusion that using Scala would be counterproductive and a simpler,
more familiar to team members technology would do.

So I developed some mental models which, while not being 100%
accurate, are more helpful than the unrealistic homogeneous one that
leads to the "let's respect and treat everyone equally" attitude. If I
choose to present it on five levels, it is a "bicycle/car/truck/
airplane/fighter jet" analogy.

Clearly, virtually everyone can learn to ride a bicycle, which is not
the fastest means of transportation, yet it suffices in many cases
(think JavaScript). Progressing up the levels, we find that more and
more of genetically-determined inherent ability and learning time is
required to master a quicker, more advanced means of transportation. I
consider Scala+Akka+etc. to be at the airplane level (debatable of
course, just my personal opinion:-).

Naturally, this is a crude analogy - driving a Formula One car for
instance may be more challenging than piloting a Cessna - yet I hope
you get my drift. Also roughly, the level of compensation generally
grows with progression up the levels: this includes tangible and
intangible benefits.

Based on this mental model, I don't consider my assessment of a
particular hire candidate or existing team member as not suitable for
being trained by the company to become an "airplane pilot" as
belittling. Neither do I consider excessive my usually rather sharp
reaction to people playing unfair blame-shifting games. Sometimes such
guys, regrettably, need to be fired on the spot in order to keep the
team cohesive and project on track. Nothing personal ...

I talked before about the trap that some of less capable programmers
fall into (apologies for "belittling" again). Based on superficial
similarities, they expect Scala to be just as easy to learn and use as
JavaScript. When they encounter the true Scala learning curve, some of
them "break down" and enter the blame-shifting mode. You can't argue
with such a person in such a state logically, because acknowledging
the truth endangers his or her self-image, which usually has very
little margin for being further "belittled".

The best we can do is to set realistic expectation regarding Scala. It
is a powerful, sophisticated tool that, once mastered, allows one to
do more with less, quicker. Yet it doesn't come for free. A certain
level of inherent math ability is required. The training may induce
acute vertigo in some recruits. And the training itself is rather
lengthy and in fact never-ending. Yet after one is through its crucial
part, he or she becomes one of "the few, the proud", with lots of
tangible and intangible benefits.

By the way, I'm a big fan of probabilistic graphical models, and the
notion of inherent imprecision they entail, so I never consider my own
mental models 100% accurate or universally applicable. I always
welcome input (respectful or otherwise:-) that helps making them more
accurate and broadly applicable. Fire at will ;-)
sergei
Joined: 2011-03-29,
User offline. Last seen 1 year 20 weeks ago.
Re: scala meta debate

Thank you for the thoughtful answer, John.

The criteria I applied to distinguish between the "perfectly good
complaint" and "negative blame shifting" are as follows:

- A complaint would be delivered directly to someone who could do
something constructive about it - in this case, Typesafe.
- A complaint would be specific, it would mention at least rough
numbers and measures of negative impact.

Blame shifting is typically characterized by:

- Vague yet severely negative statements about a third party delivered
up the management chain.
- The aforementioned third party is not notified in advance, or ever,
about the negative statements.

I agree that I could be biased, and I agree that something very
interesting could be learned from the disagreement. Yet my bias comes
from rather painful real-life encounters with corporate blame-
shifters, and my learning resulted in realization that one can't
rationally argue with people engaged in such behavior. It is much more
productive to fight them by exposing what they do, and then keep them
at a good distance, as one can never feel safe with them close and
behind one's back.

Could be a mild case of PTSD on my part, I admit :-) Yet my reaction
was sincere and, in my view, justified.

Best,
Sergei.

On Dec 4, 11:34 am, John Nilsson wrote:
> While I agree with the general principles of your arguments I think it is
> dangerous to assume it's application ls in specific situation.
>
> Due to various cognitive biases we all apply in interpreting data it may
> very well be that we are unable to accurately assess the situation and
> mistakenly interpret a perfectly good complaint an instance of negative
> blame shifting.
>
> Take the leaked mail as an example, to to me it seems like the perfect data
> point for further polishing Scala. I expect someone heavily invested in
> Scala with subconscious sensation of this being risky to interpret the same
> information as a threat and deal with it as such.
>
> Whenever I have a strong emotional reaction I try to analyse any particular
> bias that might be active in my interpretation of the situation. Not an
> easy thing to do but often very enlightening. Often enough I discovered
> that it's the result of cognitive dissonance from not having fully
> understood the implications of my assumptions and decisions.
>
> What starts out as a conflict ends up as an opportunity to learn something.
>
> One exercise that is particularly enlightening is to assume that those
> people that are obviously very wrong did not arrive at their stance out of
> stupidity, laziness and ignorance. What if they employed the same effort
> and rigorous analysis as I to arrive at their conclusion? There must then
> be something very interesting to learn from the disagreement!
>
> BR,
> John

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland