The Artima Developer Community
Sponsored Link

Artima Developer Spotlight Forum
Scala is for good programmers

34 replies on 3 pages. Most recent reply: Oct 25, 2010 2:38 PM by Anatoly Polinsky

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 34 replies on 3 pages [ 1 2 3 | » ]
Bill Venners

Posts: 2284
Nickname: bv
Registered: Jan, 2002

Scala is for good programmers Posted: Sep 27, 2010 6:36 PM
Reply to this message Reply
Advertisement

Bill Venners: Some people lately have expressed doubt whether Scala is a language for the average Java programmer. What's your opinion?

Martin Odersky: Scala at the moment doesn't need to be a language for the average Java programmer. The programmers we want to appeal to are the expert programmers—the good programmers. Our aim is to make them much more productive than they are with Java. I believe over time there will be enough teaching materials and enough good tools to also make Scala appeal to more average programmers. But that's not what our immediate aim is, and I think good programmers can become more productive with Scala now.


Martin Odersky

Posts: 84
Nickname: modersky
Registered: Sep, 2003

Re: Scala is for good programmers Posted: Sep 28, 2010 12:51 AM
Reply to this message Reply
I stand by what I said, but find the title of the post misleading and somewhat disconnected to the quote itself.

We have to distinguish between suitability and appeal. I maintain that Scala is suitable for all programmers. At the present point of adoption it appeals mostly to good Java programmers, because those programmers realize that they get clear productivity advantages with Scala. That's OK. Over time, others will follow.

An important trait of being a good programmer is the willingness to learn and push the boundaries of what can be done well. That's also why Scala is quite suitable for new programmers, including children and students.

V.H.Indukumar

Posts: 28
Nickname: vhi
Registered: Apr, 2005

Re: Scala is for good programmers Posted: Sep 28, 2010 12:52 AM
Reply to this message Reply
Scala is for good programmers: As most programmers think that they are good at programming, marketing it this way itself will bring lots of programmers in ;-).

Bill Venners

Posts: 2284
Nickname: bv
Registered: Jan, 2002

Re: Scala is for good programmers Posted: Sep 28, 2010 6:00 AM
Reply to this message Reply
> I stand by what I said, but find the title of the post
> misleading and somewhat disconnected to the quote itself.
>
I removed "Martin Odersky: " from the beginning of the title so it didn't appear to be a quote, which it is not. The title is composed of my words, not Martin's.

Achilleas Margaritis

Posts: 674
Nickname: achilleas
Registered: Feb, 2005

Re: Scala is for good programmers Posted: Sep 28, 2010 8:06 AM
Reply to this message Reply
I haven't used Scala, but from my experience a programming language should not be too clever, because the average Joe programmer would have a hard time using it. The real problem in programming languages is to push back the limits of what can be done by average Joes in correctness, complexity and productivity.

Renato Cavalcanti

Posts: 1
Nickname: renatocav
Registered: Sep, 2010

Re: Scala is for good programmers Posted: Sep 28, 2010 12:24 PM
Reply to this message Reply
The title could also be Scala is good for programmers.

Learning a new language is always good in the sense that programmer get in touch with new paradigms and programing styles. Like you explained in a previous article "How Scala Changed My Programming Style"
http://www.artima.com/scalazine/articles/programming_style.html

Kay Schluehr

Posts: 302
Nickname: schluehk
Registered: Jan, 2005

Re: Scala is for good programmers Posted: Sep 28, 2010 9:23 PM
Reply to this message Reply
The "average programmer" has to die.

Like "Joe the plumber" who was not a plumber the "average programmer" has no real existence and there is also not much reason for it to exist. Of course there is an average programmer in the sense that one can build averages for about everything. So there is also an average medical doctor, an average astronaut and entrepreneur, an average football player, engineer and mathematician. But none of them operates in our minds as a Big Other ( symbolic order / self-censorship ) who needs care, protection, self deprecation and devotion like the "average programmer". So please kill the "average programmer" if you see one.

Also don't justify complex crap by means of "good programmers" unlikely adoption which is equally bad. If programmers don't understand what you are doing or they do think they can go away with much less baggage then the "good programmer" will not save your soul either.

Gregor Zeitlinger

Posts: 108
Nickname: gregor
Registered: Aug, 2005

Re: Scala is for good programmers Posted: Sep 29, 2010 4:31 AM
Reply to this message Reply
> I haven't used Scala, but from my experience a programming
> language should not be too clever, because the average Joe
> programmer would have a hard time using it.
I haven't used Scala either - but from what I've read about Scala, I would also have a hard time using it.
I can understand each feature separately, but together they take a lot of attention.

One of the things that are more complex than in Java is the new package clause (http://www.artima.com/scalazine/articles/chained_package_clauses_in_scala.html), with no clear benefit to justify the complexity.

I have used Java Generics extensively and I still have to think about co- and contra-variance each time I use generic parameters. Hence, I wonder if the Fantom approach (no generics in user types) is better, even though I would miss the feature!

This is just one example and the Scala generics is certainly better - but the Java version is still supported via existential types, so you have to understand both versions. This is not only a problem for "Joe".

Achilleas Margaritis

Posts: 674
Nickname: achilleas
Registered: Feb, 2005

Re: Scala is for good programmers Posted: Sep 29, 2010 4:38 AM
Reply to this message Reply
> The "average programmer" has to die.
>
> Like "Joe the plumber" who was not a plumber the "average
> programmer" has no real existence and there is also not
> much reason for it to exist. Of course there is an average
> programmer in the sense that one can build averages for
> about everything. So there is also an average medical
> doctor, an average astronaut and entrepreneur, an average
> football player, engineer and mathematician. But none of
> them operates in our minds as a Big Other ( symbolic order
> / self-censorship ) who needs care, protection, self
> deprecation and devotion like the "average programmer". So
> please kill the "average programmer" if you see one.
>
> Also don't justify complex crap by means of "good
> programmers" unlikely adoption which is equally bad. If
> programmers don't understand what you are doing or they do
> think they can go away with much less baggage then the
> "good programmer" will not save your soul either.

A programmer's job is not equal in severity and complexity as an astronaut's, entrepreneur's, engineer's and mathematician's job, except in a few cases.

Secondly, there is still a whole lot of things that can be done via computers, so a whole lot more programmers than astronauts, entrepreneurs, engineers and mathematicians are needed. But most people are average.

So there is an average programmer, and the tools he uses should be improved so as that he can be more productive.

Bill Venners

Posts: 2284
Nickname: bv
Registered: Jan, 2002

Re: Scala is for good programmers Posted: Sep 29, 2010 6:40 PM
Reply to this message Reply
> The real problem in programming languages is to push back
> the limits of what can be done by average Joes in
> correctness, complexity and productivity.
>
Several posts here seem to claim that the most important goal of any programming language design should be to serve the average programmer. If I'm understanding that correctly, then I don't agree.

Back in my C++ days I programmed a lot in Visual C++ building apps for Microsoft Windows 3.1. I also did some programming in Visual Basic in those days. I really liked Visual Basic's simple way of programming. You built GUI dialog boxes visually by clicking and dragging, then attached handler code to the controls. I felt that the design goal of Visual Basic was to make programming Windows apps more accessible to more people (which would encourage more Windows apps, which would encourage more Windows volume, etc.) I think you could say that Visual Basic was designed to serve the average programmer, and that was a very good thing. The reason I don't agree that all programming languages should be designed for that purpose is that when a tool is designed to make simple things easy, it can sometimes make more ambitious things difficult.

So it is also useful to have programming languages designed to support people trying to solve harder problems, and that's what I felt Visual C++ was doing. And Java, C#, and Scala fall into that category too.

Visual Basic helped (or I suppose, helps) make programming accessible to people who aren't trained as programmers, and aren't very sophisticated at it. People who are smart, but just trained in other things: business, interior decorating, designing airplane wings---whatever. Moreover, my C++ colleagues and I observed also that some programmers in our company who really couldn't handle C++ could actually do useful things in Visual Basic. I don't think we were just being snobbish. It was true, and it was a good thing to have a tool that helped those programmers be productive.

I don't think Scala is designed to serve the average programmer like Visual Basic was designed to serve the average programmer. It was designed to serve more professional programmers, programmers for whom programming is their actually career and who have some level of competence.

That said, Scala isn't designed just for expert programmers. The way it works is that experts design Scala libraries and frameworks that make programming in the domain much easier for the rest of the programmers. I don't think this is much different than the way things work in practice in Java, C++, or C# land. On any team there will be a handful of people who are "the best," and they make the decisions on architecture. They design libraries and frameworks that the rest of the team uses. The difference is that Scala gives the experts a lot more power than Java, which makes it possible for them to design libraries and frameworks that makes domain programming a lot easier than Java for the "average" Joe developer.

sean mcdirmid

Posts: 4
Nickname: seanm
Registered: Jul, 2009

Re: Scala is for good programmers Posted: Sep 29, 2010 6:53 PM
Reply to this message Reply
+1. Marketing Scala at professionals and people who are passionate about languages is probably a good strategy. Scala seems to attract lots of functional programming enthusiasts, but I also think it would appeal to the power C++ programmers that are turned down by how dumbed down Java can be (to support average programmers). Being elite has its advantages even if it does scare some programmers away: it provides a path for average programmers to become better (by learning Scala).

John Wellbelove

Posts: 72
Nickname: garibaldi
Registered: Mar, 2008

Re: Scala is for good programmers Posted: Sep 30, 2010 12:55 AM
Reply to this message Reply
> , but I also think it would appeal to the power
> C++ programmers that are turned down by how dumbed down
> Java can be (to support average programmers).

That's the impression I got after reading up on Scala. Having been a C/C++ programmer for 25 years and had a big hand in architecture and library design, I found it reassuring that a lot of the so called 'hard' programming paradigms were still available in Scala (albeit sometimes in a different form).

Now if there was a version of Scala that compiled to native code and had facilities for 'unsafe' hardware access...

Achilleas Margaritis

Posts: 674
Nickname: achilleas
Registered: Feb, 2005

Re: Scala is for good programmers Posted: Sep 30, 2010 4:51 AM
Reply to this message Reply
> Visual Basic helped (or I suppose, helps) make programming
> accessible to people who aren't trained as programmers,
> and aren't very sophisticated at it. People who are smart,
> but just trained in other things: business, interior
> decorating, designing airplane wings---whatever. Moreover,
> my C++ colleagues and I observed also that some
> programmers in our company who really couldn't handle C++
> could actually do useful things in Visual Basic. I don't
> think we were just being snobbish. It was true, and it was
> a good thing to have a tool that helped those programmers
> be productive.

VB was not the best thing that it can be done in helping pushing back the limits. There is a lot of room for improvement. The world needs programming languages both for expert programmers, so as that they create the truly interesting software and for average programmers so as that they create the boring but necessary software.

Maarten Hazewinkel

Posts: 32
Nickname: terkans
Registered: Jan, 2005

Re: Scala is for good programmers Posted: Sep 30, 2010 5:42 AM
Reply to this message Reply
> The world needs programming languages both
> for expert programmers, so as that they create the truly
> interesting software and for average programmers so as
> that they create the boring but necessary software.

Exactly.

And even better would be if there is good interoperability between an 'expert' language and an 'average' language, so that your best programmers can build the heavy lifting part of the software in a language that enables them to be more productive.
Then the less gifted programmers can come in and use a language with a bit more handholding to build all the business logic and UI.

And that's one of the things that Scala can offer, based on it's interoperability with Java.

sean mcdirmid

Posts: 4
Nickname: seanm
Registered: Jul, 2009

Re: Scala is for good programmers Posted: Sep 30, 2010 5:24 PM
Reply to this message Reply
> VB was not the best thing that it can be done in helping
> pushing back the limits. There is a lot of room for
> improvement. The world needs programming languages both
> for expert programmers, so as that they create the truly
> interesting software and for average programmers so as
> that they create the boring but necessary software.

However, the holy grail would be a language that is conceptually scalable: accessible enough for average programmers with a high enough ceiling for expert programmers. I don't think Scala is meant to be that language.

Flat View: This topic has 34 replies on 3 pages [ 1  2  3 | » ]
Topic: Where Do You Want to Be in Five Years? Previous Topic   Next Topic Topic: Scala Training in Mountain View, Jan 2011

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use