The Artima Developer Community
Sponsored Link

Weblogs Forum
Hybridizing Java

129 replies on 9 pages. Most recent reply: Mar 18, 2011 4:41 PM by David Benson

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 129 replies on 9 pages [ « | 1 2 3 4 5 6 7 8 ... 9  | » ]
Jeff Nowakowski

Posts: 1
Nickname: jeffno
Registered: Jul, 2006

Flash Player is a proprietary platform Posted: Feb 1, 2007 12:35 AM
Reply to this message Reply
Advertisement
The real problem with Flex isn't that it is closed source. It's that the Flash Player is completely proprietary, and forbids you from even running it to reverse engineer your own player. For years Linux had an old, buggy version of Flash until 9 came out.

Why support vendor lockin on the web? I'm not an open source zealot, but I do believe in open standards.

Jani Halinen

Posts: 1
Nickname: janih
Registered: Jan, 2007

Re: Hybridizing Java Posted: Feb 1, 2007 12:52 AM
Reply to this message Reply
"OpenOffice is not written in Java, but in C++. I don’t believe it was because the programmers wanted to struggle with the cross-platform issues presented by C++. It was speed, and perhaps the need to more directly control the underlying platform."

I think it was because in 1994 when the development of StarOffice started Java wasn't an option. StarOffice's code base was later open sourced as OpenOffice when Sun bought it.

http://en.wikipedia.org/wiki/Staroffice#History

Ivan Lazarte

Posts: 91
Nickname: ilazarte
Registered: Mar, 2006

Re: Hybridizing Java Posted: Feb 1, 2007 3:18 AM
Reply to this message Reply
I really don't think the Flash platform can deliver something clients really want unless it's multimedia. Look at something like Youtube. If you were take the concept of the site, I think a Macromedia person would argue for the entire thing to be built in one Flash app. The reality is that everyone would've hated it had that been the case.

HTML is fast and clean, and maybe doesn't easily lend itself to making Visio Online, but it's working well in general.

With regard to rich requirements, I'm banking on the front end technologies to come out the winners- pure client side stuff like Yahoo Ext (sadly unmentioned). Why do you not consider learning Javascript and a Javascript framework a specialty like learning Oracle/MySQL?

My impression is that the server side will continue to become more heterogeneous, while a new generation of front end coders will take center stage.

Dave Webb

Posts: 55
Nickname: lazydaze
Registered: Feb, 2006

Re: Hybridizing Java Posted: Feb 1, 2007 5:10 AM
Reply to this message Reply
I like the way that Flex enables you to layout GUIs in XML, rather than having to get involved in GUI code. It seems a lot more natural and expressive to me. Even with the new Swing App Framework JSR-296, you still need to write code like:

@Override protected void startup(String[] ignoreArgs) {
JLabel label = new JLabel("Hello World", JLabel.CENTER);
label.setFont(new Font("LucidaSans", Font.PLAIN, 32));
mainFrame = new JFrame(" Hello World ");
mainFrame.add(label, BorderLayout.CENTER);
mainFrame.addWindowListener(new MainFrameListener());
mainFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
mainFrame.pack();
mainFrame.setLocationRelativeTo(null); // center the window
mainFrame.setVisible(true);
}

.. just to get 'Hello World' on the screen. This is like walking in treacle compared to HTML and MXML, and that's why I've been hacking in DHTML the last few years rather than using using applets. Sun could have picked up something like XAMJ and run with it to produce something as simple and probably more powerful than Flex, but they didn't.

Fabrizio Giudici

Posts: 14
Nickname: fgiudici
Registered: Jan, 2007

Re: Hybridizing Java Posted: Feb 1, 2007 5:17 AM
Reply to this message Reply
Probably XML rather than code would be cleaner (BTW there are opensource efforts to do this in Java), but personally using high level tools such as NetBeans Matisse to design the GUI I don't find extremely important whether behind the scenes there is XML, Java code or whatever.

bug not

Posts: 41
Nickname: bugmenot
Registered: Jul, 2004

Re: Hybridizing Java Posted: Feb 1, 2007 6:01 AM
Reply to this message Reply
Bruce, I have quite some experience with writing applications using Eclipse RCP and Swing (3 and 2.5 years respectively). From this experience I can tell you that writing apps with Eclipse RCP or just JFace/SWT does NOT require a herculean effort. In fact, it's rather easy to create good looking apps that feel native.
Swing on the other hand has been a constant source of frustration. The biggest complaint I have is that there is no client app framework I know of hat has even near the quality, breadth and tool support that the Eclipse framework has. I find myself constantly reinventing the wheel and solving problems I'd rather delegate to a framework.

Dave Webb

Posts: 55
Nickname: lazydaze
Registered: Feb, 2006

Re: Hybridizing Java Posted: Feb 1, 2007 6:11 AM
Reply to this message Reply
> Probably XML rather than code would be cleaner (BTW there
> are opensource efforts to do this in Java), but personally
> using high level tools such as NetBeans Matisse to design
> the GUI I don't find extremely important whether behind
> the scenes there is XML, Java code or whatever.

Yes.. I mentioned XAMJ as an example, but things like that will remain niche unless they're embraced by big players like Sun, and integrated in a way that makes developing and deploying applets by jo programmer as easy as HTML/Flex/etc.

I've avoided GUI tools since I first tried Dreamweaver ages ago. I found I was far more productive in practice just hacking out html from the start. I guess for Java GUIs, something like NetBeans would be a must, but I do see the source as something important in itself, rather than something generated behind the scenes. Ultimately I have to read it and probably hand code it. It's my reference.

Similarly, there's an argument that says Java's verbosity (compared to Ruby, Scala, etc) isn't a problem, because Eclipse can boilerplate code for you. That never really cut it for me. Being able to define a 'bean' in Scala source as simply as 'class Person(name: String, age: int, etc)' gives me a warm feeling inside.

Mark McLaren

Posts: 2
Nickname: markmc
Registered: Jan, 2007

Re: Hybridizing Java Posted: Feb 1, 2007 6:25 AM
Reply to this message Reply
Bruce - as a Java programmer for 8 years, I completely agree with almost all your points.

One of the major obstacles to me moving to Flex is having to learn an entire new language (ActionScript). Why don't they add support for Java? It would be the "coup de grâce" for applets.

Maybe they don't want to add a JVM to the size of the Flash plugin (although my 4-year-old phone's JVM must be miniscule). If so, how difficult is it to convert Java bytecode to whatever is used in SWFs?

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Hybridizing Java Posted: Feb 1, 2007 11:12 AM
Reply to this message Reply
> Similarly, there's an argument that says Java's verbosity
> (compared to Ruby, Scala, etc) isn't a problem, because
> Eclipse can boilerplate code for you. That never really
> cut it for me. Being able to define a 'bean' in Scala
> source as simply as 'class Person(name: String, age: int,
> etc)' gives me a warm feeling inside.

I think the verbosity argument is a red-herring personally. The problem I have with Java (really the way Java is used) is that the semantics of the language do not support the way people are using Java. Verbosity isn't insignificant but the semantics have a much deeper impact on productivity and effectiveness.

Everything today in Java is about beans. But when you look at the language, it isn't really built for beans. I can go into more detail if you wish, but Spring, Hibernate, EJB3, Struts, AOP frameworks, etc. are mainly necessitated by the fact that beans are not supported by the semantics of the language.

What really confuses me is that when someone suggests using a dynamic language with Java (Groovy, Jython, JRuby) a common response is something to the effect of 'I don't want my code spread across different languages/platforms' but often these same people will extol the virtues of Spring or AOP as if the configuration associated with these tools are not an important part of the application.

Romain Eude

Posts: 2
Nickname: romain
Registered: Feb, 2007

Re: Hybridizing Java Posted: Feb 1, 2007 12:36 PM
Reply to this message Reply
In "Flex on the Desktop", Bruce, you write :
<< However, a Flex UI is not limited to communicating with a server. It can also communicate with a local application. Thus, you can create an application in any language you prefer, even a dynamic language like Python or Ruby, and use Flex to build a beautiful UI.
>>

Do you mean that one could/can make a standalone desktop application with UI in Flex and the Business logic in -say- Ruby ? Is it already possible ? Do you refer to Apollo ?

I have not managed to find on the Web any reference to such possibility... Could you enlighten us ?

Romain.

Dick Ford

Posts: 149
Nickname: roybatty
Registered: Sep, 2003

Re: Hybridizing Java Posted: Feb 1, 2007 2:07 PM
Reply to this message Reply
Bruce, I agree with much of what you have said, but I see problems with Flex/Flash as it is now as a RIA.

Adobe really needs to look down the road at what it's competition is going to be in the RIA space. The elephant in the living room is WPF/e. And despite Flash's ubiquitous presence in the browser, obviously Microsoft will be able to roll out a lot of installations of WPF/e eventually.

With WPF/e you'll be able to program in most .NET languages, but also be able to whip up some XAML markup and control it with a little javascript. With Flex, you're stuck with actionscript.

Adobe needs to wake up. Actionscript is not Javascript and not Java. They should go the GWT route and develop a subset Java compiler for Flash 9. They should also give you the ability to generate markup and control it with plain javascript (no compiling).

Microsoft has the WPF/e beta out that doesn't include the mini-CLR - which will also be available for the Mac and Linux. You can check out VistaSmalltalk http://vistascript.net/vistascript/docuwiki/doku.php for an interesting project that includes a Smalltalk and Lisp interpreter.

I fear that Adobe is going to really drop the ball if they don't confront the Microsoft threat right now, and the current RIA paradigm for Adobe might get clobbered.

Frank Silbermann

Posts: 40
Nickname: fsilber
Registered: Mar, 2006

Re: Hybridizing Java Posted: Feb 1, 2007 2:09 PM
Reply to this message Reply
> More challenging problems (with applets) are data
> binding, and the whole notion of having to deal
> with multiple copies of the same data: one copy of
> the server, and one copy on the client's UI model,
> and then there's a presentation of that same data
> in the client's UI layer, too.
>
> By contrast, traditional Web apps just don't have to deal
> with that, because the presentation is generated on the
> server, possibly even in the same transaction as the one
> that fetched that data in the first place.

Have you looked at Echo2? From what I've read, the programming model is like a Swing application running on the _server_, but which renders the GUI to the browser and receives GUI events via HTTP. The server can also push changes to the client (I guess the server keeps on hand an unanswered HTTP request for this purpose; when the "response" is pushed, the client sends another).

The underlying implementation makes heavy use of AJAX, but the developer writes only Java. To me, this seems like the _logical_ way to implement thin-client applications.

The limitation, I suppose, is that you're limited to the Echo2 components (so it's probably _not_ good for multi-media).

See:
http://www.theserverside.com/news/thread.tss?thread_id=40804
and:
http://www.nextapp.com/platform/echo2/echo/

Dick Ford

Posts: 149
Nickname: roybatty
Registered: Sep, 2003

Re: Hybridizing Java Posted: Feb 1, 2007 2:29 PM
Reply to this message Reply
Frank, I agree that Echo2 is a nice framework, but at the end of the day you're stuck with the lowest common denominator of HTML, CSS, and Javascript.

Even when you put aside the Microsoft factor, the W3C moves at a glacial pace, so hoping that we'll be able to do real RIA in the browser anytime soon is futile.

mike bayer

Posts: 22
Nickname: zzzeek
Registered: Jan, 2005

Re: Hybridizing Java Posted: Feb 1, 2007 3:22 PM
Reply to this message Reply
applets failed because:

- AWT was a mess, performed terribly, could do nothing, SUN botched it up and then responded with Swing, far too bloated for web usage (flash becomes a better option)
- audio API sucked. 8-bit AU files, klunky starting/stopping (flash becomes a better option)
- Inconsistent yet restrictive security sandbox model prohibited too many operations, with "signed applets" a near-vapourous solution, since MS/Netscape had totally different (yet equally byzantine/undocumented) ways of doing it
- bloated JRE caused huge startup delays, memory usage, crashes
- LiveConnect came out in the darkest days of JS, and was quickly abandoned. this was a *huge* deal, as without it, an applet is virtually an isolated island on a web page. using XmlHTTPRequest and DHTML there are no restrictions whatsoever. if LiveConnect were still flourishing today, things might have been a little different.

Stewart Robertson

Posts: 1
Nickname: stewie
Registered: Feb, 2007

Pricing and Licensing Posted: Feb 1, 2007 3:22 PM
Reply to this message Reply
The biggest problem/question for me is the pricing and licensing.

From my understanding by looking at the flex site if you are ISV then you have to pay licensing fees for using flex even if it is just the SDK without Data Services. So hypothetically if I am Application Service Provider (ASP) making available a Basecamp (37 Signals) type application that uses flex then I need to pay licensing fees. Is that correct? Below is the quote from the flex page...

For ISVs that develop software applications for sale that are built on or embed Flex, an Adobe ISV support plan and/or OEM license and redistribution agreement is required. Flexible licensing and value pricing options are available for Flex OEMs and ISVs.[/]

Flat View: This topic has 129 replies on 9 pages [ « | 1  2  3  4  5  6  7  8 | » ]
Topic: Scala 2.8.0 + Lift 2.1 + IntelliJ: First Step(s) Previous Topic   Next Topic Topic: Security Debt


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us