>
> Is this in IntelliJ IDEA?
>
>
yes

> On Wed, Jan 5, 2011 at 6:04 PM, Gerolf Seitz <gerolf.se...@gmail.com>
> wrote:
> > It's cmd+shift+G (OSX) and it works quite well ;)
> >
> > On Wed, Jan 5, 2011 at 11:55 PM, Justin Lee <evancho...@gmail.com>
> wrote:
> >
> >> You can paste a java class into a .scala file and it'll autoconvert.
> >>  there's a shortcut keystroke, too, but i don't remember what it is.
> >>
> >> On Wed, Jan 5, 2011 at 10:40 AM, richard emberson <
> >> richard.ember...@gmail.com> wrote:
> >>
> >> > No IDE, I use Vim. Also, my build environment is Ant-based
> >> > using scalac and javac.
> >> >
> >> > Of course, what I was doing was porting from Java to Scala.
> >> > To that end I've got some 400 Vim scripts that aid in the
> >> > port. For instance,
> >> >
> >> > :g/final \([a-zA-Z]\+\) \([a-zA-Z]\+\)\[\]\s*=/s//val \2: Array[\1]
> =/g
> >> >
> >> > converts
> >> >    final B a[] =
> >> > to
> >> >    val a: Array[B] =
> >> >
> >> > I don't know if IDEs provide such scripting with regex support.
> >> > Also, with a simple Vim script and key combination, I can be
> >> > viewing a ported Scala file and jump to its corresponding source
> >> > Java Wicket file - very useful when porting or debugging.
> >> > Yea, IDEs can do stuff me and my Vim scripts can not do, but my
> >> > fingers know Vim.
> >> >
> >> > I also built a JUnit driver class in Scala (and Java) that allowed
> >> > me to execute a single test method in a given test class by setting
> >> > two properties in a file that my Ant script reads. This was vital
> >> > for hunting down bugs.
> >> >
> >> > I looked into the tool that allowed Vim to be the front-end and
> >> > Eclipse to run in server mode which allows a Vim user to access
> >> > many of the extra features the IDE offers, but, as of a couple of
> >> > months ago, there was no Scala support in the tool.
> >> >
> >> > The father of Scala, Martin Odersky uses Emacs.
> >> >
> >> > Richard
> >> >
> >> >
> >> >
> >> > On 01/05/2011 12:38 AM, Juergen Donnerstag wrote:
> >> >
> >> >> Cool. May I ask which tools (IDE) you've been using and what your
> >> >> experience with these tools has been.
> >> >>
> >> >> -Juergen
> >> >>
> >> >> On Wed, Jan 5, 2011 at 2:34 AM, Jeremy Thomerson
> >> >> <jer...@wickettraining.com>  wrote:
> >> >>
> >> >>> On Tue, Jan 4, 2011 at 5:15 PM, richard emberson<
> >> >>> richard.ember...@gmail.com
> >> >>>
> >> >>>> wrote:
> >> >>>>
> >> >>>
> >> >>>  Dev Wicketers,
> >> >>>>
> >> >>>> What: I have ported Wicket to Scala
> >> >>>>    A couple of months ago I took a 1.5 snapshot and ported to
> Scala.
> >> >>>>    This encompasses all of the source and test code. As successive
> 1.5
> >> >>>>    snapshots were released, I ported those differences to my Scala
> >> >>>>    version. I am current with 1.5 M3.
> >> >>>>
> >> >>>>    The Java 137,791 loc in 1.5 M3 are now 100,077 loc Scala (not
> >> >>>>    counting all the println statements I put into the Scala code
> >> >>>>    for debugging). I used cloc (http://cloc.sourceforge.net/) to
> >> >>>>    count lines of code.
> >> >>>>
> >> >>>>
> >> >>> I haven't used CLOC before.  I've used Ohcount (
> >> >>> http://www.ohloh.net/p/ohcount) and like it.  I'll have to give
> this a
> >> >>> try.
> >> >>>
> >> >>>
> >> >>>   I have also replaced all of the Java collection classes with
> >> >>>
> >> >>>>    Scala collection classes (though a small number of Java
> collection
> >> >>>>    classes remain that did not have comparable Scala
> implementations).
> >> >>>>
> >> >>>>    I have changed many method return types from the Java returning
> >> >>>>    some "object" or "null" to Scala returning "Some(object)" or
> "None"
> >> >>>>    (using the Scala Option[return-type] construct) - trying to
> >> >>>>    eliminate nulls.
> >> >>>>
> >> >>>>    Lastly, I pushed the IModel[T] typing down to the Component
> class
> >> >>>>    making get/set DefaultModel and get/set DefaultModelObject
> strong
> >> >>>>    typed.  This included using Scala companion object apply methods
> >> >>>>    which eliminated having to explicitly declare type parameters in
> >> >>>>    most end-user code (I had read that one of the objections to
> >> >>>>    pushing strong typing down to the Component class in Wicket was
> >> >>>>    that there were "too many notes", end-user code was too
> verbose).
> >> >>>>
> >> >>>>    It can not interoperate with Java Wicket because Scala compiles
> to
> >> >>>>    JVM class files and so all of the classes in Java Wicket also
> >> >>>>    appear in Scala-Wicket.
> >> >>>>
> >> >>>
> >> >>>
> >> >>>     I have an "internal" name for my Scala port of Wicket which
> >> >>>>    acknowledges its Wicket heritage as well as advertises its
> >> >>>>    enterprise level capabilities. For external communications,
> >> >>>>    I am currently simply call it Scala-Wicket.
> >> >>>>
> >> >>>> Why: Scala is a better Java
> >> >>>>    I was introduced to Scala 9 months ago and quickly determined
> that
> >> >>>>    it was a better Java (at least IMO). For Scala to succeed it
> >> >>>>    requires more programmers to use it. Many on the Scala mailing
> >> >>>>    lists were from a functional background and seemed not to
> recognize
> >> >>>>    that Haskell and Lisp are not blindingly successful but, rather,
> >> >>>>    niche languages and that the heavy selling of Scala's function
> and
> >> >>>>    typing capabilities might turn off Java programmers.
> >> >>>>
> >> >>>>    Scala struck me in many ways as a strong-typed JavaScript, at
> >> >>>>    least, much of the code did not have to have type declarations
> >> >>>>    because the compiler could infer types in many cases. In
> addition,
> >> >>>>    a whole lot of the Java boil-plate code was not needed. As such,
> >> >>>>    it could be sold as simply a better Java; a more-to-the-point
> >> >>>>    object oriented language with functional programming
> in-the-small.
> >> >>>>
> >> >>>>    To get more Java programmers to try Scala I looked for a
> >> >>>>    significant Java application with a strong support and user
> >> >>>>    community that I could port to Scala. I ended up with Wicket.
> >> >>>>    Wicket is an enterprise level web framework (unlike existing
> >> >>>>    Scale web frameworks which place restrictions on enterprise IT
> >> >>>>    organizations, e.g., by requiring sticky sessions).  It is well
> >> >>>>    documented. And, as it turned out, very, very importantly it had
> >> >>>>    a large number of unit tests (the unit tests saved my butt,
> >> >>>>    without them I would never had succeeded in getting a port that
> >> >>>>    worked).
> >> >>>>
> >> >>>>    No, Really, Why:
> >> >>>>        I like Scala and I took the time to learn it. Right now
> about
> >> >>>>        20% of programmers use Java while only some 0.4% use Scala.
> >> >>>>        I did not want my effort of learning Scala to be wasted so
> my
> >> >>>>        solution is to increase the number of Scala programmers.
> Where
> >> >>>>        to get them? Again, my solution is from the existing horde
> of
> >> >>>>        Java programmers.
> >> >>>>
> >> >>>> Plans: Release, Evolve and Proselytize
> >> >>>>    I would like to release Scala-Wicket.
> >> >>>>    I do not know if Apache hosts anything other than Java code.
> >> >>>>    Growing a community is important.
> >> >>>>
> >> >>>>    Still Todo:
> >> >>>>        Comments: All of the existing class and inline comments are
> >> >>>>            still Java related.  This would have to be a long,
> on-going
> >> >>>>            task to edit the comments so they reflect the code's
> >> >>>>            Scala usage.
> >> >>>>        Package path: The code still uses the "org.apache.wicket"
> >> >>>>            package path and this must be changed - unless this
> became
> >> >>>>            an Apache project.
> >> >>>>        Author: I have quite literally looked at and touched every
> line
> >> >>>>            of code but I have not yet felt comfortable with adding
> >> >>>>            myself as an author since, well, many changes were
> >> >>>>            syntactic and not semantic.
> >> >>>>        Refactor with Traits: Currently the port uses Scala traits
> like
> >> >>>>            Java interfaces but it should be possible to factor the
> >> >>>>            common code out into the traits. This would result in
> many
> >> >>>>            of the interfaces, the "I" files, such as IModel.scala,
> >> >>>>            going away.
> >> >>>>        Some general refactoring:
> >> >>>>            As an example, consider factoring out the IModel[T] from
> >> >>>>            Component. Half the time a user wants a Component with
> >> >>>>            no model, so, if there was a HasModel trait:
> >> >>>>                class Model[T](var value: T) {
> >> >>>>                    def getObject: T = value
> >> >>>>                    def setObject(value: T): Unit = this.value =
> value
> >> >>>>                }
> >> >>>>                trait HasModel[T] {
> >> >>>>                  var model: Model[T]
> >> >>>>                  def getDefaultModel: IModel[T] = model
> >> >>>>                  def setDefaultModel(model: IModel[T]): this.type =
> {
> >> >>>>                    ....
> >> >>>>                    this
> >> >>>>                  }
> >> >>>>                  def getDefaultModelObject: Option[T] = {
> >> >>>>                    ....
> >> >>>>                  }
> >> >>>>                  def setDefaultModelObject(obj: T): this.type = {
> >> >>>>                    ....
> >> >>>>                    this
> >> >>>>                  }
> >> >>>>                }
> >> >>>>            The Component hierarchy would have no model support.
> >> >>>>            The user could add model support when needed:
> >> >>>>                val form = new Form("hi")
> >> >>>>                  with HasModel[Int] { var model = new Model(42) }
> >> >>>>            Just an Idea.
> >> >>>>        STM: There are a number of Scala STM projects and I do not
> know
> >> >>>>            if it is useful to add STM capabilities to Scala-Wicket.
> >> >>>>        RBAC: I've written a Scala implementation of the NIST RBAC
> >> >>>>            recommended standard and might consider adding it.
> >> >>>>        Logging: Adding a Scala-based logging framework to aid user
> >> >>>>            debugging.
> >> >>>>        Monitoring and stats: In the last couple of years many web
> >> >>>>            sites have added monitoring and statistics gathering
> >> >>>>            capabilities (e.g., who clicks what, where, how long, on
> >> >>>>            what page does the visitor exit the web site, etc.) in
> >> >>>>            order to know how the web site is being used and then
> >> >>>>            improve the web site.
> >> >>>>        Significant Memory Usage Reduction: I've an idea that would
> >> >>>>            significantly decrease the memory usage of Scala-Wicket
> and
> >> >>>>            I plan to do a test implementation.
> >> >>>>        Replace Java features: There are still some Java-isms that
> can
> >> >>>>            be replaced with Scala equivalents.
> >> >>>>        Port additional Java Wicket libraries to Scala.
> >> >>>>        Enable multiple instances of a unit tests to be run at once.
> >> >>>>        More: ????????????
> >> >>>>
> >> >>>>    I want to avoid using some of the WTF features of Scala (when a
> >> >>>>        Java programmer looks at the code and says "WTF") in order
> to
> >> >>>>        ease and accelerate acceptance by Java programmers; as
> >> >>>>        examples, implicits can make code hard to understand and
> >> >>>>        advanced Scala type usages, as James Gosling said, "makes
> one's
> >> >>>>        head spin".
> >> >>>>
> >> >>>>
> >> >>>> Help and Advice: How should Scala-Wicket be extended and released
> >> >>>>
> >> >>>>    Scala-Wicket is a port and evolution of Wicket, not a ground-up
> >> >>>>        re-write. Given that, what would you do differently in
> Wicket
> >> >>>>        now that there are years of experience using it?
> >> >>>>
> >> >>>>    How best to get a hosting site, release the code and build a
> >> >>>>        community?
> >> >>>>
> >> >>>>
> >> >>> If you're looking for a place to host it, I'd recommend starting
> with
> >> >>> Github.  Git is where the crowd is headed, and Github is the easiest
> >> >>> place
> >> >>> to get up and running with it these days.
> >> >>>
> >> >>> You mentioned earlier the idea of it being an Apache project.  If
> you
> >> >>> wanted
> >> >>> it to be an Apache project, you would start at the Incubator (
> >> >>> http://incubator.apache.org/).  The one barrier you'll have
> initially
> >> is
> >> >>> that Apache favors "community over code"... so it's not a great
> place
> >> to
> >> >>> start a one-man project.  Since this is a port of an existing Apache
> >> >>> project, you might have more leniency, but you'd have to build a
> >> >>> community
> >> >>> around the project before you could ever "graduate" from the
> incubator.
> >> >>>
> >> >>> Probably Github is your best bet for now.  Build a community.  Then,
> if
> >> >>> your
> >> >>> community is in favor, move to Apache.  By that time, ASF might have
> >> full
> >> >>> git support.
> >> >>>
> >> >>>
> >> >>>     Are there any mechanism to help fund such an open-source
> project?
> >> >>>>
> >> >>>>
> >> >>> Best bet is to build a community.  Of course, if you can find some
> >> >>> company
> >> >>> that wants such a project, you can get monetary support to develop /
> >> >>> maintain.  But that seems unlikely in this case with the limited
> number
> >> >>> of
> >> >>> companies looking for Scala out there, and especially since this is
> an
> >> >>> unproven port of a large Java project.  So, start by getting folks
> like
> >> >>> jWeekend involved - great coders who are already salivating for
> Scala.
> >> >>>  Find
> >> >>> other individuals such as yourself who are interested, and build a
> >> group
> >> >>> of
> >> >>> core committers.
> >> >>>
> >> >>>
> >> >>>  This is not meant to be a general announcement but rather a means
> >> >>>> for me to get some initial advice as to how to proceed.
> >> >>>>
> >> >>>> Any help is appreciated.
> >> >>>>
> >> >>>> Richard Emberson
> >> >>>>
> >> >>>
> >> >>>
> >> >>> I'm impressed.  Quite an undertaking.
> >> >>>
> >> >>> --
> >> >>> Jeremy Thomerson
> >> >>> http://wickettraining.com
> >> >>> *Need a CMS for Wicket?  Use Brix! http://brixcms.org*
> >> >>>
> >> >>>
> >> >>
> >> > --
> >> > Quis custodiet ipsos custodes
> >> >
> >>
> >
>

Reply via email to