Wow, it’s been quite a long time since i’ve blogged the last time (that’s for the one or other reason that would only bother you, so in essence – please excuse) . But now i can’t keep calm any longer, since there’s an increasing number of articles, claiming that e.g. Functional Programming – in particular using Scala – is too hard to get for the average programmer.
First of all, there isn’t any ‘Java Joe’ (as a synonym for all those so called ‘dumb’ Programmers) out there. Well ok, if it is, then i’m the ideal protoype of that Joe! And as such i can tell you, if you’re willing to learn some new ideas and try to improve your programming skills, than Scala may provide you with a bunch of whole new concepts, not only from the functional world (and i’m not even talking about type systems here).
In fact, i don’t care if it’s Scala, Haskell or any other language, as soon as it may widen my horizon. But i would answer to all those who think Scala is to hard to grasp, that it’s only a matter of how you would pick up those persons. Granted, it may be difficult to meet those ‘newcomers’ at their common ground – there are some complaints out there that some Scala community members might behave too elitist when it comes to blaming Scala as being too difficult (like ‘it’s not Scala which is too difficult, it’s only you who don’t understand it’).
Frankly, i can follow those complaints. If you’re willing to learn and may have some problems to grasp some blog posts about Scala (or any other language) or even some code snippets, it is by way no solution to retreat to a position, saying your just to dumb (or lazy or whatsoever) to get it. Spitting out some code snippets or short articles everey now and then is easy – especially if they come without any context or any larger explanation. That’s really the easy part! The hard part is meeting that so called average Java Joe at his level and escort him intellectually!
So as a community of Scala fellows (or in any other way), we need to stop judge over those large herd of programmers as being too dumb. That’s simply not true! There may be some individuals too sluggish to learn and excel. But for all those others, who may have a hard job and having no chance to deal and become proficient with Scala at day (and therefore have only some hours at night) , we need to provide a way of guidance. And that’s best done to face that before mentioned reality. It’s not the people who are dumb. We as a community are dumb if we don’t react to that reality and welcome those people on their ground!
In order to walk the talk, i decided to resume my work on writing about functional Scala! Hopefully some may still find it a useful intro to get into the ideas of functional programming in Scala.
November 27, 2011 at 10:12 pm
The design decision to keep the basic syntax of Scala “Java-friendly” was a wise one. It lets programmers familiar with Java (and other similar languages) begin using Scala on a basic level almost immediately. Then, functional programming and other advanced concepts can be introduced as they are mastered.
Another great asset is the book “Programming in Scala.” Coming from Martin Odersky, et al, it has the weight of authority. But more importantly, it is a well-written and informative book. A Java programmer with little or no prior experience in functional programming could begin enjoying the benefits of Scala after reading only a chapter or two.
November 28, 2011 at 6:35 pm
thanks for your feedback!
In fact, the syntactic similarity helped me a lot to get my first steps done in Scala! I still tend to write Scala-code in a more or less Java-style and then may massage it into a more Scala-like form if there are benefits.
Having read Martins (et al) book as the first intro to Scala, i can say that it brings a fair introduction to some basic concepts of functional programing. Yet, there’s far more to FP (achievable with Scala) than the book covers. That said, i think there might be a demand for a more systematic introduction into Functional Scala, as the interest into FP seems to raise within mainstream development. That was one of my points here – we can’t simply throw some bites of functional Scala here and there without meeting all those developers new to the most concepts of FP at their common ground. If we want to reduce the complaints about ‘Scala’s too complex’, we simply can’t claim to climb this ladder alone, yet all those great luminaries need to pick them up down at earth …
May 15, 2017 at 8:20 pm
that has excellent taste :o)I rather like Bad For Good, but then I also like Gonzo Noir. It suits it. After all, it’s so Gonzo that after reading it you feel as though you’ve turned into Hunter S Thompson ovithegnr. So I’ll go with seanag’s option.
November 28, 2011 at 10:51 am
“Java Joe” comes from “Average Joe” and is not dumb, but average. When one speaks of “Java Joe”, one mean the general developer. Or median developer if you are more statistically inclined.
November 28, 2011 at 6:44 pm
thanks for your clarification!
I think my statement still holds as the most voices treat that average developer as not capable to grasp those ‘complex’ concepts. Unfortunately, this argument is used from both sides: concerns are justified by saying ‘it’s too hard for the average programmer’. Scala Advocates may bark back, that not the Language, but the average programmer IS the problem in itself by not getting to the hard things. For me, both point of views are not very helpful in coming together. So in essence, the argument of ‘being too dumb’ isn’t conducive.
November 28, 2011 at 4:29 pm
Hi Mario. I’m a Java programmer of many years, since the first official JVM. Very interested in Scala and lately have been using the PLAY Framework which I am loving. 2.0 promises even better Scala support. So if you want to continue writing learning Scala posts, I’ll be tuning in, thx. Oh and regarding the difficulty. It’s the same argument that has been used against Java lately. More than the language, I think it’s the frameworks that have soiled the Java name. PLAY was a breath of fresh air and proved that you can break down the barriers and still keep a full featured performant OO language.
November 28, 2011 at 6:58 pm
Thanks for your feedback!
Yep, Play 2.0 seems to be very cool – i like the new template concept (‘it’s only functions’) for myself, but haven’t dived into it very deeply yet.
As for writing some more posts about functional Scala – i definitely will and hope you’ll also enjoy the posts. Looking forward to see ya :o)
November 28, 2011 at 5:03 pm
Between the “you are not smart enough to get Scala” crap and the fact that I don’t see any benefit to it, (Oh right it is soooo expressive) I don’t see any reason to take the time to learn it. It has an admittedly steep learning curve, but is there any payoff?
Why don’t I just learn JRuby?
November 28, 2011 at 5:34 pm
Because JRuby isn’t typesafe, perhaps?
November 28, 2011 at 6:55 pm
thanks for your feedback – your position for not learning Scala is a personal (‘not seeing any benefit’) and of course valid one! But then (on the other hand) you might not finally judge about the possible payoff, since you can’t tell from your own experience. That’s the whole point of my statement: you may engage yourself with a language and come to the conclusion that there may be no benefit for you. But you can’t speak for others (the average Java Joe) and say they won’t get it only because you may have some issues with it.
November 28, 2011 at 11:06 pm
I would suggest learning groovy instead.
November 28, 2011 at 6:47 pm
I agree with Mikael Grev in that the definition of “Java Joe” is used more frequently to describe an average programmer and by average I mean “someone who takes little initiative to teach themselves new languages let alone an entirely new programming paradigm” or more commonly known as “a nine to fiver”. The single fact that you are trying to expand your horizon by learning Scala and the functional paradigm takes you out of that category. Lastly, Scala has a steep learning curve for those who come from OO only or functional only paradigms. If you have a working knowledge of both paradigms the learning curve is not steep at all.
November 29, 2011 at 9:28 pm
thanks for your feedback!
As i wrote above, i think the ‘average Programmer’ or ‘Java Joe’ shouldn’t be used as a valid argument when it comes to judging about the complexity of a Language. As said, it’s in no way helpful to come to a solution! Personally, i’ve never met those Joes. Who is? You? Me? Your team member? Neither the Scala advocates nor the ‘opponents’ have a ‘right’ to refer to that Joe, because there is simply no prototype of that Joe! I strongly believe that it’s possible (at least partly) to pick those newcomers up and help them get on the street, provided there’s an ‘intellectual guidance’ …
May 15, 2017 at 7:56 pm
i can't believe google won't create a version for powerpc. It's happened: google's become large, powerful, and now just a bunch a don..ebagsc..haud i actually envied their lazy office practices.
November 28, 2011 at 7:45 pm
Nice post. I was missing your blog. You also disappeared for a while from twitter as well. Welcome back! 🙂
I totally agree with the fact that the Scala community has some work to do regarding this assumed ‘complexity’. Doesn’t matter if Scala is complex or not, the fact is that it’s perceived as such by many. In my opinion, this happens because of different reasons:
1) new syntax, most java developers are only used to read java;
2) new concepts, most java developers are not used to new concepts (some are still digesting generics);
3) most of the blogs out there are about functional programming and are not guiding the java community through this new multi-paradigm path;
I believe that Scala is getting a lot of visibility at the moment and we, the Scala community, must grab this opportunity to help demystify it. And of course, Play! 2.0 will be a very important piece on that puzzle. The move of Typesafe towards Play! Framework was a very strategic one and reveals their commitment to promote Scala as a general purpose language.
November 29, 2011 at 9:31 pm
thank you very much for your warm welcome!
I think you hit the nail with what you’ve said – i have no more words to add! 🙂
May 15, 2017 at 7:10 pm
I whhdaoeertelly agree with this. I prefer the old version above the new version tbh and would not like to have the new one forced onto me.Also, I’m a member of this site yet have to give my name and email every time I reply to a lol. Did I miss something despite being logged in?
November 29, 2011 at 12:45 am
I do not agree that learning Scala somehow makes you smarter.
November 29, 2011 at 9:36 pm
concratulations! For it seems you already know most ot the stuff, i for myself was introduced to a whole new world of problem solving and how to look at programs and programming when facing Scala (and some other languages like Haskell / Scheme) the first time. I’m still at the journey and know that there’s a big amount of stuff before me that a can learn to improve, hopefully to be one day at the level where you already are!
May 15, 2017 at 8:00 pm
One of my retlousions is meal planning, and I already saw an improvement in my grocery bill. And this way, I don’t have to stare at the fridge every night wondering what to make for dinner, and usually resorting to take out or something not as healthy as I would like it to be. So far so good –
May 31, 2017 at 6:02 pm
Actually, Caera, I think you’d make an excellent spy. Just like Nathan, you’d be the most least-likely candidate. Like sending a little old woman to smuggle drugs through an airport…
November 29, 2011 at 9:22 am
[…] reading here: There's no average, dumb Java Joe! « brain driven development This entry was posted in Post test and tagged ideal, learn-some, programmers, the-ideal by […]
November 29, 2011 at 4:43 pm
Some say you should put the dot on the “i”.
In your case, I believe writing it uppercase would already be an improvement.
December 14, 2011 at 3:19 am
To be fair, most (if not all) of the “not smart enough for Scala” comments come from people who don’t like Scala and complains that the “average Java programmer” (whatever that means) won’t get it ( which I find very insulting )
I think anyone who have learn Scala, will say is not difficult.
Even more, sometimes you get the opposite of the claim: the experts in “weird” functional techniques claim is not really hard and everybody should be capable to understand it.
December 30, 2012 at 12:59 pm
nice post.. 🙂
May 15, 2017 at 7:11 pm
Bien.Ceci posÃ©, on se doit aussi de pester contre le &lrnbo;&nusp;Coqtae Venise » de RÃ©gis Debray, d’une grande stupiditÃ© ma foi.