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

Is Scala an expert language?

74 replies
Joshua.Suereth
Joined: 2008-09-02,
User offline. Last seen 32 weeks 5 days ago.
Re: Is Scala an expert language?
Just a minor note that I don't think existential types are only useful for dealing with Java.   In particular, paulp brought up a situation where:
type Foo =  x.T forSome { val x } 
was the best solution to represent the type T on the object x.  
In any case, I like the list.  It seems like a natural progression.   I would move Extractors down to A3/L2 though, as you find yourself using them *a lot* when integrating with existing java libraries.... for example:  Google collections provides pair/tupleN classes that are just *dieing* for someone to provide extractors.   Albeit, this could be filled by a library designer, I think the sophistication is at the L2 level rather than L3.
One that same note, I think defining map/flatMap/filter happens a bit earlier in the library designer mindset as well, probably around L2 as well.
In any case, the beauty to this list is that you'll notice a programmer can be productive in scala at each level.  It's a good language to get things done in, regardless of skill level.  Granted, I'd rather look at code I write now than when I started learning Scala, but the code I wrote when I started worked just fine and solved whatever problem I needed to solve.
Scala may get complex in interactions at the highest level, but that's only needed to solve complex problems.   That and the complexity you face, IMHO is more appropriate to the complexity of the problem.   When creating the same solution in Java or C++ I usually feel burdened with a lot of other noise when solving these more complex issues.
- Josh

On Thu, Dec 9, 2010 at 5:11 AM, martin odersky <martin [dot] odersky [at] epfl [dot] ch> wrote:


On Wed, Dec 8, 2010 at 10:47 PM, De Gao <gaode.ml@gmail.com> wrote:
...
Not really. I've read the Scala by Example and Program in Scala from beginning to end. I just spend more time on the spec because I thought that's the book that provide all of the information. But seems your guys don't think so.
It seems that several people agreed that not all the features of Scala needs to be involved in development. So to make this thread more meaningful, could I beg those skilled Scala developers that make a brief list of features that suit beginner, advanced user and expert of Scala?
Thank you very much.

It's an intriguing question. I believe the answer will differ a little bit for everyone, but I'll put up a strawman nevertheless. I assume here that
programmers have already a good knowledge of Java, so we can take at least pre-generics Java for granted. If that's not the case, some of the early concepts such as classes and exceptions need to be moved to more advanced levels.

Also, I distinguish between application programmers and library designers, because the required skill sets are radically different.

So here's something for y'all to knock down ;-):

Level A1: Beginning application programmer

Java-like statements and expressions: standard operators, method calls, conditionals, loops, try/catch
class, object, def, val, var, import, package
Infix notation for method calls
Simple closures
Collections with map, filter, etc
for-expressions

Level A2: Intermediate application programmer

Pattern matching
Trait composition
Recursion, in particular tail recursion
XML literals

Level A3: Expert application programmer

Folds
Streams
Actors
Combinator parsers

Level L1: Junior library designer

Type parameters
Traits
Lazy vals
Control abstraction, currying
By-name parameters

Level L2: Senior library designer

Variance annotations
Existential types (to interface with Java wildcards)
Abstract types
Self types
Structural types

Level L3: Expert library designer

Early initializers
Extractors
Implicit definitions
Higher-kinded types
Defining map/flatmap/withFilter for new kinds of for-expressions

Cheers

 -- Martin

odersky
Joined: 2008-07-29,
User offline. Last seen 45 weeks 6 days ago.
Re: Is Scala an expert language?


On Thu, Dec 9, 2010 at 2:05 PM, Josh Suereth <joshua [dot] suereth [at] gmail [dot] com> wrote:
Just a minor note that I don't think existential types are only useful for dealing with Java.   In particular, paulp brought up a situation where:
type Foo =  x.T forSome { val x }  
was the best solution to represent the type T on the object x.  
True. In fact you can then write S#T, where S is the type of x, it means the same thing. But I agree that existentials have other uses beyond wildcards.
It's just that these other uses would suggest that existentials should be placed in L3. Wildcards make it more urgent to deal with existentials that's why I have put them in L2.
 
In any case, I like the list.  It seems like a natural progression.   I would move Extractors down to A3/L2 though, as you find yourself using them *a lot* when integrating with existing java libraries.... for example:  Google collections provides pair/tupleN classes that are just *dieing* for someone to provide extractors.   Albeit, this could be filled by a library designer, I think the sophistication is at the L2 level rather than L3.
Good point. It seems in practice I read much more about people using implicits than people using extractors. I agree it should rather be the other way, though.
 
One that same note, I think defining map/flatMap/filter happens a bit earlier in the library designer mindset as well, probably around L2 as well.
Yes, I tend to agree with that also.

Cheers

 -- Martin

Justin du coeur
Joined: 2009-03-04,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala an expert language?
I responded privately to Martin how much I like this list.  But it does raise the point: if someone who knows what they were doing were so minded, I think this list (or one like it) could be used as the basis for a really great multi-level course in Scala.  A website structured along exactly these lines might well do the language a lot of good, by making it really *clear* how a programmer can dive into the language quickly, and gradually get better at it.
(Granted, the Scala books tend to follow similar lines.  But simply by drawing somewhat arbitrary crisp lines, I think this makes the language less intimidating.)
I can't volunteer: besides not having the time, I just plain am not at the A3 or L3 levels myself.  But it's the website I'd love to have as a guideline myself, as someone slowly getting better at it...

On Thu, Dec 9, 2010 at 5:11 AM, martin odersky <martin [dot] odersky [at] epfl [dot] ch> wrote:


On Wed, Dec 8, 2010 at 10:47 PM, De Gao <gaode.ml@gmail.com> wrote:
...
Not really. I've read the Scala by Example and Program in Scala from beginning to end. I just spend more time on the spec because I thought that's the book that provide all of the information. But seems your guys don't think so.
It seems that several people agreed that not all the features of Scala needs to be involved in development. So to make this thread more meaningful, could I beg those skilled Scala developers that make a brief list of features that suit beginner, advanced user and expert of Scala?
Thank you very much.

It's an intriguing question. I believe the answer will differ a little bit for everyone, but I'll put up a strawman nevertheless. I assume here that
programmers have already a good knowledge of Java, so we can take at least pre-generics Java for granted. If that's not the case, some of the early concepts such as classes and exceptions need to be moved to more advanced levels.

Also, I distinguish between application programmers and library designers, because the required skill sets are radically different.

So here's something for y'all to knock down ;-):

Level A1: Beginning application programmer

Java-like statements and expressions: standard operators, method calls, conditionals, loops, try/catch
class, object, def, val, var, import, package
Infix notation for method calls
Simple closures
Collections with map, filter, etc
for-expressions

Level A2: Intermediate application programmer

Pattern matching
Trait composition
Recursion, in particular tail recursion
XML literals

Level A3: Expert application programmer

Folds
Streams
Actors
Combinator parsers

Level L1: Junior library designer

Type parameters
Traits
Lazy vals
Control abstraction, currying
By-name parameters

Level L2: Senior library designer

Variance annotations
Existential types (to interface with Java wildcards)
Abstract types
Self types
Structural types

Level L3: Expert library designer

Early initializers
Extractors
Implicit definitions
Higher-kinded types
Defining map/flatmap/withFilter for new kinds of for-expressions

Cheers

 -- Martin

Razvan Cojocaru 3
Joined: 2010-07-28,
User offline. Last seen 42 years 45 weeks ago.
RE: Is Scala an expert language?

Promptly gistified for forkability: https://gist.github.com/735037 with the extractors demoted up (or promoted)

 

From: odersky [at] gmail [dot] com [mailto:odersky [at] gmail [dot] com] On Behalf Of martin odersky
Sent: December-09-10 9:47 AM
To: Josh Suereth
Cc: De Gao; Alec Zorab; Erik Engbrecht; Roland Kuhn; Randall R Schulz; scala-debate [at] listes [dot] epfl [dot] ch
Subject: Re: [scala-debate] Is Scala an expert language?

 

 

On Thu, Dec 9, 2010 at 2:05 PM, Josh Suereth <joshua [dot] suereth [at] gmail [dot] com> wrote:

Just a minor note that I don't think existential types are only useful for dealing with Java.   In particular, paulp brought up a situation where:

 

type Foo =  x.T forSome { val x } 

 

was the best solution to represent the type T on the object x.  

 

True. In fact you can then write S#T, where S is the type of x, it means the same thing. But I agree that existentials have other uses beyond wildcards.
It's just that these other uses would suggest that existentials should be placed in L3. Wildcards make it more urgent to deal with existentials that's why I have put them in L2.
 

In any case, I like the list.  It seems like a natural progression.   I would move Extractors down to A3/L2 though, as you find yourself using them *a lot* when integrating with existing java libraries.... for example:  Google collections provides pair/tupleN classes that are just *dieing* for someone to provide extractors.   Albeit, this could be filled by a library designer, I think the sophistication is at the L2 level rather than L3.

 

Good point. It seems in practice I read much more about people using implicits than people using extractors. I agree it should rather be the other way, though.
 

One that same note, I think defining map/flatMap/filter happens a bit earlier in the library designer mindset as well, probably around L2 as well.

 

Yes, I tend to agree with that also.

Cheers

 -- Martin

Razvan Cojocaru 3
Joined: 2010-07-28,
User offline. Last seen 42 years 45 weeks ago.
RE: Is Scala an expert language?

Darn – I can’t fork it myself anymore.

 

Traits – you have them on L1 and A2…? They’re needed by anyone, so A2 looks more appropriate.

Type parameters – a little difficult to place, since a List[Student] is good practice for even A1

Lazy vals – I would move from L1 to A2 or A3…it’s a basic lazy initialization pattern

Map/flatmap – maybe demote to L2 ? fear of monads is wide-spread…and not really warranted

 

Otherwise, great list! I added a few links to an exam, sample curriculum, the style guide etc…

 

From: Razvan Cojocaru [mailto:pub [at] razie [dot] com]
Sent: December-09-10 12:49 PM
To: 'martin odersky'; 'Josh Suereth'
Cc: scala-debate [at] listes [dot] epfl [dot] ch
Subject: RE: [scala-debate] Is Scala an expert language?

 

Promptly gistified for forkability: https://gist.github.com/735037 with the extractors demoted up (or promoted)

 

From: odersky [at] gmail [dot] com [mailto:odersky [at] gmail [dot] com] On Behalf Of martin odersky
Sent: December-09-10 9:47 AM
To: Josh Suereth
Cc: De Gao; Alec Zorab; Erik Engbrecht; Roland Kuhn; Randall R Schulz; scala-debate [at] listes [dot] epfl [dot] ch
Subject: Re: [scala-debate] Is Scala an expert language?

 

 

On Thu, Dec 9, 2010 at 2:05 PM, Josh Suereth <joshua [dot] suereth [at] gmail [dot] com> wrote:

Just a minor note that I don't think existential types are only useful for dealing with Java.   In particular, paulp brought up a situation where:

 

type Foo =  x.T forSome { val x } 

 

was the best solution to represent the type T on the object x.  

 

True. In fact you can then write S#T, where S is the type of x, it means the same thing. But I agree that existentials have other uses beyond wildcards.
It's just that these other uses would suggest that existentials should be placed in L3. Wildcards make it more urgent to deal with existentials that's why I have put them in L2.
 

In any case, I like the list.  It seems like a natural progression.   I would move Extractors down to A3/L2 though, as you find yourself using them *a lot* when integrating with existing java libraries.... for example:  Google collections provides pair/tupleN classes that are just *dieing* for someone to provide extractors.   Albeit, this could be filled by a library designer, I think the sophistication is at the L2 level rather than L3.

 

Good point. It seems in practice I read much more about people using implicits than people using extractors. I agree it should rather be the other way, though.
 

One that same note, I think defining map/flatMap/filter happens a bit earlier in the library designer mindset as well, probably around L2 as well.

 

Yes, I tend to agree with that also.

Cheers

 -- Martin

De Gao
Joined: 2009-08-10,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala an expert language?
On 09/12/2010 10:11, martin odersky wrote:
x5TRLXQsiNRODzL3Af+hYT [at] mail [dot] gmail [dot] com" type="cite">

On Wed, Dec 8, 2010 at 10:47 PM, De Gao <gaode.ml@gmail.com> wrote:
...
Not really. I've read the Scala by Example and Program in Scala from beginning to end. I just spend more time on the spec because I thought that's the book that provide all of the information. But seems your guys don't think so.
It seems that several people agreed that not all the features of Scala needs to be involved in development. So to make this thread more meaningful, could I beg those skilled Scala developers that make a brief list of features that suit beginner, advanced user and expert of Scala?
Thank you very much.

It's an intriguing question. I believe the answer will differ a little bit for everyone, but I'll put up a strawman nevertheless. I assume here that
programmers have already a good knowledge of Java, so we can take at least pre-generics Java for granted. If that's not the case, some of the early concepts such as classes and exceptions need to be moved to more advanced levels.

Also, I distinguish between application programmers and library designers, because the required skill sets are radically different.

So here's something for y'all to knock down ;-):

Level A1: Beginning application programmer

Java-like statements and expressions: standard operators, method calls, conditionals, loops, try/catch
class, object, def, val, var, import, package
Infix notation for method calls
Simple closures
Collections with map, filter, etc
for-expressions

Level A2: Intermediate application programmer

Pattern matching
Trait composition
Recursion, in particular tail recursion
XML literals

Level A3: Expert application programmer

Folds
Streams
Actors
Combinator parsers

Level L1: Junior library designer

Type parameters
Traits
Lazy vals
Control abstraction, currying
By-name parameters

Level L2: Senior library designer

Variance annotations
Existential types (to interface with Java wildcards)
Abstract types
Self types
Structural types

Level L3: Expert library designer

Early initializers
Extractors
Implicit definitions
Higher-kinded types
Defining map/flatmap/withFilter for new kinds of for-expressions

Cheers

 -- Martin
I think this list is marvelous. Thank you martin.
bjohanns
Joined: 2009-10-23,
User offline. Last seen 1 year 37 weeks ago.
Re: Is Scala an expert language?

Hi List,

> On Sunday December 5 2010, De Gao wrote:
> > "Is Scala an expert language?"
>
> Programming is an expert activity. All its tools are for experts.
>
> Dilettantes (or hobbyists, if you prefer) are not, in my opinion,
> the concern of people creating or using Scala.
>

This could be easily mistaken as "If you can't come to terms with scala - go
away and take a dilettantists tool, keep on playing with VB".

If scala is to be seen this way it shouldn't advertise itself as a tool
applicable for a broad range of use cases from simple scripting to large
enterprise applications... because "simple scripting" is hardly the core
domain of programming experts.

Greetings
Bernd

Erik Engbrecht
Joined: 2008-12-19,
User offline. Last seen 3 years 18 weeks ago.
Re: Is Scala an expert language?
To be fair, if you can't come to terms with Scala, you probably shouldn't use Scala.  You can say that about any tool.

On Sat, Dec 11, 2010 at 3:44 PM, Bernd Johannes <bjohanns [at] bacon [dot] de> wrote:
Hi List,

> On Sunday December 5 2010, De Gao wrote:
> > "Is Scala an expert language?"
>
> Programming is an expert activity. All its tools are for experts.
>
> Dilettantes (or hobbyists, if you prefer) are not, in my opinion,
> the concern of people creating or using Scala.
>

This could be easily mistaken as "If you can't come to terms with scala - go
away and take a dilettantists tool, keep on playing with VB".

If scala is to be seen this way it shouldn't advertise itself as a tool
applicable for a broad range of use cases from simple scripting to large
enterprise applications... because "simple scripting" is hardly the core
domain of programming experts.

Greetings
Bernd



Randall R Schulz
Joined: 2008-12-16,
User offline. Last seen 1 year 29 weeks ago.
Re: Is Scala an expert language?

On Saturday December 11 2010, Bernd Johannes wrote:
> Hi List,
>
> > On Sunday December 5 2010, De Gao wrote:
> > > "Is Scala an expert language?"
> >
> > Programming is an expert activity. All its tools are for experts.
> >
> > Dilettantes (or hobbyists, if you prefer) are not, in my opinion,
> > the concern of people creating or using Scala.
>
> This could be easily mistaken as "If you can't come to terms with
> scala - go away and take a dilettantists tool, keep on playing with
> VB".

It would not be a mistaken interpretation. I don't want the concerns of
the uninitiated to influence the design of the language I'm going to
use.

> If scala is to be seen this way it shouldn't advertise itself as a
> tool applicable for a broad range of use cases from simple scripting
> to large enterprise applications... because "simple scripting" is
> hardly the core domain of programming experts.

One sure way for most anything to fail is to try to be all things to all
people.

> Greetings
> Bernd

Randall Schulz

bjohanns
Joined: 2009-10-23,
User offline. Last seen 1 year 37 weeks ago.
Re: Is Scala an expert language?

Am Samstag, 11. Dezember 2010, 23:18:30 schrieb Randall R Schulz:
> On Saturday December 11 2010, Bernd Johannes wrote:
> > Hi List,
> >
> > > On Sunday December 5 2010, De Gao wrote:
> > > > "Is Scala an expert language?"
> > >
> > > Programming is an expert activity. All its tools are for experts.
> > >
> > > Dilettantes (or hobbyists, if you prefer) are not, in my opinion,
> > > the concern of people creating or using Scala.
> >
> > This could be easily mistaken as "If you can't come to terms with
> > scala - go away and take a dilettantists tool, keep on playing with
> > VB".
>
> It would not be a mistaken interpretation. I don't want the concerns of
> the uninitiated to influence the design of the language I'm going to
> use.

I don't argue that the design of a language (or any other complex tool) should
be driven mainly by the need and requirements of their main users. And it's a
good thing, that the final decisions are in the hands of real experts.

The term "dillettantes" was my eye catcher. At least in Germany this term
carries a negative notion and can be seen as insult.

I don't think that insulting anybody is a good way to adoption.

> > If scala is to be seen this way it shouldn't advertise itself as a
> > tool applicable for a broad range of use cases from simple scripting
> > to large enterprise applications... because "simple scripting" is
> > hardly the core domain of programming experts.
>
> One sure way for most anything to fail is to try to be all things to all
> people.

Scala claims to be a tool for exactly the quoted range of use cases. And I
don't question that because it works very well. But that implies that the
scala lists will face questions from casual users and "non programming
experts".
Revile them as "dillettantes" might drive them away quite quickly thus purging
the list of "pesky" questioners.
But they will be eager to share this "scala experience" - probably not
questioning if there was any shortcoming on their part.

All I ask for is careful wording.

Greetings
Bernd

Cay Horstmann
Joined: 2009-09-04,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala an expert language?

>> If scala is to be seen this way it shouldn't advertise itself as a
>> tool applicable for a broad range of use cases from simple scripting
>> to large enterprise applications... because "simple scripting" is
>> hardly the core domain of programming experts.
>
> One sure way for most anything to fail is to try to be all things to all
> people.

I am not sure that is true in the case of a programming language.

There is a significant benefit having a language that spans a wide
range, because you can reuse your expertise more easily as you need to
carry out different tasks. I don't do "simple scripting" everyday, but
when I do it, it is delightful to be able to do it in Scala.

Cheers,

Cay

Elazar Leibovich
Joined: 2009-10-07,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala an expert language?
On Mon, Dec 13, 2010 at 9:05 AM, Cay Horstmann <cay [dot] horstmann [at] gmail [dot] com> wrote:
There is a significant benefit having a language that spans a wide
range, because you can reuse your expertise more easily as you need to
carry out different tasks. I don't do "simple scripting" everyday, but
when I do it, it is delightful to be able to do it in Scala.

I'm not delighted to use scala scripts at all, due to the high JVM start-up time. There are solutions for that, but I'd rather need no solutions for a simple quick script.
 

Cheers,

Cay

bjohanns
Joined: 2009-10-23,
User offline. Last seen 1 year 37 weeks ago.
Re: Is Scala an expert language? - Scala scripting

Am Montag, 13. Dezember 2010, 11:46:20 schrieb Elazar Leibovich:
> On Mon, Dec 13, 2010 at 9:05 AM, Cay Horstmann
wrote:
> > There is a significant benefit having a language that spans a wide
> > range, because you can reuse your expertise more easily as you need to
> > carry out different tasks. I don't do "simple scripting" everyday, but
> > when I do it, it is delightful to be able to do it in Scala.
>
> I'm not delighted to use scala scripts at all, due to the high JVM start-up
> time. There are solutions for that, but I'd rather need no solutions for a
> simple quick script.

The start time has never be an issue for me when it comes to scripting. Most
of the time I utilize one-shot-scripts (mostly text processing) which take
between some minutes to ~1h to develop and some seconds to run. The additional
seconds for the JVM startup are no concern in this setting (and most of the
time I load them via :load into the repl and execute them there, so the JVM as
well as the compiler is already at hand :-).

I'm seldom passionate about environments, but I kind of love scala scripting
because its no longer the pain it used to be in the perl days. When the script
finally compiles it almost always does what it is expected to do. No
comparison to the print-debug-stories of perl!

I definitely don't want to go back!
Greetings
Bernd

Alex Repain
Joined: 2010-07-27,
User offline. Last seen 1 year 31 weeks ago.
Re: Is Scala an expert language? - Scala scripting


2010/12/13 Bernd Johannes <bjohanns [at] bacon [dot] de>

I'm seldom passionate about environments, but I kind of love scala scripting
because its no longer the pain it used to be in the perl days. When the script
finally compiles it almost always does what it is expected to do. No
comparison to the print-debug-stories of perl!

That's how I discovered and started to enjoy Scala a lot : if you only want to focus
on some problem of your own, you can - finally. So little worries about weird exceptions,
or just the most obvious and well-documented ones. And the same goes for various tasks,
from sys admins' quick scripting to the code architects' complex designs.

I coded 3 months straight on the same big problem with Scala, and I never had to worry
about other bugs than design-related, or algorithm-related bugs. I personally think that is
one BIG achievement of this language, although there's always still some way to go.
It could be advertised more, maybe people who argue that Scala is too complex would
question themselves about what they are calling "complexity" - coding complexity
or the-problems-that-you-can-solve-with-it complexity ?


I definitely don't want to go back!

Me neither. I'm ending up whining like a baby when asked to make a very simple I/O module in C++.

Cheers,
Alex

 
Greetings
Bernd

Goddard Jiri
Joined: 2009-10-16,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala an expert language? - Scala scripting
Has anyone tried to write configuration tool / script in Scala?
Let's say deployment (of Tomcat itself, not the possible apps) and configuration scripts for Tomcat?

Jiri

On Mon, Dec 13, 2010 at 10:09 PM, Alex Repain <alex [dot] repain [at] gmail [dot] com> wrote:


2010/12/13 Bernd Johannes <bjohanns [at] bacon [dot] de>

I'm seldom passionate about environments, but I kind of love scala scripting
because its no longer the pain it used to be in the perl days. When the script
finally compiles it almost always does what it is expected to do. No
comparison to the print-debug-stories of perl!

That's how I discovered and started to enjoy Scala a lot : if you only want to focus
on some problem of your own, you can - finally. So little worries about weird exceptions,
or just the most obvious and well-documented ones. And the same goes for various tasks,
from sys admins' quick scripting to the code architects' complex designs.

I coded 3 months straight on the same big problem with Scala, and I never had to worry
about other bugs than design-related, or algorithm-related bugs. I personally think that is
one BIG achievement of this language, although there's always still some way to go.
It could be advertised more, maybe people who argue that Scala is too complex would
question themselves about what they are calling "complexity" - coding complexity
or the-problems-that-you-can-solve-with-it complexity ?


I definitely don't want to go back!

Me neither. I'm ending up whining like a baby when asked to make a very simple I/O module in C++.

Cheers,
Alex

 
Greetings
Bernd




--
web: http://www.dredwerkz.cz
group: http://groups.google.com/group/dr3dwerkz
icq: 218 659 431
dcsobral
Joined: 2009-04-23,
User offline. Last seen 38 weeks 5 days ago.
Re: Is Scala an expert language? - Scala scripting
Not that I know. It would be a fun project, and since I'm working with Puppet nowadays, I'd certainly contribute to a project like that.

On Mon, Dec 13, 2010 at 19:18, Goddard Jiri <g0dd4rd [at] googlemail [dot] com> wrote:
Has anyone tried to write configuration tool / script in Scala?
Let's say deployment (of Tomcat itself, not the possible apps) and configuration scripts for Tomcat?

Jiri

On Mon, Dec 13, 2010 at 10:09 PM, Alex Repain <alex [dot] repain [at] gmail [dot] com> wrote:


2010/12/13 Bernd Johannes <bjohanns [at] bacon [dot] de>

I'm seldom passionate about environments, but I kind of love scala scripting
because its no longer the pain it used to be in the perl days. When the script
finally compiles it almost always does what it is expected to do. No
comparison to the print-debug-stories of perl!

That's how I discovered and started to enjoy Scala a lot : if you only want to focus
on some problem of your own, you can - finally. So little worries about weird exceptions,
or just the most obvious and well-documented ones. And the same goes for various tasks,
from sys admins' quick scripting to the code architects' complex designs.

I coded 3 months straight on the same big problem with Scala, and I never had to worry
about other bugs than design-related, or algorithm-related bugs. I personally think that is
one BIG achievement of this language, although there's always still some way to go.
It could be advertised more, maybe people who argue that Scala is too complex would
question themselves about what they are calling "complexity" - coding complexity
or the-problems-that-you-can-solve-with-it complexity ?


I definitely don't want to go back!

Me neither. I'm ending up whining like a baby when asked to make a very simple I/O module in C++.

Cheers,
Alex

 
Greetings
Bernd




--
web: http://www.dredwerkz.cz
group: http://groups.google.com/group/dr3dwerkz
icq: 218 659 431



--
Daniel C. Sobral

I travel to the future all the time.
Jim Balter
Joined: 2010-12-03,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala an expert language?

On Sun, 05 Dec 2010 12:16:51 -0800, Randall R Schulz wrote:

> On Sunday December 5 2010, Seth Tisue wrote:
>> >>>>> "Erik" == Erik Engbrecht writes:
>> >>
>> >> Programming is an expert activity. All its tools are for experts.
>>
>> ...
>>
>> Erik> Programming is like reading and writing. Most people can
>> derive Erik> significant benefit from knowing the basics of how to do
>> it, [...]
>>
>> Amen, brother.
>
> And what does that have to do with Scala?

Perhaps, if you would look just a little bit above, you will see that you
made a general sweeping statement about programming, and that's what the
responses you quote were responding to, so your question is a non
sequitur.

> Is every programming language
> to be designed with readability and understandability by members of the
> general public in mind?
>
> Sorry, I don't buy it. First things first here means what professionals
> need takes strong precedence over what any other audience would like.
>
>
> Randall Schulz

This is a false dichotomy. The issues discussed here are about
readability and pedagogy ... they can be dealt with without interfering
with what professionals need. Another issue raised by the OP was how Scala
can be a future language if few programmers start to use it ... the fact
is that professionals benefit from tools that have a reasonably large
user base.

fanf
Joined: 2009-03-17,
User offline. Last seen 2 years 30 weeks ago.
Re: Is Scala an expert language? - Scala scripting

On 13/12/2010 22:18, Goddard Jiri wrote:
> Has anyone tried to write configuration tool / script in Scala?
> Let's say deployment (of Tomcat itself, not the possible apps) and
> configuration scripts for Tomcat?

Not me, but we are working in a management console (in Scala) above
CFEngine, so we will certainly be interested and contribute to such a tool.

Goddard Jiri
Joined: 2009-10-16,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala an expert language? - Scala scripting
Glad to hear that more people like the idea :)
I haven't started by myself yet, but I plan to start during Christmas holidays or beginning of next year.

Regards, Jiri

On Tue, Dec 14, 2010 at 10:09 AM, Francois <fanf42 [at] gmail [dot] com> wrote:
On 13/12/2010 22:18, Goddard Jiri wrote:
Has anyone tried to write configuration tool / script in Scala?
Let's say deployment (of Tomcat itself, not the possible apps) and
configuration scripts for Tomcat?


Not me, but we are working in a management console (in Scala) above CFEngine, so we will certainly be interested and contribute to such a tool.




Razvan Cojocaru 3
Joined: 2010-07-28,
User offline. Last seen 42 years 45 weeks ago.
RE: Is Scala an expert language? - Scala scripting

Well, this is one of the reasons I wrote the Scripster, see it in action at http://tryscala.org or read the story at http://wiki.homecloud.ca/scripster

 

It’s an embeddable scripting pad for scala – purpose of which is to allow you to interact with the server’s internal objects, either the domain objects and/or the administration objects, like JMX, modules etc (nothing specific for this yet).

 

It would not neccesarily help with the deployment part – you need a framework for that, but after… it’s the cheapest and fastest admin UI you can think of, simply because of the content assist J which can use a little more work but I’m not a JavaScript maven, so… J you can help with that.

 

It also takes care of the JVM startup problem (someone was worried about that earlier) IF you keep an agent always running, like I do.

 

Cheers,

Razvan

 

From: Daniel Sobral [mailto:dcsobral [at] gmail [dot] com]
Sent: December-13-10 8:31 PM
To: Goddard Jiri
Cc: Alex Repain; Bernd Johannes; scala-debate [at] listes [dot] epfl [dot] ch; Elazar Leibovich; Cay Horstmann
Subject: Re: [scala-debate] Is Scala an expert language? - Scala scripting

 

Not that I know. It would be a fun project, and since I'm working with Puppet nowadays, I'd certainly contribute to a project like that.

On Mon, Dec 13, 2010 at 19:18, Goddard Jiri <g0dd4rd [at] googlemail [dot] com> wrote:

Has anyone tried to write configuration tool / script in Scala?
Let's say deployment (of Tomcat itself, not the possible apps) and configuration scripts for Tomcat?

Jiri

 

On Mon, Dec 13, 2010 at 10:09 PM, Alex Repain <alex [dot] repain [at] gmail [dot] com> wrote:

 

2010/12/13 Bernd Johannes <bjohanns [at] bacon [dot] de>

 


I'm seldom passionate about environments, but I kind of love scala scripting
because its no longer the pain it used to be in the perl days. When the script
finally compiles it almost always does what it is expected to do. No
comparison to the print-debug-stories of perl!


That's how I discovered and started to enjoy Scala a lot : if you only want to focus
on some problem of your own, you can - finally. So little worries about weird exceptions,
or just the most obvious and well-documented ones. And the same goes for various tasks,
from sys admins' quick scripting to the code architects' complex designs.

I coded 3 months straight on the same big problem with Scala, and I never had to worry
about other bugs than design-related, or algorithm-related bugs. I personally think that is
one BIG achievement of this language, although there's always still some way to go.
It could be advertised more, maybe people who argue that Scala is too complex would
question themselves about what they are calling "complexity" - coding complexity
or the-problems-that-you-can-solve-with-it complexity ?


I definitely don't want to go back!


Me neither. I'm ending up whining like a baby when asked to make a very simple I/O module in C++.

Cheers,
Alex

 

Greetings
Bernd

 



--
web: http://www.dredwerkz.cz
group: http://groups.google.com/group/dr3dwerkz
icq: 218 659 431




--
Daniel C. Sobral

I travel to the future all the time.

Razvan Cojocaru 3
Joined: 2010-07-28,
User offline. Last seen 42 years 45 weeks ago.
RE: Is Scala an expert language? - Scala scripting

Oh, and before I forget, normally the deployment and configuration include multiple steps, which can go in sequence or in parallel etc – for that you can use the workflow DSL I put together, with the par/seq goodness: http://blog.razie.com/2010/09/scala-workflow-engine-and-dsl.html

 

It will at some point get a nice UI J

 

 

From: Daniel Sobral [mailto:dcsobral [at] gmail [dot] com]
Sent: December-13-10 8:31 PM
To: Goddard Jiri
Cc: Alex Repain; Bernd Johannes; scala-debate [at] listes [dot] epfl [dot] ch; Elazar Leibovich; Cay Horstmann
Subject: Re: [scala-debate] Is Scala an expert language? - Scala scripting

 

Not that I know. It would be a fun project, and since I'm working with Puppet nowadays, I'd certainly contribute to a project like that.

On Mon, Dec 13, 2010 at 19:18, Goddard Jiri <g0dd4rd [at] googlemail [dot] com> wrote:

Has anyone tried to write configuration tool / script in Scala?
Let's say deployment (of Tomcat itself, not the possible apps) and configuration scripts for Tomcat?

Jiri

 

On Mon, Dec 13, 2010 at 10:09 PM, Alex Repain <alex [dot] repain [at] gmail [dot] com> wrote:

 

2010/12/13 Bernd Johannes <bjohanns [at] bacon [dot] de>

 


I'm seldom passionate about environments, but I kind of love scala scripting
because its no longer the pain it used to be in the perl days. When the script
finally compiles it almost always does what it is expected to do. No
comparison to the print-debug-stories of perl!


That's how I discovered and started to enjoy Scala a lot : if you only want to focus
on some problem of your own, you can - finally. So little worries about weird exceptions,
or just the most obvious and well-documented ones. And the same goes for various tasks,
from sys admins' quick scripting to the code architects' complex designs.

I coded 3 months straight on the same big problem with Scala, and I never had to worry
about other bugs than design-related, or algorithm-related bugs. I personally think that is
one BIG achievement of this language, although there's always still some way to go.
It could be advertised more, maybe people who argue that Scala is too complex would
question themselves about what they are calling "complexity" - coding complexity
or the-problems-that-you-can-solve-with-it complexity ?


I definitely don't want to go back!


Me neither. I'm ending up whining like a baby when asked to make a very simple I/O module in C++.

Cheers,
Alex

 

Greetings
Bernd

 



--
web: http://www.dredwerkz.cz
group: http://groups.google.com/group/dr3dwerkz
icq: 218 659 431




--
Daniel C. Sobral

I travel to the future all the time.

Goddard Jiri
Joined: 2009-10-16,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala an expert language? - Scala scripting
Thanks Razvan, very interesting!!! :)

Regards, Jiri

On Tue, Dec 14, 2010 at 2:39 PM, Razvan Cojocaru <pub [at] razie [dot] com> wrote:

Oh, and before I forget, normally the deployment and configuration include multiple steps, which can go in sequence or in parallel etc – for that you can use the workflow DSL I put together, with the par/seq goodness: http://blog.razie.com/2010/09/scala-workflow-engine-and-dsl.html

 

It will at some point get a nice UI J

 

 

From: Daniel Sobral [mailto:dcsobral [at] gmail [dot] com]
Sent: December-13-10 8:31 PM
To: Goddard Jiri
Cc: Alex Repain; Bernd Johannes; scala-debate [at] listes [dot] epfl [dot] ch; Elazar Leibovich; Cay Horstmann
Subject: Re: [scala-debate] Is Scala an expert language? - Scala scripting

 

Not that I know. It would be a fun project, and since I'm working with Puppet nowadays, I'd certainly contribute to a project like that.

On Mon, Dec 13, 2010 at 19:18, Goddard Jiri <g0dd4rd [at] googlemail [dot] com> wrote:

Has anyone tried to write configuration tool / script in Scala?
Let's say deployment (of Tomcat itself, not the possible apps) and configuration scripts for Tomcat?

Jiri

 

On Mon, Dec 13, 2010 at 10:09 PM, Alex Repain <alex [dot] repain [at] gmail [dot] com> wrote:

 

2010/12/13 Bernd Johannes <bjohanns [at] bacon [dot] de>

 


I'm seldom passionate about environments, but I kind of love scala scripting
because its no longer the pain it used to be in the perl days. When the script
finally compiles it almost always does what it is expected to do. No
comparison to the print-debug-stories of perl!


That's how I discovered and started to enjoy Scala a lot : if you only want to focus
on some problem of your own, you can - finally. So little worries about weird exceptions,
or just the most obvious and well-documented ones. And the same goes for various tasks,
from sys admins' quick scripting to the code architects' complex designs.

I coded 3 months straight on the same big problem with Scala, and I never had to worry
about other bugs than design-related, or algorithm-related bugs. I personally think that is
one BIG achievement of this language, although there's always still some way to go.
It could be advertised more, maybe people who argue that Scala is too complex would
question themselves about what they are calling "complexity" - coding complexity
or the-problems-that-you-can-solve-with-it complexity ?


I definitely don't want to go back!


Me neither. I'm ending up whining like a baby when asked to make a very simple I/O module in C++.

Cheers,
Alex

 

Greetings
Bernd

 



--
web: http://www.dredwerkz.cz
group: http://groups.google.com/group/dr3dwerkz
icq: 218 659 431




--
Daniel C. Sobral

I travel to the future all the time.




--
web: http://www.dredwerkz.cz
group: http://groups.google.com/group/dr3dwerkz
icq: 218 659 431
Razvan Cojocaru 3
Joined: 2010-07-28,
User offline. Last seen 42 years 45 weeks ago.
Re: Is Scala an expert language?
So Martin, what next? Do we include this list in the github guide? You want to blog it? How do we get a reference to it?

Thanks,Razvan
On 2010-12-09, at 9:47 AM, martin odersky <martin [dot] odersky [at] epfl [dot] ch> wrote:



On Thu, Dec 9, 2010 at 2:05 PM, Josh Suereth <joshua [dot] suereth [at] gmail [dot] com (joshua [dot] suereth [at] gmail [dot] com" rel="nofollow">joshua [dot] suereth [at] gmail [dot] com)> wrote:
Just a minor note that I don't think existential types are only useful for dealing with Java.   In particular, paulp brought up a situation where:
type Foo =  x.T forSome { val x }  
was the best solution to represent the type T on the object x.  
True. In fact you can then write S#T, where S is the type of x, it means the same thing. But I agree that existentials have other uses beyond wildcards.
It's just that these other uses would suggest that existentials should be placed in L3. Wildcards make it more urgent to deal with existentials that's why I have put them in L2.
 
In any case, I like the list.  It seems like a natural progression.   I would move Extractors down to A3/L2 though, as you find yourself using them *a lot* when integrating with existing java libraries.... for example:  Google collections provides pair/tupleN classes that are just *dieing* for someone to provide extractors.   Albeit, this could be filled by a library designer, I think the sophistication is at the L2 level rather than L3.
Good point. It seems in practice I read much more about people using implicits than people using extractors. I agree it should rather be the other way, though.
 
One that same note, I think defining map/flatMap/filter happens a bit earlier in the library designer mindset as well, probably around L2 as well.
Yes, I tend to agree with that also.

Cheers

 -- Martin

odersky
Joined: 2008-07-29,
User offline. Last seen 45 weeks 6 days ago.
Re: Is Scala an expert language?


On Thu, Dec 16, 2010 at 10:25 PM, Razvan Cojocaru <pub [at] razie [dot] com> wrote:
So Martin, what next? Do we include this list in the github guide? You want to blog it? How do we get a reference to it?

Hi Razvan,
 
Please do include it in the github guide if you think it fits there. I have been meaning to blog this but was simply too busy to do it, and it looks like this state of things is going to last for a while.

Thanks

 -- Martin

Thanks,Razvan
On 2010-12-09, at 9:47 AM, martin odersky <martin [dot] odersky [at] epfl [dot] ch> wrote:



On Thu, Dec 9, 2010 at 2:05 PM, Josh Suereth <joshua [dot] suereth [at] gmail [dot] comjoshua [dot] suereth [at] gmail [dot] com> wrote:
Just a minor note that I don't think existential types are only useful for dealing with Java.   In particular, paulp brought up a situation where:
type Foo =  x.T forSome { val x }  
was the best solution to represent the type T on the object x.  
True. In fact you can then write S#T, where S is the type of x, it means the same thing. But I agree that existentials have other uses beyond wildcards.
It's just that these other uses would suggest that existentials should be placed in L3. Wildcards make it more urgent to deal with existentials that's why I have put them in L2.
 
In any case, I like the list.  It seems like a natural progression.   I would move Extractors down to A3/L2 though, as you find yourself using them *a lot* when integrating with existing java libraries.... for example:  Google collections provides pair/tupleN classes that are just *dieing* for someone to provide extractors.   Albeit, this could be filled by a library designer, I think the sophistication is at the L2 level rather than L3.
Good point. It seems in practice I read much more about people using implicits than people using extractors. I agree it should rather be the other way, though.
 
One that same note, I think defining map/flatMap/filter happens a bit earlier in the library designer mindset as well, probably around L2 as well.
Yes, I tend to agree with that also.

Cheers

 -- Martin


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