Discussions

News: Analysis: Is the iPhone an Opportunity for Java Developers?

  1. The news this week was underwhelming for many developers: Apple will not open the iPhone to third-party development. Speculation about future toolkits or opportunities flared, but for the forseeable future the only way to extend the iPhone's functionality is in the form of web applications. Could this be a boon for Java developers? Steve Jobs has said that application security and device stability are the reasons why the iPhone is closed. That may only be part of the truth. US mobile carriers are notorious for not wanting to allow open development in their platforms. Most mobile phones are sold to the public with a heavy subsidy from the carrier, who in turn gets paid for the device over time through the service contract. Though this doesn't appear to be the case with iPhone, other mobile devices will continue to be sold in this manner. Mobile carriers also like to gouge consumers with services at ten times the price per unit than equivalent services on the Internet, and they can get away with it thanks to lack of competition within their walled gardens. J2ME implementations are crippled because neither the carriers nor a number of device manufacturers want to open the device capabilities to cross-platform development. Apple has historically preferred closed-platform development more often than open. Except for the Apple II family of computers, almost every device that the company produced has been as proprietary as they come. Except for the iPhone, however, Apple always provided a SDK for them. It's possible that business considerations (Patents? Existing agreements?) prevented Apple from releasing the iPhone without being tied to a carrier. Thus, the iPhone is closed to third-party development by a double whammy of carrier demands and Apple policy. Companies who developed, or tried to develop, products and services for the US mobile market know that there is no way to play in this area without support from both the carriers and the device manufacturers. These agreements are fraught with restrictions about what the applications can and cannot do, and how many of a device's capabilities will be accessible to the third-party development. Why do you think there are no combination wifi and cellular devices in the US market? It's not because RIM or Palm don't know how to make them. Anyone familiar with this process could have predicted that, since the iPhone is tied to a mobile carrier, equal or even stronger restrictions would be in place. The iPhone runs a full version of OS X. That makes it the most powerful mobile device in the US market. If the carrier allowed third-party development on it, it could open the floodgate to applications that can get around price-gouging policies and business models. The iPhone developer community would like third party tools to be available, maybe Apple as well, but it's likely that contractual obligations with AT&T prevent Apple from opening up the device. The iPhone, running OS X, would be ideal for a Java. Not J2ME, but perhaps even a full JRE. There would be no J2ME limitations on the iPhone. This wouldn't play well with the carriers' business model, a more likely reason why Java isn't on the device. And so the iPhone will launch closed to third-party application development on the device. That may be good news. The iPhone will come with a full-featured version of the Safari web browser. Information leaked by AT&T sales reps to the 'net indicates that the service plans will include a pricey compulsory data plan over the carrier's network (a move that discourages use of the iPhone's wifi capability). This is also good news because it guarantees that all iPhones "in the wild" will be connected to the Internet in one form or another. Since Apple's current policy is one of Web 2.0 development for the device, that's where the opportunity lies for Java developers. Most Java end-user development takes the form of web applications. That's what the Java community is really good at. Web applications and frameworks are the engine of Java evolution. Most mission-critical and scalable websites run on Java, and most serious Web 2.0 frameworks are implemented in Java. iPhone-specific web applications with a matching look-n-feel, written to match the device's screen specs and capabilities (CSS, xhtml, etc.), that store data in a combination of cookies and server-side sessions, and customized to leverage Safari's strengths, are a golden opportunity for the Java community to play in the mobile industry in general, and in the iPhone in particular. This could drag the iPhone and the rest of the handset manufacturers and carriers toward incorporating full-featured browsers in the devices, and later to open their development models and to stop crippling their devices on purpose so that they can gain a competitive advantage. Will the first killer app for the iPhone be powered by Java? It would be ironic to contradict Steve Jobs' assertion that "Java is not worth building in." What do you think? Eugene Ciurana is the director of systems infrastructure at LeapFrog Enterprises and is a contributing editor to TheServerSide. He's led the development and roll-out of mobile applications in coordination with the largest US carriers. He can be reached on the Freenode IRC network (##java, #awk, #theserverside, #esb) under the /nick pr3d4t0r.

    Threaded Messages (42)

  2. I think it's a great question for themobileside.com... :)
  3. Re: isMobileSide.com[ Go to top ]

    Not a bad Idea.
  4. Since you can already build very nice AJAX apps in Java then compile them with GWT, it is a pretty good possibility that many of the first applications for the iPhone will be written in Java. There is already a project to add any iPhone specific functionality to GWT (if those specifics are ever announced). -jason
  5. iPhone and the lack of SDK[ Go to top ]

    I've seen a lot of talk from developers who were upset with the lack of an SDK, this commentary seems to speak of a possible different avenue which looks promising. Let us not forget what Apple has a tendency to do in the marketplace, and what they did with iTunes and the iPod. At first glance it looks like they are cowing to the demands of an old stalwart like AT&T. It looks to me like they've just cracked the door open, told the old guard that leaving this side door open won't give them any problems, but they're ready to change the mobile landscape. I think we will see an SDK at some point in the near future, probably close to the time when Apple decides to forgo the idiocy of putting EDGE in their capable phone, in favor of the much faster 3G. An exciting time indeed, I won't be in line on June 29th for the iPhone, but I hope it does much better than expected, not because this first round is any better than other phones out there, but because Apple does tend to change a market it enters... usually for the better.
  6. "The iPhone runs a full version of OS X" AFAIK this is not true. Apple calls it "stripped down Mac OS X" (in the original slides of Steve Jobs when the iPhone was first presented), and for what I trust Apple marketing it could be a dramatically different thing that they just call Mac OS X. Said this, as a Java developer I don't care about what o.s. is running on the thing, as soon as there's a JVM inside. I agree that the iPhone looks big enough to potentially run a full JDK; but since Apple won't put Java on it, I don't understand which is the meaning of asking if the iPhone is an opportunity for Java developers. :-O Sounds as I should ask myself what I would do if my bank account was 100x bigger...
  7. "The iPhone runs a full version of OS X"

    AFAIK this is not true.
    Good correction -- thanks! I meant "full version of UNIX" and got sidetracked. Still, your correction is more accurate than what I was thinking. The gist of that was that the iPhone sounds like it has the best OS in a mobile device... until Palm releases its Linux-based vaporware OS.
    I don't understand which is the meaning of asking if the iPhone is an opportunity for Java developers.
    Because the only way to provide apps to the iPhone is through web apps... the one thing that Java programming is most applied to. Cheers, E
  8. ... until Palm releases its Linux-based vaporware OS.
    I just read that Palm is going to lay off some developers... My hopes for that Linux-based OS are almost zero :-((

    Because the only way to provide apps to the iPhone is through web apps... the one thing that Java programming is most applied
    Ok, from this point of view I agree with you. But then we should clearly separate the perspective of J2EE-like developers from the one of J2ME developers. I mean, there's no point in discussing about J2ME + iPhone, if not in prayers... :-((
  9. I don't understand which is the meaning of asking if the iPhone is an opportunity for Java developers.

    Because the only way to provide apps to the iPhone is through web apps... the one thing that Java programming is most applied to
    ... on the server. As far as I know, Java is never used on the front-end, which is the only place where the iPhone lets you develop apps, so I'm still confused about the subject of this thread... Time to brush up on these DHTML skills. -- Cedric
  10. I don't understand which is the meaning of asking if the iPhone is an opportunity for Java developers.

    Because the only way to provide apps to the iPhone is through web apps... the one thing that Java programming is most applied to

    ... on the server.

    As far as I know, Java is never used on the front-end, which is the only place where the iPhone lets you develop apps, so I'm still confused about the subject of this thread...

    Time to brush up on these DHTML skills.

    --
    Cedric
    You're splitting hairs. Server-side applications, written in Java, have front-end, middle-, and back-end components, and you can use Java in all tiers. If we're going to split hairs even further, GWT can also be considered "Java" from a language point of view, and that code goes straight to the browser. But you know that... Sushi? E
  11. no java on frontend?[ Go to top ]

    I don't understand which is the meaning of asking if the iPhone is an opportunity for Java developers.

    Because the only way to provide apps to the iPhone is through web apps... the one thing that Java programming is most applied to

    ... on the server.

    As far as I know, Java is never used on the front-end

    --
    Cedric
    Java is never used on the frontend? My complete development tooling is java based: IDEA, SmartSVN, DbVisualizer, JProfiler, ... want some more? Or do i get you wrong here? Marc http://www.logemann.org
  12. Re: no java on frontend?[ Go to top ]

    I don't understand which is the meaning of asking if the iPhone is an opportunity for Java developers.

    Because the only way to provide apps to the iPhone is through web apps... the one thing that Java programming is most applied to

    ... on the server.

    As far as I know, Java is never used on the front-end

    --
    Cedric


    Java is never used on the frontend? My complete development tooling is java based: IDEA, SmartSVN, DbVisualizer, JProfiler, ... want some more?

    Or do i get you wrong here?

    Marc
    http://www.logemann.org
    Not to speak for Cedric but I think he meant in webapps.
  13. Re: no java on frontend?[ Go to top ]

    Not to speak for Cedric but I think he meant in webapps.
    Not to speak for Cedric, but I think he meant applications Paris Hilton would use. It's a pity, she doesn't know IntelliJ!
  14. Re: no java on frontend?[ Go to top ]

    Not to speak for Cedric but I think he meant in webapps.
    Not to speak for Cedric, but I think he meant applications Paris Hilton would use. It's a pity, she doesn't know IntelliJ!
    lol! I don't think she has any experience with anything that starts with intelli...
  15. proprietary ???[ Go to top ]

    "Apple has historically preferred closed-platform development more often than open. Except for the Apple II family of computers, almost every device that the company produced has been as proprietary as they come. " What a strange thing to say. the powepc platform was developed with other companies like I.B.M and motorola as was the open-firmware of the powerpc macs. the apple operating system darwin is open-source as are al many other important components of os-x.
  16. What do you mean Apple prefers closed platforms? Not only is the foundation of Apple's operating system ("darwin") open-sourced, but anyone can go to Apple's developer site and download a complete SDK, including several dozen excellent developer tools. This week over 5,000 developers attended WWDC, where over 1,000 Apple engineers were on hand to give presentations, answer questions, etc. The company also publishes a very complete set of documentation, articles, example code, etc. The June 2007 Developer Documentation download bundle is 1 gigabyte. I'd say that's a pretty clear sign that the company is putting significant resources into getting as much information and assistance to developers as possible. With regards to your speculation that the carrier is dictating terms to Apple with regards to what SDKs, etc. will be available on the iPhone, while I have no non-public information about it, from reading the business press, this doesn't seem likely. From today's Wall St. Journal: AT&T Inc. stands a good chance of stealing customers away from other wireless operators by carrying Apple Inc.'s highly-anticipated iPhone, two new consumer surveys show. . . . AT&T struck an unorthodox partnership with Apple to unveil the device -- one that is now the envy of other handset manufacturers. It agreed to give up things it would normally insist on, like having its brand name on the handset. If the iPhone helps the company steal away customers from other operators, the deal could pay off handsomely. . . . etc. If Apple is going to increase the options for iPhone development in the future, I don't think that Java is the way to go. Besides the fact that Apple's native Objective-C/Cocoa development environment and frameworks are far superior for developing applications with the kinds of rich user interfaces that users will expect on the iPhone, user interface development on Java is garbage. If you want to know why this is, read Paul Kim's blog about his experience at Sun a decade or so ago when Swing was being developed: http://www.noodlesoft.com/blog/category/java/. In a nutshell, Sun had not one, but two, complete, working implementations of user interface frameworks that were based on Apple's Cocoa. Instead of simply cleaning up, documenting and releasing one of them, they very foolishly decided to start from scratch and write their own framework (Swing). Unfortunately, judging from the results, the people who designed and implemented Swing obviously didn't know what the hell they were doing, and ten years later Java still doesn't have a decent framework for building user interfaces. This is especially ironic given that the current CEO of Sun is Jonathan Schwartz, who joined the company when it acquired Lighthouse, the developer one of the two aforementioned frameworks.
  17. Besides the fact that Apple's native Objective-C/Cocoa development environment and frameworks are far superior for developing applications with the kinds of rich user interfaces that users will expect on the iPhone, user interface development on Java is garbage.
    Oh my God. Is it possible, please, to give some argument behind these statements? And is it possible to avoid that these arguments are dated TEN YEARS back? My point is: ObjC/Cocoa is known by a tiny percentage of people and all the others don't want to learn them. Just not to say that Cocoa is only for Mac OS X and closed source (Eugene maybe exaggerated in saying that the Apple II was the only open device from Apple, but he's true in saying that Apple's policy is to keep everything under its strict control). Yes, Java today still doesn't deliver all the bells and whistles of Cocoa and its related techs, but together with stuff such as Swing, NetBeans RCP, Eclipse RCP, it's an excellent technology for writing cross-platform GUIs. Also because outside Mac users (BTW, I'm one of them) people perfectly lives with a bit less of bells and whistles and a bit more of substance.
  18. On the topic of a Java development opportunity, I don't see anything compelling in the iPhone. Despite its "coolness", it's not a spectacular enabler over and above other web connected phones. So, the only way the iPhone would provide a server side Java opportunity is if somehow the iPhone is going suddenly make a whole new class of applications possible that weren't before. And I don't see that happening. I see a lot of derivative services, perhaps. Maybe some iPhone specific widgets contacting some in place web services, or if not, soon to be generic web services extending whatever platform they they want to make more pretty for the iPhone. As for the Swing v. Cocoa debate... Point 1: Just because Java is more popular doesn't mean that Cocoa isn't better (I'm not saying whether it is or isn't, but userbase != quality). But, Point 2, as "bad" as Swing may be, and as popular as Java is, we have seen one alternative, SWT, and it is arguably worse than Swing. Beyond the JNI hooks that Apple did (and have now deprecated) from Java to Cocoa, I have never seen even an inkling of a JavsStep GUI framework. AWT provides the core event layer from the host to the JVM, and today Java2D is more than capable of rendering most anything you would want (the Gray Rectangle problem solved in the recent JDKs was a Swing problem, not a Java2D problem), so all of the tools are there (and have been there) for someone who wanted to create a better, pure Java GUI framework. Now I could have easily missed some announcement on some lone blog about such a framework, but I don't recall any potential contenders or projects for a Pure Java GUI framework beyond Swing. Meanwhile, Linux has several distinct frameworks of its own. Many of these have been ported to Windows or the Mac. Even the rudimentary core of a GUI framework does not take year and years to come about. Widgets, skins, etc. take more time, but someone with experience (e.g. the Lighthouse guys) could get the core out in a couple of months I bet and post it as a project somewhere. But, no, the burden is entirely on Sun for this. Ok.
  19. Despite its "coolness", it's not a spectacular enabler over and above other web connected phones.

    So, the only way the iPhone would provide a server side Java opportunity is if somehow the iPhone is going suddenly make a whole new class of applications possible that weren't before.
    Actually, iPhone DOES support a whole new class of webapps, and it explains why Safari is suddenly available on Windows for developers: the Safari engine's custom tag. The tag is a
    that provides the equivalent of a Graphics2d drawing object that allows you to dynamically draw anything on the screen you like, such as barcharts (see the Stock widget demo)... or even games! All the OSX dashboard widgets are just javascript, html, and css in a bundle. That will be coming, I'm sure. Also, I bet Mac users can use Dashcode for an IDE, sans the widget packaging. Windows users just have Safari. Also, the javascript engine in the OSX widget world provides a Widget object that is a facade object for some native calls, such as triggering the animation to flip the widget over to the config side. I'm sure they'll expose some custom objects in the iPhone in the future with hooks to the native apps like address book, mail, and phone features.
  20. Despite its "coolness", it's not a spectacular enabler over and above other web connected phones.

    So, the only way the iPhone would provide a server side Java opportunity is if somehow the iPhone is going suddenly make a whole new class of applications possible that weren't before.

    Actually, iPhone DOES support a whole new class of webapps, and it explains why Safari is suddenly available on Windows for developers: the Safari engine's custom tag.

    The tag is a
    that provides the equivalent of a Graphics2d drawing object that allows you to dynamically draw anything on the screen you like, such as barcharts (see the Stock widget demo)... or even games! All the OSX dashboard widgets are just javascript, html, and css in a bundle. That will be coming, I'm sure. Also, I bet Mac users can use Dashcode for an IDE, sans the widget packaging. Windows users just have Safari.

    Also, the javascript engine in the OSX widget world provides a Widget object that is a facade object for some native calls, such as triggering the animation to flip the widget over to the config side. I'm sure they'll expose some custom objects in the iPhone in the future with hooks to the native apps like address book, mail, and phone features.
    This is really nice for lighter weight / advanced graphics options, though I wonder what under the covers it's creating (svg ? vml? , something else?) I've been looking at what DOJO does for similar features in IE, FFX, it uses a combination of VML, SVG depending on the browser, but the API hides that.
  21. Actually, iPhone DOES support a whole new class of webapps, and it explains why Safari is suddenly available on Windows for developers: the Safari engine's custom tag. The tag is a
    that provides the equivalent of a Graphics2d drawing object that allows you to dynamically draw anything on the screen you like, such as barcharts (see the Stock widget demo)... or even games! All the OSX dashboard widgets are just javascript, html, and css in a bundle. That will be coming, I'm sure. Also, I bet Mac users can use Dashcode for an IDE, sans the widget packaging. Windows users just have Safari. Also, the javascript engine in the OSX widget world provides a Widget object that is a facade object for some native calls, such as triggering the animation to flip the widget over to the config side. I'm sure they'll expose some custom objects in the iPhone in the future with hooks to the native apps like address book, mail, and phone features.
    Now that is something interesting, beyond our average, lowest-common-denominator web 2.0. A GWT extension supporting the tag would be quite interesting.
  22. By the way, Firefox copied support for the tag as well, though the drawing behavior is slightly different (calling stroke() clears the path). But IE doesn't support it at all.
  23. Check out this all-javascript 3d POV demo in FireFox or Safari. Safari is much faster w/textures. The distance lighting is impressive for a javascript demo! http://www.abrahamjoffe.com.au/ben/canvascape/
  24. Re: Java on the iPhone[ Go to top ]

    "It's just much slower and more difficult than with Objective-C and Cocoa." Again, subjective point. I'm quite fast and productive with Java (I won't repeat any longer that this gives me all the platforms as a target, not only Mac OS X). "And given that these technologies are native to the iPhone, it makes much more sense to leverage them, than to introduce something entirely different like Java." This is a good point in Apple's perspective. I'm not complaining because Apple doesn't deliver J2ME on the iPhone (I think it would be better if Sun took care even of J2SE on Mac OS X...). I'm complaining because Apple prevents third parties from doing this (Sun recently released open source J2ME environments, if they had an iPhone SDK they would surely port on it). "If you're already a Java programmer, and you can't learn Objective-C in a few days, then you should really consider a new line of work." Frank has pointed it out again, what about ROI? I didn't say I can't, I just don't see why I should do. There's much better ROI in learning one of the other bazillions Java server technologies, that would make me earn money a few days after. "Why is Flex/Flash ruled out from the iPhone?" Ask Apple: http://www.macrumors.com/2007/06/12/no-flash-support-on-the-iphone/ "Flash runs in Safari on MacOS X so why couldn't it be made available on the iPhone at some point in the future? " Ah no, please not again. I don't want discuss what Apple could do in future (for the record, Java runs in Safari on Mac OS X, so they could make it available as well) basing on our wish-list, considering that as usual Apple won't disclose anything about their roadmap; sorry, I want to put my professional future on more solid basis. :-)
  25. Actually, iPhone DOES support a whole new class of webapps, and it explains why Safari is suddenly available on Windows for developers: the Safari engine's custom tag.
    The canvas tag has been in Firefox since 1.5. I have, in fact, been playing with it recently. There's also a Google script that brings the canvas tag to IE (tho I have not tried it). Now, I don't flit about in the FF community (nor the Safari community), and clearly that whatever wonderfulness a canvas tag brings is stymied by lack of support within IE. Otherwise, we'd have seen some uptick in the wonders of the canvas tag. (Much like the uptick on Ajax when XMLHttpRequest was "discovered"). Now, frankly, the canvas tag is conceptually the beginnings of the "last mile" that separates what a "thick client" can do vs the web app client. Previously, you had to do your rendering on the server and dump a gif. Not spectacularly interactive. Some applications actually use JS and DIV tags to plot pixels on the screen. I look at the Yahoo Tubes project and I'm just dumbfounded on how they're doing that. They pull it off, but boy is it sexy. I imagine it's a select set of icons that they're rendering as absolute div/image tags. No matter. But to be fair, the idea of create 100 1 pixel, absolutely position DIV tags just rubs my fur the wrong way. It's just Not Right. The canvas tag, however, gives us a mini Java 2D in the brower. Compositing, translations, etc. (dunno about clipping) So, barring performance [an underlying concern], the canvas tag is more than capable of being used to create charts or drawing programs or whatever. If MacDraw could run on a 8Mhz 68000 based machine with 512MB of RAM, I daresay modern machines running Javascript are more than capable of handling a MacDraw program that runs in a canvas tag, written in JavaScript. However, despite its power, so far, I haven't seen anything come to the public consciousness using the tag. Folks punt and use Flash instead (as it is ubiquitous). So, while it will be default installed on the iPhone, and will certainly add to the pizazz factor (especially if they expose Core Animation to the widgets through the tag), I don't really see it as an application enabler. The power of the iPhone is the ability for users to carry state with them and interact with network services at their leisure. A combination of handiness, local storage (there has to be some mechanism to store data locally on the phone), and network connectivity. Now, of course, this can be said of many handhelds and smartphones. The iPhone is just sexier. The appeal of the iPhone is the integration of the applications and Apples typically attention to detail to have things "just work", and be reasonably obvious and discoverable. But, as cool as it is, as much as it makes the actual experience of using these legacy applications better, the applications themselves are pretty much the same.
  26. The canvas tag has been in Firefox since 1.5. I have, in fact, been playing with it recently. There's also a Google script that brings the canvas tag to IE (tho I have not tried it).
    How does that work?
    Now, frankly, the canvas tag is conceptually the beginnings of the "last mile" that separates what a "thick client" can do vs the web app client. Previously, you had to do your rendering on the server and dump a gif. Not spectacularly interactive. Some applications actually use JS and DIV tags to plot pixels on the screen. I look at the Yahoo Tubes project and I'm just dumbfounded on how they're doing that. They pull it off, but boy is it sexy. I imagine it's a select set of icons that they're rendering as absolute div/image tags. No matter. But to be fair, the idea of create 100 1 pixel, absolutely position DIV tags just rubs my fur the wrong way. It's just Not Right.
    Exactly, it's so hackish and suboptimal. It's great if someone else can wrap it up in a toolkit for others to use, but boy I shouldn't want to be doing it.
    However, despite its power, so far, I haven't seen anything come to the public consciousness using the tag. Folks punt and use Flash instead (as it is ubiquitous).
    Ubiquitous, and with a real VM behind it these days, along with years of hand optimized drawing routines. The only real solution I see is for Microsoft to implement , and I don't see that happening unless they think that Silverlight is that much more compelling. Personally for apps, I'd rather have a real VM powering things (Flash, Silverlight, Java), but most people want to just deal with the stock browser.
  27. How does that work?
    For my crappy little toy bits, it actually works quite well. Essentially how it works is that you plop a canvas tag in to your document, then look it up using JS, and from there you get a 2D drawcontext. After that it's much like PostScript or Java2D. moveTo, lineTo, etc. followed by a stroke call to actually do the rendering. My little play around stuff was quite simple. I was dragging some bits around the screen with the mouse, very simple animation. But the beauty of it was that you're up to speed on it and playing around in a heartbeat. It was more my unfamiliarity with Javascript slowing me down than anything else. I mean, you have "test.html" that's 99% Javascript in an editor in one window, and Firefox in the other with the Javascript console to catch the glaring bugs. Then you Save, Alt-Tav, and Refresh your way to glory.
    The only real solution I see is for Microsoft to implement , and I don't see that happening unless they think that Silverlight is that much more compelling.

    Personally for apps, I'd rather have a real VM powering things (Flash, Silverlight, Java), but most people want to just deal with the stock browser.
    Well, that's the rub. The beauty of the canvas tag is simply that it exists and seems stable across 2 of the browsers. If you look at http://www.abrahamjoffe.com.au/ben/canvascape/ that was mentioned before, you'll find that it works on Safari, Firefox and IE. It uses the Google canvas.js which acts as a layer over the native IE VML tag (which it has had for sometime, but, again, was never popular in the wild). Also, we've had SVG for some time, but adoption was weak and spotty. Now, like XMLHttpRequest, a "non-standard" artifact available originally as a vendor extension is now a viable medium for SOME graphics tasks (it clearly seems to struggle as a 3D game engine...), where the "standards" based SVG seems to have been tossed by the wayside to die on the vine. But if you want to do something like an interactive chart, or an 'ajaxy' client driven chart, the canvas tag looks like it'll foot the bill, and appears to be somewhat portable (there are no doubt limits to the portability). If you abuse the concept to its ultimate ends, having a suitably performant rasterizing component available, then all of a sudden you can make "new" controls, etc, etc. Anything that was too difficult to do with DIV tags and HTML can now be possible. You're only limited by performance, and that's just getting better and better over time as the machines improve and the implementations improve. The kicker is there was a time when "Java was too slow", yet we've persevered and the JVM suppliers have provided us with better and better implementations. So, like the endless cycle of life, we're back to that point with the browser platform. Plopped smack in the middle of 1990, and doing it allll over again.
  28. vs. [ Go to top ]

    Is there a reason they reinvented the wheel? Would it not have been better to support direct rendering of standard Scalable Vector Graphics and have a library output that? For instance a very specialized Graphics2D implementation in Java?
  29. It's not (just) the bells and whistles. It's the easy-of-development. Obviously ui development can and has been done with Swing. It's just much slower and more difficult than with Objective-C and Cocoa. And given that these technologies are native to the iPhone, it makes much more sense to leverage them, than to introduce something entirely different like Java.
  30. +1 Thanks for pointng out what should be blatantly obvious to everyone. Objective-C is a fine language and the Mac UI is first class. BTW write-once-run-anywhere doesn't mean much when writing embedded software so who needs Java on the iPhone? Incidently the iPhone as a web client (Safari) has several options open to it. There is Javascript ofcourse, and then there are the new "rich-client" upstarts: Flex (Adobe) and Silverlight (Microsoft), both of which will support dynamic languages like Python and Ruby as well as their native ActionScript and C# respectively. Some how Sun has managed to screw up on the client. I'll take a look at the blog link you provided, it's nice to get the inside history on this stuff. BTW. As developers we shouldn't care. There is a lot to gain from taking a look at Objective-C and Cocoa. Objective-C has proper message sends, a pre-requisite for late-bound OO programming IMO. It shouldn't need saying, but there is a lot more to programming then just Java and C# :^) Paul.
  31. ---[ Go to top ]

    "Point 1: Just because Java is more popular doesn't mean that Cocoa isn't better (I'm not saying whether it is or isn't, but userbase != quality)." Well, "better" != "engineering quality". I don't want to enter the debate on which technology is best by an engineering point of view, since it's wasted time. Everybody would answer with his subjective point of view (and, sorry, there's nothing "blatant" here :-). Now, since we're talking of "successful" technologies, their diffusion, which is related to the ROI, is something that we can't avoid to consider. OS/2 was much better than Windows 3, nevertheless got soon a dead horse. A huge majority of developers thinks that there's a very low ROI in learning ObjC since there are just very very few chances to be hired in an ObjC project rather than Java, C#, etc. This is a fact. Being Cocoa not portable is another fact and I'd dare to say that portability is a good point for "better" technologies. :-) For the rest: well, sorry, Flex/Flash is ruled out as well from the iPhone. And portability is by far more important in the phone market than on the Desktop, since there's much more diversity and there's no single platform with a huge distribution as Windows for desktop (at this point, a much more objective point on J2ME is that it largely fails - or make it hard - to deliver true portability; another point is that other technologies can't claim to be better).
  32. Re: ---[ Go to top ]

    If you're already a Java programmer, and you can't learn Objective-C in a few days, then you should really consider a new line of work. Trust me, the time invested in learning Cocoa will be more than made up by productivity gains for any but the most trivial application. Why is Flex/Flash ruled out from the iPhone? Flash runs in Safari on MacOS X so why couldn't it be made available on the iPhone at some point in the future?
  33. Re: ---[ Go to top ]

    Trust me, the time invested in learning Cocoa will be more than made up by productivity gains for any but the most trivial application
    And what's that ROI for learning Objective-C?
  34. Maybe so[ Go to top ]

    Wall Street Journal: Flash is coming to the iPhone http://blogs.zdnet.com/Stewart/?p=241 greetings, mod
  35. If you want to know why this is, read Paul Kim's blog about his experience at Sun a decade or so ago when Swing was being developed: http://www.noodlesoft.com/blog/category/java/.

    In a nutshell, Sun had not one, but two, complete, working implementations of user interface frameworks that were based on Apple's Cocoa. Instead of simply cleaning up, documenting and releasing one of them, they very foolishly decided to start from scratch and write their own framework (Swing).
    Wow, Great link. Big corporations do stupid things and Sun isn't any different. All this GUI OS stuff started when Jobs abd Gates got a sneak preview of a Graphical System at Xerox Parc known as Smalltalk. Now around the same time that Sun came out with Java, they also acquired a statically typed high performance Smalltalk implementation. I'm not an Objective-C programmer and have little experience with NextStep/OpenStep, but I'm sure if I where I would be putting down much of the success of the NextStep GUI (now called Cocoa in Mac OS X) to the late-bound nature of Objective-C. Objective-C unlike C++ had the sense to retain the pure OO message send language feature taken from Smalltalk. Sun also had it's own advance Smalltalk inspired language called Self which retained message sends also. Both Self and Strongtalk were buried by Sun in favor of Java. I know this is only my opinion, but I often wonder where we would be today if Sun had chosen to promote Self or Smalltalk, either alongside Java or instead of Java. I bet we wouldn't have ended up looking at Ruby only 10 years later. At the end of the day, as developers we tend to get what we deserve. It's down to us! Paul.
  36. What do you mean Apple prefers closed platforms? Not only is the foundation of Apple's operating system ("darwin") open-sourced
    Kind of, since nobody but Apple can contribute to it. Besides: iPod, Apple TV, iPhone... Most of Apple's hardware out there today is a closed platform. -- Cedric
  37. What do you mean Apple prefers closed platforms? Not only is the foundation of Apple's operating system ("darwin") open-sourced

    Kind of, since nobody but Apple can contribute to it.

    Besides: iPod, Apple TV, iPhone... Most of Apple's hardware out there today is a closed platform.

    --
    Cedric
    Take a look at the TV ads for the iPhone and you'll see why. The iPhone doesn't come with a pointing device. No stylus, no mouse. What you use is your finger. So all apps for the iPhone (including web apps) will need to support their new "multi-touch" UI technology. I guess that's what you call innovation :^) Personally, I think the rest of our industry could learn a lot from Apple. They have managed to keep the idea of delivering value to the customer at the fore-front of their minds, whilst the rest of us are mostly busy creating premature standards and awkward self serving technology to serve our own ends. I wish them every success. Paul.
  38. The Vikings are comming!!![ Go to top ]

    Take a look at the TV ads for the iPhone and you'll see why.
    Look at this ad: http://www.operamini.com/beta/video/
  39. Re: The Vikings are comming!!![ Go to top ]

    Take a look at the TV ads for the iPhone and you'll see why.

    Look at this ad: http://www.operamini.com/beta/video/
    LOL :^). Didn't Apple do a "I'm a Mac", and "I'm a PC" sketch a few years back? The iPhone is really causing a stir. You pays your money and you takes your choice :^) I bought a Mac Powerbook about a year ago, and I haven't touched my Dell Laptop since. The difference is like night and day. If the iPhone lives up to the hype, then I won't mind paying a little extra for that either. Paul.
  40. Re: The Vikings are comming!!![ Go to top ]

    Take a look at the TV ads for the iPhone and you'll see why.

    Look at this ad: http://www.operamini.com/beta/video/


    LOL :^). Didn't Apple do a "I'm a Mac", and "I'm a PC" sketch a few years back?

    The iPhone is really causing a stir. You pays your money and you takes your choice :^)

    I bought a Mac Powerbook about a year ago, and I haven't touched my Dell Laptop since. The difference is like night and day. If the iPhone lives up to the hype, then I won't mind paying a little extra for that either.


    Paul.
    Watch it again! ;-)
  41. The most successful java application is a j2me application: Opera Mini. Opera Mini rocks! Who cares about safari? Beta version of the new Opera Mini Dimension will be available on 19th june: http://www.operamini.com/beta/ Get ready for a new Dimension!
    Mobile carriers also like to gouge consumers with services at ten times the price per unit than equivalent services on the Internet, and they can get away with it thanks to lack of competition within their walled gardens.
    Well, yes there seems to be an US embargo: http://blogs.zdnet.com/BTL/?p=5383. Rumours: Anybody knows some details about the Nintendo 'Wii Phone'?
  42. Safari 4 Windoze has a lot of widget capability. Steve sees no reason for Java deployment issues - his plan I guess is to use Objective C + Safari to go into Windows - so if you are an apple fan boy (I am) then Objective C. Also I said before Java 7 is no longer a lang, but more of a product w/ all the stuff added. .V (i like apple - but I LOVED wxD )
  43. I'm an Apple fan, I've got a MBP most of the iPods but this is just too far from being useful outside of the US. Without any 3G technology it's pretty far behind any current technology or for that matter technology that's already been out for several years in Asia and Europe. I'd love an iPhone but where's the HSDPA or 3G support? I know Apple are banking on people using WiFi but even there most large Asian and European cities eclipse the largest US cities and we still like our 3-3.5G technology. Fingers crossed they'll to an up to date (21st century) version for the non-US market and we'll start to buy them here but until then my next phone is the new Nokia E90, not quite as sexy as the iPhone perhaps but definitely up to date. Java on either of them? I've tried on a few phones, the real pain is the crap J2ME version ad their different profiles, I'm waiting for a phone with J2SE on it, then we can really start to program on mobile devices. -John-