LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 12-23-2006, 01:59 PM   #1
xlinuks
Member
 
Registered: Jan 2006
Location: White House
Distribution: Ubuntu 8.10
Posts: 39

Rep: Reputation: 15
Programming langs for the Desktop?


Hello developers
This is NOT a question on what language is better, so NO flames please.
I'm quite into Java, in my life I tried a bit PHP, C/C++ and a few other langs. I decided to stay for now with Java, BUT, it doesn't have a good enough desktop API, yes, I'm aware of the new features from version 6, I'm exited about the new system tray functionality, OpenGL rendering, speed enhancements and lots of other features, however, I sometimes badly need to:
1. Let the window have different shapes (not the standard square)
2. Make my application's window (half)transparent
3. Interact with other running application windows -sending different events (in Window$ one uses the "find_window" function to find to find a window, and something like destroy_window to kill it (I've been coding for windows some time ago, so don't remember for sure), - there's no such thing in Java yet).
4. Make my program run at system startup (or when the user logs in). THIS is extremely important for me, as sometimes the application has to track some events, like alerting the user to do something planned or alike.
Java can't do this unless you bind it with C/C++ code (through a special mechanism) - so I have to write platform dependent code.. In such case I'd rather just use C and the native platform API, why would I bother doing it in Java..

So the question is: Is there any language that doesn't require recompilation when taking its application to another platform and which would allow any/some of the features above? I'm thinking of Python, C#..?
Please share your opinions

PS: One can use third party libraries, but still: 1. They are not part of the standard Java libraries so would need additional installation. 2. Not good enough to my mind..
 
Old 12-23-2006, 04:15 PM   #2
taylor_venable
Member
 
Registered: Jun 2005
Location: Indiana, USA
Distribution: OpenBSD, Ubuntu
Posts: 892

Rep: Reputation: 43
The first three things you listed have directly to do with the X server, so you'd have to tie into the appropriate libraries to do so. If Java doesn't have these features, you can use the JNI to call into the right C functions. Of course, if you do that, such code won't be platform independent anymore. However, instead of relying on language you could rely on the toolkit to do this for you. I don't know of any that offer this kind of flexibility, though.

It does seem to me that point three could be accomplished by using multiple threads for your GUI. If you've got a different thread for each window, it would be easy for them to send messages to one another (assuming the threading style you're using supports the message-passing paradigm).

The last thing you list has to do with desktop environment (not the language). Gnome and KDE both have different ways of registering programs to run at session start. Windows has the startup folder. Under X you could just add the invocation to .xinitrc or .xsession.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
langs and Double Click oops10 Linux - Newbie 4 12-04-2006 11:53 AM
Difference between Top Down programming & Bottom up programming minil Programming 1 06-17-2005 02:42 AM
With what tools can I do Desktop Programming in Redhat 9 Linux? linuxdullhead Programming 3 12-23-2004 06:46 PM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 04:42 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration