<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Resisting Scala &#8211; Why good managers resist great new technologies</title>
	<atom:link href="http://punetech.com/resisting-scala-why-good-managers-resist-great-new-technologies/feed/" rel="self" type="application/rss+xml" />
	<link>http://punetech.com/resisting-scala-why-good-managers-resist-great-new-technologies/</link>
	<description>Connecting together Pune&#039;s Technologists</description>
	<lastBuildDate>Wed, 08 Feb 2012 09:03:24 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: abhi</title>
		<link>http://punetech.com/resisting-scala-why-good-managers-resist-great-new-technologies/#comment-23174</link>
		<dc:creator>abhi</dc:creator>
		<pubDate>Tue, 13 Jul 2010 11:31:08 +0000</pubDate>
		<guid isPermaLink="false">http://punetech.com/?p=1602#comment-23174</guid>
		<description>very good article. learned a lot after reading. one question - any update with respect to lift 2.0? does it have good future? will it be able to make bread and butter (and have it eaten from within a golden bowl)?

I am asp.net developer and looking for a change. 

and i am stuck at ruby or groovy or scala or foobar</description>
		<content:encoded><![CDATA[<p>very good article. learned a lot after reading. one question &#8211; any update with respect to lift 2.0? does it have good future? will it be able to make bread and butter (and have it eaten from within a golden bowl)?</p>
<p>I am asp.net developer and looking for a change. </p>
<p>and i am stuck at ruby or groovy or scala or foobar</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dhananjay Nene</title>
		<link>http://punetech.com/resisting-scala-why-good-managers-resist-great-new-technologies/#comment-7639</link>
		<dc:creator>Dhananjay Nene</dc:creator>
		<pubDate>Tue, 25 Aug 2009 10:18:22 +0000</pubDate>
		<guid isPermaLink="false">http://punetech.com/?p=1602#comment-7639</guid>
		<description>&lt;i&gt;Aside: This schizophrenic post commenting is hard (separating I the me from I the manager). In this comment below, I refers to the manager&lt;/i&gt;

@KS in particular and the tech community in general.

Seems like attempting to educate is boomeranging on me by questioning my abilities or inclinations to educate myself. So lets quickly get some relevant facts on the table.

I don&#039;t really really need to adopt Scala (or any new technology) right now. There is no business imperative to do that. I can choose to wait. And I can choose to see if things really work out well for it. Whats my business cost if I defer adoption for a little while more ? Frankly quite little. What I will do is to have a low priority thread to further educate myself but until I feel comfortable about the risk/return tradeoff for my customers in my context I shall keep it exactly that - low priority. 

You paraphrased me correctly when measured in accuracy terms. But I feel brutally victimised when I read between the lines. Since there is a tone there which is very uncomfortable for me. And that tone makes me seem like a lazy bum or unconcerned about investing in technology - whereas I tend to believe I am focused more and most on where it is most important - my customers. Believe me, my customers aren&#039;t telling me to adopt Scala yet and they are unlikely to do so for a long time. 

Frankly, to make Scala great (assuming for a moment already - it isn&#039;t) - I&#039;m not required. Thats not a contribution I am inclined to make. I am not even per se excited by the goodness and greatness of Scala since at the end of the day I shall measure it based on the ROI it offers to me and my customers. So really, don&#039;t bother pleasing me or even reading me if making Scala a wonderfully elegant language is what is your goal. I am a non player in that space. 

But if Scala needs to achieve mainstream popularity, and especially if it needs to achieve it relatively sooner, I am a player. When I am sold, I can carry my team with it. Along with that I bring in the ability to convince my customers to assume the risk. And if I am successful, I bring in the ability of getting more developers, managers and customers excited about it. That is the key to mainstream popularity, and I can play the role of one of the early dominos to fall. 

And if serving it all to me on the platter is seemingly what I am asking for, whats wrong with it ? Afterall, in return, if successful, I shall be getting you a whole new bunch of converts, proponents and cheerleaders. And if you think it is a one way street where me adopting it successfully gets me better pay packets and promotion, be sure to realise that if it fails, I shall be the one to take the hit as well.

The question isn&#039;t really me or my attitude. I&#039;ve been wasting my time if thats what you got out of this whole discussion. The question is if a good sexy piece of technology does need to get to mainstream popularity, am I a relevant participant given all my so called laziness, inattention and serve me attitude ? And if indeed I am a relevant participant, I&#039;ve described what increases my probability of success. I believe I see some good in adopting Scala, and I think there is a good likelihood of doing so one day. But I can afford to wait, not because the technology is good or great or otherwise - simply because I will do the shift only when I am convinced for a proper risk/return characteristic for me and my customers. I will do the shift when the technology is &lt;i&gt;usable&lt;/i&gt; as measured from my perspective.</description>
		<content:encoded><![CDATA[<p><i>Aside: This schizophrenic post commenting is hard (separating I the me from I the manager). In this comment below, I refers to the manager</i></p>
<p>@KS in particular and the tech community in general.</p>
<p>Seems like attempting to educate is boomeranging on me by questioning my abilities or inclinations to educate myself. So lets quickly get some relevant facts on the table.</p>
<p>I don&#8217;t really really need to adopt Scala (or any new technology) right now. There is no business imperative to do that. I can choose to wait. And I can choose to see if things really work out well for it. Whats my business cost if I defer adoption for a little while more ? Frankly quite little. What I will do is to have a low priority thread to further educate myself but until I feel comfortable about the risk/return tradeoff for my customers in my context I shall keep it exactly that &#8211; low priority. </p>
<p>You paraphrased me correctly when measured in accuracy terms. But I feel brutally victimised when I read between the lines. Since there is a tone there which is very uncomfortable for me. And that tone makes me seem like a lazy bum or unconcerned about investing in technology &#8211; whereas I tend to believe I am focused more and most on where it is most important &#8211; my customers. Believe me, my customers aren&#8217;t telling me to adopt Scala yet and they are unlikely to do so for a long time. </p>
<p>Frankly, to make Scala great (assuming for a moment already &#8211; it isn&#8217;t) &#8211; I&#8217;m not required. Thats not a contribution I am inclined to make. I am not even per se excited by the goodness and greatness of Scala since at the end of the day I shall measure it based on the ROI it offers to me and my customers. So really, don&#8217;t bother pleasing me or even reading me if making Scala a wonderfully elegant language is what is your goal. I am a non player in that space. </p>
<p>But if Scala needs to achieve mainstream popularity, and especially if it needs to achieve it relatively sooner, I am a player. When I am sold, I can carry my team with it. Along with that I bring in the ability to convince my customers to assume the risk. And if I am successful, I bring in the ability of getting more developers, managers and customers excited about it. That is the key to mainstream popularity, and I can play the role of one of the early dominos to fall. </p>
<p>And if serving it all to me on the platter is seemingly what I am asking for, whats wrong with it ? Afterall, in return, if successful, I shall be getting you a whole new bunch of converts, proponents and cheerleaders. And if you think it is a one way street where me adopting it successfully gets me better pay packets and promotion, be sure to realise that if it fails, I shall be the one to take the hit as well.</p>
<p>The question isn&#8217;t really me or my attitude. I&#8217;ve been wasting my time if thats what you got out of this whole discussion. The question is if a good sexy piece of technology does need to get to mainstream popularity, am I a relevant participant given all my so called laziness, inattention and serve me attitude ? And if indeed I am a relevant participant, I&#8217;ve described what increases my probability of success. I believe I see some good in adopting Scala, and I think there is a good likelihood of doing so one day. But I can afford to wait, not because the technology is good or great or otherwise &#8211; simply because I will do the shift only when I am convinced for a proper risk/return characteristic for me and my customers. I will do the shift when the technology is <i>usable</i> as measured from my perspective.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: KS</title>
		<link>http://punetech.com/resisting-scala-why-good-managers-resist-great-new-technologies/#comment-7637</link>
		<dc:creator>KS</dc:creator>
		<pubDate>Tue, 25 Aug 2009 09:05:50 +0000</pubDate>
		<guid isPermaLink="false">http://punetech.com/?p=1602#comment-7637</guid>
		<description>Here&#039;s how I read the response. Do correct me if I&#039;m wrong, and please do not take the first-person singular pronoun &quot;I&quot; personally:

&quot;I&#039;m an extremely busy manager in an industry that builds software, but have no time or inclination to understand technology that&#039;s used to build it.
I&#039;m too busy managing persons, logistics, deadlines, financial targets, escalations, conflicts to have any time left over for looking at technology.
I shouldn&#039;t be expected to take the time and effort to understand technology to build a potentially better product --- that&#039;s far too idealistic and irrelevant to the way things work. On the contrary, it is the new technology and the people behind it who need me to get popular and attain widespread acceptance. 
In fact, it&#039;s the larger community that needs to accept my humility in admiting my difficult position and must do the work of building productivity tools, instructive manuals and tutorials, reducing my technology-related risk to zero, and give me all the ROI and risk analyses that my superiors may demand from me. Don&#039;t bother knocking on my doors unless you have done all of this.
Of course if the technology works, I get the kudos and the larger pay packet for all the work that the community did. Life isn&#039;t fair, so don&#039;t expect me to change my ways.

Einstein can say what he wants, but technology must be made so simple as possible, and even simpler to appeal to the lowest common denominator.

WIMP may have given us the Mac, Simula may have given us Smalltalk/C++/Ruby, Lisp may have begot(?) a bastardized nephew in the form of XML (a quote attributed to Philip Wadler), Pascal p-code machines may have ended up as JVMs but none of these technologies/tools/languages/artifacts were rock-star-level in their appeal, so, in effect, they have failed.&quot;</description>
		<content:encoded><![CDATA[<p>Here&#8217;s how I read the response. Do correct me if I&#8217;m wrong, and please do not take the first-person singular pronoun &#8220;I&#8221; personally:</p>
<p>&#8220;I&#8217;m an extremely busy manager in an industry that builds software, but have no time or inclination to understand technology that&#8217;s used to build it.<br />
I&#8217;m too busy managing persons, logistics, deadlines, financial targets, escalations, conflicts to have any time left over for looking at technology.<br />
I shouldn&#8217;t be expected to take the time and effort to understand technology to build a potentially better product &#8212; that&#8217;s far too idealistic and irrelevant to the way things work. On the contrary, it is the new technology and the people behind it who need me to get popular and attain widespread acceptance.<br />
In fact, it&#8217;s the larger community that needs to accept my humility in admiting my difficult position and must do the work of building productivity tools, instructive manuals and tutorials, reducing my technology-related risk to zero, and give me all the ROI and risk analyses that my superiors may demand from me. Don&#8217;t bother knocking on my doors unless you have done all of this.<br />
Of course if the technology works, I get the kudos and the larger pay packet for all the work that the community did. Life isn&#8217;t fair, so don&#8217;t expect me to change my ways.</p>
<p>Einstein can say what he wants, but technology must be made so simple as possible, and even simpler to appeal to the lowest common denominator.</p>
<p>WIMP may have given us the Mac, Simula may have given us Smalltalk/C++/Ruby, Lisp may have begot(?) a bastardized nephew in the form of XML (a quote attributed to Philip Wadler), Pascal p-code machines may have ended up as JVMs but none of these technologies/tools/languages/artifacts were rock-star-level in their appeal, so, in effect, they have failed.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dhananjay Nene</title>
		<link>http://punetech.com/resisting-scala-why-good-managers-resist-great-new-technologies/#comment-7634</link>
		<dc:creator>Dhananjay Nene</dc:creator>
		<pubDate>Tue, 25 Aug 2009 06:10:13 +0000</pubDate>
		<guid isPermaLink="false">http://punetech.com/?p=1602#comment-7634</guid>
		<description>KS,

Great set of points. But you&#039;ve actually re-questioned very issue I was raising. Should the community expect such manager&#039;s to come up the curve or should it step forward and help him without being judgemental.

If a language has to be made popular, it has to be made easy for a lot of folks including the manager above. Shaking the head, and saying all it needs is better intelligence, more than average effort etc. are not directly relevant. I&#039;ve already described the manager to be busy in tons of issues and unlikely to have the time to spend on learning and coming to terms with Scala, and yet having the disarming honesty to appeal for help. 

To expect that managers will have the time and inclination to always go out and learn more is like making a statement &quot;the world needs to be fair&quot; - accurate but irrelevant. The rationale to it lies in organisational structures and management control systems the way they are conventionally structured. To expect either of them to be modified to come knocking on the doors of Scala (or any other technology) without a clear driving force of what it means in terms of an ROI is simply wishful thinking. I&#039;ve been through the phase of decrying how management works (never actually left it in my mind) and would submit that it sometimes is more useful to adapt rather than critique based on the local context.

But this post raises an interesting counterpoint which I quote below.

&lt;blockquote&gt;So folks, I am asking for your help. And while a lot of you may think that people like us who balk at the thought of limited IDE support are wimps, please remember that 80% of us don’t fit into the top 20%. And if you would like Scala to be popular, you need us as much as we need you. And if you are not too sure, please remember Lisp and Smalltalk are great languages as well.&lt;/blockquote&gt;

One of the great things management processes teach you is if there is an impediment in your goals - go figure out what it is and do what it takes (often bending over backwards) to get rid of it. There is no pride or arrogance or (and quite unfortunately sometimes I&#039;m afraid) morals involved. These are sufferances which are not widely observed. Thats a trait that might not be entirely forgotten in this context.

What I do point out is that if Scala (or for that matter any other technologies) need to achieve mainstream popularity, it will not just be a question of &quot;build and they shall come&quot;. One will not have to only build great technical stuff, but also go out and sell it to the possible users often overcoming arrogance in the process. Thats the reference I make to when I refer to wimps/IDE in that quote and also to the fact that Lisp and Smalltalk are great languages too - but they are nowhere near what one would term as having reached mainstream popularity.</description>
		<content:encoded><![CDATA[<p>KS,</p>
<p>Great set of points. But you&#8217;ve actually re-questioned very issue I was raising. Should the community expect such manager&#8217;s to come up the curve or should it step forward and help him without being judgemental.</p>
<p>If a language has to be made popular, it has to be made easy for a lot of folks including the manager above. Shaking the head, and saying all it needs is better intelligence, more than average effort etc. are not directly relevant. I&#8217;ve already described the manager to be busy in tons of issues and unlikely to have the time to spend on learning and coming to terms with Scala, and yet having the disarming honesty to appeal for help. </p>
<p>To expect that managers will have the time and inclination to always go out and learn more is like making a statement &#8220;the world needs to be fair&#8221; &#8211; accurate but irrelevant. The rationale to it lies in organisational structures and management control systems the way they are conventionally structured. To expect either of them to be modified to come knocking on the doors of Scala (or any other technology) without a clear driving force of what it means in terms of an ROI is simply wishful thinking. I&#8217;ve been through the phase of decrying how management works (never actually left it in my mind) and would submit that it sometimes is more useful to adapt rather than critique based on the local context.</p>
<p>But this post raises an interesting counterpoint which I quote below.</p>
<blockquote><p>So folks, I am asking for your help. And while a lot of you may think that people like us who balk at the thought of limited IDE support are wimps, please remember that 80% of us don’t fit into the top 20%. And if you would like Scala to be popular, you need us as much as we need you. And if you are not too sure, please remember Lisp and Smalltalk are great languages as well.</p></blockquote>
<p>One of the great things management processes teach you is if there is an impediment in your goals &#8211; go figure out what it is and do what it takes (often bending over backwards) to get rid of it. There is no pride or arrogance or (and quite unfortunately sometimes I&#8217;m afraid) morals involved. These are sufferances which are not widely observed. Thats a trait that might not be entirely forgotten in this context.</p>
<p>What I do point out is that if Scala (or for that matter any other technologies) need to achieve mainstream popularity, it will not just be a question of &#8220;build and they shall come&#8221;. One will not have to only build great technical stuff, but also go out and sell it to the possible users often overcoming arrogance in the process. Thats the reference I make to when I refer to wimps/IDE in that quote and also to the fact that Lisp and Smalltalk are great languages too &#8211; but they are nowhere near what one would term as having reached mainstream popularity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dhananjay Nene</title>
		<link>http://punetech.com/resisting-scala-why-good-managers-resist-great-new-technologies/#comment-7633</link>
		<dc:creator>Dhananjay Nene</dc:creator>
		<pubDate>Tue, 25 Aug 2009 05:07:23 +0000</pubDate>
		<guid isPermaLink="false">http://punetech.com/?p=1602#comment-7633</guid>
		<description>Navneet,

There&#039;s some fairly decent feedback on the original post itself here : http://blog.dhananjaynene.com/2009/08/why-should-i-switch-to-scala/#comments

&lt;blockquote&gt;Keep me posted when you summarize your findings.&lt;/blockquote&gt;

You&#039;ve to read very carefully between the lines to realise this post is the findings and not a question (since it is presented as a roleplay). But if I had to represent the information as findings (my personal subjective opinions), these would be :

a. Functional programming : Ditch FP - Intially just treat Scala as an OO language. Build (and use FP skills later)
b. Different Syntax : The syntax is different. Invest in learning it. No way around it. But should that even be an issue for good programmers ?
c. Sample Code : The community needs to invest more in writing and publishing sample code.
d. Dumbed Down Environment : From all I know, IDE seem to be getting better. Both eclipse and netbeans have scala support and its getting better even though it may not satisfy the laziest (I choose the word carefully) developers.
e. Good time to shift: Java shop and not single Scala project in the pipeline ? Reconsider, and try to at least start building the skill sets in a lower risk / criticality or internal development project.
f. Support from peers ? Go do some work and start communicating internally to start building support. Sun helped you through with Java - its not going to in this case. But you (the manager) still have to do what you gotto do.
g. Business friendliness : Start a small development project internally and start getting some feedback. Its your job to assume for the worst case but its also your job to take measured and managed forward steps - doesn&#039;t Scala look like one which deserves the latter ?</description>
		<content:encoded><![CDATA[<p>Navneet,</p>
<p>There&#8217;s some fairly decent feedback on the original post itself here : <a href="http://blog.dhananjaynene.com/2009/08/why-should-i-switch-to-scala/#comments" rel="nofollow">http://blog.dhananjaynene.com/2009/08/why-should-i-switch-to-scala/#comments</a></p>
<blockquote><p>Keep me posted when you summarize your findings.</p></blockquote>
<p>You&#8217;ve to read very carefully between the lines to realise this post is the findings and not a question (since it is presented as a roleplay). But if I had to represent the information as findings (my personal subjective opinions), these would be :</p>
<p>a. Functional programming : Ditch FP &#8211; Intially just treat Scala as an OO language. Build (and use FP skills later)<br />
b. Different Syntax : The syntax is different. Invest in learning it. No way around it. But should that even be an issue for good programmers ?<br />
c. Sample Code : The community needs to invest more in writing and publishing sample code.<br />
d. Dumbed Down Environment : From all I know, IDE seem to be getting better. Both eclipse and netbeans have scala support and its getting better even though it may not satisfy the laziest (I choose the word carefully) developers.<br />
e. Good time to shift: Java shop and not single Scala project in the pipeline ? Reconsider, and try to at least start building the skill sets in a lower risk / criticality or internal development project.<br />
f. Support from peers ? Go do some work and start communicating internally to start building support. Sun helped you through with Java &#8211; its not going to in this case. But you (the manager) still have to do what you gotto do.<br />
g. Business friendliness : Start a small development project internally and start getting some feedback. Its your job to assume for the worst case but its also your job to take measured and managed forward steps &#8211; doesn&#8217;t Scala look like one which deserves the latter ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: KS</title>
		<link>http://punetech.com/resisting-scala-why-good-managers-resist-great-new-technologies/#comment-7632</link>
		<dc:creator>KS</dc:creator>
		<pubDate>Tue, 25 Aug 2009 05:03:27 +0000</pubDate>
		<guid isPermaLink="false">http://punetech.com/?p=1602#comment-7632</guid>
		<description>I find this as much a post about dealing with incompetence and mediocrity as about dealing with new languages/technologies/tools. I am not a Scala fanboy, and am not trying to stand up for Scala in particular, but against some of the managers who try to pass off technical incompetence as real-world software-engineering considerations. Note: This is neither a personal attack against the author in particular, nor a diatribe against all managers in general.  


Functional Programming: 

Sadly, 99% of all managers and programmers have never been exposed to functional languages, and so don&#039;t really understand either their features, or their generality. 
	Q: Does Functional Programming help me in this context?
	A: Probably not in the specific context, unless you&#039;re doing some nontrivial processing of the data read from the database. If you have to hit a nail, a hammer is generally a good tool. If you have never used a hammer for this purpose, investing some time to try it out will probably not be a bad idea.
 	Q: Will my team scale into being able to write functions with no side effects assuming that’s a desirable goal?
	A: Functional programming isn&#039;t really centered on purity. You can be impure (mutate data structures) and still be a bonafide functional programmer. Functional programming, among other things, is as much about type safety, higher-order programming, and pattern matching, to name a few features. As for your team scaling, Scala, doesn&#039;t seem to force the functional features onto the programmer. You could always start small, learn, and grow. At the outset, it would be good to have a reason to use Scala in the first place. A reason that is more concrete than following some blog that claims that it&#039;s the best thing since sliced bread.
	Q: What if they tie themselves up in knots and my release to the customer is risked?
	A: They can just as easily do it with any other language, even one they claim to fully understand and love.
	Q: Is functional programming even desirable in such contexts?
	A: Functional programming languages are general purpose languages. This question is just as valid as the question &quot;Are imperative/logic/stack-based/object-oriented languages desirable in context X?&quot;. I assume that this question is more than just rhetorical and that the managers would actually work and get an answer. 
	&quot;I am so confused, and afraid.&quot;
	Education helps get rid of both. Being a manager shouldn&#039;t mean that one stops being technically aware.

BTW, if the typical application is simply to read from databases, do some processing (I assume really trivial processing), and then write back, and Java works perfectly fine, then I&#039;m not sure why look at something else.


Different Syntax:

A college graduate with at least a few years of experience should really be technically mature enough to be able to surmount small difficulties posed by new syntax. Again, I consider this a lack of competency masquerading as a technical consideration. I can appreciate the existence of a learning curve in understanding when to use a feature, the set of available libraries, the APIs, programming styles, but getting stuck at the level of syntax is mediocrity posing as a technical challenge.

&gt;&gt; ..it is much easier for a Java programmer to read (make sense of) simple Python code than to read Scala code.
If your manager claims to love Perl and raises this issue, fire him instantly. As for Python, it also has functional features, and can be fairly terse. Ask your manager who claims this to explain as to why this code (reproduced from http://www.ibm.com/developerworks/library/l-prog.html) is more readable to a programmer used to C++/Java, than what it would be in Scala.

bigmuls = lambda xs,ys: filter(lambda (x,y):x*y &gt; 25, combine(xs,ys))
combine = lambda xs,ys: map(None, xs*len(ys), dupelms(ys,len(xs)))
dupelms = lambda lst,n: reduce(lambda s,t:s+t, map(lambda l,n=n: [l]*n, lst))
print bigmuls((1,2,3,4),(10,15,3,22))

I don&#039;t think that the syntactic differences are so great between Scala and C++/Java, and hence do not consider this as a valid issue.


Sample code:

A simple Google search is only a few keystrokes away.  http://www.ibm.com/developerworks/java/library/j-scala12228.html gives a good introduction to Scala in the context of developing web applications. For more general examples, please look at &quot;Scala by example&quot; (by Martin Odersky himself), and a longer http://www.artima.com/shop/programming_in_scala (also by Odersky (and others)). 

Dumbed down environment:

Scala already seems to have an Eclipse plugin, but I have another problem here: Why is dumbing down tools a good thing (especially if you can still learn a few things and be as productive or more productive)? The point is, would you rather have programmers who know make/Ant enough to be able to read it/debug it, or be completely dependent on the existence of an IDE which spoonfeeds them all the time? I&#039;m not a masochistic 25x80-green-monochromatic-text-terminal person, but really, your team members who *must* rely on these tools aren&#039;t different, they are probably just not as competent or more productive, the availability of productivity tools notwithstanding. 

	Q: Is this a good time to shift to Scala?
	A: Has there ever been a good time to shift to C++? It&#039;s still evolving (with fairly fundamental changes that are still being written about in research papers).  If your team needs to be &quot;retrained&quot; on new releases, then it&#039;s incompetent. While backward feature/bug compatibility is a genuine issue, it’s as relevant to Java as it is to Scala, as it is to the next standard for XML/C++/C#/EcmaScript/???.


Support from peers and superiors:

I assume that a good manager would be able to 
		1. Understand enough technology to ascertain if benefits clearly outweigh risks. If the manager claims to be a non-technical person, then I expect her/him to have enough trust in a competent technical person to get this analysis right, and then to use it without prejudice.
		2. Be lucid enough (and dumb down the technical stuff enough, if necessary) to convince nontechnical superiors


Business friendliness:

I have yet to hear a completely objective and quantitative ROI-based analysis of any particular platform/language/tool (Maybe I just haven&#039;t looked in the right places, or hard enough, and would love to know more on this. I&#039;m also not convinced that there is a way to have a real-life scenario comparing two options where you start with equally talented teams) --- why is Scala any different. Did you really get Microsoft to give you a list of concrete metrics with which they defended the existence of the .NET platform?</description>
		<content:encoded><![CDATA[<p>I find this as much a post about dealing with incompetence and mediocrity as about dealing with new languages/technologies/tools. I am not a Scala fanboy, and am not trying to stand up for Scala in particular, but against some of the managers who try to pass off technical incompetence as real-world software-engineering considerations. Note: This is neither a personal attack against the author in particular, nor a diatribe against all managers in general.  </p>
<p>Functional Programming: </p>
<p>Sadly, 99% of all managers and programmers have never been exposed to functional languages, and so don&#8217;t really understand either their features, or their generality.<br />
	Q: Does Functional Programming help me in this context?<br />
	A: Probably not in the specific context, unless you&#8217;re doing some nontrivial processing of the data read from the database. If you have to hit a nail, a hammer is generally a good tool. If you have never used a hammer for this purpose, investing some time to try it out will probably not be a bad idea.<br />
 	Q: Will my team scale into being able to write functions with no side effects assuming that’s a desirable goal?<br />
	A: Functional programming isn&#8217;t really centered on purity. You can be impure (mutate data structures) and still be a bonafide functional programmer. Functional programming, among other things, is as much about type safety, higher-order programming, and pattern matching, to name a few features. As for your team scaling, Scala, doesn&#8217;t seem to force the functional features onto the programmer. You could always start small, learn, and grow. At the outset, it would be good to have a reason to use Scala in the first place. A reason that is more concrete than following some blog that claims that it&#8217;s the best thing since sliced bread.<br />
	Q: What if they tie themselves up in knots and my release to the customer is risked?<br />
	A: They can just as easily do it with any other language, even one they claim to fully understand and love.<br />
	Q: Is functional programming even desirable in such contexts?<br />
	A: Functional programming languages are general purpose languages. This question is just as valid as the question &#8220;Are imperative/logic/stack-based/object-oriented languages desirable in context X?&#8221;. I assume that this question is more than just rhetorical and that the managers would actually work and get an answer.<br />
	&#8220;I am so confused, and afraid.&#8221;<br />
	Education helps get rid of both. Being a manager shouldn&#8217;t mean that one stops being technically aware.</p>
<p>BTW, if the typical application is simply to read from databases, do some processing (I assume really trivial processing), and then write back, and Java works perfectly fine, then I&#8217;m not sure why look at something else.</p>
<p>Different Syntax:</p>
<p>A college graduate with at least a few years of experience should really be technically mature enough to be able to surmount small difficulties posed by new syntax. Again, I consider this a lack of competency masquerading as a technical consideration. I can appreciate the existence of a learning curve in understanding when to use a feature, the set of available libraries, the APIs, programming styles, but getting stuck at the level of syntax is mediocrity posing as a technical challenge.</p>
<p>&gt;&gt; ..it is much easier for a Java programmer to read (make sense of) simple Python code than to read Scala code.<br />
If your manager claims to love Perl and raises this issue, fire him instantly. As for Python, it also has functional features, and can be fairly terse. Ask your manager who claims this to explain as to why this code (reproduced from <a href="http://www.ibm.com/developerworks/library/l-prog.html" rel="nofollow">http://www.ibm.com/developerworks/library/l-prog.html</a>) is more readable to a programmer used to C++/Java, than what it would be in Scala.</p>
<p>bigmuls = lambda xs,ys: filter(lambda (x,y):x*y &gt; 25, combine(xs,ys))<br />
combine = lambda xs,ys: map(None, xs*len(ys), dupelms(ys,len(xs)))<br />
dupelms = lambda lst,n: reduce(lambda s,t:s+t, map(lambda l,n=n: [l]*n, lst))<br />
print bigmuls((1,2,3,4),(10,15,3,22))</p>
<p>I don&#8217;t think that the syntactic differences are so great between Scala and C++/Java, and hence do not consider this as a valid issue.</p>
<p>Sample code:</p>
<p>A simple Google search is only a few keystrokes away.  <a href="http://www.ibm.com/developerworks/java/library/j-scala12228.html" rel="nofollow">http://www.ibm.com/developerworks/java/library/j-scala12228.html</a> gives a good introduction to Scala in the context of developing web applications. For more general examples, please look at &#8220;Scala by example&#8221; (by Martin Odersky himself), and a longer <a href="http://www.artima.com/shop/programming_in_scala" rel="nofollow">http://www.artima.com/shop/programming_in_scala</a> (also by Odersky (and others)). </p>
<p>Dumbed down environment:</p>
<p>Scala already seems to have an Eclipse plugin, but I have another problem here: Why is dumbing down tools a good thing (especially if you can still learn a few things and be as productive or more productive)? The point is, would you rather have programmers who know make/Ant enough to be able to read it/debug it, or be completely dependent on the existence of an IDE which spoonfeeds them all the time? I&#8217;m not a masochistic 25&#215;80-green-monochromatic-text-terminal person, but really, your team members who *must* rely on these tools aren&#8217;t different, they are probably just not as competent or more productive, the availability of productivity tools notwithstanding. </p>
<p>	Q: Is this a good time to shift to Scala?<br />
	A: Has there ever been a good time to shift to C++? It&#8217;s still evolving (with fairly fundamental changes that are still being written about in research papers).  If your team needs to be &#8220;retrained&#8221; on new releases, then it&#8217;s incompetent. While backward feature/bug compatibility is a genuine issue, it’s as relevant to Java as it is to Scala, as it is to the next standard for XML/C++/C#/EcmaScript/???.</p>
<p>Support from peers and superiors:</p>
<p>I assume that a good manager would be able to<br />
		1. Understand enough technology to ascertain if benefits clearly outweigh risks. If the manager claims to be a non-technical person, then I expect her/him to have enough trust in a competent technical person to get this analysis right, and then to use it without prejudice.<br />
		2. Be lucid enough (and dumb down the technical stuff enough, if necessary) to convince nontechnical superiors</p>
<p>Business friendliness:</p>
<p>I have yet to hear a completely objective and quantitative ROI-based analysis of any particular platform/language/tool (Maybe I just haven&#8217;t looked in the right places, or hard enough, and would love to know more on this. I&#8217;m also not convinced that there is a way to have a real-life scenario comparing two options where you start with equally talented teams) &#8212; why is Scala any different. Did you really get Microsoft to give you a list of concrete metrics with which they defended the existence of the .NET platform?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Navneet Karnani</title>
		<link>http://punetech.com/resisting-scala-why-good-managers-resist-great-new-technologies/#comment-7624</link>
		<dc:creator>Navneet Karnani</dc:creator>
		<pubDate>Mon, 24 Aug 2009 13:25:18 +0000</pubDate>
		<guid isPermaLink="false">http://punetech.com/?p=1602#comment-7624</guid>
		<description>I don&#039;t know about the language syntax and the works about Scala, but I hear the JavaPosse podcast and know from there that Netbeans has excellent support for Scala. You may want to evaluate that.

I am very interested in the feedback you get on all the points you have raised, since I have been thinking about these things too.

Keep me posted when you summarize your findings.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know about the language syntax and the works about Scala, but I hear the JavaPosse podcast and know from there that Netbeans has excellent support for Scala. You may want to evaluate that.</p>
<p>I am very interested in the feedback you get on all the points you have raised, since I have been thinking about these things too.</p>
<p>Keep me posted when you summarize your findings.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

