|
|
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% |
 |
09-17-2009, 01:28 PM
|
#1
|
|
Newbie
Join Date: Sep 2008
Posts: 6
|
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
|
|
|
|
|
|
Advertisement
|
Sponsored links
|
09-17-2009, 01:48 PM
|
#2
|
|
licensed to kill
Join Date: Aug 2006
Location: Deep in the Rockies... coding in caves
Posts: 1,039
|
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.
|
|
|
09-19-2009, 10:02 AM
|
#3
|
|
Newbie
Join Date: Sep 2008
Posts: 6
|
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.
|
|
|
09-19-2009, 10:17 AM
|
#4
|
|
North of the land of Hey Huns
Join Date: Jun 2004
Location: Westminster, MD
Posts: 1,038
|
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.
|
|
|
09-19-2009, 11:40 AM
|
#5
|
|
Maximum Bitrate
Join Date: Jul 2008
Location: Boston, Ma or NY,NY
Posts: 562
|
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.
|
|
|
09-19-2009, 01:32 PM
|
#6
|
|
licensed to kill
Join Date: Aug 2006
Location: Deep in the Rockies... coding in caves
Posts: 1,039
|
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
|
|
|
09-19-2009, 07:43 PM
|
#7
|
|
North of the land of Hey Huns
Join Date: Jun 2004
Location: Westminster, MD
Posts: 1,038
|
Quote: Originally Posted by kev000 
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.
|
|
|
09-22-2009, 08:41 PM
|
#8
|
|
Newbie
Join Date: Sep 2008
Posts: 6
|
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
|
|
|
|
|
|
Advertisement
|
Sponsored links
|
09-23-2009, 09:25 AM
|
#9
|
|
Maximum Bitrate
Join Date: Jul 2008
Location: Boston, Ma or NY,NY
Posts: 562
|
Quote: Originally Posted by marc2912 
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.
|
|
|
09-23-2009, 11:19 AM
|
#10
|
|
FLAC
Join Date: May 2006
Location: Calgary, Alberta
Posts: 1,541
|
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
|
|
|
11-10-2009, 04:22 PM
|
#11
|
|
Newbie
Join Date: Sep 2007
Location: Colorado
Posts: 20
|
Quote: Originally Posted by Maheriano 
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.
|
|
|
|
Sponsored links
|
|
Advertisement
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 12:38 PM.
| |