Apple's new Xcode 4 could portend new HTML5 development tools

13

Comments

  • Reply 41 of 63
    anonymouseanonymouse Posts: 6,857member
    Quote:
    Originally Posted by mdriftmeyer View Post


    The place for Developing dynamic web applications was the original Cocoa/Objective-C WebObjects before they ruined it with Java. ...



    Yeah, I never really understood why they did that.
  • Reply 42 of 63
    Sounds like the perfect technology to rebuild WebObjects around actually. There really needs to be a visual editor to allow for that to be a killer tool for everyone and I wouldn't want to see Xcode bogged down with that. Apple already has a pretty deep bag of expertise in graphic manipulation, with their film/video/photo/color grading-timing tools so they could definitely guild a graphical UI to work in concert with other 3rd party graphic tools to build well designed HTML5 websites.



    Apple could also go out and acquire a company like Unity3D, the major game development toolset for the Mac. Unity was built around the idea of deploying games to the net first, so they have a lot of expertise/technology to support deploying interactive applications online. The largest hurdle Apple would face with that would be transitioning the technology from being solely plug-in based to something that would execute plug-in free HTML5 code straight to a browser.
  • Reply 43 of 63
    alandailalandail Posts: 755member
    Quote:
    Originally Posted by esummers View Post


    No, I am referring to the port of Cocoa on java that nobody used. I was not referring to Objective-C Cocoa (duh) or Objective-C WebObjects (different platform). I wouldn't be surprised if you never heard of it because it was deprecated in 2005. It was a side project to WebObjects. Carbon is the better example because that had widespread use.



    They didn't port cocoa to java, they bridged it so you could call use the objective-c cocoa classes from java.
  • Reply 44 of 63
    alandailalandail Posts: 755member
    Quote:
    Originally Posted by Socrates View Post


    It's important not to confuse Xcode (the development tool) with Objective-C (the language) and Cocoa (the API). Xcode 4 ships with the same versions of Objective-C and Cocoa as Xcode 3.x.



    That said, I believe I can answer your questions:



    - If you've never coded in Objective-C it's going to seem very weird compared to C#. It's fully object oriented and has the same concepts (methods, classes, single inheritance, interfaces (called protocols in Obj-C)) but the syntax is strange and you need to get to grips with manual memory management, at least if you plan on doing iPhone development.

    - No new coding paradigms in Xcode 4, but Objective-C does have paradigms that you don't tend to see in C# e.g. KVO/KVC and blocks.

    - Supports Ruby via the Ruby-Cocoa bridge.

    - Java Support deprecated. PHP not relevant (can't be used for Mac or iPhone development, which is the purpose of Xcode).

    - Xcode 4 is more like visual studio than Xcode 3 so you'll probably like it.

    - Xcode included built-in SVN support but it's not all that great. I use Versions, or the command line.



    Hope that helps.



    you can use xcode to build web sites that run on mac os x server, which can be based on PHP. I use XCode to edit the php for our site - http://www.inktastic.com/ - and would like to have XCode at least be aware of PHP so I can get syntax highlighting, symbol searching, etc, in my PHP code.
  • Reply 45 of 63
    alandailalandail Posts: 755member
    Quote:
    Originally Posted by timgriff84 View Post


    Cross platform does not mean equally bad on all platforms. You can almost guarantee that every large application that Microsoft, Adobe and even Apple make that is available for the Mac and PC has code written in C that is re-used between the two. Any decent developer knows the difference between interface code and business logic. Business logic rules are the same across two platforms and have no need to be re-written but Apple is making app developers essentially write out exactly the same code twice. Interface code does need to be re-written for each platform and is completely seperate, any developer that wanted to create a decent app would also re-write it to make there app popular on both platforms. Saying that "cross platform" means it sucks on all platforms is just a demonstration of not having a clue about development or being quite bad at it. True you can make an app quickly and badly using the same interface code, but you can make your app quickly and badly doing it natively as well. Preventing people from re-using code that isn't going to change functionally just means they have less time to write the code that should change.



    how so? You can use Objective-C++ to mix and match Objective-C and C++ code. Build the business logic in C++ which is cross platform, build the UI code in Objective C along with some bridge classes to make your C++ classes accessible to your UI classes. This is what I do for all of my Mac apps.
  • Reply 46 of 63
    alandailalandail Posts: 755member
    Quote:
    Originally Posted by bartfat View Post


    The whole reason Objective-C even exists is to allow Apple to control the direction of a programming language. Let me elaborate. If Adobe or Microsoft instead controlled the language specification, then Apple would be at the mercy of those companies to be able to include new features or APIs because those languages wouldn't support them and therefore developers wouldn't be able to write those features or APIs. Now, suppose in this made-up situation, Objective-C 2.0 (as it is in its current form) suddenly appears out of Apple. Now, Apple has the ability to control what the language supports, what APIs it has, can do greater optimization for the platform (i.e. greater performance), and just better integration because there's a focus on doing a single platform well, instead of doing good (usually just okay performance) on a bunch of platforms. While cross-platform makes it technically easier for the programmer, that's not in Apple's interest because being cross-platform means that it doesn't support the latest and greatest from Apple. There's a inherent lag time in cross platform languages coming up to the API and feature parity with native languages (simply because they're third party). But Apple decided it wanted to remove that lag time so people could use its features and APIs when they released it, not 3 months later.



    No, the whole reason Objective-C exists is that it's better for building the sort of reusable objects that are in Cocoa than C++. The difference in the languages is why Pink failed, Taligent failed, and NeXTStep was brought in to save the day (and the company)
  • Reply 47 of 63
    alandailalandail Posts: 755member
    Quote:
    Originally Posted by anonymouse View Post


    Yeah, I never really understood why they did that.



    they did that so they could deploy it on more kinds of servers. THey also did it before Apple bought NeXT and their were Cocoa based XServes to deploy on.
  • Reply 48 of 63
    cubertcubert Posts: 728member
    I think this will be the "mystery" extra app in iLife 11. It will be complementary to iWeb.
  • Reply 49 of 63
    anonymouseanonymouse Posts: 6,857member
    Quote:
    Originally Posted by alandail View Post


    they did that so they could deploy it on more kinds of servers. THey also did it before Apple bought NeXT and their were Cocoa based XServes to deploy on.



    If memory serves, and I think it does, WebObjects wasn't converted to Java till some time after Apple bought NeXT (although, the work may have been done but not released prior to that, but I'm certain that the Initial release of Mac OS X Server included an Objective-C WebObjects, but maybe it was both), but it may have been before the Xserve, and so they could deploy on more server types sounds plausible. Oh well, I guess that didn't work out like they planned.
  • Reply 50 of 63
    anonymouseanonymouse Posts: 6,857member
    Quote:
    Originally Posted by alandail View Post


    you can use xcode to build web sites that run on mac os x server, which can be based on PHP. I use XCode to edit the php for our site - http://www.inktastic.com/ - and would like to have XCode at least be aware of PHP so I can get syntax highlighting, symbol searching, etc, in my PHP code.



    Yeah, I use Eclipse (which is OK, but I don't love it) for PHP (and Perl, and Javascript, and some other things), as well as a few standalone editors, but typically these projects are unrelated to the Objective-C programming I do. I guess it would be better to be able to use a single IDE, but I suppose it's better for them to focus their efforts on making it work better for Objective-C programming than to get distracted by peripheral uses.



    However, if they built a web development IDE using Xcode as a starting point, it should definitely support web languages like PHP.
  • Reply 51 of 63
    mdriftmeyermdriftmeyer Posts: 7,503member
    Quote:
    Originally Posted by anonymouse View Post


    If memory serves, and I think it does, WebObjects wasn't converted to Java till some time after Apple bought NeXT (although, the work may have been done but not released prior to that, but I'm certain that the Initial release of Mac OS X Server included an Objective-C WebObjects, but maybe it was both), but it may have been before the Xserve, and so they could deploy on more server types sounds plausible. Oh well, I guess that didn't work out like they planned.



    Seeing as I worked at NeXT and Apple the move to Java was nearly two years after the merger. Objective-C ended with WebObjects 4.5. WOF 5.0 was the rewrite in Java and rapidly the product stalled.
  • Reply 52 of 63
    mdriftmeyermdriftmeyer Posts: 7,503member
    Quote:
    Originally Posted by alandail View Post


    they did that so they could deploy it on more kinds of servers. THey also did it before Apple bought NeXT and their were Cocoa based XServes to deploy on.



    We deployed on Windows NT, Solaris, Openstep for SPARC, Openstep for Mach, HP-UX and even on custom servers for large clients like Merrill Lynch, IBM, Swiss Banc, US Postal and more.



    We used a modified Apache server with the NeXT runtime. Yes up until 4.5 Web Objects and EOF 3.0 even ran on OS X Server 1.2.



    At any rate, with Apple's investment in Ruby and Python, I would expect their inherent interoperability with Objective-C to be ideal languages to add to some future Web Developer Environment.
  • Reply 53 of 63
    timgriff84timgriff84 Posts: 912member
    Quote:
    Originally Posted by alandail View Post


    how so? You can use Objective-C++ to mix and match Objective-C and C++ code. Build the business logic in C++ which is cross platform, build the UI code in Objective C along with some bridge classes to make your C++ classes accessible to your UI classes. This is what I do for all of my Mac apps.



    You could have written some business logic in C# that is used to power part of a Website, Silverlight app and Windows app. From what I understand there are tools around that will let you compile that down to be used in an iPhone app, but now Apple say you have to use Xcode and therefore that is not allowed.





    Quote:
    Originally Posted by bartfat View Post


    The whole reason Objective-C even exists is to allow Apple to control the direction of a programming language. Let me elaborate. If Adobe or Microsoft instead controlled the language specification, then Apple would be at the mercy of those companies to be able to include new features or APIs because those languages wouldn't support them and therefore developers wouldn't be able to write those features or APIs. Now, suppose in this made-up situation, Objective-C 2.0 (as it is in its current form) suddenly appears out of Apple. Now, Apple has the ability to control what the language supports, what APIs it has, can do greater optimization for the platform (i.e. greater performance), and just better integration because there's a focus on doing a single platform well, instead of doing good (usually just okay performance) on a bunch of platforms. While cross-platform makes it technically easier for the programmer, that's not in Apple's interest because being cross-platform means that it doesn't support the latest and greatest from Apple. There's a inherent lag time in cross platform languages coming up to the API and feature parity with native languages (simply because they're third party). But Apple decided it wanted to remove that lag time so people could use its features and APIs when they released it, not 3 months later.



    True they can't control the other languages and there will be a lag between them updating what the iPhone can do and what the other languages are able to use from that. But if you don't wan't or need to use those features there's no difference in what you've used. The developer always has the option of switching in the future if there unhappy. New features in an iPhone aren't going to appear in current apps until the developer updates it anyway. There's also the reverse effect that an alternative language can add to the framework and get things into apps before apple write them.
  • Reply 54 of 63
    Quote:
    Originally Posted by Cubert View Post


    I think this will be the "mystery" extra app in iLife 11. It will be complementary to iWeb.



    It's doubtful. While they might make improvements to iWeb with this technology, iWeb is a program so that any computer user that's familiar with iPhoto/iMovie can build a website. My mom uses it to manage her website. She knows nothing about computers, and she'd swallow a bottle of painkillers if I told her she had to use Dreamweaver.



    What I think Apple will do is expand iWeb into a pro app offering, similar to Final Cut Pro (its iLife equivalent is iMovie) or Aperture (its iLife equivalent is iPhoto). Apple usually has a pro app equivalent to all the iLife apps, and iWeb is the only one that doesn't (aside from iTunes, which really doesn't call for one... I guess Logic's MainStage could be the pro equivalent of iTunes).



    If Apple launches a pro web design app that has the ease of use of iWeb & Xcode, and the HTML5 animation equivalent to Motion, they'd kill. They'd dominate the market. Seriously, I bet a few web developers would buy a Mac just to have this software (if they didn't already). Even though most developers code in HTML and CSS, they still use a software program to do it, and there are very very few great web development apps (even though there are hundreds of thousands.... they're either proprietary or sucky).



    I really hope they do this. I can't wait. I'm so tired of Dreamweaver, and really don't know Flash that well.
  • Reply 55 of 63
    anonymouseanonymouse Posts: 6,857member
    Quote:
    Originally Posted by timgriff84 View Post


    You could have written some business logic in C# that is used to power part of a Website, Silverlight app and Windows app. From what I understand there are tools around that will let you compile that down to be used in an iPhone app, but now Apple say you have to use Xcode and therefore that is not allowed. ...



    So, you're basically complaining that, since Microsoft locked you into its language and development tools, Apple is the bad guy for not supporting them. The only reason C# even exists is to lock people into Windows development, and to undermine Java.
  • Reply 56 of 63
    asciiascii Posts: 5,936member
    I thought Objective-C was great when I first learned it. It added just the right amount of dynamism so that OO could really shine, something that C++ (my first OO language) was missing. However when 2.0 came out it lost a lot of it's distinctiveness/personality.



    They probably thought they were adding great technical features to the language, but the "culture" of a platform is just as important (probably more) to achieving great products. So technical improvements that might damage the culture should not be rolled out. Garbage collection said "our culture is no longer efficiency focussed" and dot notation said "our culture wants to be the same as everybody else."



    This culture stuff is not just pie in the sky, it is what distinguishes an Apple from a Dell. And culture changes always have their biggest impact where they start, and then fan out. For example Xcode 4 is the worst performing Apple app I have ever seen, but soon it will spread.



    And putting a meme out there that you don't want to be different, in an engineering company, is deadly. Engineering is about improving things, which means changing things, which means undermining what is already out there, which means a culture of subversion (e.g. Steve Jobs and his pirate flag). And there's nothing subversive about changing your language syntax to be the same as everybody else.



    The Xcode team needs to be disbanded before they destroy Apple, and Objective C 2.0 needs to be rolled back.
  • Reply 57 of 63
    Quote:
    Originally Posted by ascii View Post


    I thought Objective-C was great when I first learned it. It added just the right amount of dynamism so that OO could really shine, something that C++ (my first OO language) was missing. However when 2.0 came out it lost a lot of it's distinctiveness/personality.



    They probably thought they were adding great technical features to the language, but the "culture" of a platform is just as important (probably more) to achieving great products. So technical improvements that might damage the culture should not be rolled out. Garbage collection said "our culture is no longer efficiency focussed" and dot notation said "our culture wants to be the same as everybody else."



    This culture stuff is not just pie in the sky, it is what distinguishes an Apple from a Dell. And culture changes always have their biggest impact where they start, and then fan out. For example Xcode 4 is the worst performing Apple app I have ever seen, but soon it will spread.



    And putting a meme out there that you don't want to be different, in an engineering company, is deadly. Engineering is about improving things, which means changing things, which means undermining what is already out there, which means a culture of subversion (e.g. Steve Jobs and his pirate flag). And there's nothing subversive about changing your language syntax to be the same as everybody else.



    The Xcode team needs to be disbanded before they destroy Apple, and Objective C 2.0 needs to be rolled back.



    What are you going on about? Obj-C 2.0 is a welcome advancement to a language that is quite old. Fast enumeration and non-fragile instance variables were sorely needed. Nothing wrong with either of these. GC is optional and opt-in, and can actually increase performance over manual memory management in some instances. Again nothing wrong with this.



    The only point of contention is the dot syntax. However the amount of time they save not having to write accessors, and the errors they prevent by reducing the amount boiler plate code is a good thing.



    There are really good reasons for all the advances put into Obj-C 2.0. If there are language advancements that can reduce bugs, increase performance, and make the language more enjoyable to use, then you'd have to be quite nuts to think those are bad things.



    PS



    I hate to tell you, but Xcode 3 was written entirely in Obj-C 2.0 with GC.
  • Reply 58 of 63
    asciiascii Posts: 5,936member
    Quote:
    Originally Posted by Mr Beardsley View Post


    There are really good reasons for all the advances put into Obj-C 2.0. If there are language advancements that can reduce bugs, increase performance, and make the language more enjoyable to use, then you'd have to be quite nuts to think those are bad things.



    You're looking at is purely from a technical perspective. I'm saying: something that is a technical positive can simultaneously be a cultural negative, and it is culture that determines the success of a company more fundamentally than technology.
  • Reply 59 of 63
    Quote:
    Originally Posted by ascii View Post


    You're looking at is purely from a technical perspective. I'm saying: something that is a technical positive can simultaneously be a cultural negative, and it is culture that determines the success of a company more fundamentally than technology.



    Put down the pipe and back away. We are talking about a programming language not some world revolution.



    Quote:
    Originally Posted by ascii


    And putting a meme out there that you don't want to be different, in an engineering company, is deadly. Engineering is about improving things, which means changing things, which means undermining what is already out there, which means a culture of subversion (e.g. Steve Jobs and his pirate flag). And there's nothing subversive about changing your language syntax to be the same as everybody else.



    So Apple should only add improvements to their tools if they are different from everyone else? That is totally absurd. Engineering is about making the best product you can, and deciding which are the best tradeoffs to make when constructing your product. It has nothing to do with subversion, undermining, or anything of the like.



    Further I think you'd be very hard pressed to show any harm that adding properties or GC to Objective-C has done. Can you show me all these people that hate having added tools in their box with which to solve problems? I certainly haven't seen any signs that developers hate the new additions. Quite the opposite, I think most developers are very happy to have things like blocks, automatically synthesized accessors, GC, and fast enumeration.
  • Reply 60 of 63
    It's all very planned program, not programming declarative. In no way this code can result in an HTML editor. Not to mention the fact that all the different work teams in html page and iWork. Dashcode is the only place HTML includes Xcode team and creating the need to support the Dashboard.
Sign In or Register to comment.