John, I was wondering where you had disappeared to this time. Many Java JVMs have just-in-time colmpiling, which translates byte code to machikne language. This considerably increases speed. C compilers have automatic optimization which can be turned on and off. When I test liblouis in both conditions there is a considerabloe difference in speed. A good JVM will run a program so quickly that it appears almost instantaneous, unless the progrram does a really large amount of data manipulation. In that case, it would be slow in any language. With Java you get the advantages of compile-once run anywhere. Well, I think this has been a good discussion, especially for making us re-examine our assumptions. John B. On Thu, Nov 04, 2010 at 09:01:03PM -0700, John Gardner wrote: > Hello Alex, well you have certainly stirred up a lot of questions and > comments. That's good, and I have had private conversations with several > listers to develop a consensus on whether we should seriously consider > changing course as you suggest. The consensus is "no". > > > > Quick summary is that isn't necessarily true that C will be faster, since it > really depends on how well it is optimized. Java has many automatic > optimizations and can often run lots faster than C. It strikes many people > that it really doesn't make sense to time-optimize this program, because it > really runs on (very slow) human time anyhow. Java is considerably faster > to write and debug code, so the price for using C would be longer > development time. Strike 1. > > > > BrailleBlaster has always been intended to be a desktop application. To be > useful, it needs to have drivers for embossers, and these are available for > Windows, some for Macs, and some for Linux. It is not very likely that any > will be written for an iPhone, iPad, or any other embedded device, so it > makes no sense to write a Braille translator for those devices either. > Strike 2. > > > > You say that Microsoft and Apple no longer support Java. To my knowledge, > Microsoft has never supported Java per se, but Java has always worked on > Windows. Apple's Java support has been, well peculiar at best, so many Java > lovers seem pretty happy that Apple has abandoned that support. There are > plenty of Java run-time aps that work on the Mac, so there seems to be no > problem using Java. Just have to install a JRT whether it's Windows or Mac. > Strike 3. > > > > Thanks for making us examine our assumptions however. I appreciate your > thoughts. One should always be looking for something better. C is better > for lots of things, but as far as several of us can tell, not for > BrailleBlaster. > > > > John Gardner > > > > > > > > > > From: brailleblaster-bounce@xxxxxxxxxxxxx > [mailto:brailleblaster-bounce@xxxxxxxxxxxxx] On Behalf Of Alex Jurgensen > Sent: Thursday, November 04, 2010 7:46 PM > To: brailleblaster@xxxxxxxxxxxxx > Subject: [brailleblaster] Re: Why Java > > > > Hi John, > > > > C programs run nativvely on all major OS's. > > > > WX-Widgets is like SWT for C and for sure works on the Mac with the Mac's > screen reader. > > > > The compilers are not included on the Mac and as far as I know on Windows, > but those need to be run only once to compile the code. > > > > What you walk away with by using C is faster exicution, and more memory > efficient code, which is important to screen reader users running on low > specification machines. > > > > Just my $0.02 cents worth. > > > > Regards, > > Alex, > > > > > > On 2010-11-04, at 5:57 PM, John J. Boyer wrote: > > > > > > BrailleBlaster is intended as a desktop application. There is no reason > why it couldn't be used on a tablet. It would not be suitable for small > devices, such as phones, because these could not accommmodate the GUI > which is part of its design and a large part of its appeal. How would > you fit usable braille and print windows on a small screen? > > The core libraries of BrailleBlaster are already in C. liblouis and > liblouisutdml will be the braille engine of BrailleBlaster and they can > be used without it via the file2brl command-line interface. They are the > engine; BrailleBlaster is the rest of the car. > > Java was picked because of SWT, which has native C libraries that > support the UI requirements of different platforms. wxwidgets is > problematical. I have heard that it really works only for Windows. Java > provides wuicker software development and indeed a great number of > libraries that do things like display MathML. > Microsoft doesn['t provide C at the installation of its operating > systems. With Apple, you have to install the Developer tools to get C. I > think both decided that maintaining their own Java runtimes just wasn't > worth it, because there are so many third-party JREs already available. > > I may be wrong on some of this, but I'm hoping we will see some messages > from More Java experts and from other decision-makers. > > Yuemei said she is experienced mostly in C and Visual Basic. She did > mention Swing, but not that she had used it a lot. I think straight SWT > is the way to go. > > John > > On Thu, Nov 04, 2010 at 05:45:02PM -0500, qubit wrote: > > > > Perhaps because there are java libraries available that are tempting to use > as a base? As for Apple and Microsoft, the java runtime is not being > supported by them any longer, but third parties may still develop such > support to be distributed with java programs. > > Any other things I have missed? > > --le > > > > > > ----- Original Message ----- > > From: Alex Jurgensen > > To: Brailleblaster@xxxxxxxxxxxxx > > Sent: Thursday, November 04, 2010 2:25 PM > > Subject: [brailleblaster] Why Java > > > > > > Hi All, > > > > > > I mention this now, at the relative beginning of the project, so as to > avoid unnecessary work. > > > > > > Why are we using Java and not writing most of the code in C, with a true, > native UI on top, such as WX-Widgets for C. Because the code would not need > to be exicuted in a virtual machine, we would avoid many of the slowdowns > associated with Java. > > > > > > We must also think about embeded devices, where the overhead of Java is > either too much for hte battery to tolleratte acceptably or there is no Java > Virtual Machine available. > > > > > > Furthermore, both Microsoft and Apple have dropped support for Java within > their Operating Systems, it doesn't seem to make sense to continue coding in > Java because we may one day soon need to rewrite all of our code to aadapt > to a whole new class of machines that don't have Java Available. > > > > > > I feel that if we write the core of our code into C libraries, we should be > able to bring about new UI's, such as a Cocoatouch UI for IOS devices, OR an > QT UI for Nokea and Intel's new project. > > > > > > Just my two cents. > > > > > > Regards, > > Alex, > > > > > > > > > > Alex Jurgensen, > > VoiceOver Trainer, > > ASquared21@xxxxxxxxxxxxxxxxx > > > > > > Visit us on the web at: www.vipbc.org > > > > > -- > John J. Boyer; President, Chief Software Developer > Abilitiessoft, Inc. > http://www.abilitiessoft.com > Madison, Wisconsin USA > Developing software for people with disabilities > > > > > > Alex Jurgensen, > > VoiceOver Trainer, > > ASquared21@xxxxxxxxxxxxxxxxx > > > > Visit us on the web at: www.vipbc.org <http://www.vipbc.org/> > > > -- John J. Boyer; President, Chief Software Developer Abilitiessoft, Inc. http://www.abilitiessoft.com Madison, Wisconsin USA Developing software for people with disabilities