Matrix of each desktop application development platform

Here are matrixes of some development platform.

Any option or complementarity is appreciated .

A glancing maxtrix

User Interface

Document/Community/employees

Cross-platform

Development efficiency

Air(Flex)

Good looking, it has abundant animation effect.

Many official document/Few employees

MS/Windows, Linux , Mac Os

Easy to editing user interface. Use css to render the style.

WPS(.net)

Good looking.

a few document/Few employees.

MS/Windows

Swing(java)

Unsightly

Extensive document/ Rich community/ many employees.

MS/Windows, Linux , Mac Os

Slow.

QT(C++).

Good looking, it has different style in different system.

Extensive document/ Rich community/ Few employees.

MS/Windows , Linux , Mac OS

Easy to Editing user interface.

But it maybe take time to redraw the style

Other Choice:

GTK(PHP): it is not used universal.( http://gtk.php.net/)

Delphi: it seem outdated

Python: free, easy to learn, can run on any OS.

A maxtrix base on some specific issues

1. Ability to monitor file system for changes

2. Robustness for connecting to web-service .. and deal with intermittent / lost connections

3. Photo transcode

4. Video transcode

5. Ability to control CPU load

6. Ability to control network load

7. Boot time impact

8. Update mechanism

9. Ability / difficulty to do notifications pop-ups

I am not familiar with C++. But there is a word , “C++ can do what java can do.”

Detail:

1

Ability to monitor file system for changes

Flex

do periodic job by flash.utils.Timer. Flash.filesystem.File.getDirectoryListing().

Java

do periodic job by thread.(Quartz). Java.io.File.listFiles()

C++

Comment

The language should support both periodic job and files scan.

2

Robustness for connecting to web-service .. and deal with intermittent / lost connections

Flex

By adding “RANGE: bytes=*****” to http header, and using flash.filesystem.FileStream to write, to support Resuming broken downloads/uploads

Java

By adding “RANGE: bytes=*****” to http header, and using java.io.RandomAccessFile to write, to support Resuming broken downloads/uploads

C++

Comment

The language should support to modify http header and have ability to write a file from a offset offered.

3

Photo transcode

Flex

use flash.display.BitmapData,  mx.graphics.codec.JPEGEncoder ,  flash.net.FileReference

Java

has implement.(Java Image/IO)

C++

Comment

The language should have image API to read, convert and export.

4

Video transcode

Flex

use FFmpeg (NativeProcess , nativeProcessStartupInfo)

Java

use FFmpeg.( java.lang.ProcessBuilder)

C++

Comment

FFmpeg is a cross-platform solution for Video transcode.

The language should have API to run system program and arguments.

5

Ability to control CPU load

Flex

There is no function sleep in As3, and flash.utils.Timer can simulate it. But it is not what we want.

Java

make the threads sleep , or have lower priority

C++

make the threads sleep

Comment

there is no way to control the CPU load or usage directly, or every application will run as fast as they can . correct me if I'm wrong.

But we can optimize code , reduce the IO operation or let the thread sleep.

In Windows: right click the java process in TaskManager and change priority.

In Unix: nice [-increment | +increment] java/as3.

6

Ability to control network load

Flex

Java

C++

Comment

I have not found some useful resource about it but some newwork monitor.

Do you have some suggestion?

7

Boot time impact

Flex

Air have no api to modify registry but read, but we can use ”sc create” to register it as a window server instead.

Java

modify windows registry by jni (http://trustice.com/java/jnireg/)

C++

Comment

Windows:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run] auto run when system start completely
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] run only once
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices] register as a Window Server .

Linux:

/etc/rc.d/re?.d

/etc/rc.d/init.d

8

Update mechanism

Flex

Flex have a strong update framework . We should not release any path , and the application will update automatically.

Java

one answer is Java Web Start.( http://www.java.com/en/download/faq/java_webstart.xml) (a part of JRE 5.0)

The system will download jar if the version has changed.

C++

Comment

The flex has better experience with comfortable updating , and is kind to developer as it isn’t necessary to change code.

About Java(JWS), if user’ machine has not install JRE5.0 , or above, it should install Java Web Start first , and developer should change code for security reason , and all code and resource is supported to be compressed into one jar.

1

Ability / difficulty to do notifications pop-ups

Flex

There are two very good and free components available that we can use

Flex Notification(http://afoucal.free.fr/index.php/2009/07/06/flex-notification )

FlexGrowl(http://lukesh.wordpress.com/2009/04/04/rawr-flexgrowl-component-available)

Java

Swt components

A sample from http://hexapixel.com/2009/06/30/creating-a-notification-popup-widget

C++

Comment

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值