convert scala to java for GWT? - gwt

For GWT client side you need Java source code so i got that idea to convert scala code to java code.
How can i archieve this conversion?
Or is there a production ready possibility to use scala directly?
Thanks for any help!

It can't be done because Scala compiles directly to byte code, not Java. Compiling to byte code is much easier than generating Java and besides, there's a lot of stuff the byte code allows that is forbidden by Java the language, such as not declaring checked exceptions.
There's a project going on at http://scalagwt.gogoego.com/ to generate a "java-like" language from Scala that GWT can read. It seems to be moving along nicely and I know Lex Spoon is involved with it. I know they briefly considered the other possibility of decompiling the generated Java but dropped that path quickly after determining that too much information was lost in that process.
If you only want to use Scala on the backend and write the client in Java, that's always been possible and works fairly well in Eclipse.

Some work has been done to allow GWT to be written in Scala, by an intern on the GWT team last summer. See http://www.youtube.com/watch?v=_1GjgFjX5gE

Related

writing netbeans RCP apps on scala

Have anyone tried to write a Netbeans RCP application in scala (Instead of Java). The reason for my question there is an API in Scala which wraps JavaFX. Likewise is there any API to make to develop Netbeans RCP based apps written in scala.
For wrapping JavaFX there is ScalaFX. Netbeans Rich Client Platform is not small, and a Scala wrapper seems impractical to me (I am not aware of any); just call the Java code from Scala. Java/Scala interoperability is generally decent, so while you might occasionally have to write a little bit of Java as an interface, you can pretty much just use Scala for any Java project.
(Getting the build process to work might be a little tricky, though; expect to invest a little time there.)
I personally dont see any useful use case to use JVM language to develop NB RCP/Plugin. NB It self provides a IDE where you can use the drag-drop feature, codegen, annotation based IDE to created it. If you want to have a syntax sugar in writing NB RCP then i feel its waste of time where we already have a good IDE. JVM is not going to do any much difference that the existing environment.
If you see that you need a NB like modular, GUI based framework in Scala ecosystem that, I personally feel writing binding wont solve that problem. Scala need some framework like Griffon.

GWT and JScience

In my GWT application, I made a control to display/edit a numerical value with an associated unit (for example to convert meters <-> feet).
How could I use the JScience library (jsr-275 implementation) in the client part ?
I try to add it to my project but it didn't compile:
No source code is available for type java.text.ParsePosition
Thanks for your help.
This is not a problem with the JScience library as such.
GWT compiles java to javascript and as such needs access to the java source code. Also, not all of the JDK classes are available in the GWT emulation library, and ParsePosition (indeed all of java.text.*) is one of them...
It is not clear from your stacktrace excerpt whether you have used ParsePosition directly or it is the JScience library that does, but either way you will have to rewrite your code to not use that class on the client side (if possible) or perform the conversion on the server side, where the GWT JRE restrictions do not apply.
Have a look at JRE Emulation Reference for a complete overview of what's available to you.
Cheers and good luck,

GWT using UiBinder vs Pure Java

I'm starting a new gwt project, and I've decided to use UiBinder instead of pure java. I'm starting to regret this decision. In fact, I'm starting to think that maybe I should switch to pure java. But before that, I thought I post a question and get your feedback.
In my limited experience, UiBinder is all great, until something goes wrong. Then there is no indication of how to solve the problem. All I get from eclipse is "Failed to create an instance of vai deferred binding." Followed by a null pointer stacktrace. Not very useful. And if I want to figure out what's going on, I guess I'll have to figure out where the compiled is stored and scan through that...which defeats the point of having a compiler.
Am I missing a compiler option or something that would generate better error messages?
Thanks in advance.

String Replace operation in GWT 2.0.4

I am using GWT 2.0.4 and want to perform the trivial operation of replacing string.
Something which can be done using java.lang in java, and since GWT doesn't support Java libraries and I want to avoid writing a JSNI, is there a way to do a string replace, Is there anything i am missing or might not knw?
Latest version of GWT,which is just an RC, 2.1 has a library called com.google.gwt.regexp which have something as simple as
originalString.replace(Expression String, Replacement String)
but since it is RC, I cannot use it here, Any suggestions are appreciated and Thanks for helping.
String.replaceAll() (any any java.lang method listed here) works in GWT.
Furthermore, it's incorrect to say "GWT doesn't support Java libraries" -- GWT supports lots of Java libraries, and many that aren't immediately usable can be made GWT compatible with a little work.

Use Scala as if it was Java

I've been reading up on Scala a lot recently and I really want to get into it. I do my Java web development from within Eclipse with Tomcat as my preferred server and I'd like to keep it that way. I've tried the Scala Eclipse plugin but it's safe to say, it isn't there yet. I had to uninstall it because it simply ins't working. On top of that, it doesn't seem to provide anything for doing web projects (I could be wrong there).
Since Scala is a compiled language just like Java is, I was wondering if it's possible to simply swap out Java with Scala, as in, where I'd normally would create Java classes I would now be able to create Scala classes instead? Maybe even mix Java and Scala?
Is there anyone out there who's been able to set up a decent Scala workflow in Eclipse for web development without the dreaded "official" Scala Eclipse Plugin?
PS: I've tried the Play framework (I think it recently added Scala support) but it simply isn't for me. I like my classes compiled and to use JSP's for my views.
You don't say anything about what version of the Scala IDE for Eclipse you were using, or what you tried to do to resolve your issues. I suggest that before changing your workflow you head over to http://groups.google.com/group/scala-ide-user and see if we can help you out.
Since Scala is a compiled language
just like Java is, I was wondering if
it's possible to simply swap out Java
with Scala, as in, where I'd normally
would create Java classes I would now
be able to create Scala classes
instead?
Yes, absolutely. That's one of Scala's big advantages over some other JVM languages.
Maybe even mix Java and Scala?
Yes, absolutely. That's one of Scala's big advantages over some other JVM languages.
Make sure you have familiarity with the Java and Scala collections libraries (and that you keep them straight -- if you're planning using advanced Scala features on Java collections, definitely use a Scala 2.8 release candidate). Also make sure you're faimilar with the #BeanProperty annotation -- it can simplify your Scala coding somewhat.
As Miles said, you should give us the version of Eclipse you are working with.
I'm also new to Scala and found difficult to work through Eclipse. I was using Eclipse Galileo 3.5.2 and found specially long to compile all the scala libraries. I switched to IntelliJ (IDEA 9.0.2) and I'm much more confortable now. I recomend trying it although it's more a personal matter.
Even so, I agree, the plugins are not there yet specially for web development. The great news is that you can use everything you have in Java and mix it with Scala. Since Scala is compiled to Java BitCode, they are totally compatible. See Combining Scala and Java.
When writing in Scala you always have (almost) all the Java libraries at your service plus anything you have created before. You will have to be carefull with the types (i.e. primitive types) but it normally works out very well.