--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
Hi Mario,This list, and many others like it, is missing a critical part: liabilities.It's a general rule when you are pitching something: if you only paint a rosy picture without any downside, at best, your audience will be skeptical, at worst, they will doubt either your honesty or whether you have a balanced view of the picture you are painting.At this point, you have already wasted your time.Thinking of the downsides of something you like is always a worthy exercise, even if you have no intention of pitching it to anyone.For example, a big missing piece in your description is the poor IDE (and tooling in general) situation. You like Scala so you probably don't care, or you decided that the upsides of Scala were worth the pain in this particular area but try to put yourself in the shoes of someone who's interested but not as enthusiastic as yourself. Will these limitations be acceptable?Some of your other points can also easily be countered by someone with a reasonable technical background. You don't need to be an expert in programming language for wondering if a reduction in lines of code is always a net gain (see Perl). Your point about readability is also very subjective (what will you respond if somebody picks a random commit from the Scalaz project and asks you if you really think this is readable code?).You should avoid using subjective statements in pitches because they tend to polarize your audience: people sympathetic to your views will nod, people with a bit of skepticism will feel a stronger urge to object.Your point about smarter people is a very dangerous one to make, not just because of the kind of attitude that it projects but because it's borderline insulting to the existing Java programmers in your company. You need them as allies in this battle, the last thing you want to do is alienate them with this kind of condescending (and largely unproven) claimAlso, be wary of claims that can be easily contradicted (e.g. "If LinkedIn uses Scala, how come they don't have any open positions for Scala developers?"). At least, spend the time to do the research that can be easily verified or people will just dismiss you as a fan who shouldn't be trusted for this kind of critical strategic decision.Any CTO worth their salt will probably ask you to go over your list again and rewrite it with a more critical eye.--Cédric
I think what stops a lot of folks from learning another language is
not always the language dynamics, but the chore of deploying a
solution in that language, as well. This is the big appeal of any new
jvm based language, deploying a solution should be the exact same as
if you deploying a java solution. There is something nice about that.
On 07/05/2011 12:51 AM, Kevin Wright wrote:
>
>
> No doubt there's some room for improvement, but your response was
> perhaps a little too harsh here. Let's try a small rewrite:
>
> LESS CODE => LESS TIME => LESS MONEY
>
> The important point here is reduction in verbosity, specifically in
> the boilerplate at which Java excels:
> - multiple repetition when specifying types
Yes. (*)
> - repetition of names in backing fields, getter methods, parameters to
> setter methods, maybe also constructor params
No.
> - the need to create a loop when performing a trivial mapping over
> some collection
Yes & no.
> - equals and hashCode methods
No.
> - SAM types
Please elaborate.
> - poor choice of defaults (why isn't public final the norm unless
> otherwise specified?)
Yes.
Points above marked with no: use Lombok and the verbosity is gone.
Lombok is not a trick, it's just an application of Java language and
tooling features and it's IDE-friendly. To me today people writing Java
code and blaming Java for that kind of boilerplate and not using Lombok
are just willing to hurt themselves.
(*) Lombok takes also care of the point marked with (*) by the 'val'
construct, but - while it works - I classify it into trickery, so I
don't use it and I understand people preferring not using it.
Point marked with yes & no: I'd rather say it's a library problem, not a
language problem. There are libraries offering collection with predicate
support; the objection would just be the verbosity of the predicate (no
closures).
--
Fabrizio Giudici - Java Architect, Project Manager
Tidalwave s.a.s. - "We make Java work. Everywhere."
java.net/blog/fabriziogiudici - www.tidalwave.it/people
Fabrizio...@tidalwave.it
1. Lombok is not a hack. It's the use of a specific language element
(annotations) and related tools (annotation processor). Annotation are
the way Java has been designed to be extended (in a constrained way).
It's still "pure" Java, as pure as the other annotations (e.g.
@Transactional, etc...) are. Clearly, the extension scope is narrower
than the use of another language (e.g. no traits, no operator
overloading, etc... (*)).
2. Exactly because the extension scope is narrow, using annotations is
much simpler than moving to Scala.
(*) I know about people using annotations and annotation processors to
implement traits in Java. This is probably pushing annotations too much.
Also, be wary of cclaims that can be easily contradicted (e.g. "If LinkedIn uses Scala, how come they don't have any open positions for Scala developers?"). At least, spend the time to do the research that can be easily verified or people will just dismiss you as a fan who shouldn't be trusted for this kind of critical strategic decision.
Any CTO worth their salt will probably ask you to go over your list again and rewrite it with a more critical eye.--Cédric
I think the main problem is the sustained brain-drain Java is suffering for years now.
If we're lucky those people leaving Java just went to Scala, if not there talent is lost completely for the JVM world.
But, Cedric, LinkedIn does use Scala, they host our monthly Scala meetings, and at each meeting they stand up and say that they are on the look out for more Scala developers. Also, after conversations with you in the past I have asked straight out whether LinkedIn is using Scala, or whether it is tailing off, and each person I ask says that Scala usage within LinkedIn is constantly increasing.
Actually, it's much worse than simply not having any Scala position...
http://www.linkedin.com/jsearch/sh?keywords=jvm&company=LinkedIn&searchLocationType=Y&sortCriteria=R
Or perhaps they're simply finding enough people from the BASE meetings and internal cross training, without having to filter the inevitable junk applications that come from online advertising...
2011/7/5 Cédric Beust ♔ <ced...@beust.com>:
One more thought about:> the need to create a loop when performing a trivial mapping over some collection
As you may or may not know, there is a pretty bad performance problem with for comprehensions in Scala at the moment, and it'ssevere to the point where the only workaround at the moment is to fall back to writing an imperative while loop.
This is the kind of tiny detail that can totally wipe your argument from several angles: 1) for comprehensions are great but you should avoid them if you need performance (so Scala's performance is not on par with Java's after all), 2) it shows the immaturity of the compiler (you claim both the compiler and the tools are mature) and 3) this is reminiscent of C++, which was riddled with this kind of weird behaviors resulting from the interaction of the crazy amount of features that the language supports.--Cédric
On Mon, Jul 4, 2011 at 11:33 AM, Mario Fusco <mario...@gmail.com> wrote:Hi all,
inspired by a discussion we started on this mailing list a few weeks
ago, I blogged my thoughts about why in my opinion the adoption of
Scala is a winning decision especially under a business point of view:
http://www.mate.it/en/component/content/article/84-perche-scala
I hope this could reopen that discussion by bringing new ideas and
clarifying the old ones.
Cheers,
Mario Fusco
http://twitter.com/mariofusco
--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
He is the anti-Kevin.
Nice try, but I don't think Cedric could find a single positive aspect of Scala, even if his live depended on it. :-)
On Jul 5, 4:54 pm, Kevin Wright <kev.lee.wri...@gmail.com> wrote:Could you elaborate on the OO advantages of Scala?
> Not to mention the (often overlooked) improved support for object oriented
> programming. Static methods and primitives are a carry-over from C++, and
> aren't at all object-oriented.
--
You received this message because you are subscribed to the Google Groups "The Java Posse" group.
To post to this group, send email to java...@googlegroups.com.
To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
> --
> You received this message because you are subscribed to the Google Groups "The Java Posse" group.
> To post to this group, send email to java...@googlegroups.com.
> To unsubscribe from this group, send email to javaposse+...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
>
>
--
Jeb Beich
http://www.jebbeich.com
Come on guys, he probably just means that he's able to find samples to
common problems by search the web far more easily in Java than in
Scala. That's true, and one of the strengths of Java clearly.