Sponsored links

Go Back   MP3Car.com > Mp3Car Technical > Software & Software Development > Coders Corner


View Poll Results: Can Java be used to make a powerful FrontEnd?
Yes 5 55.56%
No 3 33.33%
Unsure 0 0%
Don't know enough about Java 1 11.11%
Voters: 9. You may not vote on this poll

Reply
 
Share Thread Tools Display Modes
Old 09-17-2009, 01:28 PM   #1
Newbie
 
Join Date: Sep 2008
Posts: 6
marc2912 is an unknown quantity at this point
Question revisiting Java as a front-end

So here goes.

I know this has been touched on in the past but nothing is current and I want your (mp3car forum experts and novices alike) opinion.

First a little background:
I am, have and will be learning Java. I'm planning to take my SCJP test in a few weeks. I work a full time (non i.t. related) job so this is all done on the spare time I can find. I have no time or want right now to learn another language since Java, I'm hoping, will lead to a career change.

I want to build a carputer, and want it my way. I don't want a front-end that limits me (yes I've looked at what's out there and what they can do) and I want to be able to change it as I want when I want and not just the UI.

I have worked a bit with JMF and can work my way around and have done some swing and awt work too. I also can handle multi-threading.

I know one of the problem many people bring up for example is GPS and maps. Access to maps i.e. online, and it not being good since the computer won't always be online. I plan on being online.. all the time. It's 2009 and I think it's not too much to think a computer, even in a car, can be online all the time...

Again I just want opinion, advice and ideas. Whether good or bad, you agree or disagree please share.

Also I know many programmers consider Java SLOW. I've heard that and having worked on and looked at Java program I don't think the difference in performance would be an issue for what I plan to do.

Thanks in advance

Marc
marc2912 is offline   Reply With Quote
Advertisement
 
Advertisement
Advertisement Sponsored links

Old 09-17-2009, 01:48 PM   #2
licensed to kill
 
kev000's Avatar
 
Join Date: Aug 2006
Location: Deep in the Rockies... coding in caves
Posts: 1,039
kev000 will become famous soon enough
Code:
...and I want to be able to change it as I want when I want and not just the UI.

There are several open source frontends (nGhost being a great one) that allow you to do just this.

From experience, building and maintaining your own frontend can be very fun and it'll help you learn a lot about coding and about computers. But it is *very* time consuming and it takes a *long* time to get it to the point that you probably envision it being.

So I recommend, depending on your choice of platform, to take a closer look at RevFE for windows, and nGhost3 for *nix. They are IMHO the best designed open source frontends in existence. Both use C++/Qt and are *FAST*. Both are completely plugin based. If you don't like the media selection plugin, write your own. That's certainly faster than writing *everything* from scratch. Plus you still gain valuable coding experience and learn to work with a team (very important if you are thinking of being a coder as a career).

RevFE is probably the lightest and fastest frontend out there. It's very well designed and has a rapidly growing community.

nGhost3 is a slightly different paradigm than the others that uses a multi-process plugin design with an IPC link to keep everything integrated (think google chrome for mobile systems with awesome graphics).

If you really want to write your own, Java isn't a terrible choice. From experience, GUI in Java can be slower, but probably no slower than RR currently is. CLI apps in Java are fast, but still not as fast as native c/c++ compiled code.

Oh, and take a look at openMobile too. I haven't looked at the code, but from what I read here, it also follows good design practices.

Don't worry if it's written in a language you probably don't currently know. Programmers are almost worthless if they only know one programming language. It's extremely valuable to have a utility belt of knowledge of various computer languages.

We get these kinds of posts all the time. Most people who create their own front end realize what I've mentioned above and tire out within a few months. Those who choose to develop existing frontends usually end up creating something awesome and stick with it for years even.
__________________
LinuxICE - because my car already has enough windows (and because I like speed).
LinuxICE2 beta2 is released!!! get it now!
Follow OpenICE development

Last edited by kev000; 09-17-2009 at 01:54 PM.
kev000 is offline   Reply With Quote
Old 09-19-2009, 10:02 AM   #3
Newbie
 
Join Date: Sep 2008
Posts: 6
marc2912 is an unknown quantity at this point
KEV000: Thanks for your time and your reply. I truly understand that building a frontend is not a few weekend project. I also realize that there are open source ones out there and even one where you can design your own plugins.
Unfortunately as I explain that's not an option for me> I have no time learning another language. I understand that as a programmer the more I know in different language the better. I also know that I've met many who know a little of everything and not enough to be good at anything. At this point my only goal is to become proficient in Java. I have no time to go learn C++ or any other OO language.
marc2912 is offline   Reply With Quote
Old 09-19-2009, 10:17 AM   #4
North of the land of Hey Huns
 
Join Date: Jun 2004
Location: Westminster, MD
Posts: 1,038
malcom2073 is a name known to allmalcom2073 is a name known to allmalcom2073 is a name known to allmalcom2073 is a name known to allmalcom2073 is a name known to allmalcom2073 is a name known to all
I do not believe that java can make a frontend, primarily due to the fact that it is an interpreted language. Java does what it is intended to do well, but that thing is not desktop applications. It's great for web and phone applications as well as rapid application development. Frontend development will not succeed if you go with the RAD paradigm in my opinion (purely opinion of course ).

That being said, it looks as if you're not looking into RAD, being not a weekend project. I wish you the best of luck I think developing your own frontend is a good thing to do and is a very good way to learn a language. You will touch on many different aspects of a language especially if you look into making the frontend modular and pluggable/skinnable. Creating RevFE has been a wonderful learning experience for me not just to learn a language but to give me some insight into the challenges and difficulties that frontend developers run into. You will learn a new-found appreciation for the work people put into frontends.

A couple of suggestions:
As I hinted on, make it pluggable/skinnable. This will not only make the frontend appeal to other people as well as make it easier for you to change features yourself. Having a userbase is a wonderful way to get new ideas.

Find some way to make the interface snappy. The primary problem with the "top" frontends out there is that they are slow feeling. You hit a button, you have to wait for it to do something. I do not know if you will be able to do this with a java application, I've never used a java app that doesn't seem slow to me, but if you can overcome that obstacle I think it would make your frontend appealing to the masses.

Language interoperation! If you can have your frontend load plugins in other languages, it would open up plugin development to people who don't know java. Also a good way to get users.
__________________
RevFE - Try it, you just might like it.
Carbon - Next Generation Touchscreen Browser
Come join us on IRC: irc.efnet.net #mp3car
Audiophiles make me chuckle as they pad my wallet.
malcom2073 is offline   Reply With Quote
Old 09-19-2009, 11:40 AM   #5
Maximum Bitrate
 
Join Date: Jul 2008
Location: Boston, Ma or NY,NY
Posts: 562
justchat_1 will become famous soon enough
As requested my thoughts:
Kev and malcom summed it up pretty well so i wont restate what they said.

Having worked with java I can tell you any interfacing with the native operating system is difficult and slow to say the least. Try doing things like interfacing with a gps receiver, obdii reader or native dll's for anything. While yes you can access a serial port it requires going through 3 different layers to do so (each slowing things down for more).

As malcom said having a userbase would be a great way to get ideas and that may be the biggest problem here. There are already three open source front ends out there that promise to be the new "faster and better" front-end. Just having a front-end in java (which many people associate with slow) would probably not be enough to attract a strong following.

That said-my recommendations would be to take a look at c++ or c# since its not really a new language.

i know you had said you have no interest in learning a new language but I think you will see c++ being a much more widely used language and since its the basis for java it should be familiar.

I know this will probably look biased coming from me but C# is probably an even better bet. C# is like Java version 2 - it combines the best features from c++ and java learning from the mistakes of both. Syntactically though, they are very very similar with most of the basic syntax being identical.
I would recommend taking a look at some c# code and some c++ code and seeing if you might consider giving one a try.
__________________
openMobile - An open source C# Front End
- Currently Recruiting Developers -
Available for download on sourceforge
justchat_1 is offline   Reply With Quote
Old 09-19-2009, 01:32 PM   #6
licensed to kill
 
kev000's Avatar
 
Join Date: Aug 2006
Location: Deep in the Rockies... coding in caves
Posts: 1,039
kev000 will become famous soon enough
Well, if your goal is to master java, go for it! It can't be any worse than a VB frontend right?

I admit that I've entertained writing nGhost3 in C# for a number of reasons. It's a very productive language. In the end, C++ won me over again because of its maturity and the wealth of information on the nets about doing stuff with it.
__________________
LinuxICE - because my car already has enough windows (and because I like speed).
LinuxICE2 beta2 is released!!! get it now!
Follow OpenICE development
kev000 is offline   Reply With Quote
Old 09-19-2009, 07:43 PM   #7
North of the land of Hey Huns
 
Join Date: Jun 2004
Location: Westminster, MD
Posts: 1,038
malcom2073 is a name known to allmalcom2073 is a name known to allmalcom2073 is a name known to allmalcom2073 is a name known to allmalcom2073 is a name known to allmalcom2073 is a name known to all
Quote: Originally Posted by kev000 View Post
it can't be any worse than a vb frontend right?


zing!
__________________
RevFE - Try it, you just might like it.
Carbon - Next Generation Touchscreen Browser
Come join us on IRC: irc.efnet.net #mp3car
Audiophiles make me chuckle as they pad my wallet.
malcom2073 is offline   Reply With Quote
Old 09-22-2009, 08:41 PM   #8
Newbie
 
Join Date: Sep 2008
Posts: 6
marc2912 is an unknown quantity at this point
Thanks

I wanted to say thanks to all for taking the time to reply and give your opinion. It's given me a lot to think about. I know many of you think there are better/easier languages to do this in and I don't disagree. I am however dedicated t Java as of now (since, like i said, I'm planning to make it a career) and am going to go ahead and work with it.

I have definitely taken into account the advice I have gotten and will focus on many of the things brought up.

-keeping the ui responsive and delay free
-making it skinable
-making it plugable
-trying to come up with something new, not repeating the same as what's out there
-working to keep it platform independent (why wouldn't it be with java?)

Those are my goals.

Hopefully I can make it work. I'm sure you'll see me ask more questions as I go ahead.

Again,

Thanks, Marc
marc2912 is offline   Reply With Quote
Advertisement
 
Advertisement
Sponsored links

Old 09-23-2009, 09:25 AM   #9
Maximum Bitrate
 
Join Date: Jul 2008
Location: Boston, Ma or NY,NY
Posts: 562
justchat_1 will become famous soon enough
Quote: Originally Posted by marc2912 View Post
I wanted to say thanks to all for taking the time to reply and give your opinion. It's given me a lot to think about. I know many of you think there are better/easier languages to do this in and I don't disagree. I am however dedicated t Java as of now (since, like i said, I'm planning to make it a career) and am going to go ahead and work with it.

I have definitely taken into account the advice I have gotten and will focus on many of the things brought up.

-keeping the ui responsive and delay free
-making it skinable
-making it plugable
-trying to come up with something new, not repeating the same as what's out there
-working to keep it platform independent (why wouldn't it be with java?)

Those are my goals.

Hopefully I can make it work. I'm sure you'll see me ask more questions as I go ahead.

Again,

Thanks, Marc

Well if your sure you want to stick with java...i will give you this bit of inspiration - think of android. It's written in all java and is a fairly good FE.
__________________
openMobile - An open source C# Front End
- Currently Recruiting Developers -
Available for download on sourceforge
justchat_1 is offline   Reply With Quote
Old 09-23-2009, 11:19 AM   #10
FLAC
 
Join Date: May 2006
Location: Calgary, Alberta
Posts: 1,541
Maheriano will become famous soon enoughMaheriano will become famous soon enough
I already wrote a Java front end, I got the media player working and skinned when I finally realized what a nightmare it was working with the Java Media Framework. SUN hasn't updated it since 1999, it just abandoned it and left it to die. It's unfinished and not mature enough to handle the demands of a front end media application.
__________________
Ampie Case
2.5" Hard Drive 80GB Samsung 5400RPM
256 MB DDR2 PC5400
Xenarc 700TSV - VGA Monitor
Intel D945GCLF Motherboard
M2-ATX-HV

2005 Honda Civic
Maheriano is offline   Reply With Quote
Old 11-10-2009, 04:22 PM   #11
Newbie
 
Join Date: Sep 2007
Location: Colorado
Posts: 20
Kenshin5 is an unknown quantity at this point
Quote: Originally Posted by Maheriano View Post
I already wrote a Java front end, I got the media player working and skinned when I finally realized what a nightmare it was working with the Java Media Framework. SUN hasn't updated it since 1999, it just abandoned it and left it to die. It's unfinished and not mature enough to handle the demands of a front end media application.

Freedom for Media in Java (FMJ) is the alternative to this project, as JMF was released as Open Source shortly after the project withered and died a painful death back in '99.

The URL can be found here: http://fmj-sf.net/

I was using Qt Jambi for a front-end and I found it to be extremely useful. I have since purchased a motherboard with an Atom N330 CPU on it (for the dual core power) and an ION media chip, so this makes video performance scream.

I may start up another project for the Front-End work in the application using Qt Jambi. If anyone is interested in helping out, I'd be very happy. I'm also planning on using a framework to make a home media center, as I have 4 hard drives on my network and would love to watch some streaming movies on my big screen TV.

Because of the licensing fees for Qt Jambi, I'm going to keep the application free and open source. The UI layout will be similar to that of the iPhone, with a few key changes to make navigation by touch and remote better.

If anyone's interested, please reply here, or PM me.
Kenshin5 is offline   Reply With Quote
Sponsored links
Advertisement
 
Advertisement
Reply

Bookmarks

Tags
front end, frontend, java, programming

Thread Tools
Display Modes

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 On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Centrafuse, TPMS 2.1.0.9 and Vista WuNgUn TPMS Technical Support 14 08-26-2009 03:57 PM
Infill G4 front end joey4 Software & Software Development 0 05-27-2009 11:38 AM
Front end chooser ? anyone ? SAScooby Software & Software Development 8 09-23-2006 10:35 PM
100% Plugin based Front End custardbomb Software & Software Development 19 10-07-2005 01:17 AM



All times are GMT -5. The time now is 12:38 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.3.2
Copyright © 1999 - 2008 Mp3Car.com Inc.Ad Management by RedTyger
Message Board Statistics