Daniel Spiewak | 1 Apr 2012 20:25
Picon
Gravatar

Re: Re: [scala-user] Issues hindering Scala adoption in enterprises


I don't see any inherent reason why scalac should be much slower than javac. Yes, it has to do implicit searches, type inference etc., but that doesn't make up for the difference in compile time. If there are no noticeable performance hotspots, there must be excessive object allocation or use of inefficient algorithms in the compiler.

What follows is coming from my memory of a scala-internals posting a few years back.  People who know better, please correct me where I'm wrong…

Type compatibility between path dependent types in a composition of linearized traits is an inherently exponential problem.  In other words, the compiler will always be ridiculously slow on certain code bases.  The Precog code base, and particularly the Quirrel compiler exhibits this problem in spades.  We make extensive use of the cake pattern, which is precisely where you run into exponential complexity in the compiler.  The Scala compiler requires nearly two-and-a-half minutes on a fast machine to chew on the Quirrel compiler, which is comprised of 10 source files averaging around 500 lines a piece!  These performance issues are entirely due to the aforementioned exponentiality, and are not things that can be substantially improved with optimization.

There's no doubt that the Scala compiler has a tendency to take a very long time on some simple code, which is something that should be fixed.  However, there are most certainly inherent reasons why scalac is substantially slower than javac.  It's just one of the tradeoffs we need to deal with.

Think of it this way: scalac is slow because it needs to do all of the work that you didn't do when writing the source code.  If you were using Java, you would have been eating that time cost, rather than the compiler.

Daniel
Grzegorz Kossakowski | 1 Apr 2012 21:48
Picon
Gravatar

Re: Re: [scala-user] Issues hindering Scala adoption in enterprises

On 1 April 2012 20:25, Daniel Spiewak <djspiewak <at> gmail.com> wrote:
Type compatibility between path dependent types in a composition of linearized traits is an inherently exponential problem. 

Any reference for this statement? I don't see immediately that exponential complexity.

--
Grzegorz Kossakowski

Jesper Nordenberg | 1 Apr 2012 22:06
Picon
Favicon

Re: [scala-user] Issues hindering Scala adoption in enterprises

Yes, there are programs for which scalac will always be slow (like 
calculating the millionth prime number using a type representation of 
Peano numbers), but then we're talking about programs which are not 
really expressible in Java anyway. Besides, the vast majority of Scala 
programs don't (ab)use the type system in such extreme ways (i.e. type 
recursion).

/Jesper Nordenberg

Daniel Spiewak skrev 2012-04-01 20:25:
>
>     I don't see any inherent reason why scalac should be much slower
>     than javac. Yes, it has to do implicit searches, type inference
>     etc., but that doesn't make up for the difference in compile time.
>     If there are no noticeable performance hotspots, there must be
>     excessive object allocation or use of inefficient algorithms in the
>     compiler.
>
>
> /What follows is coming from my memory of a scala-internals posting a
> few years back.  People who know better, please correct me where I'm wrong…/
>
> Type compatibility between path dependent types in a composition of
> linearized traits is an inherently exponential problem.  In other words,
> the compiler will /always/ be ridiculously slow on certain code bases.
> The Precog code base, and particularly the Quirrel compiler exhibits
> this problem in spades.  We make extensive use of the cake pattern,
> which is precisely where you run into exponential complexity in the
> compiler.  The Scala compiler requires nearly two-and-a-half minutes on
> a fast machine to chew on the Quirrel compiler, which is comprised of
> /10/ source files averaging around 500 lines a piece!  These performance
> issues are entirely due to the aforementioned exponentiality, and are
> not things that can be substantially improved with optimization.
>
> There's no doubt that the Scala compiler has a tendency to take a /very/
> long time on some simple code, which is something that should be fixed.
> However, there are most certainly inherent reasons why scalac is
> substantially slower than javac.  It's just one of the tradeoffs we need
> to deal with.
>
> Think of it this way: scalac is slow because it needs to do all of the
> work that you /didn't/ do when writing the source code.  If you were
> using Java, you would have been eating that time cost, rather than the
> compiler.
>
> Daniel

Hubert Plociniczak | 2 Apr 2012 08:38
Picon
Picon
Favicon

Re: [GSOC 2012] Project ideas

On 03/31/2012 04:51 PM, Jerzy Redlarski wrote:
Hello Scala Language Community,

My name is Jerzy Redlarski and I am a student of Gdansk University of Technology in Poland. I'd like to support the development of the Scala language, about which I learned through a Java User Group about a year ago. I'd like to ask you for suggestions, which of the project ideas would be best suited to my skills, as well as the most useful for the community?

My experience with the Scala language is limited to what I've learned by reading "Programming Scala" and experimenting with the examples. I'm also just beginning to learn about functional programming, since in my university it was only mentioned once, with examples given in XSLT. I've tried searching for good sources to learn more about functional programming, but since few of the professors in my university are interested in it, I had little success. The best ones I've found were chapters in books about Scala, and this article http://www.defmacro.org/ramblings/fp.html
I suppose I could find more in books about Haskell, Lisp and Clojure, but it doesn't hurt to ask, if you could suggest some good texts about how to solve practical problems the functional way? So far, I'm mostly unsure how to couple functional paradigms with stochastic, time-dependent programs, as well as algorithms that depend on complex changing data structures such as graphs. I'm also quite confused by monads, but I suppose understanding will come with practice.

I doubt that dealing with monads would be necessary for GSOC :) If you want to get some general knowledge about functional programming then I would start with a couple of Haskell books out there (sorry, don't remember the exact names/resources).
because AFAIK there aren't any books strictly related to functional programming and Scala (although there is one in production).
Generally you don't have to worry so much about a lack of knowledge in functional programming. "Programming in Scala" by Odersky et al., already contains most of the stuff that will get your ready for GSOC.


On the other hand, I'm quite experienced with 2D/3D graphics (OpenGL, Java3D, LWJGL, AWT/Swing), soft/rigid body simulations, multi-agent systems (JADE) and basic artificial intelligence. I'm also used to Eclipse IDE, although I'm no stranger to NetBeans either. I've had no experience with IntelliJ though. I've used git, svn, JUnit, Maven and Google Guice. As for mobile devices, I have more experience with Java ME than with Dalvik. As for web and server applications, my experience is limited, although I know how to work with databases.



Of the project ideas listed for GSoC 2012, I suppose I could use my experience with Eclipse and git to work on integrating giter8 with the IDE. I could also try to improve the "Smart Quick Fixes". Thus, I'd need to know which of these projects is more important for the community.

Eclipse is probably the right choice. You should be able to quickly pick up what's needed for the work. I think projects below require a bit more Scala experience.


Looking through the mailing group, I've also found some interesting ideas that could make use of my graphics experience, such as the porting of prefuse to Scala suggested by Sciss, writing some sort of visualization of Akka actor networks suggested by Tomáš Heřman and the idea of instant feedback suggested by Stefan Wagner. I'm not sure if these have such a high priority, nor if there is anyone intrested in mentoring these, but if there is, I think it could make for an interesting project, a great learning experience, as well as leading to the creation of some tools I might find useful in my other projects later on.
If I may suggest something myself, I'm planning to write a real-time raytracer is Scala, using CUDA and/or OpenCL to optimise the bottlenecks, but since I don't expect too many people to find this idea useful, I'm mentioning it just in case.


Put it on github (mentioning it in the application if you are able to finish it by then is also good!).


I'm looking forward to your suggestions,

Jerzy Redlarski

Heather Miller | 2 Apr 2012 08:59
Picon
Picon
Favicon
Gravatar

Re: [GSOC 2012] Project ideas

On Monday, April 2, 2012 at 8:38 AM, Hubert Plociniczak wrote:
On 03/31/2012 04:51 PM, Jerzy Redlarski wrote:
Hello Scala Language Community,

My name is Jerzy Redlarski and I am a student of Gdansk University of Technology in Poland. I'd like to support the development of the Scala language, about which I learned through a Java User Group about a year ago. I'd like to ask you for suggestions, which of the project ideas would be best suited to my skills, as well as the most useful for the community?

My experience with the Scala language is limited to what I've learned by reading "Programming Scala" and experimenting with the examples. I'm also just beginning to learn about functional programming, since in my university it was only mentioned once, with examples given in XSLT. I've tried searching for good sources to learn more about functional programming, but since few of the professors in my university are interested in it, I had little success. The best ones I've found were chapters in books about Scala, and this article http://www.defmacro.org/ramblings/fp.html
I suppose I could find more in books about Haskell, Lisp and Clojure, but it doesn't hurt to ask, if you could suggest some good texts about how to solve practical problems the functional way? So far, I'm mostly unsure how to couple functional paradigms with stochastic, time-dependent programs, as well as algorithms that depend on complex changing data structures such as graphs. I'm also quite confused by monads, but I suppose understanding will come with practice.

I doubt that dealing with monads would be necessary for GSOC :) If you want to get some general knowledge about functional programming then I would start with a couple of Haskell books out there (sorry, don't remember the exact names/resources).
Learn you a haskell for great good is a good one, and it's also freely available online: http://learnyouahaskell.com/ 
(Though, note-- be careful, some resources on functional programming can have a steep learning curve, depending on your background.)
because AFAIK there aren't any books strictly related to functional programming and Scala (although there is one in production).
Generally you don't have to worry so much about a lack of knowledge in functional programming. "Programming in Scala" by Odersky et al., already contains most of the stuff that will get your ready for GSOC.
Yep, "most of the information" and plus some. 

On the other hand, I'm quite experienced with 2D/3D graphics (OpenGL, Java3D, LWJGL, AWT/Swing), soft/rigid body simulations, multi-agent systems (JADE) and basic artificial intelligence. I'm also used to Eclipse IDE, although I'm no stranger to NetBeans either. I've had no experience with IntelliJ though. I've used git, svn, JUnit, Maven and Google Guice. As for mobile devices, I have more experience with Java ME than with Dalvik. As for web and server applications, my experience is limited, although I know how to work with databases.



Of the project ideas listed for GSoC 2012, I suppose I could use my experience with Eclipse and git to work on integrating giter8 with the IDE. I could also try to improve the "Smart Quick Fixes". Thus, I'd need to know which of these projects is more important for the community.

Eclipse is probably the right choice. You should be able to quickly pick up what's needed for the work. I think projects below require a bit more Scala experience.


Looking through the mailing group, I've also found some interesting ideas that could make use of my graphics experience, such as the porting of prefuse to Scala suggested by Sciss, writing some sort of visualization of Akka actor networks suggested by Tomáš Heřman and the idea of instant feedback suggested by Stefan Wagner. I'm not sure if these have such a high priority, nor if there is anyone intrested in mentoring these, but if there is, I think it could make for an interesting project, a great learning experience, as well as leading to the creation of some tools I might find useful in my other projects later on.
If I may suggest something myself, I'm planning to write a real-time raytracer is Scala, using CUDA and/or OpenCL to optimise the bottlenecks, but since I don't expect too many people to find this idea useful, I'm mentioning it just in case.


Put it on github (mentioning it in the application if you are able to finish it by then is also good!).
So from my perspective: the Eclipse giter8 project looks like a good sort of "getting started" project, and it'd be something that several people would find useful, perhaps integrating it into their daily workflows. 

However, passion/initiative is not a factor to be trivialized. I'm not knowledgeable enough with computer graphics to know how useful your raytracer would be (i.e., who/how many would use it), but I'm pretty certain that right now, there's not a lot of activity related to computer graphics in Scala, perhaps for no good reason other than no one from the graphics community has dabbled much in Scala. So, if the raytracer is a project you're sure you'd be more passionate about than the Eclipse IDE, I'd say spend a few days better "baking" a proposal for what you'd like to try to achieve. Worst case, if it can't really come together in time before the deadline, you can always try to run with the giter8 ScalaIDE project. :)

Cheers, 
Heather

-- 
Heather Miller
Doctoral Assistant
EPFL, IC, LAMP
http://people.epfl.ch/heather.miller

Hubert Plociniczak | 2 Apr 2012 09:19
Picon
Picon
Favicon

Re: [GSOC 2012] Project ideas

On 04/02/2012 08:59 AM, Heather Miller wrote:
On Monday, April 2, 2012 at 8:38 AM, Hubert Plociniczak wrote:
On 03/31/2012 04:51 PM, Jerzy Redlarski wrote:
Hello Scala Language Community,

My name is Jerzy Redlarski and I am a student of Gdansk University of Technology in Poland. I'd like to support the development of the Scala language, about which I learned through a Java User Group about a year ago. I'd like to ask you for suggestions, which of the project ideas would be best suited to my skills, as well as the most useful for the community?

My experience with the Scala language is limited to what I've learned by reading "Programming Scala" and experimenting with the examples. I'm also just beginning to learn about functional programming, since in my university it was only mentioned once, with examples given in XSLT. I've tried searching for good sources to learn more about functional programming, but since few of the professors in my university are interested in it, I had little success. The best ones I've found were chapters in books about Scala, and this article http://www.defmacro.org/ramblings/fp.html
I suppose I could find more in books about Haskell, Lisp and Clojure, but it doesn't hurt to ask, if you could suggest some good texts about how to solve practical problems the functional way? So far, I'm mostly unsure how to couple functional paradigms with stochastic, time-dependent programs, as well as algorithms that depend on complex changing data structures such as graphs. I'm also quite confused by monads, but I suppose understanding will come with practice.

I doubt that dealing with monads would be necessary for GSOC :) If you want to get some general knowledge about functional programming then I would start with a couple of Haskell books out there (sorry, don't remember the exact names/resources).
Learn you a haskell for great good is a good one, and it's also freely available online: http://learnyouahaskell.com/ 
(Though, note-- be careful, some resources on functional programming can have a steep learning curve, depending on your background.)
because AFAIK there aren't any books strictly related to functional programming and Scala (although there is one in production).
Generally you don't have to worry so much about a lack of knowledge in functional programming. "Programming in Scala" by Odersky et al., already contains most of the stuff that will get your ready for GSOC.
Yep, "most of the information" and plus some. 

On the other hand, I'm quite experienced with 2D/3D graphics (OpenGL, Java3D, LWJGL, AWT/Swing), soft/rigid body simulations, multi-agent systems (JADE) and basic artificial intelligence. I'm also used to Eclipse IDE, although I'm no stranger to NetBeans either. I've had no experience with IntelliJ though. I've used git, svn, JUnit, Maven and Google Guice. As for mobile devices, I have more experience with Java ME than with Dalvik. As for web and server applications, my experience is limited, although I know how to work with databases.



Of the project ideas listed for GSoC 2012, I suppose I could use my experience with Eclipse and git to work on integrating giter8 with the IDE. I could also try to improve the "Smart Quick Fixes". Thus, I'd need to know which of these projects is more important for the community.

Eclipse is probably the right choice. You should be able to quickly pick up what's needed for the work. I think projects below require a bit more Scala experience.


Looking through the mailing group, I've also found some interesting ideas that could make use of my graphics experience, such as the porting of prefuse to Scala suggested by Sciss, writing some sort of visualization of Akka actor networks suggested by Tomáš Heřman and the idea of instant feedback suggested by Stefan Wagner. I'm not sure if these have such a high priority, nor if there is anyone intrested in mentoring these, but if there is, I think it could make for an interesting project, a great learning experience, as well as leading to the creation of some tools I might find useful in my other projects later on.
If I may suggest something myself, I'm planning to write a real-time raytracer is Scala, using CUDA and/or OpenCL to optimise the bottlenecks, but since I don't expect too many people to find this idea useful, I'm mentioning it just in case.


Put it on github (mentioning it in the application if you are able to finish it by then is also good!).
So from my perspective: the Eclipse giter8 project looks like a good sort of "getting started" project, and it'd be something that several people would find useful, perhaps integrating it into their daily workflows. 

However, passion/initiative is not a factor to be trivialized. I'm not knowledgeable enough with computer graphics to know how useful your raytracer would be (i.e., who/how many would use it), but I'm pretty certain that right now, there's not a lot of activity related to computer graphics in Scala, perhaps for no good reason other than no one from the graphics community has dabbled much in Scala.

During the first year of participation in GSOC we had a scala 2D graphics project. That one pretty much died after the student left. Ingo can probably tell more as he was the mentor for it.


So, if the raytracer is a project you're sure you'd be more passionate about than the Eclipse IDE, I'd say spend a few days better "baking" a proposal for what you'd like to try to achieve. Worst case, if it can't really come together in time before the deadline, you can always try to run with the giter8 ScalaIDE project. :)

Cheers, 
Heather

-- 
Heather Miller
Doctoral Assistant
EPFL, IC, LAMP


Johannes Rudolph | 2 Apr 2012 12:51

Predef.arrayToCharSequence.subSequence and allocation

Hi all,

I just found out the hard way that `Predef.arrayToCharSequence`
implements `subSequence` by making a copy of the underlying
subsequence (through `ArrayOps.slice`). Contrast this with
`String.subSequence` which creates only a shallow copy with updated
indices. There may be a point in implementing it this way because the
underlying Array is, of course, mutable. From the definition of
`java.lang.CharSequence` it isn't clear what to expect from a
`CharSequence` returned from `subSequence` if the underlying data
structure has changed (this is no problem for Strings because they are
immutable).

There are at least these three possibilities to handle that issue:

1.) Create a shallow copy without copying in `subSequence`. This may
break code which relies on the `CharSequence` returned from
`subSequence` to be unchanged if the underlying array is mutated.
2.) Immediately create one copy in `arrayToCharSequence` which then
creates only shallow copies for `subSequences`. You could then
probably implement `arrayToCharSequence` just by `new
String(underlying)`. This creates one unwanted allocation if you don't
care for this issue. You could provide a not-implicit alternative
implementation containing the current implementation (or the other way
round).
3.) Leave it as it is.

In consequence, this leads to a problem [1] with
`scala.util.parsing.input.CharArrayReader` which uses
`arrayToCharSequence` implicitly and then leads to abysmal performance
when using parsing combinators if the input is big enough so that
chunks of the input are copied and reallocated thousands of times
possibly.

What do you think?

Johannes

[1] https://issues.scala-lang.org/browse/SI-5641

--

-- 
Johannes

-----------------------------------------------
Johannes Rudolph
http://virtual-void.net

Eric Pederson | 2 Apr 2012 18:02
Picon
Gravatar

Re: [GSOC 2012] Project ideas

I would love to see Classfile annotations implemented.   I'm not sure if this is doable as a GSoC project, but if it was it would be great.

On Saturday, March 31, 2012 10:51:03 AM UTC-4, Jerzy Redlarski wrote:

Hello Scala Language Community,

My name is Jerzy Redlarski and I am a student of Gdansk University of Technology in Poland. I'd like to support the development of the Scala language, about which I learned through a Java User Group about a year ago. I'd like to ask you for suggestions, which of the project ideas would be best suited to my skills, as well as the most useful for the community?

My experience with the Scala language is limited to what I've learned by reading "Programming Scala" and experimenting with the examples. I'm also just beginning to learn about functional programming, since in my university it was only mentioned once, with examples given in XSLT. I've tried searching for good sources to learn more about functional programming, but since few of the professors in my university are interested in it, I had little success. The best ones I've found were chapters in books about Scala, and this article http://www.defmacro.org/ramblings/fp.html
I suppose I could find more in books about Haskell, Lisp and Clojure, but it doesn't hurt to ask, if you could suggest some good texts about how to solve practical problems the functional way? So far, I'm mostly unsure how to couple functional paradigms with stochastic, time-dependent programs, as well as algorithms that depend on complex changing data structures such as graphs. I'm also quite confused by monads, but I suppose understanding will come with practice.

On the other hand, I'm quite experienced with 2D/3D graphics (OpenGL, Java3D, LWJGL, AWT/Swing), soft/rigid body simulations, multi-agent systems (JADE) and basic artificial intelligence. I'm also used to Eclipse IDE, although I'm no stranger to NetBeans either. I've had no experience with IntelliJ though. I've used git, svn, JUnit, Maven and Google Guice. As for mobile devices, I have more experience with Java ME than with Dalvik. As for web and server applications, my experience is limited, although I know how to work with databases.



Of the project ideas listed for GSoC 2012, I suppose I could use my experience with Eclipse and git to work on integrating giter8 with the IDE. I could also try to improve the "Smart Quick Fixes". Thus, I'd need to know which of these projects is more important for the community.

Looking through the mailing group, I've also found some interesting ideas that could make use of my graphics experience, such as the porting of prefuse to Scala suggested by Sciss, writing some sort of visualization of Akka actor networks suggested by Tomáš Heřman and the idea of instant feedback suggested by Stefan Wagner. I'm not sure if these have such a high priority, nor if there is anyone intrested in mentoring these, but if there is, I think it could make for an interesting project, a great learning experience, as well as leading to the creation of some tools I might find useful in my other projects later on.
If I may suggest something myself, I'm planning to write a real-time raytracer is Scala, using CUDA and/or OpenCL to optimise the bottlenecks, but since I don't expect too many people to find this idea useful, I'm mentioning it just in case.


I'm looking forward to your suggestions,

Jerzy Redlarski
Lanny Ripple | 3 Apr 2012 00:09

Re: Interesting assignment to mutable.Map

Aha.  Didn't read far enough in the spec.  Thanks, everyone, for the
insight.

  -ljr

On Mar 30, 12:51 pm, Daniel Sobral <dcsob... <at> gmail.com> wrote:
> xs("a") doesn't have a "+=" method, so it is rewritten as 'xs("a") =
> xs("a") + 3', which happens to be the update method you mentioned.
>
> Whenever a "OP=" method is found, where OP is non-alphanumeric, and
> where "OP=" is not available on the RHS, the expression is rewritten
> as "RHS = RHS OP LHS". I don't know where in the spec that is written,
> but it is there.
>
>
>
>
>
>
>
>
>
> On Fri, Mar 30, 2012 at 11:47, Lanny Ripple <la... <at> spotinfluence.com> wrote:
> > A co-worker noticed the behavior below.  I was able to point out
> > S6.12.4 but that doesn't seem to cover what's going on here.
>
> > scala> import scala.collection.mutable
> > import scala.collection.mutable
>
> > scala> val xs = mutable.Map("a" -> Set(1,2))
> > xs:
> > scala.collection.mutable.Map[java.lang.String,scala.collection.immutable.Se t[Int]]
> > = Map(a -> Set(1, 2))
>
> > scala> xs("a") += 3
>
> > scala> xs
> > res1:
> > scala.collection.mutable.Map[java.lang.String,scala.collection.immutable.Se t[Int]]
> > = Map(a -> Set(1, 2, 3))
>
> > It's easy to see what the compiler did with -Xprint:typer
>
> >  xs.update("a", xs("a") + 3)
>
> > But the assignment was specifically on xs("a") so is mutable.Map
> > getting special treatment?
>
> > scala> var y = ("a", Set(1,2))
> > y: (java.lang.String, scala.collection.immutable.Set[Int]) = (a,Set(1,
> > 2))
>
> > scala> y._2 += 3
> > <console>:10: error: reassignment to val
> >              y._2 += 3
> >                   ^
>
> >  Are there other collections that get this treatment?  Is there some
> > way to have known about this behavior (by spec or docs) without having
> > to stumble on it?
>
> >  Enjoy,
> >  -ljr
>
> --
> Daniel C. Sobral
>
> I travel to the future all the time.

virtualeyes | 3 Apr 2012 01:17
Picon

Re: Project ideas

Well, IDE support for Scalate or Play's template engine would be a
complete & utter God Send.

Basically go from rainbows and butterflies in pure Scala code, to some
arcane dungeon of doom at the template layer (i.e. might as well use
VI, Notepad, etc. both IntelliJ and Scala IDE are currently useless as
far as template engine support goes).

Shame particularly for Scalate, James Strachan launched the project 3
or 4 years ago and still, zero IDE support. Sad, does anybody do IDE-
based web development in Scala? ;-(

On Apr 2, 6:02 pm, Eric Pederson <eric... <at> gmail.com> wrote:
> I would love to see Classfile annotations implemented.   I'm not sure if
> this is doable as a GSoC project, but if it was it would be great.
>
>
>
>
>
>
>
> On Saturday, March 31, 2012 10:51:03 AM UTC-4, Jerzy Redlarski wrote:
>
> > Hello Scala Language Community,
>
> > My name is Jerzy Redlarski and I am a student of Gdansk University of
> > Technology in Poland. I'd like to support the development of the Scala
> > language, about which I learned through a Java User Group about a year ago.
> > I'd like to ask you for suggestions, which of the project ideas would be
> > best suited to my skills, as well as the most useful for the community?
>
> > My experience with the Scala language is limited to what I've learned by
> > reading "Programming Scala" and experimenting with the examples. I'm also
> > just beginning to learn about functional programming, since in my
> > university it was only mentioned once, with examples given in XSLT. I've
> > tried searching for good sources to learn more about functional
> > programming, but since few of the professors in my university are
> > interested in it, I had little success. The best ones I've found were
> > chapters in books about Scala, and this article
> >http://www.defmacro.org/ramblings/fp.html
> > I suppose I could find more in books about Haskell, Lisp and Clojure, but
> > it doesn't hurt to ask, if you could suggest some good texts about how to
> > solve practical problems the functional way? So far, I'm mostly unsure how
> > to couple functional paradigms with stochastic, time-dependent programs, as
> > well as algorithms that depend on complex changing data structures such as
> > graphs. I'm also quite confused by monads, but I suppose understanding will
> > come with practice.
>
> > On the other hand, I'm quite experienced with 2D/3D graphics (OpenGL,
> > Java3D, LWJGL, AWT/Swing), soft/rigid body simulations, multi-agent systems
> > (JADE) and basic artificial intelligence. I'm also used to Eclipse IDE,
> > although I'm no stranger to NetBeans either. I've had no experience with
> > IntelliJ though. I've used git, svn, JUnit, Maven and Google Guice. As for
> > mobile devices, I have more experience with Java ME than with Dalvik. As
> > for web and server applications, my experience is limited, although I know
> > how to work with databases.
>
> > Of the project ideas listed for GSoC 2012, I suppose I could use my
> > experience with Eclipse and git to work on integrating giter8 with the IDE.
> > I could also try to improve the "Smart Quick Fixes". Thus, I'd need to know
> > which of these projects is more important for the community.
>
> > Looking through the mailing group, I've also found some interesting ideas
> > that could make use of my graphics experience, such as the porting of
> > prefuse to Scala suggested by Sciss, writing some sort of visualization of
> > Akka actor networks suggested by Tomáš Heřman and the idea of instant
> > feedback suggested by Stefan Wagner. I'm not sure if these have such a high
> > priority, nor if there is anyone intrested in mentoring these, but if there
> > is, I think it could make for an interesting project, a great learning
> > experience, as well as leading to the creation of some tools I might find
> > useful in my other projects later on.
> > If I may suggest something myself, I'm planning to write a real-time
> > raytracer is Scala, using CUDA and/or OpenCL to optimise the bottlenecks,
> > but since I don't expect too many people to find this idea useful, I'm
> > mentioning it just in case.
>
> > I'm looking forward to your suggestions,
>
> > Jerzy Redlarski


Gmane