[liblouis-liblouisxml] Re: Performance Question

  • From: Ken Perry <kperry@xxxxxxx>
  • To: "liblouis-liblouisxml@xxxxxxxxxxxxx" <liblouis-liblouisxml@xxxxxxxxxxxxx>
  • Date: Mon, 28 Oct 2013 00:12:08 +0000

I have to make a quick comment on the c++ comment below.  You do realize that 
there is more c++ files in Jelly bean than there are java and there are more 
java files than there are c files.  I think the link you put in your email is 
true it says it really depends on the coders working on the job and what they 
know. C++ is used in all kinds of embedded systems and boost is even used in OE 
linux. Which is an embedded system that is used on many devices.  I can tell 
you that most stuff that liblouis is being used on now have boost available.

Ken
-----Original Message-----
From: liblouis-liblouisxml-bounce@xxxxxxxxxxxxx 
[mailto:liblouis-liblouisxml-bounce@xxxxxxxxxxxxx] On Behalf Of Aaron Cannon
Sent: Saturday, October 26, 2013 11:07 PM
To: liblouis-liblouisxml@xxxxxxxxxxxxx
Subject: [liblouis-liblouisxml] Re: Performance Question

You are right that the Python API has been made easier to work with, thanks to 
third-party libraries.  However the Boost library, unless there's been a major 
change, is exclusively a C++ library, and C++ may not be the best option for 
maximum compatibility on embedded systems:
http://stackoverflow.com/questions/2065456/developing-embedded-software-library-c-or-c/2066175#2066175

Also, I stand by my assertion that Python is not simple to compile on embedded 
hardware, as it has many system dependencies.  Lua, on the other hand, requires 
only an ANSI C compiler.

Again, I would love to use Python, but I think it limits the situations in 
which the library can be used far to much.

Aaron


On 10/26/13, Ken Perry <kperry@xxxxxxx> wrote:
> I would also dispute the part about python not being easy to embe 
> compile on other plaforms and hard to embed. You really should take a 
> look at the boost libraries if you think that is the case.
>
> Ken
>
> -----Original Message-----
> From: liblouis-liblouisxml-bounce@xxxxxxxxxxxxx
> [mailto:liblouis-liblouisxml-bounce@xxxxxxxxxxxxx] On Behalf Of 
> Michael Whapples
> Sent: Saturday, October 26, 2013 3:19 PM
> To: liblouis-liblouisxml@xxxxxxxxxxxxx
> Subject: [liblouis-liblouisxml] Re: Performance Question
>
> The only thing I would dispute is that you say the C API of Python is 
> not as simple as it could be. This is where Cython steps in, making it 
> very easy to create C extensions for Python. Also if Cython is not to 
> your taste then I believe there are other tools, eg. boost has a 
> library for writing Python extensions, swig, ctypes, etc.
>
> Michael Whapples
> On 26/10/2013 19:57, Aaron Cannon wrote:
>> I am also very much in favor of using Lua, barring any better 
>> suggestions.  Here are the pros and cons of Lua, Python, and
>> JavaScript:
>>
>> JavaScript:
>> V8 is a fast moving target, is not small, and has an extremely 
>> complex C/C++ api, which is still very much in flux.  JavaScripts 
>> Unicode support is also a bit sketchy.
>>
>> Python, although it is my favorite language by far, is likely not 
>> suitable for what we need.  It is quite large, not simple to compile 
>> on embedded hardware, and the C API is not as simple as it could be.
>> On the other hand, it's a great language, has a lot of great 
>> batteries included, including excellent Unicode support, and a lot of 
>> people can program in it.
>>
>> Finally, Lua, which I believe to be the best option in this 
>> situation, is very light-weight, (less than 100K for the Lua core (at 
>> least 10-40 times smaller than Python, depending on how you count)), 
>> is designed to be highly portable and has been shown to compile on 
>> several different embedded platforms, and offers a simple, flexible 
>> and easily learned language.  Independent enchmarking tests generally 
>> have good things to say about its performance.
>>
>> I could see us easily using Lua for prototyping various solutions, 
>> and then either leaving them in Lua, or once they were considered 
>> reasonably stable, converting them to C functions exposed in Lua, for 
>> greater speed.  Thanks to the simplicity of the C API, this is not 
>> nearly as difficult as it could be.
>>
>> The major drawback is that Lua doesn't support Unicode with some of 
>> its string functions.  Lua strings can store UTF-8 data with no 
>> problem, it's just that some of the library string methods don't 
>> support UTF-8.  However, I think that this can be overcome by simply 
>> building a wrapper for a good Unicode library, such as UIC.
>>
>> Lua has been used as the scripting language in countless games, such 
>> as World of Warcraft, in the NGnX web server, and the Redis database, 
>> just to name a few.
>>
>> Just my $0.02.
>>
>> Thanks.
>>
>> Aaron
>> For a description of the software, to download it and links to 
>> project pages go to http://www.abilitiessoft.com
>
> For a description of the software, to download it and links to project 
> pages go to http://www.abilitiessoft.com For a description of the 
> software, to download it and links to project pages go to 
> http://www.abilitiessoft.com
>
For a description of the software, to download it and links to project pages go 
to http://www.abilitiessoft.com
For a description of the software, to download it and links to
project pages go to http://www.abilitiessoft.com

Other related posts: