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

Is Scala the Next C++

107 replies
kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.

I have recently seen a number of discussions around issues like "is
Scala too complex, "is Scala too hard to learn," "Thinking in a
language vs. thinking into a language." etc.

I find these discussions fascinating as I often find myself on both
sides of the fence. At times I find coding in Scala increasingly
seductive and satisfying, at other times I try to read some of the
advanced code and concepts I see people discussing and I feel like a
moron who has no hope to ever grok what they mean, let alone simply
understand it. Often I just have to be satisfied that I get the gist
of it.

This sort of reminds me of my experience with C++. I started trying
the language as soon as there were competent compilers available and
enjoyed the new learning experience, trying to sample as many new
language features as I could and was generally able to master most of
them. However, after a while I was not writing code as often and ever
time I tried to start some new little project I found the start-up
cost of having to relearn C++ too high and switched back to C as much
as possible. My experience was that unless I used C++ continuously,
the overhead of coding was too high.

Eventually I took a class from Scott Meyers. My takeaway point from
that class was that there were programmers and there were type
designers. Type designers had to be very very good at type design. On
the other hand, with well designed type libraries and APIs, being a C+
+ programmers was not so bad after all.

After a while I did not do much C++ because I moved on to Objective-C
because I drank of the NeXT Cool-Aid. I really took to Objective-C
because it was was so much more simple to think in that language than C
++, and the NeXT types and APIs were awesome.

Eventually I moved on to Java and almost immediately became addicted
to the simplicity (over C++) and power (close to C++), but mostly to
the garbage collection. There was a reason I used to love writing code
in LISP.

Eventually I had a job where I had to look at some C++ code again, but
by then it was Microsoft C++ with ATL/COM. My first reaction was WTF?
How did this language get so messed up? Fortunately I was senior
enough I could just say "no way I am touching that!"

Eventually Java became my de facto language and I became increasingly
proficient with it. Then I started looking at Groovy and really liked
how much more expressive Groovy was, with minimal added complexity. I
found it hard to do much with Groovy because I could not convince my
colleagues of its value. Then I found Scala and tried to learn it but
had to bail because it was too confusing. But Scala is seductive!
Eventually I found my way back and became relatively proficient with
it. Yes, I can even write in a functional style and comprehend the
value of it. But I still cannot convince my colleagues of its value
either.

Martin Odersky's Levels http://www.scala-lang.org/node/8610 reminds me
very much of what I learned from Scott Meyers - that you do not need
to grok all of Scala to be proficient and productive in using it. I
personally hope to be able to transition some day from Java to Scala
as my main working language, but at the same time I am mindful of what
became of C++ because the geniuses who came up with ATL and COM.

What I am hoping we might debate is: what is to prevent Scala from
going the route of C++ (and maybe other trials and tribulations of
learning and using Scala). What are the barriers to adopting Scala,
and what compelling advantages does Scala offer to seduce us past
those barriers. Every week I see more barriers coming down because the
keepers of Scala work hard to remove them, but almost as often I see
people pointing out new barriers. Has Scala reached critical mass, or
are we still waiting for it?

Cheers, Eric

Raoul Duke
Joined: 2009-01-05,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk wrote:
> Martin Odersky's Levels http://www.scala-lang.org/node/8610 reminds me
> very much of what I learned from Scott Meyers - that you do not need
> to grok all of Scala to be proficient and productive in using it.

<$0.02 rant>personally i think that's total bull. people say the same
thing about java generics and other stuff, but inevitably even a
regular Joe will end up trying to use some library that ends up having
some issue behind the curtain that is some fubar advanced thing and
they are in a world of suck until either it gets fixed or they learn
about the advanced thing and fix it themselves or they get some cargo
cult help or whatever. if there is complexity in the language *then
there is complexity in the language*.

sincerely.

odersky
Joined: 2008-07-29,
User offline. Last seen 45 weeks 6 days ago.
Re: Is Scala the Next C++


On Tue, Sep 6, 2011 at 10:48 PM, Raoul Duke <raould [at] gmail [dot] com> wrote:
On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:
> Martin Odersky's Levels http://www.scala-lang.org/node/8610 reminds me
> very much of what I learned from Scott Meyers - that you do not need
> to grok all of Scala to be proficient and productive in using it.

<$0.02 rant>personally i think that's total bull. people say the same
thing about java generics and other stuff, but inevitably even a
regular Joe will end up trying to use some library that ends up having
some issue behind the curtain that is some fubar advanced thing and
they are in a world of suck until either it gets fixed or they learn
about the advanced thing and fix it themselves or they get some cargo
cult help or whatever. if there is complexity in the language *then
there is complexity in the language*.</$0.02 rant>

sincerely.

I don't agree. Your point does hold for Java generics, and that's why I have argued against wildcards from the start: wildcards shift complexity from the library designer to the library user. Your argument is empirically not true for Scala collections. They are about as complicated as you can get from an implementation point of view, yet they are widely acknowledled to be very nice to use. So Scala collections are a counter-example to your argument.

 -- Martin


--
Martin Odersky
Prof., EPFL and Chairman, Typesafe
PSED, 1015 Lausanne, Switzerland
Tel. EPFL: +41 21 693 6863
Tel. Typesafe: +41 21 691 4967

Raoul Duke
Joined: 2009-01-05,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

hi,

On Tue, Sep 6, 2011 at 1:55 PM, martin odersky wrote:
> I don't agree. Your point does hold for Java generics, and that's why I have
> argued against wildcards from the start: wildcards shift complexity from the
> library designer to the library user. Your argument is empirically not true
> for Scala collections. They are about as complicated as you can get from an
> implementation point of view, yet they are widely acknowledled to be very
> nice to use. So Scala collections are a counter-example to your argument.

i appreciate that you in general claim to try to worry about things
being overly complex and confusing, and have made efforts to avoid
that.

in my personal use of the collections, which was most recently like 6
months ago, i recall being frustrated with them at times; perhaps it
was just my newness to scala and the documentation and the general
sugar available at times. actually i think a lot of it might be the
syntax sugar. well, that and the various scala syntax conventions.
there are the real issues of how the collections have used inheritance
choices which only work for some but not all use cases, etc.

anyway, even if collections happened to be a perfect little world of
perfect usability for all types of users, the questions that get
posted on the lists make it pretty clear to me that Scala has enough
things that feel like corners to make it feel more akin to C++'s
seemingly arbitrary complexity than Java's painfully over-verbose but
for the most part stupid simple obviousness. scala might actually even
be doing a great job of following some core principles, but they end
up with things like the val 1 = 2 usability silliness.

now, nobody is being forced to use Scala, i'm not even saying it has
to change; there are obviously plenty of people loving it.

i'm just saying that i find it patently silly for people to claim that
the complexities (or powers, whatever you want to brand it as :-) of
Scala will never impact a Regular Joe Newbie Low-Brow Programmer.
(probably a lot of my view is because i am not immersed in it, which i
take to mean i am not inured to the sometimes from my personal
usability viewpoint crazy stuff.)

sincerely.

Seth Tisue
Joined: 2008-12-16,
User offline. Last seen 34 weeks 3 days ago.
Re: Is Scala the Next C++

On Tue, Sep 6, 2011 at 4:45 PM, Eric Kolotyluk wrote:
> What I am hoping we might debate is: what is to prevent Scala from
> going the route of C++

Good Scala code — and I mean good ordinary Scala code, not just the
cutting-edge stuff some people are experimenting with — is a joy to
read and write. Whereas even the best C++ code is... C++. As you say,
"Scala is seductive." C++ is not. I suggest you tune out the FUD and
trust in the pleasure you've experienced writing Scala.

Any resemblance between Scala and C++ is superficial. Scala isn't C++,
and besides, that was then, this is now. There isn't an older language
that's analogous to Scala except in limited respects. Not C++, and not
anything else. But somehow the human mind can't accept that, it wants
to find some X and think, "Scala is the new X". That's how we approach
something new, is by comparing it to our past experience. (My own mind
tends to make parallels between Scala and Common Lisp, the last
industrial-strength language I really enjoyed programming in.)

So I understand the thought path that leads people to draw analogies
between Scala and C++. But those analogies are, for the most part,
unhelpful. Scala isn't the new X. It's Scala. Have fun with it!

kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++


On Tue, Sep 6, 2011 at 1:55 PM, martin odersky <martin [dot] odersky [at] epfl [dot] ch> wrote:


On Tue, Sep 6, 2011 at 10:48 PM, Raoul Duke <raould [at] gmail [dot] com> wrote:
On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:
> Martin Odersky's Levels http://www.scala-lang.org/node/8610 reminds me
> very much of what I learned from Scott Meyers - that you do not need
> to grok all of Scala to be proficient and productive in using it.

<$0.02 rant>personally i think that's total bull. people say the same
thing about java generics and other stuff, but inevitably even a
regular Joe will end up trying to use some library that ends up having
some issue behind the curtain that is some fubar advanced thing and
they are in a world of suck until either it gets fixed or they learn
about the advanced thing and fix it themselves or they get some cargo
cult help or whatever. if there is complexity in the language *then
there is complexity in the language*.</$0.02 rant>

sincerely.

I don't agree. Your point does hold for Java generics, and that's why I have argued against wildcards from the start: wildcards shift complexity from the library designer to the library user. Your argument is empirically not true for Scala collections. They are about as complicated as you can get from an implementation point of view, yet they are widely acknowledled to be very nice to use. So Scala collections are a counter-example to your argument.

 -- Martin


--
Martin Odersky
Prof., EPFL and Chairman, Typesafe
PSED, 1015 Lausanne, Switzerland
Tel. EPFL: +41 21 693 6863
Tel. Typesafe: +41 21 691 4967


My experience with Java Generics is that I have hurt my brain on several occasions trying to grok wildcards. In practice I have never run into a serious problem I could not solve, and many times the Eclipse IDE has lead me to the solution.

I really understand the mess created in Java trying to shoe-horn generics in after the fact, and all the controversy - but my reality is that I have never had to swear out loud solving a problem with Java generics. The fact that generics work so much better in Scala than Java is just gravy.

What I struggle with these days is trying to understand things like Continuations. For example, as a UI designer I sense their value in possibly being able to eliminate some of the boilerplate around concurrency (i.e. SwingWorker) and callbacks (i.e. EventListeners), but I cannot yet reason it out. My hope is that someday someone with 20 more IQ points than me will write an 'elegant UI API' that incorporates Continuations and I won't really have to really understand them too deeply. On the other had if there are bugs in that 'elegant UI API' I am afraid I might not be able to work around them and may get blocked at an inconvenient time.

Cheers, Eric
kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++


On Tue, Sep 6, 2011 at 2:17 PM, Raoul Duke <raould [at] gmail [dot] com> wrote:
hi,

On Tue, Sep 6, 2011 at 1:55 PM, martin odersky <martin [dot] odersky [at] epfl [dot] ch> wrote:
> I don't agree. Your point does hold for Java generics, and that's why I have
> argued against wildcards from the start: wildcards shift complexity from the
> library designer to the library user. Your argument is empirically not true
> for Scala collections. They are about as complicated as you can get from an
> implementation point of view, yet they are widely acknowledled to be very
> nice to use. So Scala collections are a counter-example to your argument.

i appreciate that you in general claim to try to worry about things
being overly complex and confusing, and have made efforts to avoid
that.

in my personal use of the collections, which was most recently like 6
months ago, i recall being frustrated with them at times; perhaps it
was just my newness to scala and the documentation and the general
sugar available at times. actually i think a lot of it might be the
syntax sugar. well, that and the various scala syntax conventions.
there are the real issues of how the collections have used inheritance
choices which only work for some but not all use cases, etc.

anyway, even if collections happened to be a perfect little world of
perfect usability for all types of users, the questions that get
posted on the lists make it pretty clear to me that Scala has enough
things that feel like corners to make it feel more akin to C++'s
seemingly arbitrary complexity than Java's painfully over-verbose but
for the most part stupid simple obviousness. scala might actually even
be doing a great job of following some core principles, but they end
up with things like the val 1 = 2 usability silliness.

now, nobody is being forced to use Scala, i'm not even saying it has
to change; there are obviously plenty of people loving it.

i'm just saying that i find it patently silly for people to claim that
the complexities (or powers, whatever you want to brand it as :-) of
Scala will never impact a Regular Joe Newbie Low-Brow Programmer.
(probably a lot of my view is because i am not immersed in it, which i
take to mean i am not inured to the sometimes from my personal
usability viewpoint crazy stuff.)

sincerely.

My personal attitude is that I am wary of the scary stuff in Scala, but still confident to use Scala. There are trade-offs between power and complexity, so you have to find ways to mitigate things. Each software developer has to make a personal judgement of what tools they are confident to competent to use. I am confident and competent to drive a car, but neither confident nor competent to fix the engine if there is a serious problem.

For example, I have had little trouble using Actors in Scala, because I have used languages like SR before, and because Actors in Scala are well sugared. I know there is more lurking behind the scenes with Actors, but I have to trust that the people who implemented the Actors API and sugar were competent, and enough people have used Actors to tease out any bugs.

Cheers, Eric
Raoul Duke
Joined: 2009-01-05,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

On Tue, Sep 6, 2011 at 2:25 PM, Seth Tisue wrote:
> read and write. Whereas even the best C++ code is... C++. As you say,
> "Scala is seductive." C++ is not. I suggest you tune out the FUD and
> trust in the pleasure you've experienced writing Scala.

i do not even remotely like C++, but i have nevertheless always been
impressed with examples by Bjarne Stroustrup to be clean and concise
and impressive. have a sort of reality distortion field effect where
i'm like "oh hey maybe i can get to like c++ after all" but then i end
up seeing how the *world* not just Bjarne use it. i suspect the same
is true, even if less so, for most all programming languages. the more
complexity is available, the more it will be used and guaranteed
abused. while you can try to avoid it, it means you have to grok which
advanced use is good vs. bad which means you have to grok the
complexity.

sincerely.

kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++


Any resemblance between Scala and C++ is superficial. Scala isn't C++,
and besides, that was then, this is now.

 I am not trying draw a resemblance between C++ the language and Scala the language, but between advent and conclusions of these languages.

The trend I see in Computing Science is language design is like a pendulum swinging back and forth between features and simplicity. We keep adding more features until the language becomes to complicated - like Basic, Fortran, Cobol, PL/1, C++ etc, then we find more simple and elegant ways to design languages like C, Pascal, Java. Sometimes we can add more features without compromising simplicity and elegance, such as Groovy.

The point I am making is I don't exactly know where Scala is on this pendulum ride yet - and I am trying to understand that from the perspectives other people have.

I'm pretty sure C++ concluded badly. I have no idea how Scala will conclude.

Cheers, Eric
Chris Twiner
Joined: 2008-12-17,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

On Tue, Sep 6, 2011 at 10:55 PM, martin odersky wrote:
>
>
> On Tue, Sep 6, 2011 at 10:48 PM, Raoul Duke wrote:
>>
>> On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk
>> wrote:
>> > Martin Odersky's Levels http://www.scala-lang.org/node/8610 reminds me
>> > very much of what I learned from Scott Meyers - that you do not need
>> > to grok all of Scala to be proficient and productive in using it.
>>
>> <$0.02 rant>personally i think that's total bull. people say the same
>> thing about java generics and other stuff, but inevitably even a
>> regular Joe will end up trying to use some library that ends up having
>> some issue behind the curtain that is some fubar advanced thing and
>> they are in a world of suck until either it gets fixed or they learn
>> about the advanced thing and fix it themselves or they get some cargo
>> cult help or whatever. if there is complexity in the language *then
>> there is complexity in the language*.
>>
>> sincerely.
>
> I don't agree. Your point does hold for Java generics, and that's why I have
> argued against wildcards from the start: wildcards shift complexity from the
> library designer to the library user. Your argument is empirically not true
> for Scala collections. They are about as complicated as you can get from an
> implementation point of view, yet they are widely acknowledled to be very
> nice to use. So Scala collections are a counter-example to your argument.
>

long rant follows, but hopefully good bits in between....

I'd actually say they are the perfect example, although probably not a
"world of suck". When using at the [use case] level everything is
great, but there are plenty of gotchas.

Whilst writing Scales Xml, I quickly found CBF's aren't hidden from
the developer, but will "infect" any code that attempts to be generic
with a container. The infection is actually of course a very good
thing in the medium to long term, you want your libraries to be
flexible as to container, cbfs are a great way to get that, there is a
bit of annoying boiler plate to go with it though.

But if your code forgets to pass an implicit one along, and its
something the compiler seems to grok, you end up with classType and
wrappedRefArrays and other things semi silently stealing your
performance away. Your tests will work, it will all seem good, but
there is this little tight loop performance killer lurking around.

I've since started using yourkit even just to look for this happening
(with jad to check).

After initial pains I could swap out IndexedSeqs with ease to allow
profiling different core collection choices for Scales Xml, my only
remaining grief was the inability to directly re-use parts of Vector
and the hidden (but obvious when you think of it) cost of flatMap'ing
a List (especially when you don't care about the order of the
results).

But simply put, in order to coerce the collections to my whims, I
spent a lot of time digging in the library source and asking the list
for help as well (which were, as usual, stellar).

Having said that, as a direct result of the collection apis design,
and indeed the whole cbf implicit passing, I have been able to produce
great results that I'm very happy with and see that time spent as
clear investment.

To answer the OP though, I relished the crazyness in C++ land,
typename this, curiously recurse that, algorithm + functors, raii ftw
and fc++ as the poster child for how it could be, and also why it
probably shouldn't be. For me Scala is like returning to that
flexibility and power but with a nice warm blanket and better tooling
around it plus even more depth for when I need it. Java is only as
easy as its ioc, ejb, classloader mess lets it be.

Perhaps Scala lets you get caught up in the language snags a bit more,
but its so rich and the compiler and tools are so helpful that I'm
soon spending more time solving problems then fighting the language.
I day to day in Java (with small occasional bursts of Scala), and
can't wait to get back into a language that lets me express my
solutions more clearly.

There are simply a lot of people for whom learning something like
Scala won't be interesting, they have a 9-5 with tooling that does
enough to get them paid. That doesn't imply one is a l33t haxor for
knowing/using Scala (one can write junk in any language), just that
people can have other priorities. I don't buy the whole some
developers just can't learn Scala argument but I have a lot of
sympathy for the question of interest, if you don't want to learn
you'll struggle with most things. If you don't have the time to learn
in depth you'll also likely suffer, its just normal, time lets you
make the mistakes you need to make to learn.

I see a lot of truth about large corporations rewarding choices of
tools/languages on a "how cheap can we get them" basis, and that
applies to developers skills/knowledge as well. That's just one
incredibly hard marketing and mindshare battle that takes many, many
years to adjust.

Tony Morris 2
Joined: 2009-03-20,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Anyone who tells you that Scala is too complex and is like C++
understands neither Scala, C++ and programming in general. I absolutely
guarantee you this, and I happy to demonstrate it to you.

If my motives are not clear, I am happy to demonstrate this to you
because I wish to convince you of this universally applicable attribute
so that there is one less person questioning statements that are so
significantly departed from reality and so we can move on. Win win.

On 07/09/11 06:45, Eric Kolotyluk wrote:
> I have recently seen a number of discussions around issues like "is
> Scala too complex, "is Scala too hard to learn," "Thinking in a
> language vs. thinking into a language." etc.
>
> I find these discussions fascinating as I often find myself on both
> sides of the fence. At times I find coding in Scala increasingly
> seductive and satisfying, at other times I try to read some of the
> advanced code and concepts I see people discussing and I feel like a
> moron who has no hope to ever grok what they mean, let alone simply
> understand it. Often I just have to be satisfied that I get the gist
> of it.
>
> This sort of reminds me of my experience with C++. I started trying
> the language as soon as there were competent compilers available and
> enjoyed the new learning experience, trying to sample as many new
> language features as I could and was generally able to master most of
> them. However, after a while I was not writing code as often and ever
> time I tried to start some new little project I found the start-up
> cost of having to relearn C++ too high and switched back to C as much
> as possible. My experience was that unless I used C++ continuously,
> the overhead of coding was too high.
>
> Eventually I took a class from Scott Meyers. My takeaway point from
> that class was that there were programmers and there were type
> designers. Type designers had to be very very good at type design. On
> the other hand, with well designed type libraries and APIs, being a C+
> + programmers was not so bad after all.
>
> After a while I did not do much C++ because I moved on to Objective-C
> because I drank of the NeXT Cool-Aid. I really took to Objective-C
> because it was was so much more simple to think in that language than C
> ++, and the NeXT types and APIs were awesome.
>
> Eventually I moved on to Java and almost immediately became addicted
> to the simplicity (over C++) and power (close to C++), but mostly to
> the garbage collection. There was a reason I used to love writing code
> in LISP.
>
> Eventually I had a job where I had to look at some C++ code again, but
> by then it was Microsoft C++ with ATL/COM. My first reaction was WTF?
> How did this language get so messed up? Fortunately I was senior
> enough I could just say "no way I am touching that!"
>
> Eventually Java became my de facto language and I became increasingly
> proficient with it. Then I started looking at Groovy and really liked
> how much more expressive Groovy was, with minimal added complexity. I
> found it hard to do much with Groovy because I could not convince my
> colleagues of its value. Then I found Scala and tried to learn it but
> had to bail because it was too confusing. But Scala is seductive!
> Eventually I found my way back and became relatively proficient with
> it. Yes, I can even write in a functional style and comprehend the
> value of it. But I still cannot convince my colleagues of its value
> either.
>
> Martin Odersky's Levels http://www.scala-lang.org/node/8610 reminds me
> very much of what I learned from Scott Meyers - that you do not need
> to grok all of Scala to be proficient and productive in using it. I
> personally hope to be able to transition some day from Java to Scala
> as my main working language, but at the same time I am mindful of what
> became of C++ because the geniuses who came up with ATL and COM.
>
> What I am hoping we might debate is: what is to prevent Scala from
> going the route of C++ (and maybe other trials and tribulations of
> learning and using Scala). What are the barriers to adopting Scala,
> and what compelling advantages does Scala offer to seduce us past
> those barriers. Every week I see more barriers coming down because the
> keepers of Scala work hard to remove them, but almost as often I see
> people pointing out new barriers. Has Scala reached critical mass, or
> are we still waiting for it?
>
> Cheers, Eric

kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++
Was that intended to be information - or are you just trying to insult as many people as possible?

If you are unhappy with the dialog then I recommend you go somewhere where you can be happy with the dialog. This type of comment is not welcome.

Sincerely, Eric

On Tue, Sep 6, 2011 at 3:40 PM, Tony Morris <tonymorris [at] gmail [dot] com> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Anyone who tells you that Scala is too complex and is like C++
understands neither Scala, C++ and programming in general. I absolutely
guarantee you this, and I happy to demonstrate it to you.

If my motives are not clear, I am happy to demonstrate this to you
because I wish to convince you of this universally applicable attribute
so that there is one less person questioning statements that are so
significantly departed from reality and so we can move on. Win win.

- --
Tony Morris
http://tmorris.net/

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJOZqF0AAoJEPxHMY3rBz0PPDQIALj1wwdbmZMTR/ttnk2QTxj1
XDQMqzunboy8PlXwiaLrEF2kO7FsH9ocWzTOELeB+gECHt3+vj5BbpeENuHOqJBi
kwq6pSAJE0qltoM7+noijFYzTbSJbQVn60Lc1iqP/msbO3M77c8h7ck8wgIPyFPi
dKmIj1uXguoQl3JwsLTS0TvJcXD+ppUVZyu16nKtYRBREROtvsw0cXaU4FqmBa9y
e8dj08MtXa1o6rDNliklgbxF/gOKsxjUFd/s+1JcLsehQ7KLQ9dXtsFzXPVvhw6K
voHPEqg5Q5ciZK01Am+l1bN2wc54Km57WE5lgoZPdINtcQyP5FtahX2vaot7UK0=
=U+4x
-----END PGP SIGNATURE-----

Justin du coeur
Joined: 2009-03-04,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++
On Tue, Sep 6, 2011 at 5:49 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:
The trend I see in Computing Science is language design is like a pendulum swinging back and forth between features and simplicity.

I disagree -- the pendulum is between features and *abstraction*.  Features get added willy-nilly until languages get messy; then people step back, understand what's really going on, and pull things up a level of abstraction, which makes it all look simpler again.  Scala's a good example here, one of a collection of newer languages that have attempted to raise the abstraction level; in practice, Scala does a better job than most.
The problem is that each of these abstraction changes requires changes in how you *think* about programs, and that's the source of much of the disconnect about whether Scala is "simple".  Scala is definitely *elegant*.  Whether it looks simple or not depends mostly on whether you've internalized the abstractions that you need for the level of the language that you're using...
Raoul Duke
Joined: 2009-01-05,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

On Tue, Sep 6, 2011 at 4:23 PM, Eric Kolotyluk wrote:
> Was that intended to be information - or are you just trying to insult as
> many people as possible?

i'll take the other tack and ask Tony to please, yes, describe the
core differentiating issue. :-)

sincerely.

Alex Repain
Joined: 2010-07-27,
User offline. Last seen 1 year 31 weeks ago.
Re: Is Scala the Next C++
IMHO : doing complex thing is and will always be complex. Some languages look complex while actually rendering simple tasks. bad C++ code can give this impression. I think we all agree that simple tasks are quite simple to write and read in Scala (provided that you know the minimal fair bit about the language). But complex tasks that are made available through core Scala (and the Scala API) are still complex tasks. Accomplishing them requires either complex knowledge, complex code, or both. I hate C++ for me failing to understand it without effort. I love Scala for making me aware that I will have the same difficulties with languages I already love*, when using higher levels of abstraction, or deeper functionalities.

* : recursive love.

2011/9/7 Justin du coeur <jducoeur [at] gmail [dot] com>
On Tue, Sep 6, 2011 at 5:49 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:
The trend I see in Computing Science is language design is like a pendulum swinging back and forth between features and simplicity.

I disagree -- the pendulum is between features and *abstraction*.  Features get added willy-nilly until languages get messy; then people step back, understand what's really going on, and pull things up a level of abstraction, which makes it all look simpler again.  Scala's a good example here, one of a collection of newer languages that have attempted to raise the abstraction level; in practice, Scala does a better job than most.
The problem is that each of these abstraction changes requires changes in how you *think* about programs, and that's the source of much of the disconnect about whether Scala is "simple".  Scala is definitely *elegant*.  Whether it looks simple or not depends mostly on whether you've internalized the abstractions that you need for the level of the language that you're using...



--
Alex REPAIN
ENSEIRB-MATMECA - student
TECHNICOLOR R&D - intern
BORDEAUX I      - master's student
SCALA           - enthusiast


Tony Morris
Joined: 2008-12-19,
User offline. Last seen 30 weeks 4 days ago.
Re: Is Scala the Next C++

It was a promise.

On 07/09/2011 9:23 AM, "Eric Kolotyluk" <eric [dot] kolotyluk [at] gmail [dot] com> wrote:
> Was that intended to be information - or are you just trying to insult as
> many people as possible?
>
> If you are unhappy with the dialog then I recommend you go somewhere where
> you can be happy with the dialog. This type of comment is not welcome.
>
> Sincerely, Eric
>
> On Tue, Sep 6, 2011 at 3:40 PM, Tony Morris <tonymorris [at] gmail [dot] com> wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Anyone who tells you that Scala is too complex and is like C++
>> understands neither Scala, C++ and programming in general. I absolutely
>> guarantee you this, and I happy to demonstrate it to you.
>>
>> If my motives are not clear, I am happy to demonstrate this to you
>> because I wish to convince you of this universally applicable attribute
>> so that there is one less person questioning statements that are so
>> significantly departed from reality and so we can move on. Win win.
>>
>> - --
>> Tony Morris
>> http://tmorris.net/
>>
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.10 (GNU/Linux)
>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>>
>> iQEcBAEBAgAGBQJOZqF0AAoJEPxHMY3rBz0PPDQIALj1wwdbmZMTR/ttnk2QTxj1
>> XDQMqzunboy8PlXwiaLrEF2kO7FsH9ocWzTOELeB+gECHt3+vj5BbpeENuHOqJBi
>> kwq6pSAJE0qltoM7+noijFYzTbSJbQVn60Lc1iqP/msbO3M77c8h7ck8wgIPyFPi
>> dKmIj1uXguoQl3JwsLTS0TvJcXD+ppUVZyu16nKtYRBREROtvsw0cXaU4FqmBa9y
>> e8dj08MtXa1o6rDNliklgbxF/gOKsxjUFd/s+1JcLsehQ7KLQ9dXtsFzXPVvhw6K
>> voHPEqg5Q5ciZK01Am+l1bN2wc54Km57WE5lgoZPdINtcQyP5FtahX2vaot7UK0=
>> =U+4x
>> -----END PGP SIGNATURE-----
>>
Razvan Cojocaru 3
Joined: 2010-07-28,
User offline. Last seen 42 years 45 weeks ago.
RE: Is Scala the Next C++

Scala is complex and smells like C++ !

One of my overview points in my first scala introduction, years ago, was
"C++ is back... mean as ever!"

... and then it went on to say

"Multiple inheritance, operator overloading, true generics, pass functions
around, simple syntax" ... I mean... c'mon, you have to see it!

For OO procedural people that have not experienced many languages, C++ was
the pinnacle of CS, the one multi-paradigm language. So many paradigms
there, I didn't get tired of it in over a decade, but had to move to Java
for another decade, which sucked. Now I have all of it back and so much
more. The syntax doesn't matter too much, the paradigms and clarity do.

Scala smells like C++ but it's so much more.

Interestingly, the same slide concluded with "Not for the faint of heart!".
I met a lot of developers that couldn't write *great* C++ code but were
decent coders when they managed to stay away from implicits, operators and
all that. I expect the exact same with scala - I think this is the reason
behind those "scala is too complex" debates, of which I just had one on
LinkedIn.

Mind you though, just as often I met people whose C++ code was just as bad
as their Java code, and their Java code is not one you want to debug and
maintain; many of their 'algorithms' often need re-writing and frequent
fixing... Again, the syntax doesn't matter, abstract problem solving
matters.

We will continue to have people saying scala is too complex, because they
will unknowingly try to use the wrong type bound in a covariant construct
and won't get to the end of it... or can't figure out how to get the value
out of an Option[Any] (hint: it's obviously some kind of container, you
could look for some get() methods, but you should really learn map()).

Scala is not a toy language - it's a serious one and it is complex. Is it
too complex? What does that question even mean?

-----Original Message-----
From: scala-debate [at] googlegroups [dot] com [mailto:scala-debate [at] googlegroups [dot] com]
On Behalf Of Tony Morris
Sent: September-06-11 6:41 PM
To: scala-debate [at] googlegroups [dot] com
Subject: Re: [scala-debate] Is Scala the Next C++

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Anyone who tells you that Scala is too complex and is like C++ understands
neither Scala, C++ and programming in general. I absolutely guarantee you
this, and I happy to demonstrate it to you.

If my motives are not clear, I am happy to demonstrate this to you because I
wish to convince you of this universally applicable attribute so that there
is one less person questioning statements that are so significantly departed
from reality and so we can move on. Win win.

On 07/09/11 06:45, Eric Kolotyluk wrote:
> I have recently seen a number of discussions around issues like "is
> Scala too complex, "is Scala too hard to learn," "Thinking in a
> language vs. thinking into a language." etc.
>
> I find these discussions fascinating as I often find myself on both
> sides of the fence. At times I find coding in Scala increasingly
> seductive and satisfying, at other times I try to read some of the
> advanced code and concepts I see people discussing and I feel like a
> moron who has no hope to ever grok what they mean, let alone simply
> understand it. Often I just have to be satisfied that I get the gist
> of it.
>
> This sort of reminds me of my experience with C++. I started trying
> the language as soon as there were competent compilers available and
> enjoyed the new learning experience, trying to sample as many new
> language features as I could and was generally able to master most of
> them. However, after a while I was not writing code as often and ever
> time I tried to start some new little project I found the start-up
> cost of having to relearn C++ too high and switched back to C as much
> as possible. My experience was that unless I used C++ continuously,
> the overhead of coding was too high.
>
> Eventually I took a class from Scott Meyers. My takeaway point from
> that class was that there were programmers and there were type
> designers. Type designers had to be very very good at type design. On
> the other hand, with well designed type libraries and APIs, being a C+
> + programmers was not so bad after all.
>
> After a while I did not do much C++ because I moved on to Objective-C
> because I drank of the NeXT Cool-Aid. I really took to Objective-C
> because it was was so much more simple to think in that language than
> C
> ++, and the NeXT types and APIs were awesome.
>
> Eventually I moved on to Java and almost immediately became addicted
> to the simplicity (over C++) and power (close to C++), but mostly to
> the garbage collection. There was a reason I used to love writing code
> in LISP.
>
> Eventually I had a job where I had to look at some C++ code again, but
> by then it was Microsoft C++ with ATL/COM. My first reaction was WTF?
> How did this language get so messed up? Fortunately I was senior
> enough I could just say "no way I am touching that!"
>
> Eventually Java became my de facto language and I became increasingly
> proficient with it. Then I started looking at Groovy and really liked
> how much more expressive Groovy was, with minimal added complexity. I
> found it hard to do much with Groovy because I could not convince my
> colleagues of its value. Then I found Scala and tried to learn it but
> had to bail because it was too confusing. But Scala is seductive!
> Eventually I found my way back and became relatively proficient with
> it. Yes, I can even write in a functional style and comprehend the
> value of it. But I still cannot convince my colleagues of its value
> either.
>
> Martin Odersky's Levels http://www.scala-lang.org/node/8610 reminds me
> very much of what I learned from Scott Meyers - that you do not need
> to grok all of Scala to be proficient and productive in using it. I
> personally hope to be able to transition some day from Java to Scala
> as my main working language, but at the same time I am mindful of what
> became of C++ because the geniuses who came up with ATL and COM.
>
> What I am hoping we might debate is: what is to prevent Scala from
> going the route of C++ (and maybe other trials and tribulations of
> learning and using Scala). What are the barriers to adopting Scala,
> and what compelling advantages does Scala offer to seduce us past
> those barriers. Every week I see more barriers coming down because the
> keepers of Scala work hard to remove them, but almost as often I see
> people pointing out new barriers. Has Scala reached critical mass, or
> are we still waiting for it?
>
> Cheers, Eric

- --
Tony Morris
http://tmorris.net/

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJOZqF0AAoJEPxHMY3rBz0PPDQIALj1wwdbmZMTR/ttnk2QTxj1
XDQMqzunboy8PlXwiaLrEF2kO7FsH9ocWzTOELeB+gECHt3+vj5BbpeENuHOqJBi
kwq6pSAJE0qltoM7+noijFYzTbSJbQVn60Lc1iqP/msbO3M77c8h7ck8wgIPyFPi
dKmIj1uXguoQl3JwsLTS0TvJcXD+ppUVZyu16nKtYRBREROtvsw0cXaU4FqmBa9y
e8dj08MtXa1o6rDNliklgbxF/gOKsxjUFd/s+1JcLsehQ7KLQ9dXtsFzXPVvhw6K
voHPEqg5Q5ciZK01Am+l1bN2wc54Km57WE5lgoZPdINtcQyP5FtahX2vaot7UK0=
=U+4x
-----END PGP SIGNATURE-----

Tony Morris 2
Joined: 2009-03-20,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I have not yet seen the statement, "Scala is [too] complex" where the
statement is not merely an anti-intellectual sentiment euphemising a
significant lack of understanding and an adamant assertion that that
lack of understanding is immutable. Inviting the surprise of a
counter-example...

On 07/09/11 14:06, Razvan Cojocaru wrote:
> Scala is complex and smells like C++ !
>
> One of my overview points in my first scala introduction, years ago, was
> "C++ is back... mean as ever!"
>
> ... and then it went on to say
>
> "Multiple inheritance, operator overloading, true generics, pass functions
> around, simple syntax" ... I mean... c'mon, you have to see it!
>
> For OO procedural people that have not experienced many languages, C++ was
> the pinnacle of CS, the one multi-paradigm language. So many paradigms
> there, I didn't get tired of it in over a decade, but had to move to Java
> for another decade, which sucked. Now I have all of it back and so much
> more. The syntax doesn't matter too much, the paradigms and clarity do.
>
> Scala smells like C++ but it's so much more.
>
> Interestingly, the same slide concluded with "Not for the faint of heart!".
> I met a lot of developers that couldn't write *great* C++ code but were
> decent coders when they managed to stay away from implicits, operators and
> all that. I expect the exact same with scala - I think this is the reason
> behind those "scala is too complex" debates, of which I just had one on
> LinkedIn.
>
> Mind you though, just as often I met people whose C++ code was just as bad
> as their Java code, and their Java code is not one you want to debug and
> maintain; many of their 'algorithms' often need re-writing and frequent
> fixing... Again, the syntax doesn't matter, abstract problem solving
> matters.
>
> We will continue to have people saying scala is too complex, because they
> will unknowingly try to use the wrong type bound in a covariant construct
> and won't get to the end of it... or can't figure out how to get the value
> out of an Option[Any] (hint: it's obviously some kind of container, you
> could look for some get() methods, but you should really learn map()).
>
> Scala is not a toy language - it's a serious one and it is complex. Is it
> too complex? What does that question even mean?
>
> -----Original Message-----
> From: scala-debate [at] googlegroups [dot] com [mailto:scala-debate [at] googlegroups [dot] com]
> On Behalf Of Tony Morris
> Sent: September-06-11 6:41 PM
> To: scala-debate [at] googlegroups [dot] com
> Subject: Re: [scala-debate] Is Scala the Next C++
>
> Anyone who tells you that Scala is too complex and is like C++ understands
> neither Scala, C++ and programming in general. I absolutely guarantee you
> this, and I happy to demonstrate it to you.
>
> If my motives are not clear, I am happy to demonstrate this to you because I
> wish to convince you of this universally applicable attribute so that there
> is one less person questioning statements that are so significantly departed
> from reality and so we can move on. Win win.
>
> On 07/09/11 06:45, Eric Kolotyluk wrote:
>> I have recently seen a number of discussions around issues like "is
>> Scala too complex, "is Scala too hard to learn," "Thinking in a
>> language vs. thinking into a language." etc.
>
>> I find these discussions fascinating as I often find myself on both
>> sides of the fence. At times I find coding in Scala increasingly
>> seductive and satisfying, at other times I try to read some of the
>> advanced code and concepts I see people discussing and I feel like a
>> moron who has no hope to ever grok what they mean, let alone simply
>> understand it. Often I just have to be satisfied that I get the gist
>> of it.
>
>> This sort of reminds me of my experience with C++. I started trying
>> the language as soon as there were competent compilers available and
>> enjoyed the new learning experience, trying to sample as many new
>> language features as I could and was generally able to master most of
>> them. However, after a while I was not writing code as often and ever
>> time I tried to start some new little project I found the start-up
>> cost of having to relearn C++ too high and switched back to C as much
>> as possible. My experience was that unless I used C++ continuously,
>> the overhead of coding was too high.
>
>> Eventually I took a class from Scott Meyers. My takeaway point from
>> that class was that there were programmers and there were type
>> designers. Type designers had to be very very good at type design. On
>> the other hand, with well designed type libraries and APIs, being a C+
>> + programmers was not so bad after all.
>
>> After a while I did not do much C++ because I moved on to Objective-C
>> because I drank of the NeXT Cool-Aid. I really took to Objective-C
>> because it was was so much more simple to think in that language than
>> C
>> ++, and the NeXT types and APIs were awesome.
>
>> Eventually I moved on to Java and almost immediately became addicted
>> to the simplicity (over C++) and power (close to C++), but mostly to
>> the garbage collection. There was a reason I used to love writing code
>> in LISP.
>
>> Eventually I had a job where I had to look at some C++ code again, but
>> by then it was Microsoft C++ with ATL/COM. My first reaction was WTF?
>> How did this language get so messed up? Fortunately I was senior
>> enough I could just say "no way I am touching that!"
>
>> Eventually Java became my de facto language and I became increasingly
>> proficient with it. Then I started looking at Groovy and really liked
>> how much more expressive Groovy was, with minimal added complexity. I
>> found it hard to do much with Groovy because I could not convince my
>> colleagues of its value. Then I found Scala and tried to learn it but
>> had to bail because it was too confusing. But Scala is seductive!
>> Eventually I found my way back and became relatively proficient with
>> it. Yes, I can even write in a functional style and comprehend the
>> value of it. But I still cannot convince my colleagues of its value
>> either.
>
>> Martin Odersky's Levels http://www.scala-lang.org/node/8610 reminds me
>> very much of what I learned from Scott Meyers - that you do not need
>> to grok all of Scala to be proficient and productive in using it. I
>> personally hope to be able to transition some day from Java to Scala
>> as my main working language, but at the same time I am mindful of what
>> became of C++ because the geniuses who came up with ATL and COM.
>
>> What I am hoping we might debate is: what is to prevent Scala from
>> going the route of C++ (and maybe other trials and tribulations of
>> learning and using Scala). What are the barriers to adopting Scala,
>> and what compelling advantages does Scala offer to seduce us past
>> those barriers. Every week I see more barriers coming down because the
>> keepers of Scala work hard to remove them, but almost as often I see
>> people pointing out new barriers. Has Scala reached critical mass, or
>> are we still waiting for it?
>
>> Cheers, Eric
>
>

Russ P.
Joined: 2009-01-31,
User offline. Last seen 1 year 26 weeks ago.
Re: Is Scala the Next C++
On Tue, Sep 6, 2011 at 3:40 PM, Tony Morris <tonymorris [at] gmail [dot] com> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Anyone who tells you that Scala is too complex and is like C++
understands neither Scala, C++ and programming in general. I absolutely
guarantee you this, and I happy to demonstrate it to you.


I don't doubt you, Tony, but I'm curious about how you can demonstrate such a claim. Please don't keep us in suspense any longer!

About all I recall about C++ is "for (i = 0; i < n; i++)", and I hope to finish my life without ever encountering that little gem again in actual code.

--Russ P.
 
--
Find out about the Amazing Potential of Thorium: http://RussP.us/thorium.htm
Tony Morris 2
Joined: 2009-03-20,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 07/09/11 15:07, Russ Paielli wrote:
> On Tue, Sep 6, 2011 at 3:40 PM, Tony Morris wrote:
>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Anyone who tells you that Scala is too complex and is like C++
>> understands neither Scala, C++ and programming in general. I absolutely
>> guarantee you this, and I happy to demonstrate it to you.
>>
>
>
> I don't doubt you, Tony, but I'm curious about how you can demonstrate such
> a claim. Please don't keep us in suspense any longer!
>
> About all I recall about C++ is "for (i = 0; i < n; i++)", and I hope to
> finish my life without ever encountering that little gem again in actual
> code.
>
> --Russ P.
>

Scala and C++ are so wildly distinct and to hand-wave about proclaiming
that they are "complex" in "similar ways" unequivocally implies a
misunderstanding of all topics involved. One one point alone, Scala
includes (mostly) necessary complexity, while C++ does not.

Programming is complex, not Scala. Now let's stop being a bunch of
princesses and learn some stuff, instead of making shitty excuses about
being too "complex", especially when it is not.

Find me a list of languages that admit up-front the complexity of
programming itself, then goes out of its way to help the user/programmer
overcome that complexity and I can assure you scala appears somewhere
near the top, while C++ appears to be "competing against Java" as if it
is some virtuous goal.

It's no secret that many serious C++ programmers discover that templates
are turing-complete, writes programs in that system, then says, "surely
there is a better way" -- where do you think a lot of those Haskell/ML
programmers came from?

Chris Marshall
Joined: 2009-06-17,
User offline. Last seen 44 weeks 3 days ago.
RE: Is Scala the Next C++
Scala is like C++: they are both programming languages.Scala is like Paris: they both have 5 lettersScala is like octopus salad: I like both of them
X is like Y /== X is exactly the same as YX is like Y /== in every conceivable aspect, X is like Y 

Chris
> Date: Wed, 7 Sep 2011 08:40:52 +1000
> From: tonymorris [at] gmail [dot] com
> To: scala-debate [at] googlegroups [dot] com
> Subject: Re: [scala-debate] Is Scala the Next C++
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Anyone who tells you that Scala is too complex and is like C++
> understands neither Scala, C++ and programming in general. I absolutely
> guarantee you this, and I happy to demonstrate it to you.
>
> If my motives are not clear, I am happy to demonstrate this to you
> because I wish to convince you of this universally applicable attribute
> so that there is one less person questioning statements that are so
> significantly departed from reality and so we can move on. Win win.
>
> On 07/09/11 06:45, Eric Kolotyluk wrote:
> > I have recently seen a number of discussions around issues like "is
> > Scala too complex, "is Scala too hard to learn," "Thinking in a
> > language vs. thinking into a language." etc.
> >
> > I find these discussions fascinating as I often find myself on both
> > sides of the fence. At times I find coding in Scala increasingly
> > seductive and satisfying, at other times I try to read some of the
> > advanced code and concepts I see people discussing and I feel like a
> > moron who has no hope to ever grok what they mean, let alone simply
> > understand it. Often I just have to be satisfied that I get the gist
> > of it.
> >
> > This sort of reminds me of my experience with C++. I started trying
> > the language as soon as there were competent compilers available and
> > enjoyed the new learning experience, trying to sample as many new
> > language features as I could and was generally able to master most of
> > them. However, after a while I was not writing code as often and ever
> > time I tried to start some new little project I found the start-up
> > cost of having to relearn C++ too high and switched back to C as much
> > as possible. My experience was that unless I used C++ continuously,
> > the overhead of coding was too high.
> >
> > Eventually I took a class from Scott Meyers. My takeaway point from
> > that class was that there were programmers and there were type
> > designers. Type designers had to be very very good at type design. On
> > the other hand, with well designed type libraries and APIs, being a C+
> > + programmers was not so bad after all.
> >
> > After a while I did not do much C++ because I moved on to Objective-C
> > because I drank of the NeXT Cool-Aid. I really took to Objective-C
> > because it was was so much more simple to think in that language than C
> > ++, and the NeXT types and APIs were awesome.
> >
> > Eventually I moved on to Java and almost immediately became addicted
> > to the simplicity (over C++) and power (close to C++), but mostly to
> > the garbage collection. There was a reason I used to love writing code
> > in LISP.
> >
> > Eventually I had a job where I had to look at some C++ code again, but
> > by then it was Microsoft C++ with ATL/COM. My first reaction was WTF?
> > How did this language get so messed up? Fortunately I was senior
> > enough I could just say "no way I am touching that!"
> >
> > Eventually Java became my de facto language and I became increasingly
> > proficient with it. Then I started looking at Groovy and really liked
> > how much more expressive Groovy was, with minimal added complexity. I
> > found it hard to do much with Groovy because I could not convince my
> > colleagues of its value. Then I found Scala and tried to learn it but
> > had to bail because it was too confusing. But Scala is seductive!
> > Eventually I found my way back and became relatively proficient with
> > it. Yes, I can even write in a functional style and comprehend the
> > value of it. But I still cannot convince my colleagues of its value
> > either.
> >
> > Martin Odersky's Levels http://www.scala-lang.org/node/8610 reminds me
> > very much of what I learned from Scott Meyers - that you do not need
> > to grok all of Scala to be proficient and productive in using it. I
> > personally hope to be able to transition some day from Java to Scala
> > as my main working language, but at the same time I am mindful of what
> > became of C++ because the geniuses who came up with ATL and COM.
> >
> > What I am hoping we might debate is: what is to prevent Scala from
> > going the route of C++ (and maybe other trials and tribulations of
> > learning and using Scala). What are the barriers to adopting Scala,
> > and what compelling advantages does Scala offer to seduce us past
> > those barriers. Every week I see more barriers coming down because the
> > keepers of Scala work hard to remove them, but almost as often I see
> > people pointing out new barriers. Has Scala reached critical mass, or
> > are we still waiting for it?
> >
> > Cheers, Eric
>
>
> - --
> Tony Morris
> http://tmorris.net/
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iQEcBAEBAgAGBQJOZqF0AAoJEPxHMY3rBz0PPDQIALj1wwdbmZMTR/ttnk2QTxj1
> XDQMqzunboy8PlXwiaLrEF2kO7FsH9ocWzTOELeB+gECHt3+vj5BbpeENuHOqJBi
> kwq6pSAJE0qltoM7+noijFYzTbSJbQVn60Lc1iqP/msbO3M77c8h7ck8wgIPyFPi
> dKmIj1uXguoQl3JwsLTS0TvJcXD+ppUVZyu16nKtYRBREROtvsw0cXaU4FqmBa9y
> e8dj08MtXa1o6rDNliklgbxF/gOKsxjUFd/s+1JcLsehQ7KLQ9dXtsFzXPVvhw6K
> voHPEqg5Q5ciZK01Am+l1bN2wc54Km57WE5lgoZPdINtcQyP5FtahX2vaot7UK0=
> =U+4x
> -----END PGP SIGNATURE-----
Cédric Beust ♔
Joined: 2011-06-17,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:
This sort of reminds me of my experience with C++.

I have the same feeling.
First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.
Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.
I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.
-- Cédric
kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++
On 2011-09-06 4:33 PM, Justin du coeur wrote:
qnp4dRJxkWJQDfoObmf-nuSrZN6+vcw [at] mail [dot] gmail [dot] com" type="cite"> On Tue, Sep 6, 2011 at 5:49 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com" target="_blank" rel="nofollow">eric [dot] kolotyluk [at] gmail [dot] com> wrote:
The trend I see in Computing Science is language design is like a pendulum swinging back and forth between features and simplicity.

I disagree -- the pendulum is between features and *abstraction*.  Features get added willy-nilly until languages get messy; then people step back, understand what's really going on, and pull things up a level of abstraction, which makes it all look simpler again.  Scala's a good example here, one of a collection of newer languages that have attempted to raise the abstraction level; in practice, Scala does a better job than most.
The problem is that each of these abstraction changes requires changes in how you *think* about programs, and that's the source of much of the disconnect about whether Scala is "simple".  Scala is definitely *elegant*.  Whether it looks simple or not depends mostly on whether you've internalized the abstractions that you need for the level of the language that you're using...

OK, I can accept *abstraction* instead of simplicity, especially in the context of Scala - but there 'is' this pendulum I am talking about.

C++ brought more abstraction too, but somewhere along the way the "willy-nilly" part got the better of it. I'm not sure if Java created more abstraction over C++, but it really showed you could do more with less.

I would also agree that these new language designs require that we change how we think about programs - especially if we want to learn to write better, more elegant code.

Some of the problem of C++ were not exactly in the language itself, but how people used the language. For example, Hungarian Notation. This was no fault of the language designers, but IMHO a tragic fad many people adopted that added a enormous amount to noise to the code. Similarly, COM has nothing to do with the C++ language per se, but when you look at the massive amount of job postings  years ago that required C++/COM experience, it is hard to separate the two.

So, one concern of mine is what possible things out there could affect Scala in a similar way? How can we avoid or minimize such misadventures?

The one thing I have learned about using Scala is I personally needed to evolve my thinking about how to write code if I wanted to write better code. To be sure, Scala makes it easy to write code exactly the way you would in Java, and slightly nicer, but the real benefits only come by leveraging the higher layers of abstraction.

However, Scala is exceedingly feature rich, with many nuances. Similar to my C++ experience is that you don't write code on a regular basis you can forget how the nuances work. What can we learn from this experience?

These days I genuinely cannot read contemporary C++/COM code - my mind freezes up. Fortunately there are fewer reasons to have to read such code. let alone write it.

However, there is also a lot of Scala code that causes my mind to freeze up. Not necessarily because it is bad code, rather that I have not learned yet to think  sophisticatedly enough to grok it. On the other had because I do not understand it, I cannot ever say if it is good or bad code.

Cheers, Eric


Cédric Beust ♔
Joined: 2011-06-17,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++
On Wed, Sep 7, 2011 at 5:34 AM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:

Some of the problem of C++ were not exactly in the language itself, but how people used the language. For example, Hungarian Notation.

That's an odd take, and I don't think hungarian notation has much to do with what happened to C++. I wrote hundreds of thousand of lines of C++ between 1985 and 1995 and hardly any of it contained any hungarian notation because most of that code was running on UNIX, not Windows.
The main problem with C++ is that it had to remain source compatible with C, and this constrained the language in ways that slowly led it to be what it is today.
Just like C++, Scala is trying to be a multi-paradigm language that maintains binary (not source, as opposed to C++) compatibility with Java, and this is taking a toll on its syntax and semantic in many ways.
-- Cédric
Kevin Wright 2
Joined: 2010-05-30,
User offline. Last seen 26 weeks 4 days ago.
Re: Is Scala the Next C++

2011/9/7 Cédric Beust ♔ <cedric [at] beust [dot] com>

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:
This sort of reminds me of my experience with C++.

I have the same feeling.
First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.
Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.

Scala is to Java what Java is to PHP, or even what Blub is to COBOL[1].

It's more powerful, it's far more type-safe, and you'll see many users of the latter bemoaning aspects of the former (e.g. on stackoverflow) that they haven't yet grokked.
It's an old, old debate, don't worry about it, just use the most powerful language you can[2] that fits your requirements, and be happy.
[1] Capitalisation of Boilerplate Oriented Language [2] I refused to be drawn into any discussion on what it means to state that you "can" use a given language, there are too many variables.

I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.
-- Cédric



--
Kevin Wright
mail: kevin [dot] wright [at] scalatechnology [dot] com
gtalk / msn : kev [dot] lee [dot] wright [at] gmail [dot] com quora: http://www.quora.com/Kevin-Wrightgoogle+: http://gplus.to/thecoda
kev [dot] lee [dot] wright [at] gmail [dot] com twitter: @thecoda
vibe / skype: kev.lee.wrightsteam: kev_lee_wright
"My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger" ~ Dijkstra
kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++

On 2011-09-07 5:20 AM, Cédric Beust ♔ wrote:
X4ac+Y0zGYKad_8QNF82KUexZJsPg [at] mail [dot] gmail [dot] com" type="cite">
On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com" rel="nofollow">eric [dot] kolotyluk [at] gmail [dot] com> wrote:
This sort of reminds me of my experience with C++.

I have the same feeling.
First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.
Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.
I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.
--  Cédric

Yes, I am very clear Scala is more powerful and fun to work with than C++. There is substantially more experience and breakthroughs in language design that have gone into Scala than were available to the C++ language designers.

And yes,  Scala is to Java what C++ is to C. The design of Scala is exceedingly more progressive compared to the exceedingly conservative approach to Java language evolution. I do not fault the Java language designers, and I praise them for making sure my old Java code continues to run correctly as the language evolves.

In the end, things did not go well for C++. I am wondering what we can learn from that and how we can use it to avoid similar misadventures with Scala.

There will always be side discussions like "is Scala too complex?" but the reason I started this debate was to challenge people to think of reasons this will or won't happen to Scala, and to propose ways for Scala to avoid the same difficulties C++ ran into.

Cheers, Eric
kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++

On 2011-09-07 5:51 AM, Cédric Beust ♔ wrote:
CAOphgJCg+nXuYVRxwqZzPD_xLr7Sxm9mhnBRGxuVPUFy4w0RcQ [at] mail [dot] gmail [dot] com" type="cite"> On Wed, Sep 7, 2011 at 5:34 AM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com" rel="nofollow">eric [dot] kolotyluk [at] gmail [dot] com> wrote:

Some of the problem of C++ were not exactly in the language itself, but how people used the language. For example, Hungarian Notation.

That's an odd take, and I don't think hungarian notation has much to do with what happened to C++. I wrote hundreds of thousand of lines of C++ between 1985 and 1995 and hardly any of it contained any hungarian notation because most of that code was running on UNIX, not Windows.
The main problem with C++ is that it had to remain source compatible with C, and this constrained the language in ways that slowly led it to be what it is today.
Just like C++, Scala is trying to be a multi-paradigm language that maintains binary (not source, as opposed to C++) compatibility with Java, and this is taking a toll on its syntax and semantic in many ways.
--  Cédric

Yes, it is an odd take. When I had to look at some legacy C++ code it was rife with Hungarian notation and I have since formed a strong connection between the two. More importantly, the parallel I drew from the experience was that C++ and Hungarian Notation are indicative of the senseless increase in complexity in coding of the era, even those they are both completely separate things.

I have seen many bitter arguments that Java's biggest fault was that it try to remain similar to C, and I can appreciate that point of view. However, this similarity to C is pragmatically what made it easy for people to adopt Java. However, Java is not source compatible with C and avoided that particular problem C++ has.

And, Scala is similar to Java, but not source compatible. The Scala language designers have done a good job of balancing pragmatism with innovation, but it indeed has come at some cost of some trouble in syntax and semantics. My hope is that with enough sugaring we don't have to see those troubles too often, but I wonder what other problems may lurk under the surface of all the sugar.

Cheers, Eric
Joshua.Suereth
Joined: 2008-09-02,
User offline. Last seen 32 weeks 5 days ago.
Re: Is Scala the Next C++
So, to be clear:
C++ has a stigma, so comparing Scala to C++ can be seen as a negative thing.   Personally, I think the comparison is *true* and also a good thing.   

  • C++ blends paradigms.   It had C syntax, OO, template metaprogramming - STL - functionalish stuff
  • Scala blends paradigms:  OO and FP.  Elegant syntax (seen in dynamic languages) and Type-Safety, Java-Interoperability.
  • C++ usage scales with knowledge of the language.  The more you know the more magic you could perform.
  • Scala usage scales with knowledge of the language.   See Martin's App-Developer levels.

However, the comparison ends somewhere around here.   Scala has GC, Scala has the JVM, Scala doesn't make you worry over the memory usage in *every* line of code.   Scala doesn't cause huge coorporate software meltdowns from missing a *.   Operator overloading is not the danger it is in C++ (Go look up/remember the problems with operators in C++ and then try to tell me that holds true in Scala.   If you convince me, I'll buy you beer).
So let's be clear:  Scala is like C++ in a few ways.  These comparisons are healthy reminders.   Let's continue to avoid C++'s pitfalls as best as possible.
- Josh

2011/9/7 Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com>

On 2011-09-07 5:20 AM, Cédric Beust ♔ wrote:

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:
This sort of reminds me of my experience with C++.

I have the same feeling.
First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.
Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.
I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.
--  Cédric

Yes, I am very clear Scala is more powerful and fun to work with than C++. There is substantially more experience and breakthroughs in language design that have gone into Scala than were available to the C++ language designers.

And yes,  Scala is to Java what C++ is to C. The design of Scala is exceedingly more progressive compared to the exceedingly conservative approach to Java language evolution. I do not fault the Java language designers, and I praise them for making sure my old Java code continues to run correctly as the language evolves.

In the end, things did not go well for C++. I am wondering what we can learn from that and how we can use it to avoid similar misadventures with Scala.

There will always be side discussions like "is Scala too complex?" but the reason I started this debate was to challenge people to think of reasons this will or won't happen to Scala, and to propose ways for Scala to avoid the same difficulties C++ ran into.

Cheers, Eric

Seth Tisue
Joined: 2008-12-16,
User offline. Last seen 34 weeks 3 days ago.
Re: Is Scala the Next C++

2011/9/7 Eric Kolotyluk :
> And, Scala is similar to Java, but not source compatible.

This can't be emphasized enough. Scala takes on a certain amount of
baggage from Java, but it's hardly comparable to the baggage C++ took
on by remaining source compatible with C.

Razvan Cojocaru 3
Joined: 2010-07-28,
User offline. Last seen 42 years 45 weeks ago.
RE: Is Scala the Next C++

Well, since it’s C++ bashing season… can someone enlighten me about what was so fundamentally willy-nilly or wrong with “C with Classes” and what are these difficulties that it ran into?

 

As far as I can tell, the reasons for Java’s success was abundance of cheap developers that could master (some say) the dumbed down Pascal flavor. Technically, the best thing about Java was the JVM/JAR and garbage collection, not the language itself. I do not recall any studies to show the efficiency of all these developers but that is irrelevant, because what it did is enable the networking effect and led to a massive growth and you now have tons of libraries and frameworks that do pretty much everything.

 

But the language of Java itself now seems to have taken on mythical powers and is compared with Scala and C++ ??? Are you kidding me? Until recently I could not even have a basic typed container, like List<Student>!

 

Last I looked at Tiobe, C++ is number 3 and C is number 2… What are these problems that C++ ran into? The fact that it didn’t evolve fast enough? Yes… what else? Lack of marketing? Yes… what else?

 

When thinking about C++, I think that simply, the time for new paradigms had come and a syntax build 20 years ago should not be coerced any further. Should we all stand in awe at the longevity and universality of say the intel assembly language?

 

The time had simply come, the knowledge had grown significantly, techniques and paradigms evolved and tested, new needs growing, JVM good enough and Martin had enough spare time… J

 

From: scala-debate [at] googlegroups [dot] com [mailto:scala-debate [at] googlegroups [dot] com] On Behalf Of Eric Kolotyluk
Sent: September-07-11 9:41 AM
To: Cédric Beust ♔
Cc: scala-debate
Subject: Re: [scala-debate] Is Scala the Next C++

 


On 2011-09-07 5:20 AM, Cédric Beust ♔ wrote:

 

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:

This sort of reminds me of my experience with C++.

 

I have the same feeling.

 

First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.

 

Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.

 

I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.

 

-- 

Cédric

 


Yes, I am very clear Scala is more powerful and fun to work with than C++. There is substantially more experience and breakthroughs in language design that have gone into Scala than were available to the C++ language designers.

And yes,  Scala is to Java what C++ is to C. The design of Scala is exceedingly more progressive compared to the exceedingly conservative approach to Java language evolution. I do not fault the Java language designers, and I praise them for making sure my old Java code continues to run correctly as the language evolves.

In the end, things did not go well for C++. I am wondering what we can learn from that and how we can use it to avoid similar misadventures with Scala.

There will always be side discussions like "is Scala too complex?" but the reason I started this debate was to challenge people to think of reasons this will or won't happen to Scala, and to propose ways for Scala to avoid the same difficulties C++ ran into.

Cheers, Eric

kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++
OK, OK - I may not have chosen the best title for this discussion :-)

The title was intended to be provocative so people might read the discussion, but people are reading more into the title than I intended (my bad).

Razvan, you say "dumbed down Pascal flavor" like that is bad thing. One of the reasons I like Java is that exact reason, it is really easy to approach Java as a new language whether you are a "cheap developer" or a seasoned one.

The reason I was successful at approaching Scala the second time was I had a better book with a better introduction. Scala, with the right introduction can be approachable, maybe even for some "cheap developers" ;-)

On the other hand, for a newcomer to Scala, the wrong introduction to the language can be a disaster, as I found on my first introduction to it - and believe me I am not a cheap developer.

The point that C++ is number 3 on Tiobe largely reflects how much legacy code there is still out there, and how much legacy investment organizations have made in training and tooling. This is also part of why Java is number 1. C is a special case, however, as I personally view C the same way I view assembly language, except I try to resort to C before assembly language. After all, the JVM is written in C.

My point about contemporary C++, especially with ATL/COM, is the code is unreadable and unmaintainable. It is far too easy to inadvertently create defects and it is painfully expensive to find and fix those defects. I personally do not believe C++ is a cost effective way to develop software.

My hope for Scala is that people can learn to write readable, maintainable code with few defects, and that defects won't be hard to find an correct - even for the "cheap developers."

Cheers, Eric

On 2011-09-07 7:23 AM, Razvan Cojocaru wrote:

Well, since it’s C++ bashing season… can someone enlighten me about what was so fundamentally willy-nilly or wrong with “C with Classes” and what are these difficulties that it ran into?

 

As far as I can tell, the reasons for Java’s success was abundance of cheap developers that could master (some say) the dumbed down Pascal flavor. Technically, the best thing about Java was the JVM/JAR and garbage collection, not the language itself. I do not recall any studies to show the efficiency of all these developers but that is irrelevant, because what it did is enable the networking effect and led to a massive growth and you now have tons of libraries and frameworks that do pretty much everything.

 

But the language of Java itself now seems to have taken on mythical powers and is compared with Scala and C++ ??? Are you kidding me? Until recently I could not even have a basic typed container, like List<Student>!

 

Last I looked at Tiobe, C++ is number 3 and C is number 2… What are these problems that C++ ran into? The fact that it didn’t evolve fast enough? Yes… what else? Lack of marketing? Yes… what else?

 

When thinking about C++, I think that simply, the time for new paradigms had come and a syntax build 20 years ago should not be coerced any further. Should we all stand in awe at the longevity and universality of say the intel assembly language?

 

The time had simply come, the knowledge had grown significantly, techniques and paradigms evolved and tested, new needs growing, JVM good enough and Martin had enough spare time… J

 

From: scala-debate [at] googlegroups [dot] com [scala-debate [at] googlegroups [dot] com (mailto:scala-debate [at] googlegroups [dot] com)] On Behalf Of Eric Kolotyluk
Sent: September-07-11 9:41 AM
To: Cédric Beust ♔
Cc: scala-debate
Subject: Re: [scala-debate] Is Scala the Next C++

 


On 2011-09-07 5:20 AM, Cédric Beust ♔ wrote:

 

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com" rel="nofollow">eric [dot] kolotyluk [at] gmail [dot] com> wrote:

This sort of reminds me of my experience with C++.

 

I have the same feeling.

 

First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.

 

Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.

 

I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.

 

-- 

Cédric

 


Yes, I am very clear Scala is more powerful and fun to work with than C++. There is substantially more experience and breakthroughs in language design that have gone into Scala than were available to the C++ language designers.

And yes,  Scala is to Java what C++ is to C. The design of Scala is exceedingly more progressive compared to the exceedingly conservative approach to Java language evolution. I do not fault the Java language designers, and I praise them for making sure my old Java code continues to run correctly as the language evolves.

In the end, things did not go well for C++. I am wondering what we can learn from that and how we can use it to avoid similar misadventures with Scala.

There will always be side discussions like "is Scala too complex?" but the reason I started this debate was to challenge people to think of reasons this will or won't happen to Scala, and to propose ways for Scala to avoid the same difficulties C++ ran into.

Cheers, Eric

paulbutcher
Joined: 2010-03-08,
User offline. Last seen 10 weeks 5 days ago.
Re: Is Scala the Next C++

On 7 Sep 2011, at 15:23, Razvan Cojocaru wrote:
> Last I looked at Tiobe, C++ is number 3 and C is number 2

On the subject of the Tiobe index, it's interesting to note that a "modern" functional language has just entered the top 20 for the first time last month.

Not Scala, Clojure, Haskell or Erlang, but... F#

Microsoft clearly still carries considerable weight among (some) developers.

--
paul.butcher->msgCount++

Snetterton, Castle Combe, Cadwell Park...
Who says I have a one track mind?

http://www.paulbutcher.com/
LinkedIn: http://www.linkedin.com/in/paulbutcher
MSN: paul [at] paulbutcher [dot] com
AIM: paulrabutcher
Skype: paulrabutcher

Razvan Cojocaru 3
Joined: 2010-07-28,
User offline. Last seen 42 years 45 weeks ago.
RE: Is Scala the Next C++

Sorry – I didn’t mean “cheap” as a bad thing, I was thinking “off the shelf and readily available for hire in large supply”.

 

This statement and other like it is what I cannot comprehend:

 

Razvan, you say "dumbed down Pascal flavor" like that is bad thing. One of the reasons I like Java is that exact reason, it is really easy to approach Java as a new language whether you are a "cheap developer" or a seasoned one.

We’ve all been through years of CS theory where we learned about all available paradigms. We have passed these courses, since we have diplomas. We thus must all be able to pick up pretty much any language fairly fast. I’m not talking about college dropouts, former WallMart employees with a 6 month programming course, but engineers.

 

Lower pay, abundant or not, I cannot understand why the speed of picking up a new language is a determining factor in using that language for a career or a decade…

 

I am afraid that this approach is what’s behind these “scala is too complex” statements, when what truly matters is how living with that language every day for the next decade will be like, not how fast you pick up the syntax.

 

And yes, that Java is a dumbed down Pascal is a very bad thing. I was stuck with it for a decade. What happens (brain researchers will tell you) is that hard-aquired skill atrophies if not used. Java is so simple and devoid of paradigms that I fear I have significantly damaged the abstract part of my brain. These past 3-4 years of doing scala on a side it’s like a workout and recovery and I must tell you, it’s not been easy.

 

As Tony will tell you, programming is complex, scala is not.

 

My name is Razvan and I’m a scalaholic.

 

From: Eric Kolotyluk [mailto:eric [dot] kolotyluk [at] gmail [dot] com]
Sent: September-07-11 10:45 AM
To: Razvan Cojocaru
Cc: 'Cédric Beust ♔'; 'scala-debate'
Subject: Re: [scala-debate] Is Scala the Next C++

 

OK, OK - I may not have chosen the best title for this discussion :-)

The title was intended to be provocative so people might read the discussion, but people are reading more into the title than I intended (my bad).

Razvan, you say "dumbed down Pascal flavor" like that is bad thing. One of the reasons I like Java is that exact reason, it is really easy to approach Java as a new language whether you are a "cheap developer" or a seasoned one.

The reason I was successful at approaching Scala the second time was I had a better book with a better introduction. Scala, with the right introduction can be approachable, maybe even for some "cheap developers" ;-)

On the other hand, for a newcomer to Scala, the wrong introduction to the language can be a disaster, as I found on my first introduction to it - and believe me I am not a cheap developer.

The point that C++ is number 3 on Tiobe largely reflects how much legacy code there is still out there, and how much legacy investment organizations have made in training and tooling. This is also part of why Java is number 1. C is a special case, however, as I personally view C the same way I view assembly language, except I try to resort to C before assembly language. After all, the JVM is written in C.

My point about contemporary C++, especially with ATL/COM, is the code is unreadable and unmaintainable. It is far too easy to inadvertently create defects and it is painfully expensive to find and fix those defects. I personally do not believe C++ is a cost effective way to develop software.

My hope for Scala is that people can learn to write readable, maintainable code with few defects, and that defects won't be hard to find an correct - even for the "cheap developers."

Cheers, Eric

On 2011-09-07 7:23 AM, Razvan Cojocaru wrote:

Well, since it’s C++ bashing season… can someone enlighten me about what was so fundamentally willy-nilly or wrong with “C with Classes” and what are these difficulties that it ran into?

 

As far as I can tell, the reasons for Java’s success was abundance of cheap developers that could master (some say) the dumbed down Pascal flavor. Technically, the best thing about Java was the JVM/JAR and garbage collection, not the language itself. I do not recall any studies to show the efficiency of all these developers but that is irrelevant, because what it did is enable the networking effect and led to a massive growth and you now have tons of libraries and frameworks that do pretty much everything.

 

But the language of Java itself now seems to have taken on mythical powers and is compared with Scala and C++ ??? Are you kidding me? Until recently I could not even have a basic typed container, like List<Student>!

 

Last I looked at Tiobe, C++ is number 3 and C is number 2… What are these problems that C++ ran into? The fact that it didn’t evolve fast enough? Yes… what else? Lack of marketing? Yes… what else?

 

When thinking about C++, I think that simply, the time for new paradigms had come and a syntax build 20 years ago should not be coerced any further. Should we all stand in awe at the longevity and universality of say the intel assembly language?

 

The time had simply come, the knowledge had grown significantly, techniques and paradigms evolved and tested, new needs growing, JVM good enough and Martin had enough spare time… J

 

From: scala-debate [at] googlegroups [dot] com [scala-debate [at] googlegroups [dot] com (mailto:scala-debate [at] googlegroups [dot] com)] On Behalf Of Eric Kolotyluk
Sent: September-07-11 9:41 AM
To: Cédric Beust ♔
Cc: scala-debate
Subject: Re: [scala-debate] Is Scala the Next C++

 


On 2011-09-07 5:20 AM, Cédric Beust ♔ wrote:

 

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:

This sort of reminds me of my experience with C++.

 

I have the same feeling.

 

First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.

 

Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.

 

I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.

 

-- 

Cédric

 


Yes, I am very clear Scala is more powerful and fun to work with than C++. There is substantially more experience and breakthroughs in language design that have gone into Scala than were available to the C++ language designers.

And yes,  Scala is to Java what C++ is to C. The design of Scala is exceedingly more progressive compared to the exceedingly conservative approach to Java language evolution. I do not fault the Java language designers, and I praise them for making sure my old Java code continues to run correctly as the language evolves.

In the end, things did not go well for C++. I am wondering what we can learn from that and how we can use it to avoid similar misadventures with Scala.

There will always be side discussions like "is Scala too complex?" but the reason I started this debate was to challenge people to think of reasons this will or won't happen to Scala, and to propose ways for Scala to avoid the same difficulties C++ ran into.

Cheers, Eric

Ittay Dror 2
Joined: 2010-05-05,
User offline. Last seen 42 years 45 weeks ago.
(offtopic) Re: Is Scala the Next C++
body p { margin-bottom: 0cm; margin-top: 0pt; }



Razvan Cojocaru wrote:

Well, since it’s C++ bashing season… can someone enlighten me about what was so fundamentally willy-nilly or wrong with “C with Classes” and what are these difficulties that it ran into?

Nothing, but C++ had problems beyond that:

1. It was just a standard. Each unix system had its own implementation, which usually only partially implemented the spec and each having its own set of bugs. And since name mangling was not speced, it meant that if you wanted to link with another library you had to use the same compiler it used. Usually with the same flags.

2. Memory related errors were hard to detect. If you accidently called 'delete' on an object, you could continue to use it until creating another object in the same memory, then all hell broke loose, but of course it was long after that accidental delete.

3. Template errors were very hard to follow. Especially with STL, which is a wonderful library except for the allocators bit which made a mess of everything.

4. Slow compilation

5. Separation of source and headers which meant you had to change two files for any API change.

6. No abstraction over differences in operating systems and filesystems.

7. Templates were generated at call site which caused code bloat.

There were of course things that were better: better control over memory, explicit destructors, which allows easy ARM, probably more.

Ittay

 

As far as I can tell, the reasons for Java’s success was abundance of cheap developers that could master (some say) the dumbed down Pascal flavor. Technically, the best thing about Java was the JVM/JAR and garbage collection, not the language itself. I do not recall any studies to show the efficiency of all these developers but that is irrelevant, because what it did is enable the networking effect and led to a massive growth and you now have tons of libraries and frameworks that do pretty much everything.

 

But the language of Java itself now seems to have taken on mythical powers and is compared with Scala and C++ ??? Are you kidding me? Until recently I could not even have a basic typed container, like List<Student>!

 

Last I looked at Tiobe, C++ is number 3 and C is number 2… What are these problems that C++ ran into? The fact that it didn’t evolve fast enough? Yes… what else? Lack of marketing? Yes… what else?

 

When thinking about C++, I think that simply, the time for new paradigms had come and a syntax build 20 years ago should not be coerced any further. Should we all stand in awe at the longevity and universality of say the intel assembly language?

 

The time had simply come, the knowledge had grown significantly, techniques and paradigms evolved and tested, new needs growing, JVM good enough and Martin had enough spare time… J

 

From: scala-debate [at] googlegroups [dot] com [scala-debate [at] googlegroups [dot] com (mailto:scala-debate [at] googlegroups [dot] com)] On Behalf Of Eric Kolotyluk
Sent: September-07-11 9:41 AM
To: Cédric Beust ♔
Cc: scala-debate
Subject: Re: [scala-debate] Is Scala the Next C++

 


On 2011-09-07 5:20 AM, Cédric Beust ♔ wrote:

 

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com" rel="nofollow">eric [dot] kolotyluk [at] gmail [dot] com> wrote:

This sort of reminds me of my experience with C++.

 

I have the same feeling.

 

First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.

 

Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.

 

I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.

 

-- 

Cédric

 


Yes, I am very clear Scala is more powerful and fun to work with than C++. There is substantially more experience and breakthroughs in language design that have gone into Scala than were available to the C++ language designers.

And yes,  Scala is to Java what C++ is to C. The design of Scala is exceedingly more progressive compared to the exceedingly conservative approach to Java language evolution. I do not fault the Java language designers, and I praise them for making sure my old Java code continues to run correctly as the language evolves.

In the end, things did not go well for C++. I am wondering what we can learn from that and how we can use it to avoid similar misadventures with Scala.

There will always be side discussions like "is Scala too complex?" but the reason I started this debate was to challenge people to think of reasons this will or won't happen to Scala, and to propose ways for Scala to avoid the same difficulties C++ ran into.

Cheers, Eric

kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++
Hey, I totally get the "cheap developers" thing. It's not a bad thing, but it is a reality of how some companies hire people. I was at one company that chose to use Rational Rose with Actors because the management believed their general software developers were not up to using threads for concurrency.

I have used over 30 different programming languages in my day, and I can pick up most rather quickly, but I don't like having to do it. I would rather be an expert at a few than mediocre across many.

Java was one of the few languages where I could more easily focus on the problem to be solved than the language to be learned. That is a really good principle. These days however I tier of the boilerplate needed in Java, but I tolerate it because Java is still exceedingly useful and I am expert at it.

Scala is very seductive because it addresses many of the shortcomings I now find in Java, yet it is not too strange from Java. I have been using Java for over 15 years and I do not think it has caused my brain to atrophy. Sure Java has not always challenged my thinking, but what I am finding with Scala is that it incorporates so many leading edge ideas and practices that anyone who has not stayed academically and intellectually active needs time to reacquire those skills.

The major trend I have seen in computer languages lately, that I like, is the emphasis on expressiveness without sacrificing readability. APL is very expressive but hardly readable. Scala is also very expressive, but can suffer from readability in the wrong hands. Also, there is Scala code I have seen that I am sure is very good code, but I cannot easily read it because I am not at L3.

Cheers, Eric

On 2011-09-07 8:13 AM, Razvan Cojocaru wrote:

Sorry – I didn’t mean “cheap” as a bad thing, I was thinking “off the shelf and readily available for hire in large supply”.

 

This statement and other like it is what I cannot comprehend:

 

Razvan, you say "dumbed down Pascal flavor" like that is bad thing. One of the reasons I like Java is that exact reason, it is really easy to approach Java as a new language whether you are a "cheap developer" or a seasoned one.

We’ve all been through years of CS theory where we learned about all available paradigms. We have passed these courses, since we have diplomas. We thus must all be able to pick up pretty much any language fairly fast. I’m not talking about college dropouts, former WallMart employees with a 6 month programming course, but engineers.

 

Lower pay, abundant or not, I cannot understand why the speed of picking up a new language is a determining factor in using that language for a career or a decade…

 

I am afraid that this approach is what’s behind these “scala is too complex” statements, when what truly matters is how living with that language every day for the next decade will be like, not how fast you pick up the syntax.

 

And yes, that Java is a dumbed down Pascal is a very bad thing. I was stuck with it for a decade. What happens (brain researchers will tell you) is that hard-aquired skill atrophies if not used. Java is so simple and devoid of paradigms that I fear I have significantly damaged the abstract part of my brain. These past 3-4 years of doing scala on a side it’s like a workout and recovery and I must tell you, it’s not been easy.

 

As Tony will tell you, programming is complex, scala is not.

 

My name is Razvan and I’m a scalaholic.

 

From: Eric Kolotyluk [eric [dot] kolotyluk [at] gmail [dot] com (mailto:eric [dot] kolotyluk [at] gmail [dot] com)]
Sent: September-07-11 10:45 AM
To: Razvan Cojocaru
Cc: 'Cédric Beust ♔'; 'scala-debate'
Subject: Re: [scala-debate] Is Scala the Next C++

 

OK, OK - I may not have chosen the best title for this discussion :-)

The title was intended to be provocative so people might read the discussion, but people are reading more into the title than I intended (my bad).

Razvan, you say "dumbed down Pascal flavor" like that is bad thing. One of the reasons I like Java is that exact reason, it is really easy to approach Java as a new language whether you are a "cheap developer" or a seasoned one.

The reason I was successful at approaching Scala the second time was I had a better book with a better introduction. Scala, with the right introduction can be approachable, maybe even for some "cheap developers" ;-)

On the other hand, for a newcomer to Scala, the wrong introduction to the language can be a disaster, as I found on my first introduction to it - and believe me I am not a cheap developer.

The point that C++ is number 3 on Tiobe largely reflects how much legacy code there is still out there, and how much legacy investment organizations have made in training and tooling. This is also part of why Java is number 1. C is a special case, however, as I personally view C the same way I view assembly language, except I try to resort to C before assembly language. After all, the JVM is written in C.

My point about contemporary C++, especially with ATL/COM, is the code is unreadable and unmaintainable. It is far too easy to inadvertently create defects and it is painfully expensive to find and fix those defects. I personally do not believe C++ is a cost effective way to develop software.

My hope for Scala is that people can learn to write readable, maintainable code with few defects, and that defects won't be hard to find an correct - even for the "cheap developers."

Cheers, Eric

On 2011-09-07 7:23 AM, Razvan Cojocaru wrote:

Well, since it’s C++ bashing season… can someone enlighten me about what was so fundamentally willy-nilly or wrong with “C with Classes” and what are these difficulties that it ran into?

 

As far as I can tell, the reasons for Java’s success was abundance of cheap developers that could master (some say) the dumbed down Pascal flavor. Technically, the best thing about Java was the JVM/JAR and garbage collection, not the language itself. I do not recall any studies to show the efficiency of all these developers but that is irrelevant, because what it did is enable the networking effect and led to a massive growth and you now have tons of libraries and frameworks that do pretty much everything.

 

But the language of Java itself now seems to have taken on mythical powers and is compared with Scala and C++ ??? Are you kidding me? Until recently I could not even have a basic typed container, like List<Student>!

 

Last I looked at Tiobe, C++ is number 3 and C is number 2… What are these problems that C++ ran into? The fact that it didn’t evolve fast enough? Yes… what else? Lack of marketing? Yes… what else?

 

When thinking about C++, I think that simply, the time for new paradigms had come and a syntax build 20 years ago should not be coerced any further. Should we all stand in awe at the longevity and universality of say the intel assembly language?

 

The time had simply come, the knowledge had grown significantly, techniques and paradigms evolved and tested, new needs growing, JVM good enough and Martin had enough spare time… J

 

From: scala-debate [at] googlegroups [dot] com" rel="nofollow">scala-debate [at] googlegroups [dot] com [scala-debate [at] googlegroups [dot] com" rel="nofollow">mailto:scala-debate [at] googlegroups [dot] com] On Behalf Of Eric Kolotyluk
Sent: September-07-11 9:41 AM
To: Cédric Beust ♔
Cc: scala-debate
Subject: Re: [scala-debate] Is Scala the Next C++

 


On 2011-09-07 5:20 AM, Cédric Beust ♔ wrote:

 

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com" rel="nofollow">eric [dot] kolotyluk [at] gmail [dot] com> wrote:

This sort of reminds me of my experience with C++.

 

I have the same feeling.

 

First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.

 

Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.

 

I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.

 

-- 

Cédric

 


Yes, I am very clear Scala is more powerful and fun to work with than C++. There is substantially more experience and breakthroughs in language design that have gone into Scala than were available to the C++ language designers.

And yes,  Scala is to Java what C++ is to C. The design of Scala is exceedingly more progressive compared to the exceedingly conservative approach to Java language evolution. I do not fault the Java language designers, and I praise them for making sure my old Java code continues to run correctly as the language evolves.

In the end, things did not go well for C++. I am wondering what we can learn from that and how we can use it to avoid similar misadventures with Scala.

There will always be side discussions like "is Scala too complex?" but the reason I started this debate was to challenge people to think of reasons this will or won't happen to Scala, and to propose ways for Scala to avoid the same difficulties C++ ran into.

Cheers, Eric

Alex Repain
Joined: 2010-07-27,
User offline. Last seen 1 year 31 weeks ago.
Re: Is Scala the Next C++


2011/9/7 Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com>


In the end, things did not go well for C++. I am wondering what we can learn from that and how we can use it to avoid similar misadventures with Scala.

There will always be side discussions like "is Scala too complex?" but the reason I started this debate was to challenge people to think of reasons this will or won't happen to Scala, and to propose ways for Scala to avoid the same difficulties C++ ran into.

Cheers, Eric

I wonder what are your arguments to say that "things did not go well for C++". Every CS community has its load of bashing C++, but it is still a VERY successful language, from self-taught geeks, through academic researchers, to the biggest companies. You might want to check that, but I'd say it's probably the second most-used language after Java. And yet it was here long before Java, and had its own reign before Java. It's therefore weird to say that things did not go well for C++. C++ did not run into difficulties, a lot of C++ *programmers* ran into difficulties (but in favor of cognitive dissonance, decided they would live with them and still swear only by C++ for a little more time).

--
Alex REPAIN
ENSEIRB-MATMECA - student
TECHNICOLOR R&D - intern
BORDEAUX I      - master's student
SCALA           - enthusiast


Seth Tisue
Joined: 2008-12-16,
User offline. Last seen 34 weeks 3 days ago.
Re: Is Scala the Next C++

On Wed, Sep 7, 2011 at 10:55 AM, Paul Butcher wrote:
> On the subject of the Tiobe index, it's interesting to note that a "modern" functional language has just entered the top 20 for the first time last month.
>
> Not Scala, Clojure, Haskell or Erlang, but... F#
>
> Microsoft clearly still carries considerable weight among (some) developers.

The TIOBE index is junk and its well-known-ness is an unfortunate
historical accident.

We can't wish TIOBE out of existence, but a good start would be to
stop citing or mentioning it and use more reliable sources instead,
e.g.
http://lang-index.sourceforge.net/
http://www.indeed.com/jobtrends?q=scala%2C+clojure%2C+groovy%2C+f%23&l=

Cédric Beust ♔
Joined: 2011-06-17,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

On Wed, Sep 7, 2011 at 9:51 AM, Seth Tisue <seth [at] tisue [dot] net> wrote:

The TIOBE index is junk and its well-known-ness is an unfortunate
historical accident.

I find this claim a bit odd considering that you're using "indeed.com", which I had never heard of before it started being passed around in the Scala community (dice and monster seem to be more established references for jobs), and which hasn't updated its numbers since January. At any rate, like I pointed out earlier, even indeed.com still places Scala at 0.02% (zero point zero two percent!) of the jobs posted on its board, so not a shining endorsement either (and certainly not any more glowing than TIOBE's).
My earlier statement still applies:
The bottom line is that with less than 0.1% of mind share, Scala is way below the margin of error for any kind of meaningful measurement.

-- Cédric
odersky
Joined: 2008-07-29,
User offline. Last seen 45 weeks 6 days ago.
Re: Is Scala the Next C++


2011/9/7 Cédric Beust ♔ <cedric [at] beust [dot] com>

On Wed, Sep 7, 2011 at 9:51 AM, Seth Tisue <seth [at] tisue [dot] net> wrote:

The TIOBE index is junk and its well-known-ness is an unfortunate
historical accident.

I find this claim a bit odd considering that you're using "indeed.com", which I had never heard of before it started being passed around in the Scala community (dice and monster seem to be more established references for jobs), and which hasn't updated its numbers since January. At any rate, like I pointed out earlier, even indeed.com still places Scala at 0.02% (zero point zero two percent!) of the jobs posted on its board, so not a shining endorsement either (and certainly not any more glowing than TIOBE's).
My earlier statement still applies:
The bottom line is that with less than 0.1% of mind share, Scala is way below the margin of error for any kind of meaningful measurement.=
 

You have to factor in that indeed.com is for all sorts of jobs, not just software, or tech jobs in general. So Java jobs also have only a 3% mindshare there.

By comparison, jobs for Scala are a bit less than 1% of all Java jobs in US. In some other markets (i.e. city of London) that number is now over 2%. Other job sites confirm the trend.

These numbers are still low, but it's also clear that they are growing rapidly.

Cheers

Seth Tisue
Joined: 2008-12-16,
User offline. Last seen 34 weeks 3 days ago.
Re: Is Scala the Next C++

2011/9/7 Cédric Beust ♔ :
> On Wed, Sep 7, 2011 at 9:51 AM, Seth Tisue wrote:
>> The TIOBE index is junk and its well-known-ness is an unfortunate
>> historical accident.
>
> I find this claim a bit odd considering that you're using "indeed.com",
> which I had never heard of before it started being passed around in the
> Scala community (dice and monster seem to be more established references for
> jobs),

Indeed aggregates job listings from a variety of sources including Dice.

If there's a way to go to Dice or Monster and see trend data like
Indeed offers, I don't see it.

> and which hasn't updated its numbers since January.

Huh? No. Their numbers are up to date. Look again. There is data after
the tick mark labeled "Jan. 11".

Ittay Dror 2
Joined: 2010-05-05,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++
body p { margin-bottom: 0cm; margin-top: 0pt; }



Eric Kolotyluk wrote:
4E6797F8 [dot] 3040504 [at] gmail [dot] com" type="cite"> Java was one of the few languages where I could more easily focus on the problem to be solved than the language to be learned. That is a really good principle. These days however I tier of the boilerplate needed in Java, but I tolerate it because Java is still exceedingly useful and I am expert at it.

I feel quite the opposite. E.g., in Java, when I need to design an API that accepts a callback, I need to invent an interface. Client code then needs to create an (anonymous) class implementing it. In Scala, I use a function. This lets me focus on the problem, and not some interface that does not contribute anything. Reading the code is also clearer.

A maybe poor analogy is this: I can calculate 23 * 4 by: 23 + 23 + 23 + 23. Or, I can learn long multipication (I hope this is the right term). The first way is easier to pick up, but you end up with "boilerplate" and a complex solution. The second way means you need to learn something new (it is more "complex"). Once you learn it though, you're more productive

Ittay
4E6797F8 [dot] 3040504 [at] gmail [dot] com" type="cite"> Scala is very seductive because it addresses many of the shortcomings I now find in Java, yet it is not too strange from Java. I have been using Java for over 15 years and I do not think it has caused my brain to atrophy. Sure Java has not always challenged my thinking, but what I am finding with Scala is that it incorporates so many leading edge ideas and practices that anyone who has not stayed academically and intellectually active needs time to reacquire those skills.

The major trend I have seen in computer languages lately, that I like, is the emphasis on expressiveness without sacrificing readability. APL is very expressive but hardly readable. Scala is also very expressive, but can suffer from readability in the wrong hands. Also, there is Scala code I have seen that I am sure is very good code, but I cannot easily read it because I am not at L3.

Cheers, Eric

On 2011-09-07 8:13 AM, Razvan Cojocaru wrote:

Sorry – I didn’t mean “cheap” as a bad thing, I was thinking “off the shelf and readily available for hire in large supply”.

 

This statement and other like it is what I cannot comprehend:

 

Razvan, you say "dumbed down Pascal flavor" like that is bad thing. One of the reasons I like Java is that exact reason, it is really easy to approach Java as a new language whether you are a "cheap developer" or a seasoned one.

We’ve all been through years of CS theory where we learned about all available paradigms. We have passed these courses, since we have diplomas. We thus must all be able to pick up pretty much any language fairly fast. I’m not talking about college dropouts, former WallMart employees with a 6 month programming course, but engineers.

 

Lower pay, abundant or not, I cannot understand why the speed of picking up a new language is a determining factor in using that language for a career or a decade…

 

I am afraid that this approach is what’s behind these “scala is too complex” statements, when what truly matters is how living with that language every day for the next decade will be like, not how fast you pick up the syntax.

 

And yes, that Java is a dumbed down Pascal is a very bad thing. I was stuck with it for a decade. What happens (brain researchers will tell you) is that hard-aquired skill atrophies if not used. Java is so simple and devoid of paradigms that I fear I have significantly damaged the abstract part of my brain. These past 3-4 years of doing scala on a side it’s like a workout and recovery and I must tell you, it’s not been easy.

 

As Tony will tell you, programming is complex, scala is not.

 

My name is Razvan and I’m a scalaholic.

 

From: Eric Kolotyluk [eric [dot] kolotyluk [at] gmail [dot] com" rel="nofollow">mailto:eric [dot] kolotyluk [at] gmail [dot] com]
Sent: September-07-11 10:45 AM
To: Razvan Cojocaru
Cc: 'Cédric Beust ♔'; 'scala-debate'
Subject: Re: [scala-debate] Is Scala the Next C++

 

OK, OK - I may not have chosen the best title for this discussion :-)

The title was intended to be provocative so people might read the discussion, but people are reading more into the title than I intended (my bad).

Razvan, you say "dumbed down Pascal flavor" like that is bad thing. One of the reasons I like Java is that exact reason, it is really easy to approach Java as a new language whether you are a "cheap developer" or a seasoned one.

The reason I was successful at approaching Scala the second time was I had a better book with a better introduction. Scala, with the right introduction can be approachable, maybe even for some "cheap developers" ;-)

On the other hand, for a newcomer to Scala, the wrong introduction to the language can be a disaster, as I found on my first introduction to it - and believe me I am not a cheap developer.

The point that C++ is number 3 on Tiobe largely reflects how much legacy code there is still out there, and how much legacy investment organizations have made in training and tooling. This is also part of why Java is number 1. C is a special case, however, as I personally view C the same way I view assembly language, except I try to resort to C before assembly language. After all, the JVM is written in C.

My point about contemporary C++, especially with ATL/COM, is the code is unreadable and unmaintainable. It is far too easy to inadvertently create defects and it is painfully expensive to find and fix those defects. I personally do not believe C++ is a cost effective way to develop software.

My hope for Scala is that people can learn to write readable, maintainable code with few defects, and that defects won't be hard to find an correct - even for the "cheap developers."

Cheers, Eric

On 2011-09-07 7:23 AM, Razvan Cojocaru wrote:

Well, since it’s C++ bashing season… can someone enlighten me about what was so fundamentally willy-nilly or wrong with “C with Classes” and what are these difficulties that it ran into?

 

As far as I can tell, the reasons for Java’s success was abundance of cheap developers that could master (some say) the dumbed down Pascal flavor. Technically, the best thing about Java was the JVM/JAR and garbage collection, not the language itself. I do not recall any studies to show the efficiency of all these developers but that is irrelevant, because what it did is enable the networking effect and led to a massive growth and you now have tons of libraries and frameworks that do pretty much everything.

 

But the language of Java itself now seems to have taken on mythical powers and is compared with Scala and C++ ??? Are you kidding me? Until recently I could not even have a basic typed container, like List<Student>!

 

Last I looked at Tiobe, C++ is number 3 and C is number 2… What are these problems that C++ ran into? The fact that it didn’t evolve fast enough? Yes… what else? Lack of marketing? Yes… what else?

 

When thinking about C++, I think that simply, the time for new paradigms had come and a syntax build 20 years ago should not be coerced any further. Should we all stand in awe at the longevity and universality of say the intel assembly language?

 

The time had simply come, the knowledge had grown significantly, techniques and paradigms evolved and tested, new needs growing, JVM good enough and Martin had enough spare time… J

 

From: scala-debate [at] googlegroups [dot] com" rel="nofollow">scala-debate [at] googlegroups [dot] com [scala-debate [at] googlegroups [dot] com" rel="nofollow">mailto:scala-debate [at] googlegroups [dot] com] On Behalf Of Eric Kolotyluk
Sent: September-07-11 9:41 AM
To: Cédric Beust ♔
Cc: scala-debate
Subject: Re: [scala-debate] Is Scala the Next C++

 


On 2011-09-07 5:20 AM, Cédric Beust ♔ wrote:

 

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com" rel="nofollow">eric [dot] kolotyluk [at] gmail [dot] com> wrote:

This sort of reminds me of my experience with C++.

 

I have the same feeling.

 

First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.

 

Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.

 

I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.

 

-- 

Cédric

 


Yes, I am very clear Scala is more powerful and fun to work with than C++. There is substantially more experience and breakthroughs in language design that have gone into Scala than were available to the C++ language designers.

And yes,  Scala is to Java what C++ is to C. The design of Scala is exceedingly more progressive compared to the exceedingly conservative approach to Java language evolution. I do not fault the Java language designers, and I praise them for making sure my old Java code continues to run correctly as the language evolves.

In the end, things did not go well for C++. I am wondering what we can learn from that and how we can use it to avoid similar misadventures with Scala.

There will always be side discussions like "is Scala too complex?" but the reason I started this debate was to challenge people to think of reasons this will or won't happen to Scala, and to propose ways for Scala to avoid the same difficulties C++ ran into.

Cheers, Eric

kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++

On 2011-09-07 9:51 AM, Seth Tisue wrote:
> On Wed, Sep 7, 2011 at 10:55 AM, Paul Butcher wrote:
>> On the subject of the Tiobe index, it's interesting to note that a "modern" functional language has just entered the top 20 for the first time last month.
>>
>> Not Scala, Clojure, Haskell or Erlang, but... F#
>>
>> Microsoft clearly still carries considerable weight among (some) developers.
> The TIOBE index is junk and its well-known-ness is an unfortunate
> historical accident.
>
> We can't wish TIOBE out of existence, but a good start would be to
> stop citing or mentioning it and use more reliable sources instead,
> e.g.
> http://lang-index.sourceforge.net/
> http://www.indeed.com/jobtrends?q=scala%2C+clojure%2C+groovy%2C+f%23&l=

Nonetheless - I would still welcome seeing Scala rate higher on the
TIOBE index :-)

What other indexes are out there that are possibly meaningful?

Cheers, Eric

kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Is Scala the Next C++


On 2011-09-07 10:27 AM, Ittay Dror wrote:
4E67A98F [dot] 5050205 [at] gmail [dot] com" type="cite"> body p { margin-bottom: 0cm; margin-top: 0pt; }



Eric Kolotyluk wrote:
4E6797F8 [dot] 3040504 [at] gmail [dot] com" type="cite"> Java was one of the few languages where I could more easily focus on the problem to be solved than the language to be learned. That is a really good principle. These days however I tier of the boilerplate needed in Java, but I tolerate it because Java is still exceedingly useful and I am expert at it.

I feel quite the opposite. E.g., in Java, when I need to design an API that accepts a callback, I need to invent an interface. Client code then needs to create an (anonymous) class implementing it. In Scala, I use a function. This lets me focus on the problem, and not some interface that does not contribute anything. Reading the code is also clearer.
I totally agree. Scala is significantly better at reducing boilerplate. If I could use Scala in my everyday code I would - but I can't (yet). The point I am making is that I prefer Java over languages like C++ where I am required to know too many intimated details of the language before I can even begin to express a solution to my problem.

I totally agree Scala was designed to better focus on the problem than the language. However, for those L3 people, they do need to focus on the language so rest of us don't. And if those L3 people make a mistake, the rest of us may have to become more intimate with Scala than we are comfortable at the moment.
4E67A98F [dot] 5050205 [at] gmail [dot] com" type="cite">
A maybe poor analogy is this: I can calculate 23 * 4 by: 23 + 23 + 23 + 23. Or, I can learn long multipication (I hope this is the right term). The first way is easier to pick up, but you end up with "boilerplate" and a complex solution. The second way means you need to learn something new (it is more "complex"). Once you learn it though, you're more productive

Ittay
4E6797F8 [dot] 3040504 [at] gmail [dot] com" type="cite"> Scala is very seductive because it addresses many of the shortcomings I now find in Java, yet it is not too strange from Java. I have been using Java for over 15 years and I do not think it has caused my brain to atrophy. Sure Java has not always challenged my thinking, but what I am finding with Scala is that it incorporates so many leading edge ideas and practices that anyone who has not stayed academically and intellectually active needs time to reacquire those skills.

The major trend I have seen in computer languages lately, that I like, is the emphasis on expressiveness without sacrificing readability. APL is very expressive but hardly readable. Scala is also very expressive, but can suffer from readability in the wrong hands. Also, there is Scala code I have seen that I am sure is very good code, but I cannot easily read it because I am not at L3.

Cheers, Eric

On 2011-09-07 8:13 AM, Razvan Cojocaru wrote:

Sorry – I didn’t mean “cheap” as a bad thing, I was thinking “off the shelf and readily available for hire in large supply”.

 

This statement and other like it is what I cannot comprehend:

 

Razvan, you say "dumbed down Pascal flavor" like that is bad thing. One of the reasons I like Java is that exact reason, it is really easy to approach Java as a new language whether you are a "cheap developer" or a seasoned one.

We’ve all been through years of CS theory where we learned about all available paradigms. We have passed these courses, since we have diplomas. We thus must all be able to pick up pretty much any language fairly fast. I’m not talking about college dropouts, former WallMart employees with a 6 month programming course, but engineers.

 

Lower pay, abundant or not, I cannot understand why the speed of picking up a new language is a determining factor in using that language for a career or a decade…

 

I am afraid that this approach is what’s behind these “scala is too complex” statements, when what truly matters is how living with that language every day for the next decade will be like, not how fast you pick up the syntax.

 

And yes, that Java is a dumbed down Pascal is a very bad thing. I was stuck with it for a decade. What happens (brain researchers will tell you) is that hard-aquired skill atrophies if not used. Java is so simple and devoid of paradigms that I fear I have significantly damaged the abstract part of my brain. These past 3-4 years of doing scala on a side it’s like a workout and recovery and I must tell you, it’s not been easy.

 

As Tony will tell you, programming is complex, scala is not.

 

My name is Razvan and I’m a scalaholic.

 

From: Eric Kolotyluk [eric [dot] kolotyluk [at] gmail [dot] com" rel="nofollow">mailto:eric [dot] kolotyluk [at] gmail [dot] com]
Sent: September-07-11 10:45 AM
To: Razvan Cojocaru
Cc: 'Cédric Beust ♔'; 'scala-debate'
Subject: Re: [scala-debate] Is Scala the Next C++

 

OK, OK - I may not have chosen the best title for this discussion :-)

The title was intended to be provocative so people might read the discussion, but people are reading more into the title than I intended (my bad).

Razvan, you say "dumbed down Pascal flavor" like that is bad thing. One of the reasons I like Java is that exact reason, it is really easy to approach Java as a new language whether you are a "cheap developer" or a seasoned one.

The reason I was successful at approaching Scala the second time was I had a better book with a better introduction. Scala, with the right introduction can be approachable, maybe even for some "cheap developers" ;-)

On the other hand, for a newcomer to Scala, the wrong introduction to the language can be a disaster, as I found on my first introduction to it - and believe me I am not a cheap developer.

The point that C++ is number 3 on Tiobe largely reflects how much legacy code there is still out there, and how much legacy investment organizations have made in training and tooling. This is also part of why Java is number 1. C is a special case, however, as I personally view C the same way I view assembly language, except I try to resort to C before assembly language. After all, the JVM is written in C.

My point about contemporary C++, especially with ATL/COM, is the code is unreadable and unmaintainable. It is far too easy to inadvertently create defects and it is painfully expensive to find and fix those defects. I personally do not believe C++ is a cost effective way to develop software.

My hope for Scala is that people can learn to write readable, maintainable code with few defects, and that defects won't be hard to find an correct - even for the "cheap developers."

Cheers, Eric

On 2011-09-07 7:23 AM, Razvan Cojocaru wrote:

Well, since it’s C++ bashing season… can someone enlighten me about what was so fundamentally willy-nilly or wrong with “C with Classes” and what are these difficulties that it ran into?

 

As far as I can tell, the reasons for Java’s success was abundance of cheap developers that could master (some say) the dumbed down Pascal flavor. Technically, the best thing about Java was the JVM/JAR and garbage collection, not the language itself. I do not recall any studies to show the efficiency of all these developers but that is irrelevant, because what it did is enable the networking effect and led to a massive growth and you now have tons of libraries and frameworks that do pretty much everything.

 

But the language of Java itself now seems to have taken on mythical powers and is compared with Scala and C++ ??? Are you kidding me? Until recently I could not even have a basic typed container, like List<Student>!

 

Last I looked at Tiobe, C++ is number 3 and C is number 2… What are these problems that C++ ran into? The fact that it didn’t evolve fast enough? Yes… what else? Lack of marketing? Yes… what else?

 

When thinking about C++, I think that simply, the time for new paradigms had come and a syntax build 20 years ago should not be coerced any further. Should we all stand in awe at the longevity and universality of say the intel assembly language?

 

The time had simply come, the knowledge had grown significantly, techniques and paradigms evolved and tested, new needs growing, JVM good enough and Martin had enough spare time… J

 

From: scala-debate [at] googlegroups [dot] com" rel="nofollow">scala-debate [at] googlegroups [dot] com [scala-debate [at] googlegroups [dot] com" rel="nofollow">mailto:scala-debate [at] googlegroups [dot] com] On Behalf Of Eric Kolotyluk
Sent: September-07-11 9:41 AM
To: Cédric Beust ♔
Cc: scala-debate
Subject: Re: [scala-debate] Is Scala the Next C++

 


On 2011-09-07 5:20 AM, Cédric Beust ♔ wrote:

 

On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com" rel="nofollow">eric [dot] kolotyluk [at] gmail [dot] com> wrote:

This sort of reminds me of my experience with C++.

 

I have the same feeling.

 

First of all, let it be clear that in terms of design, Scala is much more powerful and pleasant to work with than C++ ever was.

 

Having said that, a lot of things about Scala do remind me about C++ in the sense that "Scala is to Java what C++ is to C": a language more powerful but that also comes with costs.

 

I don't expect anyone who hasn't written thousands of lines of C++ in the 90's to understand the connection, though.

 

-- 

Cédric

 


Yes, I am very clear Scala is more powerful and fun to work with than C++. There is substantially more experience and breakthroughs in language design that have gone into Scala than were available to the C++ language designers.

And yes,  Scala is to Java what C++ is to C. The design of Scala is exceedingly more progressive compared to the exceedingly conservative approach to Java language evolution. I do not fault the Java language designers, and I praise them for making sure my old Java code continues to run correctly as the language evolves.

In the end, things did not go well for C++. I am wondering what we can learn from that and how we can use it to avoid similar misadventures with Scala.

There will always be side discussions like "is Scala too complex?" but the reason I started this debate was to challenge people to think of reasons this will or won't happen to Scala, and to propose ways for Scala to avoid the same difficulties C++ ran into.

Cheers, Eric

tolsen77
Joined: 2008-10-08,
User offline. Last seen 1 year 38 weeks ago.
Re: Is Scala the Next C++
That is why all Scala programming bloggers must always refer to Scala programming every time a Scala programming subject is on their mind. :)

http://delphi.org/2008/10/delphi-keeps-climbing/

On 7 September 2011 21:51, Eric Kolotyluk <eric [dot] kolotyluk [at] gmail [dot] com> wrote:
On 2011-09-07 9:51 AM, Seth Tisue wrote:
On Wed, Sep 7, 2011 at 10:55 AM, Paul Butcher<paul [at] paulbutcher [dot] com>  wrote:
On the subject of the Tiobe index, it's interesting to note that a "modern" functional language has just entered the top 20 for the first time last month.

Not Scala, Clojure, Haskell or Erlang, but... F#

Microsoft clearly still carries considerable weight among (some) developers.
The TIOBE index is junk and its well-known-ness is an unfortunate
historical accident.

We can't wish TIOBE out of existence, but a good start would be to
stop citing or mentioning it and use more reliable sources instead,
e.g.
http://lang-index.sourceforge.net/
http://www.indeed.com/jobtrends?q=scala%2C+clojure%2C+groovy%2C+f%23&l=

Nonetheless - I would still welcome seeing Scala rate higher on the TIOBE index :-)

What other indexes are out there that are possibly meaningful?

Cheers, Eric

Jörg W Mittag
Joined: 2009-12-31,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala the Next C++

Cédric Beust ♔ wrote:
> On Tue, Sep 6, 2011 at 1:45 PM, Eric Kolotyluk wrote:
>> This sort of reminds me of my experience with C++.
> I have the same feeling.
>
> First of all, let it be clear that in terms of design, Scala is much more
> powerful and pleasant to work with than C++ ever was.
>
> Having said that, a lot of things about Scala do remind me about C++ in the
> sense that "Scala is to Java what C++ is to C": a language more powerful but
> that also comes with costs.

There is an important difference, though: C++ is more complex than C,
but Scala is simpler than Java.

jwm

Cédric Beust ♔
Joined: 2011-06-17,
User offline. Last seen 42 years 45 weeks ago.
Re: Re: Is Scala the Next C++

2011/9/8 Jörg W Mittag <2BUsenet [at] googlemail [dot] com" rel="nofollow">JoergWMittag+Usenet [at] googlemail [dot] com>
There is an important difference, though: C++ is more complex than C,
but Scala is simpler than Java.

A lot of people will probably disagree with you on this.
More expressive than Java, certainly. Simpler... definitely not.
-- Cédric
Kevin Wright 2
Joined: 2010-05-30,
User offline. Last seen 26 weeks 4 days ago.
Re: Re: Is Scala the Next C++
By any *objective* measurement of simplicity, Scala is definitely simpler than Java.EBNF productions in the language spec, number of defined keywords, etc.
Then again, BrainF**k is one of the simplest languages going, based on those same measurements.
So can we please stop talking about complexity and simplicity? They don't help a great deal, and you'd never get two people to agree 100% on the definition of the two terms.

2011/9/9 Cédric Beust ♔ <cedric [at] beust [dot] com>

2011/9/8 Jörg W Mittag <2BUsenet [at] googlemail [dot] com" target="_blank" rel="nofollow">JoergWMittag+Usenet [at] googlemail [dot] com>
There is an important difference, though: C++ is more complex than C,
but Scala is simpler than Java.

A lot of people will probably disagree with you on this.
More expressive than Java, certainly. Simpler... definitely not.
-- Cédric


kolotyluk
Joined: 2010-06-04,
User offline. Last seen 5 weeks 15 hours ago.
Re: Re: Is Scala the Next C++
OK, I think Kevin has a point - we can go back and forth about the semantics and philosophy of simple vs. complex - I think we need to find better words we can all agree on.

Is it fair to say Scala is 'more sophisticated' (in the sense of refined as opposed to complicated) than Java?

The reason for this particular discussion is that while there are some people very comfortable with Scala, there are many who are not.

My personal experience with Scala is that it was harder for me learn Scala that it was for me to learn Java, even though Scala is not that different than Java. On the other hand, after gaining some competence with Scala, I was able to write 'cleaner code' much more readily than I was in Java. There are clearly trade-offs with Scala.

The title of this discussion "Is Scala the Next C++" was intended to pose the question "in the future, can Scala get into the same sorts of difficulty that C++ did, and if so how can we avoid that?"

It is one thing for me to learn Scala and use it for my personal needs. However, in the context of a person with considerable influence in my organization, am I ready to advocate and champion the use of Scala before my peers are ready for it? There are many of my peers who have turned their back on C++ even though they were quite competent with it at one time. Once they tasted Java they were extremely well motivated to avoid any further C++ exposure. These same people have also avoided learning C# and .NET because they are content with Java. The number of developers in our ranks competent with C++ or willing to maintain the C++ code base continues to diminish.

While I can see the compelling advantage of Scala, there are many who cannot, and will never. I still get criticism from some people because I integrated some Groovy into our product. We already have Pearl, Python and JavaScript - why do we need yet another scripting language - they ask? I have given several presentations on Scala to my peers - and they still ask - why do we need another language?

My current plans are to start developing a facet of our code base with Scala without asking permission or approval - seeking forgiveness is always easier.

Cheers, Eric

On 2011-09-08 5:10 PM, Kevin Wright wrote:
Z4Y95iC7Kk-7b+qR4PZqn548RDPvQ [at] mail [dot] gmail [dot] com" type="cite">By any *objective* measurement of simplicity, Scala is definitely simpler than Java. EBNF productions in the language spec, number of defined keywords, etc.
Then again, BrainF**k is one of the simplest languages going, based on those same measurements.
So can we please stop talking about complexity and simplicity? They don't help a great deal, and you'd never get two people to agree 100% on the definition of the two terms.

2011/9/9 Cédric Beust ♔ <cedric [at] beust [dot] com" rel="nofollow">cedric [at] beust [dot] com>

2011/9/8 Jörg W Mittag <2BUsenet [at] googlemail [dot] com" target="_blank" rel="nofollow">JoergWMittag+Usenet [at] googlemail [dot] com>
There is an important difference, though: C++ is more complex than C,
but Scala is simpler than Java.

A lot of people will probably disagree with you on this.
More expressive than Java, certainly. Simpler... definitely not.
--  Cédric


Raoul Duke
Joined: 2009-01-05,
User offline. Last seen 42 years 45 weeks ago.
Re: Re: Is Scala the Next C++

On Thu, Sep 8, 2011 at 6:58 PM, Eric Kolotyluk wrote:
> integrated some Groovy into our product. We already have Pearl, Python and
> JavaScript - why do we need yet another scripting language - they ask? I
> have given several presentations on Scala to my peers - and they still ask -
> why do we need another language?

heck, i love programming languages, but to some degree these folks do
have a valid point!

Stefan Langer
Joined: 2009-10-23,
User offline. Last seen 42 years 45 weeks ago.
Re: Re: Is Scala the Next C++

I agree with Kevin that "Complex" and "Simple" are not the right terms
as there is no common definition and both depend on context and your
point of view.

I think what makes Scala harder to grasp then Java is not the language
itself as it has a very unified way of handling things. Not a lot of
special cases and let me say "regular".
Now what makes it "complex" is that Scala enables new Stuff paradigm
shift that Java Programmers are not accustomed to and that when first
discovered are hard to grasp.

An example:
Try explaining to someone who doesn't know what a closure is and how
he will benefit from it. Unless he has actually used one it will be
hard to grasp the construct and see why it is beneficial. After he has
used closures a couple of time he will soon realize how much easier it
is to code with them and how your code can be expressed more easily
and result in cleaner code.

Now take this up a notch by introducing Higherkinds enabling
Abstractions like Monads, Monoids, Semigroups, Applciatives, Functors
etc.. unless you have studied category theory it will be hard to grasp
these concepts and unless you actually have seen how to use them and
used them yourself you will not see the benefit they bring to the
table.But once you use them you will not live with out them and after
that the desire arises to actually understand them so you start
learning about monadic laws and suddenly Applicatives, Functors and
Monads start showing up all over the place making your code cleaner
easier to read and better to grasp for those that understands these
Abstractions. For those that don't your code looks like magic and they
say it is too complex.

But it is not the language that is complex it is the Abstractions that
are "complex" in the sense that they are not easy to grasp. I think it
would be beneficial if students would be taught these abstractions
instead of teaching them how to program Java. Hey if I learned Java by
myself so can you and if I can learn about categories and Monads,
Monoids etc so can you.

If you do not want to learn about these things then maybe you should
consider a different profession. In the End it does not matter
wheather Scala is the next C++, the next Java or will be lost in the
Ether because these Abstractions will prevail and can be applied to
any other language coming there after as long as it provides the
nessecary language constructs.

Just my 2cts.

Stefan

2011/9/9 Eric Kolotyluk :
> OK, I think Kevin has a point - we can go back and forth about the semantics
> and philosophy of simple vs. complex - I think we need to find better words
> we can all agree on.
>
> Is it fair to say Scala is 'more sophisticated' (in the sense of refined as
> opposed to complicated) than Java?
>
> The reason for this particular discussion is that while there are some
> people very comfortable with Scala, there are many who are not.
>
> My personal experience with Scala is that it was harder for me learn Scala
> that it was for me to learn Java, even though Scala is not that different
> than Java. On the other hand, after gaining some competence with Scala, I
> was able to write 'cleaner code' much more readily than I was in Java. There
> are clearly trade-offs with Scala.
>
> The title of this discussion "Is Scala the Next C++" was intended to pose
> the question "in the future, can Scala get into the same sorts of difficulty
> that C++ did, and if so how can we avoid that?"
>
> It is one thing for me to learn Scala and use it for my personal needs.
> However, in the context of a person with considerable influence in my
> organization, am I ready to advocate and champion the use of Scala before my
> peers are ready for it? There are many of my peers who have turned their
> back on C++ even though they were quite competent with it at one time. Once
> they tasted Java they were extremely well motivated to avoid any further C++
> exposure. These same people have also avoided learning C# and .NET because
> they are content with Java. The number of developers in our ranks competent
> with C++ or willing to maintain the C++ code base continues to diminish.
>
> While I can see the compelling advantage of Scala, there are many who
> cannot, and will never. I still get criticism from some people because I
> integrated some Groovy into our product. We already have Pearl, Python and
> JavaScript - why do we need yet another scripting language - they ask? I
> have given several presentations on Scala to my peers - and they still ask -
> why do we need another language?
>
> My current plans are to start developing a facet of our code base with Scala
> without asking permission or approval - seeking forgiveness is always
> easier.
>
> Cheers, Eric
>
> On 2011-09-08 5:10 PM, Kevin Wright wrote:
>
> By any *objective* measurement of simplicity, Scala is definitely simpler
> than Java.
> EBNF productions in the language spec, number of defined keywords, etc.
> Then again, BrainF**k is one of the simplest languages going, based on those
> same measurements.
> So can we please stop talking about complexity and simplicity? They don't
> help a great deal, and you'd never get two people to agree 100% on the
> definition of the two terms.
>
> 2011/9/9 Cédric Beust ♔
>>
>> 2011/9/8 Jörg W Mittag
>>>
>>> There is an important difference, though: C++ is more complex than C,
>>> but Scala is simpler than Java.
>>
>> A lot of people will probably disagree with you on this.
>> More expressive than Java, certainly. Simpler... definitely not.
>> --
>> Cédric
>
>
>

fanf
Joined: 2009-03-17,
User offline. Last seen 2 years 30 weeks ago.
Re: Re: Is Scala the Next C++

On 09/09/2011 09:40, Stefan Langer wrote:
> [...]
>
> But it is not the language that is complex it is the Abstractions that
> are "complex" in the sense that they are not easy to grasp. I think it
> would be beneficial if students would be taught these abstractions
> instead of teaching them how to program Java. Hey if I learned Java by
> myself so can you and if I can learn about categories and Monads,
> Monoids etc so can you.
>
> If you do not want to learn about these things then maybe you should
> consider a different profession. In the End it does not matter
> wheather Scala is the next C++, the next Java or will be lost in the
> Ether because these Abstractions will prevail and can be applied to
> any other language coming there after as long as it provides the
> nessecary language constructs.
>

Wow, I'm really impressed: you succeeded to make a really well argued,
clear and interesting answer to a quite trolling subject. Thanks for that!

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