|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
Functional or Not?
by martin odersky-2
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message I have found some friction on this list recently between ``pure
functional programmers'' and people who see in Scala just a better Java (or Python, or whatever). I think this is unproductive. Everybody has his or her favorite style of programming. Rather than putting the other style down, it is *much better* to write great examples/turorials/libraries which show how one's favorite style can be used beautifully in Scala. If you do that, my bet is that you will convince many others to follow you. Another think I've noticed is that people on this list have very different backgrounds. There are highly experienced industry veterans as well as people with a strong academic background (of course, some people belong in both sets). But this means we have to take more pains than usual to explain things well to the other category of programmers. Cheers -- Martin |
|
|
Re: Functional or Not?
by Randall Schulz
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message On Monday 24 September 2007 03:18, martin odersky wrote:
> ... > > Another think I've noticed is that people on this list have very > different backgrounds. There are highly experienced industry veterans > as well as people with a strong academic background (of course, some > people belong in both sets). But this means we have to take more > pains than usual to explain things well to the other category of > programmers. I'm one of those industry veteran guys, but it's the academic background of Scala and its creators that gives it appeal for me and gives me confidence that its principles are sound. (I was just telling someone the other day that if I were starting out to write my theorem prover right now, I'd surely use Scala for the whole thing.) But I have always rejected arguments from "purity" when it comes to programming language (and pretty much everything except chemistry.) > Cheers > > -- Martin Randall Schulz |
|
|
Re: Functional or Not?
by Erik Engbrecht
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message I'm one of those industry veteran guys, but it's the academic background A very big +1 on that.
On 9/24/07, Randall R Schulz <rschulz@...> wrote:
On Monday 24 September 2007 03:18, martin odersky wrote: -- http://erikengbrecht.blogspot.com/ |
|
|
Re: Functional or Not?
by Lee MIghdoll-2
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message On Mon, 2007-09-24 at 12:18 +0200, martin odersky wrote:
> I have found some friction on this list recently between ``pure > functional programmers'' and people who see in Scala just a better > Java (or Python, or whatever). I agree -- relax a bit folks! Remember that just about everyone on the list is committing their time toward a common goal: trying to make Scala successful. I also encourage Amir and others to stay engaged and keep asking tough or potentially naive questions. Although there's been some friction, there have also been many constructive conversations. Keep it constructive, and we can all learn things. Lee |
|
|
Re: Functional or Not?
by John Nilsson
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message On Mon, 2007-09-24 at 12:18 +0200, martin odersky wrote:
> Rather than putting the > other style down, it is *much better* to write great > examples/turorials/libraries which show how one's favorite style can > be used beautifully in Scala. Why not have community library? A code repository where almost anyone will get commit-access. This would be used as a dumping ground for code used more or less as a wiki. This could then be used to generate some webpages where "beautiful" examples and libraries could be showcased and discussed. This could be an area where possible candidates for Scalas standard library could be evaluated. This could be used as community maintained utility library where such things as the nonNull thing Jon posted could used in peoples projects. (Wouldn't this be a security risk? As long as people take responsibility for validating the code they use and the community keeps an eye on the commit list I don't think it would be to hard to keep going) Regards, John Nilsson |
|
|
Re: Functional or Not?
by Lex Spoon-3
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message John Nilsson <john@...> writes:
> On Mon, 2007-09-24 at 12:18 +0200, martin odersky wrote: > > Rather than putting the > > other style down, it is *much better* to write great > > examples/turorials/libraries which show how one's favorite style can > > be used beautifully in Scala. > > Why not have community library? A code repository where almost anyone > will get commit-access. This would be used as a dumping ground for code > used more or less as a wiki. I like your ideas about the community contributing code. Certainly patches are welcome via the issue tracker, and they do go in if they seem right. For most community-contributed code, however, I believe that packages are a betert arrangements. Packages leave the code's author in direct control o that code's future. Further, they remove EPFL from the loop for most decisions about propagating the package. The authors can instead directly post their stuff and try to get people to use them. For package-based contributions, my best ideas are (1) posting your project on a site like Google Code or SourceForge, and (2) sharing it via sbaz. More info is here: http://scala.sygneca.com/projects/start That's just my current thinking of course, and I expect the best mechanisms and culture will need to be felt out over time. What do you and others think? What can be done to support non-EPFL folks in sharing Scala code with each other? -Lex |
|
|
Community repository proposal
by Jamie Webb-2
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message On 2007-10-24 14:20:40 Lex Spoon wrote:
> John Nilsson <john@...> writes: > > On Mon, 2007-09-24 at 12:18 +0200, martin odersky wrote: > > > Rather than putting the > > > other style down, it is *much better* to write great > > > examples/turorials/libraries which show how one's favorite style > > > can be used beautifully in Scala. > > > > Why not have community library? A code repository where almost > > anyone will get commit-access. This would be used as a dumping > > ground for code used more or less as a wiki. > > I like your ideas about the community contributing code. Certainly > patches are welcome via the issue tracker, and they do go in if they > seem right. > > For most community-contributed code, however, I believe that packages > are a betert arrangements. Packages leave the code's author in direct > control o that code's future. Further, they remove EPFL from the loop > for most decisions about propagating the package. The authors can > instead directly post their stuff and try to get people to use them. > > For package-based contributions, my best ideas are (1) posting your > project on a site like Google Code or SourceForge, and (2) sharing it > via sbaz. More info is here: > > http://scala.sygneca.com/projects/start > > > That's just my current thinking of course, and I expect the best > mechanisms and culture will need to be felt out over time. > > > What do you and others think? What can be done to support > non-EPFL folks in sharing Scala code with each other? I've been wondering about this. So here's a proposal: There's a lot of stuff I think that various people have produced or are considering producing at this point that ought to be 'on track' to go into the standard library. Much of it does not warrant a project to itself (or may be a small part of an existing project), but is nevertheless useful. At present there is no formal mechanism for publishing this work, beyond this mailing list and the bug tracker, neither of which are really geared for community code review. I propose that we will host a Git[1] repository, to which we will grant write access to anyone (that we recognise) who asks for it. This repository will contain a scalax._ package tree containing the community-contributed code. We will set up a separate mailing list to discuss this code. A second repository will be writable only by a selection of 'influential' Scala users (list subject to nominations) and will contain the code that passes peer review. That repository will be published periodically via sbaz. The purpose of this repository will be to contain the same sort of code that is present in J2SE, the Haskell standard library, etc. and not anything too domain-specific (for which sbaz, Sourceforge, etc. would be a more appropriate channel). All code will be released under the same license as Scala, and code may be moved from the community repository into the main distribution as the Scala developers see fit. Would this be useful? Practical? ...? /J [1] For our own work, we use Darcs and are very happy with it. However Darcs has some problems that make it unsuitable for use with a publicly writable repository. Git seems a reasonable alternative. In any case, a distributed SCM (Darcs, Git, Mercurial, bzr, etc.) seems ideal for this purpose. |
|
|
Re: Community repository proposal
by David Pollak-4
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message On 10/24/07, Jamie Webb <j@...> wrote: On 2007-10-24 14:20:40 Lex Spoon wrote: Would this be useful? Practical? ...? Jamie, This sounds like an excellent idea. If you need hosting/bandwidth or any other contributions, please let me know. Thanks, David /J -- lift, the secure, simple, powerful web framework http://liftweb.net |
|
|
Re: Community repository proposal
by Eric Willigers
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message Jamie Webb wrote:
> I've been wondering about this. So here's a proposal: > > There's a lot of stuff I think that various people have produced or > are considering producing at this point that ought to be 'on track' to > go into the standard library. Much of it does not warrant a project > to itself (or may be a small part of an existing project), but is > nevertheless useful. At present there is no formal mechanism for > publishing this work, beyond this mailing list and the bug tracker, > neither of which are really geared for community code review. > > I propose that we will host a Git[1] repository, to which we will grant > write access to anyone (that we recognise) who asks for it. This > repository will contain a scalax._ package tree containing the > community-contributed code. We will set up a separate mailing list to > discuss this code. A second repository will be writable only by a > selection of 'influential' Scala users (list subject to nominations) > and will contain the code that passes peer review. That repository will > be published periodically via sbaz. > > The purpose of this repository will be to contain the same sort of code > that is present in J2SE, the Haskell standard library, etc. and not > anything too domain-specific (for which sbaz, Sourceforge, etc. would > be a more appropriate channel). All code will be released under the > same license as Scala, and code may be moved from the community > repository into the main distribution as the Scala developers see fit. > > Would this be useful? Practical? ...? > > /J > > [1] For our own work, we use Darcs and are very happy with it. However > Darcs has some problems that make it unsuitable for use with a publicly > writable repository. Git seems a reasonable alternative. In any case, a > distributed SCM (Darcs, Git, Mercurial, bzr, etc.) seems ideal for this > purpose. > Hi Jamie, Excellent idea. In particular, it would be good to put a Test or Behavior Driven Development library through this process and have it promoted into the standard library. Another nomination would be a comprehensively lazy sequence, where no elements are evaluated until needed, and methods like map, filter and flatMap perform no work up-front e.g. some of Tony's code, or port http://article.gmane.org/gmane.comp.lang.scala.user/1129 to use generics. BTW, a quick web search and source browse a while ago led me to prefer Mercurial over Git, and I understand OpenJDK will be available through Mercurial. For continuous integration testing I came across http://hudson.gotdns.com/wiki/display/HUDSON/Mercurial+Plugin but have yet to try it. Whatever system is used, it would be good to have the test suite output online. Also, lots of thanks for the work you and Jon are already doing hosting the wiki. Regards, Eric. |
|
|
Re: Re: Community repository proposal
by Alex Boisvert-3
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message Great idea! I also propose a regex package (from lift?) and a standardized {Result, Success, Failure} trifecta.
alex On 10/24/07, Eric Willigers
<ewilligers@...> wrote: > I propose that we will host a Git[1] repository, to which we will grant |
|
|
Re: Re: Community repository proposal
by David Pollak
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message On Oct 24, 2007, at 8:37 PM, Alex Boisvert wrote: Great idea! I also propose a regex package (from lift?) and a standardized {Result, Success, Failure} trifecta. I'm happy to share the pieces of lift that make sense to go into a larger repository. I have to review the IP assignment documents to make sure that changing the code from an Apache 2.0 license to a BSD-style license is permissible, but I don't expect that that's a huge hurdle. Things in lift that might be better in the world at large: - The Can[T] class (like Option with with Failure in addition to Empty) - The Textile parser - The RegEx stuff (a thin layer on top of Java's RegEx package) - The Logging stuff (a thin layer on Log4J) - The Helpers object (all sorts of conversion, date related stuff, etc.) Thanks, David alex -- David Pollak |
|
|
Re: Community repository proposal
by Eric Torreborre
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message > In particular, it would be good to put a Test or Behavior Driven
> Development library through this process and have it promoted into the > standard library I couldn't be more happy to see people building on my own: http://code.google.com/p/specs and delivering it in the standard lib! For the record, I have started working for the next version of specs on some new features: - Table examples: "A calculator" can { "do additions" in { ("a", "b", "c") | (1, 2, 3) | (3, 2, 3) | (2, 2, 4) |> { (a: Int, b: Int, result: Int) => calc.add(a, b) must_== result } } } This prints: A calculator can x do additions |a|b|c| x|3|2|3| '3' is not equal to '5' ... - Literal specifications (very experimental!): "The timer spec" is <p> A simple timer is an object which can measure time. Let's create a timer{timer = new SimpleTimer}. When a timer is stopped{timer.stop.shh}, the timer should {"return an elapsed time matching" + "\\d second".as(pattern) in {timer.hms must beMatching(pattern.toString)}} </p> I don't know if it's more readable/manageable than classical specs/junit specifications but it's fun trying anyway! E. |
|
|
Re: Community repository proposal
by Lex Spoon-3
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message Jamie Webb <j@...> writes:
> I propose that we will host a Git[1] repository, to which we will grant > write access to anyone (that we recognise) who asks for it. This > repository will contain a scalax._ package tree containing the > community-contributed code. We will set up a separate mailing list to > discuss this code. A second repository will be writable only by a > selection of 'influential' Scala users (list subject to nominations) > and will contain the code that passes peer review. That repository will > be published periodically via sbaz. > > The purpose of this repository will be to contain the same sort of code > that is present in J2SE, the Haskell standard library, etc. and not > anything too domain-specific (for which sbaz, Sourceforge, etc. would > be a more appropriate channel). All code will be released under the > same license as Scala, and code may be moved from the community > repository into the main distribution as the Scala developers see fit. It's an interesting idea for sure, and I would like to try and picture it better. So I have two questions, if you would like to talk about it further. The first one is, do you have any more specific examples of the kinds of thing that might be treated this way? I'm not sure what J2SE would include exactly. I submit that even the "standard library" can be a pile of small packages during development. So javax.swing could be in a separate package from java.util.regex. Then, sbaz users would see the individual jar's. The javax organizers you hint at would still exist, but their decision would be subtly different. Instead of heading the repository, they would periodically conglomerate some existing packages into a larger javax jar. The reason I keep bringing up this arrangement is that it seems really nice for delegating responsibility and control. One group can work on regexes, and another group on the swing wrapper. Then, there is a separate group in about which version of which of these libraries get integrated into the "standard" library. From experience with Squeak, I can tell you it is sometimes annoying to have your code go into the standard library and from then on not be under your control any longer. It seems elegant if the division into packages or repositories aligns with the division into responsibility and authority. Anyway, there is also the issue of the core of the standard library, things that definitely should not be in separate packages, regular patches to the bug tracker seem pretty good to me. You mentioned being unsure the bug tracker is enough, though, so that is my second question. Would you say the bug-tracker approach feels limiting even for such core code, or is it more for the less central parts of the standard library? By the way, note that I am not at EPFL any more. I am just a Scala enthusiast who is interested in how open-source communities organize. -Lex |
|
|
Re: Re: Community repository proposal
by David Pollak
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message Lex Spoon wrote: > > > By the way, note that I am not at EPFL any more. I am just a Scala > enthusiast who is interested in how open-source communities organize. Lex, Can you tell us where you are now? Can you tell us if this place is putting any muscle behind Scala? Thanks, David > > > -Lex > > > |
|
|
[scala] Re: Community repository proposal
by Bill Venners
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message Hi Jamie,
I'd like to respond to your entire proposal, so I'll do so up on top here. I think it is good to start figuring out a process for how things go into the standard library. I've been wanting to research how this is done in the Python community. When I get that done I'll post here for comparison. I would like to see Scala achieve widespread adoption, and for that to happen, people need to have confidence their code won't break from release to release. That means language changes need to be backwards compatible, as do standard library APIs and functionality. Thus putting something into the standard library adds a burden for future releases in that someone will need to make sure client code doesn't break. Also, once you add something, you can't take it out, because that is of course a breaking change. (I think there may be a need to do some pruning in the standard library, and if so, it should be done very soon. Hopefully it isn't already impossible to achieve.) So in my mind it is important that before something is added to the standard library, it should in most cases have been proven to be a good and useful solution by real use. The standard library is not a place for experiments. As a community, though, we should try and foster and encourage experimentation and innovation. The place for that is somewhere else besides the standard library. You suggest scalax.* I would advise against using scalax as the innovation/experimentation namespace, because in the Java community javax holds as much weight as java. javax.swing is a standard, not an experiment. So I'd suggest either having another name, or just not having a common name. People could be expected to register a domain name then use the reverse domain name convention for their API. People can easily use it via sbaz, and it can get a track record. For a while the provider of the API can warn users they reserve the right to make incompatible changes (I'd suggest as a convention we say we'll do so until release "1.0", but really this should be between a provider and his or her users). Two design goals that are in tension for the standard library are maximizing "batteries included" and minimizing "surface area". "Batteries included" is the catchy way the Python community says that they have a lot of useful libraries. If you want to do something in Python, the lore goes, there's most often a Python library available that makes it easy and quick to do. So that's a good thing. "Surface area" is how Ken Arnold[1] has described the volume of functionality in an API design. He gives the example of Swing, which has tons of functionality, so much so that it is often hard to figure out what you have to ignore to just get something that should be simple done. It is easier to find your stapler in a drawer if there are only a few other essential items in there compared to it being stuffed full of objects, most of which you probably won't have a use for ever again. Because Scala sits on top of the Java Platform, which has a vast ocean of useful libraries, Scala in a sense already comes with a geo- thermal electric generator station included. I want to use Scala with these Java libraries at Artima. I want to "scalify" them in many places. For example, I want to use Scalified Hibernate entities that instead of get and set methods have Scala's more natural accessor syntax: 'user.name' instead of 'user.getName(),' and 'user.name = "Bob",' instead of 'user.setName("Bob").' But that's easy for me to do in my own project. I don't need a Scalified wrapper for Hibernate in the standard library. I value simplicity in Scala's standard library, especially in the near future, because it makes Scala easier to learn if the library isn't so massive and scary looking. So I hope the community would be conservative about what goes in there, and really really picky. But on the other hand, I think we should encourage innovation and experimentation somewhere else. As things prove themselves, they can be brought into the standard library through some process. (One difficulty faced by all the Java communities I know of, is how do you change the package name of something to the standard namespace, in our case scala.*, if the thing is already being used in lots of code. An API can't be "proven" unless a lot of people use it, which means that by moving it into scala.* you'd break all that client code. I know of no good solution for this problem, but I was involved in trying to figure out how to deal with this problem in the Jini space, so I can also describe what we decided there if anyone is interested.) Lastly, I think that not every domain needs to be covered in the standard library. I've been working on a test framework for us to use at Artima, and I'm planning to release it open source. But I never imagined it would be a candidate for the standard library. In the Java community they never put any kind of test framework in the standard library, and there has been some innovation (JUnit and TestNG, for example) that happened to fill that space. Adding some test framework to the Java API just doesn't seem necessary, and it might have a squelching effect on innovation thereafter in that space. I don't see why we'd need a testing framework in the Scala API. Some other examples of very useful APIs that aren't part of a standard Java library are Lucene, Hibernate, Spring, etc. My intuition is to keep the Scala standard library trim and fit and encourage innovation outside of it. That said, there still should be a process to get things into the standard library. Two aspects I'd recommend are that Scaladoc documentation needs to be thorough, complete, and professional, and there needs to be a comprehensive regression test suite that will help ensure client code doesn't break from Scala release to release. Sorry for the long post. I don't have time to compress it. Thanks. Bill [1] Ken Arnold, the architect of JavaSpaces among many other things, who I once interviewed defines "surface area" at the... ...top of: http://www.artima.com/intv/taste4.html ...and bottom of: http://www.artima.com/intv/perfect2.html On Oct 24, 2007, at 5:51 PM, Jamie Webb wrote: > On 2007-10-24 14:20:40 Lex Spoon wrote: >> John Nilsson <john@...> writes: >>> On Mon, 2007-09-24 at 12:18 +0200, martin odersky wrote: >>>> Rather than putting the >>>> other style down, it is *much better* to write great >>>> examples/turorials/libraries which show how one's favorite style >>>> can be used beautifully in Scala. >>> >>> Why not have community library? A code repository where almost >>> anyone will get commit-access. This would be used as a dumping >>> ground for code used more or less as a wiki. >> >> I like your ideas about the community contributing code. Certainly >> patches are welcome via the issue tracker, and they do go in if they >> seem right. >> >> For most community-contributed code, however, I believe that packages >> are a betert arrangements. Packages leave the code's author in >> direct >> control o that code's future. Further, they remove EPFL from the >> loop >> for most decisions about propagating the package. The authors can >> instead directly post their stuff and try to get people to use them. >> >> For package-based contributions, my best ideas are (1) posting your >> project on a site like Google Code or SourceForge, and (2) sharing it >> via sbaz. More info is here: >> >> http://scala.sygneca.com/projects/start >> >> >> That's just my current thinking of course, and I expect the best >> mechanisms and culture will need to be felt out over time. >> >> >> What do you and others think? What can be done to support >> non-EPFL folks in sharing Scala code with each other? > > I've been wondering about this. So here's a proposal: > > There's a lot of stuff I think that various people have produced or > are considering producing at this point that ought to be 'on track' to > go into the standard library. Much of it does not warrant a project > to itself (or may be a small part of an existing project), but is > nevertheless useful. At present there is no formal mechanism for > publishing this work, beyond this mailing list and the bug tracker, > neither of which are really geared for community code review. > > I propose that we will host a Git[1] repository, to which we will > grant > write access to anyone (that we recognise) who asks for it. This > repository will contain a scalax._ package tree containing the > community-contributed code. We will set up a separate mailing list to > discuss this code. A second repository will be writable only by a > selection of 'influential' Scala users (list subject to nominations) > and will contain the code that passes peer review. That repository > will > be published periodically via sbaz. > > The purpose of this repository will be to contain the same sort of > code > that is present in J2SE, the Haskell standard library, etc. and not > anything too domain-specific (for which sbaz, Sourceforge, etc. would > be a more appropriate channel). All code will be released under the > same license as Scala, and code may be moved from the community > repository into the main distribution as the Scala developers see fit. > > Would this be useful? Practical? ...? > > /J > > [1] For our own work, we use Darcs and are very happy with it. However > Darcs has some problems that make it unsuitable for use with a > publicly > writable repository. Git seems a reasonable alternative. In any > case, a > distributed SCM (Darcs, Git, Mercurial, bzr, etc.) seems ideal for > this > purpose. > Bill ---- Bill Venners President Artima, Inc. http://www.artima.com |
|
|
Re: [scala] Re: Community repository proposal
by Alex Blewitt
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message On 26/10/2007, Bill Venners <bv-jackrabbit@...> wrote:
> Because Scala sits on top of the Java Platform, which has a vast > ocean of useful libraries, Scala in a sense already comes with a geo- > thermal electric generator station included. I want to use Scala with > these Java libraries at Artima. I want to "scalify" them in many > places. For example, I want to use Scalified Hibernate entities that > instead of get and set methods have Scala's more natural accessor > syntax: 'user.name' instead of 'user.getName(),' and 'user.name = > "Bob",' instead of 'user.setName("Bob").' But that's easy for me to > do in my own project. I don't need a Scalified wrapper for Hibernate > in the standard library. The same argument is true of Groovy, but there's a few more libraries in the vanilla 'groovy' space than just relying on Java: http://groovy.codehaus.org/api/index.html In any case, isn't the argument about scala (and 'the scala way') at some kind of odds with the way that Java does things? Python is always pretty elegant in this regard. I don't necessarily think it makes sense to have a one-on-one mapping for each Java API or anything, but having a set of libraries implemented in Scala (whether wrapper or pure) would encourage the use of Scala. Alex. |
|
|
Re: [scala] Re: Community repository proposal
by Bill Venners
::
Rate this Message:
Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message Hi Alex,
On Oct 26, 2007, at 3:19 AM, Alex Blewitt wrote: > On 26/10/2007, Bill Venners <bv-jackrabbit@...> wrote: >> Because Scala sits on top of the Java Platform, which has a vast >> ocean of useful libraries, Scala in a sense already comes with a geo- >> thermal electric generator station included. I want to use Scala with >> these Java libraries at Artima. I want to "scalify" them in many >> places. For example, I want to use Scalified Hibernate entities that >> instead of get and set methods have Scala's more natural accessor >> syntax: 'user.name' instead of 'user.getName(),' and 'user.name = >> "Bob",' instead of 'user.setName("Bob").' But that's easy for me to >> do in my own project. I don't need a Scalified wrapper for Hibernate >> in the standard library. > > The same argument is true of Groovy, but there's a few more libraries > in the vanilla 'groovy' space than just relying on Java: > > http://groovy.codehaus.org/api/index.html > > In any case, isn't the argument about scala (and 'the scala way') at > some kind of odds with the way that Java does things? Python is always > pretty elegant in this regard. I don't necessarily think it makes > sense to have a one-on-one mapping for each Java API or anything, but > having a set of libraries implemented in Scala (whether wrapper or > pure) would encourage the use of Scala. > reason is that I'd hope we'd minimize the mistakes that go into the standard library. Once a mistake is in there, to the extent Scala is successful, it will be impossible to remove. The Java API is littered with bad design and regretful decisions. It adds a lot of noise to working in Java. Scala is such a nice language that it would be a pity if its standard library was full of noise. The point I'm trying to make about batteries included is there is no real *pressure* to add a logging library, for example, because people have several great Java ones to chose from. When we're sure we're sure we're sure we have a good candidate for a standard logging library, or test framework, or what not, then we can put it into the standard library. In the meantime, we can do all kinds of innovation and trying things out outside the standard library. And anyone can use those libraries. They just won't be "standard" yet. Bill ---- Bill Venners President Artima, Inc. http://www.artima.com |
|
|
Re: [scala] Re: Community repository proposal |