[jsword-devel] I'm praying the smartest developers of JSword will get together.

Manfred Bergmann bergmannmd at web.de
Sun Feb 28 05:12:25 MST 2010


Am 28.02.2010 um 02:40 schrieb avolunteer DrStovallFoundation:

>> Date: Thu, 25 Feb 2010 14:58:54 -0500
>> From: DM Smith <dmsmith at crosswire.org>
> ...
>> To me the issue is that of accessibility not build.
> Today, I saw this blog by James Strachan the author of Groovy. 
> http://java.dzone.com/articles/scala-long-term-replacement
> He said he used and liked Java but he would never have written Groovy if he had known about Scala because Scala is the long term replacement for Java and a joy to use.

I've used Groovy and Scala and still use both.
I know this blog statement of the Groovy author and find it stupid.
Groovy has evolved a lot since the Mr. Strachan decided to build this language. 

Groovy is a dynamic typed language similar to Python and Ruby but runs on the JVM.
It builds on Java and extends it with certain functionality.

Scala on the other hand is completely build from scratch. It also compiles to byte-code and thus classes can be shared with other JVM languages.
It is statically typed and is both an object-oriented and functional language.

Both languages are for different purposes and both have their reasons to exist. While due to the static typing Scala is more in the shoes of Java.

> About 1995, C++ was the language most likely to get you a job.  But a small group of very smart people not long after that said, We are leaving C++ and going to Java because we can't get....  In December of 2007, Java was the language most likely to get you a job.  But this same small group of people said, We are leaving Java and going to Scala because we can't get ....  

Yeah, time doesn't stand still.

> The jobs are still in Java but Scala is coming along faster and faster.  Development tools are still focused more on Java but Scala now takes only a little more effort.  But the future of computing is distributed processing not 1 cpu desktops.  But the future of cell phones is bigger than the future of computers.  Android or other multi-tasking cell phones are the future not one thing at a time Blackberries or iPhones.

Indeed Scala offers a lot more functionality and features which Java is lacking. The Actors pattern for multi-core CPUs, Closures, Properties, Traits, Mixins, Functions as objects...
However if Scala will be the successor of Java is unsure and even if it will be this will take a lot of time until then.
Scala is much more complex. The learning curve is relatively flat because of the complexity of Scala. Lots of new thing to learn.
At this time Scala has some areas where it still is much slower compared to Java.

> Up to today, Crosswire has focused upon developers communicating and agreeing for one to take a certain little improvement and just do it.  This has brought us a long way and I really admire each contributor and all of their little improvements.  But I think the time has come for us to go back to square one and do something which is so easy and obvious that even a beginning programmer can quickly understand and join.  I just reread John 17.  Jesus pours out Heart requesting His vision of the future where all believers might be one in the sense that He and the Father are ONE so that the whole world might know.  We will have maximum impact only after we are one to a greater extent than we now are.  The best way to do this is to grab the jvm language of the future which is easiest to understand and move forward from square one with such good communication and simplicity that beginners can understand and join on their cell phones.  The only way I see us
> being able to accomplish this is to start redoing JSword on Scala for the Java Virtual Machine and for Android.

While I would greet if JSword could start using Scala, rewriting all the code which has evolved over years is a rather large task and not necessary in my eyes.
Java will be around for many more years. With Java 7 Closure, Properties and some more features will come. Type-infering is already in the compiler, it is just not activated. Don't know for which reason.

And btw: functional languages are not new. LISP, ML, Scheme, Haskell are around for many, many years. It is just now that they seem to get popular again in mainstream usage but this is nothing the world hasn't seen.
Scala might be different in that it combined OO and Functional.

I think that Java could have evolved faster. But so many commercial companies did invest in Java this surely was reason for Sun to be a little conservative in terms of language development. They see now however (with other JVM languages coming) that they have to do something in order to keep Java up-to-date which is why Closures will now finally find it's way into Java7 which wasn't sure until at last.
I presume however that if Scala would have such a high level of usage development would be much slower, too. And changes that break backward compatibility (in Scala 2.8) couldn't be dine so easily.


Manfred




More information about the jsword-devel mailing list