Page 1 of 1

Wondering about MLS

Posted: Thu Sep 20, 2007 2:58 pm
by skiptaylor

I'm fairly new to all this having been a Stake Tech Specialist only 5 or 6 months so I'm still learning.

I've been trying to puzzle MLS and why it seems to be written in Java? I'm not 100% sure it's in Java, but I remember seeing it install the Java runtime when I was installing MLS.

Maybe I'm out of touch or just old fashioned, but isn't Java more of a platform for portability between operating systems? From what I've seen so far we have two operating systems in use - Win2K in FHCs (doesn't matter to MLS) and Windows XP in clerks offices.

Why wasn't it written in something like C or C++ or migrated to a different language??

After seeing how slow it runs, it just seems someone would want it to work faster than it does!


Posted: Thu Sep 20, 2007 3:57 pm
by mkmurray
I know one of the guys that did the original port to Java like 5 years ago or so. It's quite an improvement over MIS. The team that ported it had to try really hard to convince the Church about using Java. I think Java was the best tool for the job at the time as far as UI and DB connections go. Also, perhaps they are still banking on the platform independence someday.

Posted: Fri Sep 21, 2007 5:23 am
by thedqs
Also, with Java you don't have to worry about pointers and other nasties that a more powerful language gives you. Plus more and more colleges give Java as an intro course for programming so more and more people know Java then any other language.

Posted: Fri Sep 21, 2007 6:31 am
by WelchTC
The slowness is not all attributed to Java. The java VM is much more optimized today than it was in the past. You can write horribly slow code in C++. I don't have all of the reasons why they went with Java but my guess is that we do a LOT of development in java and as has been mentioned, there are things that you don't have to worry about as much in java that you do in C++ such as garbage collection. The DB connectivity with java is nice.

5 or 6 years ago when this project first started, your main options for Windows development were:

  • VB - No better than Java when it comes to performance (IMHO)
  • C++ (C# was just coming on to the scene) - C++ is a great language but is much tougher to maintain
  • Java
  • Delphi - We don't really do any Delphi development and it appears that this product has rapidly declined in it's use.

Posted: Fri Sep 21, 2007 12:06 pm
by JamesAnderson
Java seems to have become a real workhorse language, and the language of choice for large operations. I first saw Java over ten years ago when someone wrote a very small applet that had maybe ten lines of code but displayed the words 'ripe banana' and the words changed color from green to yellow to brown and then black just like a ripening banana would.

It looks like the FamilySearch Indexing program is written somewhat in Java in coordination with other languages. The Java is what apparently makes some of the features regarding the graphical content work, such as being able to move around the image, display and adjust highlights, etc.

I've found that FS Indexing does take over 1 minuite to load, I'm running a 1.8ghz processor and Win2k professional. After you choose your batch it takes possibly as much as two minutes to initially load the image and its template for indexing from the server using dialup. After that, when you return to work on a partially-completed batch, it will take somewhat less to load after initially starting up the FSI app.

While you are not necessarily downloading work on MLS or if you are it is not as significant as on FSI, you do have a slight slowness issue from various code sources, so I wouldn't solely blame the Java coding just yet, but the Java stuff may be what is slowing things up to some degree.

Posted: Fri Sep 21, 2007 7:15 pm
by thedqs
There is probably some validity to that the thing is that some people that use indexing have it on different operating systems. So I think portability comes first.

Also on my machine (2.4 GHz, Dual Core, 1 GB Ram, Win Vista) it loads just fine and rather quickly, so it could just be conflicts with other programs or not having the latest Java Virtual Machine release.