Need advice on building GUI / Rich client applications with Scala / Eclipse

56 views
Skip to first unread message

Jens Rabe

unread,
Jan 22, 2017, 11:55:18 AM1/22/17
to Scala IDE User
I know this is somewhat off-topic, but since Scala IDE is based on Eclipse and I think a lot of people experienced with Eclipse and Scala are writing here, I want to ask my question here.

Currently, I am doing sort of a two-track policy, I am doing all my back-end stuff which mostly runs on Spark and Cassandra with a bit of Hadoop thrown in in Scala. This is also my main project and I am getting along quite well. But my coworkers also need some GUI tools. Currently, I made them in C# / .net which works well, too, but I don't want to maintain two versions of my code in the future. Especially, my API which talks to Cassandra currently exists in C# and in Scala, and when I make changes / extensions to one side, I must do them to the other side, too. I want to create one large extensible application putting all the small GUI tools together, and since I am at the very beginning with this, I thought I should do the new version on the JVM (the tools need a major rewrite anyway because I did most of them when I was still very new to .net and a lot of them have a horrible style).
In the past, I worked on Eclipse based projects so I have some experience with the RCP and OSGi, but this was pre-Maven and pre-SBT.

My JVM based part of the code uses SBT and last week I tried out Scala-IDE with sbteclipse, which looks good so far (after pulling my code up to Scala 2.11) and I'd absolutely love to create the new GUI application based on the Eclipse RCP (or something similar) again.

Now, here's the problem: I don't know if this is even possible or feasible with SBT. With Maven, there's Tycho, but this is, as I read through tutorials, quite painful and looks like a lot of kludging. For example, you have two different dependency mechanisms - POM-first and Manifest-first. For SBT I just found SBT-Tycho but this project looks dead. So, I am quite lost in this process. Or should I go another path like Java FX, maybe?

Simon Schäfer

unread,
Jan 22, 2017, 2:50:36 PM1/22/17
to scala-ide-user



---- On Sun, 22 Jan 2017 17:55:18 +0100 'Jens Rabe' via Scala IDE User <scala-i...@googlegroups.com> wrote ----

We still use Maven to build most parts of Scala IDE because OSGi integration in sbt is even worse than it is with Maven. Anyway, I suggest to not use Eclipse RCP, it is a horrible technology in my opinion. Do yourself a favor and use Scala.js to build single page applications on top of Electron and other web technologies. Much more future proof that these outdated Java GUI technologies. Not to mention that Java GUI technologies are niche technologies. You can't learn anything by using these technologies that you could use in other parts of your job and that means that you won't enjoy to learn these technologies. Scala.js on the other side opens the doors for functional programming, for reactive programming, for the big Scala ecosystem and for the Scala way of thinking. The downside may be to rely on the JS ecosystem but Scala.js abstracts away most of the bad parts.

Jens Rabe

unread,
Jan 22, 2017, 2:58:36 PM1/22/17
to Scala IDE User
Indeed I also thought about Scala.js and web technologies. Are there also ways to repack such an application as a "pseudo-native" one, or is it better to host it on a web server? Never heard of Electron though, I did some experiments with jQuery and its mobile counterpart, although with "pure JS". But I will have a look at Electron.

Your take on web technologies is also a way to get the stuff onto tablets and smartphones easily.

Arnaud

unread,
Jan 24, 2017, 8:49:27 AM1/24/17
to Scala IDE User
Has someone experience on ScalaIDE + Electron + ScalaJS + Angular 1/2 ?

thanks
Arnaud
Reply all
Reply to author
Forward
0 new messages