CellML Discussion List

Text archives Help


[cellml-discussion] ABI CellML Meeting Minutes, 21st April 2010


Chronological Thread 
  • From: j.marsh at auckland.ac.nz (Justin Marsh)
  • Subject: [cellml-discussion] ABI CellML Meeting Minutes, 21st April 2010
  • Date: Mon, 26 Apr 2010 12:31:57 +1200

Hi Alan,

- I have already exceeded the two weeks you spent on the Qt/C++
prototype; I have spent two and a bit weeks on code, and just under two
weeks on trivial problems with tool configuration, dependency
management, libraries and external components etc, and things unrelated
to the prototype. I actually found learning Scala easier than learning
the various giant Java libraries.

- I have not put up a binary version anywhere; I will in the next few days.

- The source code is available at http://github.com/flaviusb/sOC/
It can be cloned by
git clone http://github.com/flaviusb/sOC.git
or
svn checkout http://svn.github.com/flaviusb/sOC.git

- In the case of the demo I was writing, the DSL in question was a toy
to try to learn a few Scala language features; in function, it was
simply a way to make menu item layout faster and less crufty than it
usually is under SWT. An example of use can be found here:
http://github.com/flaviusb/sOC/blob/master/src/soc/ApplicationActionBarAdvisor.scala#L81
Writing a tiny DSL is a common pattern in Scala GUI code; I had seen
them for other things, but not using the particular approach of case
classes and implicit functions, and not for menu layout. They usually
seemed to use Functors or trait classes and plain functions.

- I have not done development for the prototype outside of Linux.
Dependency management under Eclipse can be done in several ways;
supposedly using Maven2 or Ant and the respective plugins for Eclipse is
totally cross platform, but setting up Maven2 or Ant configuration files
is quite time consuming, especially as the dependant projects (jeuclid
and JFreechart) do not seem to have valid Ant or Maven2 configuration
files. For the purpose of the demo, I chose to do this in the 'Eclipse'
way, which it turns out is not really friendly with source control.
Importing a project with dependencies into an Eclipse workspace does not
work nicely unless you either use Maven2 or Ant, or bundle *all* of the
jars under your project, or have *all* of the jars have the same
*absolute* path under all machines, or already have 'projects' in that
workspace that deal with this in one of the ways above which your
project is dependant upon; the 'cascading project' pattern is quite
common, but would require putting the entire thing under version
control. I am sure there is another way that is actually workable (or
that the Ant or Maven2 way is workable) that I just do not know, but I
have already exceeded a reasonable fraction of the total time I had
available on this particular problem. If we do go ahead with using
Scala, setting up a dependency handling system so that this is not
something anyone has to deal with again will be one of the first things
I want to do, as otherwise this system fails at one of our hard
requirements (that is, that other people can build and develop for
OpenCell 'easily'). Ideally, one should be able to build it with just
the jdk, a scala compiler, and something like Ant or Maven2.

- A vanilla Scala application is trivial to deploy; there is a
particular jar you can bundle your application with that allows it to
run under the jvm. This bundle has no native components. Eclipse RCP
applications require a few more platform specific jars bundled with them
to run under the respective jvms, but there is a specific archive
available from eclipse.org (the Eclipse Delta pack) which you just need
to take the jars from. I have not attempted to create a 'launcher'
(which is Eclipse speak for something that looks like a native
application) on any platform other than Linux; it worked under Linux at
the push of a button in Eclipse. I am currently working on a solution
that will work from the command line.

- I did not know Scala before I started this demo. I supported the
choice to use it as it was the only non-Java JVM language where it both
seemed to be acceptable for what we needed, and it seemed to be possible
to convince more than just myself and Andrew that it was a workable
solution. I did not see any possibility of making a good enough case for
Clojure or Rhino for example, even though I believed them to be better
solutions, and was actually familiar with them already. The point of
having me rather than Andrew write the demo was to show that someone
with no familiarity with the language or tools could get to the point of
making contributions pretty quickly; if that were not true, then no
matter how awesome the language or tools were, they would fail one of
the hard requirements we have.

Best Regards,
Justin.

Alan Garny wrote:
> Regarding "5) OpenCell development - update" and Justin's Scale work in
> particular:
> - How much time has been spent on this so far?
> - Where can one get a binary version of the demo for Windows, Linux and Mac
> OS X?
> - What are internal DSLs?
> - Where can one get the source code? (Incidentally, I really wish it had
> been regularly committed to the OpenCell repository for people to see as
> work progressed...)
> - With regards to dependency management in Eclipse, has this been tried on
> all three main platforms?
> - How easy is it to deploy a Scala application on all three main platforms?
> I would expect it be OK since it gets compiled for the JVM, right?
> - To be 100% objective on Scala vs Qt/C++ with regards to speed of
> development, one would be need to be proficient in both and try to develop
> the same application using both technologies within the same timeframe.
> Anything else will be completely subjective. I understand Justin is
> proficient in Scala. What about Qt/C++? Has he tried to use Qt/C++?
> Otherwise, let's not forget that development tools improve with time, so
> even though something may not quite be up to scratch (Qt Creator comes to
> mind), things will get better. (This being said, I would agree that Eclipse,
> even with its problems, is way more advanced.)
>
> Alan
>
>> -----Original Message-----
>> From: cellml-discussion-bounces at cellml.org [mailto:cellml-discussion-
>> bounces at cellml.org] On Behalf Of Dougal Cowan
>> Sent: 22 April 2010 21:19
>> To: CellML Discussion List
>> Subject: [cellml-discussion] ABI CellML Meeting Minutes, 21st April 2010
>>
>> I have put the minutes from this week's meeting up at:
>>
>> http://www.cellml.org/community/meeting/minutes/2010/04.21
>>
>> Thanks,
>> Dougal
>>
>> _______________________________________________
>> cellml-discussion mailing list
>> cellml-discussion at cellml.org
>> http://www.cellml.org/mailman/listinfo/cellml-discussion
>
> _______________________________________________
> cellml-discussion mailing list
> cellml-discussion at cellml.org
> http://www.cellml.org/mailman/listinfo/cellml-discussion




Archive powered by MHonArc 2.6.18.

Top of page