Emerald Editor Discussion
September 25, 2017, 12:42:17 pm *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
   Home   Help Search Login Register  
Pages: [1]
Author Topic: Portability  (Read 4167 times)
0 Members and 1 Guest are viewing this topic.
Posts: 1

« on: April 28, 2006, 07:29:54 pm »

There are two competing requirements for EE:

 - being lightweight
 - being portable

According to CE users, CE niche stems mostly from its performance and practicality. It does most of what people require, fast, without fuss. That being, it's probably very important to maintain those characteristics. It should have a small installer package, small memory footprint and continue to be fast even in the presence of new requirements (proper Unicode support).

The above requirements fly in the face of portability. Many solutions which offer portability run counter to those demands. But an editor like CE/EE with a focused scope doesn't require large, highly abstract libraries. For the most part it needs to pick a core which support the basics of IO and memory management. Then, it also needs to support a GUI.

So, attending to what I've read from others my suggestion would be: pick a lightweight library to function as a platform abstraction layer for the core of the editor. Such library is reused on all platforms, making the core of EE quite portable. Then reimplement the GUI natively on each platform: Win32 API for Windows, Carbon or Cocoa for Mac and Qt or GTK for the Unix alikes. This is harder, but notice that an editor like CE has a reduced number of GUI elements and you have a clear goal. So, all three platform specific efforts can work in parallel. The performance sensitive part of the application remains unaffected by the GUI tecnology.

I think this solution addresses both requirements. You can prioritize the platforms of your choosing in the GUI and you'll have an easy time picking a common middle ground for the core (there are several good light libraries if you don't require a GUI).

As a personal choice I would use the D language, with which you can interface natively to a lot of libraries and use the "version" construct to keep your platform specific code clean. I also like Qt, but once you have defined a stable interface between the core and the GUI supporting more frontends should be easy.

Good luck
Site Administrator
Master Jeweller
Posts: 618

« Reply #1 on: April 28, 2006, 09:59:52 pm »

This is going to sound bad, because I keep advocating something without looking into it...

I've had another look at wxWidgets, and noted that all of the little demo programs are huge - the Life! simulator is over 1MB in size!!

The trouble with a project like EE, is that while it appears that the interface is lightweight and non-intrusive, in reality the largest part of the program's real core will be the main editing window, where all of the work really happens - everything else can be worked out separately.

I still think wxWidgets would be good, but if that's the kind of size it will generate, I'm not so sure. If I can come up with a way of reducing the build size without comprimising speed, I might look at it some more.

What I think I need to do is study SciTE. It has a minimal GUI, most of the work being done purely by Scintilla, and learn something from that.

"Cleverly disguised as a responsible adult!"
Senior Miner
Posts: 78

« Reply #2 on: April 28, 2006, 10:30:15 pm »

Arantor, please try this program and see if this would work... Ultimate Packer for eXecutables http://upx.sourceforge.net/

I never used UPX, but it should shrink the exe and the speed should not go down...

Markus Schulz
Senior Miner
Posts: 78

« Reply #3 on: May 13, 2006, 07:32:33 am »

D:\upx200w\upx.exe emerald.exe -9
                       Ultimate Packer for eXecutables
    Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006
UPX 2.00w       Markus Oberhumer, Laszlo Molnar & John Reiser   Apr 27th 2006

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   5605157 ->   2591525   46.23%    win32/pe     emerald.exe

Packed 1 file.

Pages: [1]
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.077 seconds with 18 queries.