Steve Jobs Weighs In On iPhone Programming Language Mandate
Dotnaught writes "Greg Slepak, founder of software company Tao Effect, wrote Apple CEO Steve Jobs to complain about Apple's mandate that iPhone applications be originally written in C/C++/Objective-C. Job's response was to endorse a post by John Gruber on the Daring Fireball blog. Jobs called it 'very insightful,' suggesting Gruber's prediction that third-party iPhone development tools are out might be right. Jobs sent a second reply that also doesn't bode well for third-party iPhone development tools: 'We've been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.'"
By restricting the use of abstraction layers, they want to make devs choose between writing their app for the iPhone or for Android, it would seem (or, of course, writing it twice).
Of course, the real choice is "write for iPhone, or write for every other platform". I hope developers are bright enough to see where this is going.
# cat
Damn, my RAM is full of llamas.
As Jobs can do no wrong, I suggest that he load some more requirements and restrictions on iPhone developers.. oh, and maybe someone can let me know, can Apple remotely delete apps off iPhones? If not, they should get on that. Customers *love* that.
How we know is more important than what we know.
That's only because Flash is strapped with new features that really don't fit well with the medium, although it has helped bring streaming video to the net (still doesn't make it a proper fit). Stuff like Neurotically Yours and badgers, otoh, are a perfect fit for the medium.
(Semi)Complex games and full streaming HD video? Not so much.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
I honestly don't understand why Geeks put up with this and fall for the marketing propaganda. If all the world were Apple we'd not be able to hack a thing.
These posts express my own personal views, not those of my employer
And how about the old trick of a meta-language that generate C source code?
How about transcompilers? They do not necessarily introduce new layers. Anyway i think its up to the users to evalute which applications are the best.
With decisions like this, I tend to give the benefit of the doubt and assume good intent. Given that, is it possible that Apple just wants the best thing for their platform? Yes, some of the AppStore policies are draconian and not so dev-friendly, so it's hard to assume that here. But, it could be said that the iPhone got so far ahead because of its intuitive interface, stable apps, and overall good quality. Given that, wouldn't ratcheting the list of app frameworks down to the native ones be the best way to start with great apps and that consistent iPhone experience?
As if the Microsoft monopoly wasn't bad enough in the 90's, now we get a modern-day Apple one that makes Microsoft pale in comparison. As Apple gains market share (and they are), this type of attitude is 180 degrees away from where development should be heading.
Just like the kid in the neighborhood who owns the ball determines the rules of the game.
You don't like it that way? The solution is simple:
Don't play in that game, and . . .
. . . find a different ball and game that has rules that you like.
Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
I read you post three times but I could see no facts, examples, anecdotes, anything. Just words.
Flash supports multitouch and has access to accelerometer data, GPS info and so on, so what "new features" don't fit well with the medium?
Semicomplex games not good? There are so many games in flash, some of them excellent, that isn't even funny. Quake has been ported to Flash, as well as Prince of Persia, just to name two classics, I could give many more examples.
HD Fullscreen video works great in Flash 10.1 RC
Saw some post from Miguel that monotouch can be used to develop apps for iPhone. So what happens to that now?
Speaking as someone who has to deal with 64 bit flash on linux and has had to deal with all manner of MS enforced formats on the the mac, I completely and utterly agree with this part. Apps running using native platform tools do fairly well, cross-platform apps suck a lot of the time. You windows users have seen this too -- itunes, quicktime and safari are dogs on windows because they had to import all their own libraries. On Apple machines these are lighweight apps that are fast. On windows it just doesn't work as well. And let's face it, as nice as open software is, working well is what sells units, ideology is secondary.
Gentlemen! You can't fight in here, this is the war room!
Objective C is so off putting that I didn't even bother looking into frameworks. I just can't see myself programming in the language that feels so 80s (smalltalk loosely glued on top of C with a bunch of macros). And the method call syntax doesn't feel natural to a C programmer.
Projects like MacRuby look promising, but honestly I would never bother developing for the platform. Especially not now.
As the island of our knowledge grows, so does the shore of our ignorance.
intermediate layers between the platform and the developer ultimately produces sub-standard apps
Right. That's why all those games built with engines and level editors and scripting tools always suck. C'mon apple. You have to allow unity. You can't want games but require everyone to make them from scratch.
Afraid that cool unity game will show up on pc, wii, xbox, android, Mac, myspace? It'll be just like the 90's when the pc was gaming heaven and mac users got to play marathon for 11 years.
Keep in mind that actual Flash apps written by CS5 beta testers have been approved in Apple's app store in the past as well as many games written with Unity3D, so it's not like performance is a problem.
Since every app is checked against objective (and subjective) criterias, it would have been OK to just reject poorly written applications.
Forcing me to use a specific programming language is insane. Imagine Microsoft demanding all windows apps to be written only in C# and compiled only with Visual Studio. It would be an outrage. But hey, it's Steve Jobs, the Big Brother himself, and he knows what's best for us, right?
Also, the timing was devious - on Friday, just before the Monday's official release of Adobe's CS5, effectively giving them no time to react. I was never a big fan of Adobe (especially before the Macromedia acquisition - their corporate culture started to change afterwards) but this is simply Steve Jobs being a big dick.
Finally, I know that many /.-ers are against Flash. Keep in mind however that this move goes well beyond Flash, affecting other tools and frameworks. If successful, this move will lead to more and more closed ecosystems (from other vendors as well). Today's Apple makes Microsoft look like saints.
It's horrible. I'd like my framework methods to b less than 30 characters long, please. Sorry to promote MS here, but I happen to like method names like OnInit and OnLoad.
So those reasons (and the MVC pattern) are the strongest you have to think that Cocoa is "god-awful"?
And none of that was meant for flash. It was meant to be a way to provide animated effects to a website. It wasn't meant to be the entire website (many, many issues there to include no ability to deep link). Just because you can do something doesn't mean you should. Phones aren't gaming consoles. Yet they are used as one now. Does that make games a good fit for phones? No, it just means you can do it. I didn't say the games weren't good. I said they aren't a good fit for the medium (which is poorly supported on any non-Windows platform).
All I see is you making my point for me. "Flash supports this and flash supports that." Big whoop. That's like my above example of the phone as a gaming platform. Sure you can play games on it, but seriously. Why would you? Controls are a pain (and really not any better with full qwerty keyboards) and the screen size, even for something like the iPhone or Android, is TINY. What is a phone good for? Making phone calls and storing numbers. Period. Just because phones have tried to expand past that doesn't make that a good decision, just a popular one.
I'm all about expanding and moving beyond limitations, but Flash, at it's base, is an over-glorified animation program just like the modern cell phone is at it's base an over-glorified communications device.
You want HD video? Use a proper video codec. You want to play games? Use a proper platform (PC or dedicated console). You want some cute animations that turn into viral memes? Use Flash all you want. Want to make phone calls from anywhere? Get a cell phone.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Of course, nto that dev base will die. they will just code for other platforms.
Read radical news here
And the economics of a closed fully controlled platform, have been in Steve's dreams since the seventies. Luckily we all know it will ultimately utterly fail, as so many closed platforms in the past. It will take a while. It might be hard for hackers such as us, but we will prevail! Sad to see Apple go down like this, was a big fan, contributor, promotor, book writer, journalist and so on for years.
I am really disappointed in Steve. At least Google tries a little bit to 'do no evil', Steve makes beautiful things, but with a very bitter taste! Facebook group: iPad is an attack on our freedom
Don't play in that game, and . . .
. . . find a different ball and game that has rules that you like.
Exactly.
Agreed, but that decision should be left to both developers and end users. If I want to use a piece of software that may or may not be top-notch, I should have that choice. I won't touch an Apple anything anymore just because Jobs is being a jerk about the whole issue. He's acting, in essence, like the government. "Trust me, I know what's best for you." No, you don't.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.
I find that intermediate layers such as Python tend to produce above-standard apps due to the developers (ie. me) not having to implement every little detail manually. Number of Bugs ~ k * Amount of Code, well known fact.
I happen to like Objective-C and the Cocoa framework. It's method names are quite descriptive and don't leave much guesswork on what they do. Incidentally, there are short method names too for things that are easy to describe in short names. You don't have to use the MVC pattern if you don't want to. It's just more convenient to work with API the way it is designed to be used.
Go to hell. (note to self: change sig, no longer valid)
Don't Blink. Blink and you're dead. Don't turn your back. Don't look away. And don't Blink. Good Luck.
Since Apple reviews every app that goes into the App Store, Apple could simply rate down apps that are not up to the quality expected for the iPhone platform. This would give more incentive to the developers to improve their apps to Apple's standards.
Have you ever used flash? It's slow as hell, shutters on pal resolution movies even, and often uses 100% of the CPU Time of one of my cores in my 8 Core Mac Pro. WHEN IDLE! The flash platform is a pile of CPU eating crap, I can't imagine how anyone would use that voluntarily. On an iPhone it'd probably eat away all battery power within less than an hour.
I know very little about iPhone development, but one question comes to mind when reading this article.
Are their not other languages that do, or other that could be made in the future, that compile directly to iPhone code that are not one of the 3 listed?
and do not use "intermediate layers between the platform and the developer".
If that was their only concern then when also restrict the language?
Troll is not a replacement for I disagree.
Stuff like Neurotically Yours and badgers, otoh, are a perfect fit for the medium.
(Semi)Complex games and full streaming HD video? Not so much.
Badgers are terrible for gaming and HD video. Plus they bite.
The problem isn't features. A feature shouldn't be in the way or consume resources when it is not used. The exact stuff you mention - vector graphics and basic composition, coupled with audio playback - doesn't require 50% of what a single 2ghz core in a Core 2 CPU has to offer. It didn't 10 years ago, but it does today, when doing the exact same job that Flash needed not even a 600mhz P3 to perform 10 years ago.
Cider and all those inefficient Windows-to-Mac converters/emulators that so-called game companies use to "port" their games to Mac OS X.
iPhone developers are up in arms at Apple requiring them to use only Apple toolkits, sacrifice a Windows developer at their local Apple Shop every Sunday and maintain an altar to Steve Jobs in their homes. And eat a bug.
Apple is famous for its rigid control over its devices, in its quest to maintain user quality. Developers have worked under increasing restrictions in their attempts to provide quality applications for the iPhone such as I Am Rich, Magic 8 Ball and iFart.
"Not a big deal," said Mr Jobs in a personal email. "Cross-platform development leads to a worse user experience every time. Also, the video of you eating the bug has to be H.264 QuickTime or your app is out. Extra points for cockroaches."
"This clause shows a fundamental lack of understanding of the creative freedom developers need," said iPhone developer Greg Slepak. "Software is an infinitely malleable creation of pure thought. Toolkits, languages and frameworks are only a way to develop something people will want. It's like telling Rembrandt what brand of brushes he's allowed to use."
He paused to chow down on a palmetto bug for his MacBook's camera. "I'll tell you, a lot of iPhone developers are seriously considering Android, just as soon as Google develops a suitably exploitable stream of mindless thralls that will generate us a gushing torrent of money."
"Thanks for the video, Greg," said Mr Jobs, "but we've just added section 3.3.1.a: 'In particular, when Greg Slepak submits an application, the bucket of cockroaches in the video have to be Apple-branded and genetically assembled in Cupertino.' So we've rejected your application, cancelled your membership and zeroed your account.
"Of course, you're free to apply again. Or not, if you don't want a goddamn dumptruck full of money backed up to your house. It's a free country."
http://rocknerd.co.uk
I agree with you. He doesn't know (or care) what's best for you. But it does seem he knows what's best for the average consumer. Check the sales figures.
If I didn't have absolutely NOTHING to do, I wouldn't be here.
I expect it is rather the type of programmer that needs intermediate layers that is the issue. Face it, people that can create complex applications (e.g. ones with a GUI) with C/C++/Obj C know what they are doing, because if they do not, they fail pretty quickly. With other languages, it is not so clear cut. The Java crowd, for example, has some good programmers, but a lot of terrible ones. The reason is that you can get an app with terrible structure and design working in Java, while it almost impossible in C/C++/ObjC. On an even higher layer, not admitting the Flash people is really the only sensible thing to do. Closed platform with an atrocious security history, "programmers" that are an insult to the profession and are basically web designers that do not understand the web, etc..
Now admitting only good programmers in more abstract languages would be good too, but how to recognize them? By requiring use of a tool that makes the bad ones obvious, you can actually do it with reasonable reliability and you do not need to admit what is really your agenda. Of course Apple cannot come out and insult large numbers of people, after all quite a few of them are (potential) customers. But I believe that is what is really behind this move.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
What was that? Government + Apple + Jobs + Knowing whats best for you?
There's a MAD Tv sketch for that!
http://www.youtube.com/watch?v=rw2nkoGLhrE
Science advances one funeral at a time- Max Planck
BS
This has nothing to do with Flash apps moron. The apps that were to be written by CS5 were going to be iPhone apps. Just developed in another IDE.
So what we're really saying is "How would you like it if you could only write for the web using Java?"
Flash has long ceased to be just an over-glofiried animation program. Maybe you should take a look at ActionScript 3.
Oh and NONE OF THIS is about Flash. Adobe wasn't going to be loading Flash on the iPhone. It was going to use the Flash IDE to create iPhone apps.
In fact, I think they expected that they would gain a lot of new sales just for iPhone development.
"On the one side, this rule should be good for quality"
Really, well that sure explains why so many applications in Apple's iTunes store are crap, crash a lot. Clearly the natively written apps eliminates crashes.
Heck, it's quite possible that Adobe's IDE could help improve matters, by allowing for a bit more uniformity.
I believe some of the issues in performance is access to core areas of the OS. There is a lot more control, checks, and what not in OS' today than in yesteryear.
Hear hear!
xxxxViewController is only a suggestion... you don't really have to use it. Besides, how restrictive is "model and controller" in one class and view in another representation?
Please don't send a Word document when a text file will do the job.
Not exactly true. The Flash apps would be compiled down to run on the iPhone platform, with the Flash VM statically linked in. So they wouldn't use native libraries or calls for most things, and would have an additional layer of cruft between the app and the OS. If a tool makes source code compiled to the iPhone using native libs, rather than an app bundle, I suspect the tool won't be disapproved for use on the platform.
-- Two men say they're Jesus. One of them must be wrong. - Dire Straits
Adobe should develop a Objective C to ActionScript(Flash) cross-compiler. That way, iPad/iPhone Apps can be made to run on Android, Windows etc. phone platforms.
This space for rent.
Flash on OS X is crap because Apple refused to give the plugin the kind of low-level access it needed. The newest version does a lot to ameliorate that. Flash 10.1 (now in RC) uses Core Animation, so you should see a significant improvement in performance.
Its all fun and games until someone loses an eye... then its just fun.
I'm an ex C++ developer, who has worked in Javaland for the last 5 years, or J2EE or whatever the fuck they call it now. I don't see any benefit from GC apart from barely educated Javaschool (http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html) graduates writing bloated, slow and misguided code, resulting from their complete misunderstanding of the JVM and basic memory allocation.
I'll take boost's shared_ptr and OBJ-C's autorelease any day.
Please don't send a Word document when a text file will do the job.
I was responding to the OP's complaint of:
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Touche, dear /.er, touche. (yes, I'm too lazy to fire up gnucharmap to get the accented e).
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Why do people always come up with that ridiculous argument? Apple provides tones of low level frameworks such as Accelerate.framework, OpenCL.framework and similar[1]. What more could you want? Running as root to renice yourself? Come on... The reason Flash sucks is because Adobe just doesn't care enough to make it not suck. [1] http://developer.apple.com/mac/library/navigation/index.html#section=Topics&topic=Performance
I don't understand why they keep sticking those damn intermediate layers in there. Real programmers write write in assembly language. If you want real performance that is what you need to be doing instead of using foofy object-oriented programming tools and junk like that. In my experience those other things just add more bugs and no real value. If you want information an old-fashioned text-only display can provide it. Remove all the layers please.
Coding Blog
Have you ever used flash? It's slow as hell, shutters on pal resolution movies even, and often uses 100% of the CPU Time of one of my cores in my 8 Core Mac Pro.
BRRRRRRRRRRIIIIIIINNNNG!!! CALLER ON CLUE PHONE LINE #1
Flash performs badly on Apples because Apple wants it to perform badly. You are mad at Adobe when you should really be mad at Apple. They have denied you the capability of having a good experience.
I am honestly quite surprised that Adobe has put up with this crap. Adobe made Apple what it is today by making Macintosh's the desktop publishing and graphics editing leader. Apple has been shoving a sharp stick in their eye in regards to Flash.
"His name was James Damore."
Do you even have the slightest clue what you are talking about? First of all, the fact that you dislike Obj-C does not make it god-awful, in fact, there's lots of people who really like it, like myself. It has a lot of the strong points from both C and C++, and if you know how to use these two, you know why Obj-C has some clear advantages over both. Second, you are not required to program in Objective-C if you don't like it. You can use C, C++ if you like that better, or even Python if that's your thing. The only requirement is that you use Cocoa for the GUI, which is actually a great API. Third: what on earth are you on about MVC? What makes you think you are forced to use MVC for anything on the iPhone? You are free to go without controllers or models, to merge views and controller, to merge controllers and models, whatever suits your application. 9 out of 10 times the MVC pattern is perfectly suited for a typical iPhone application, which is why it has such a prominent place in the iPhone developer guides.
It's sad to see that you actually got modded +3 insightful right now. I thought this was supposed to be a forum for technically-inclined people who know what the fuck they are talking about, instead of a flamebait trolling forum where you can dump your misinformed opinions just because you don't like the subject of the article or its products.
From http://theflashblog.com/?p=1641
Its all fun and games until someone loses an eye... then its just fun.
Please explain how Objective C is god-awful. I actually find it a pleasure to use and find the Cocoa API's way more intuitive then the MFC ones. Please don't bring up C# and .Net. I can't stand THAT god-awful hack of a language and framework. I don't want to include, or make my users download such a large install just to to run a 1mb application.
I've actually found the intellisense in Visual Studio fails on me way more often then in Xcode. Sure, in past versions intellisense in Xcode was horrible. But after doing a project in Visual Studio 2008 recently, I just gave up on the intellisense and kept the MFC documentation open on a second monitor. (Yes, it may be better in VS 2010, but that JUST came out. I still had issues with it occasionally and had to keep resetting it). Not to mention I find Apple's documentation and samples way better then Microsofts.
Also, because Objective-C is just straight C with object oriented extensions (message passing), I can include just about ANY C library I want. I'm able to take libraries I've written for apps on Linux/Unix and link to them for iPhone apps (statically of course, but I can still use them as is).
You're right, a feature shouldn't be in the way or consume resources when it is not used. If that is the case then what is the deal with Flash's continued poor performance? On my parents computer (WinXP SP3, 2.5GHz proc with ~700MB RAM) Flash is a constant poor performer except in the most basic of animation loops (such as this one (troll unrelated)) on her computer. I've come to expect Flash to be a poor performer on non-Windows based computers (I'm currently running FreeBSD 8.0-RELEASE-p2) due to Adobe's lack of support for it on other platforms (despite claiming cross-platform compatibility, it's a very minimal amount of support to get that claim).
My system (2.4GHz PIV, 1.5GB RAM) routinely chokes on the most complex of flash and certain video sites (Vimeo comes to mind, YouTube performs fairly well) despite having the latest Flash (10.0 r45) from Adobe (via a linux compatibility layer since Adobe refuses to support FreeBSD at all and the OSS Flash plugins bite).
Given all that, I'd say there has been no real improvements to Flash, and possibly even a degradation of the format, in the prior 10 years (I would also like to note that I predicted, when I heard that Adobe bought out Macromedia, that Flash would go down the toliet; I'm sad to say I wasn't wrong).
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
There are a number of emulators on the App Store such as the C64 one and IIRC some Genesis stuff (emulators that are OK under the previous rules because they don't have any way for the user to control the code being run by the emulator). Will such things be removed from the App Store by Apple?
doesnt this in some way breach antitrust laws? i mean the fact remains it is the most used platform currently available, and it keeps getting locked down more and more to keep out certain companies, i know its not exactly open source and all, but id say give it 2 or 3 years at this rate and apple will be in the same antitrust boat as M$...
-Noc
All modern games are written to game engines or game libraries that this rule would (does) exclude. The unreal engine, the PopCap engine and SDL all call the iPhone through an abstraction layer, which is not allowed. But, as has been pointed out elsewhere, in a strict interpretation, designing your game in sudo code is also not allowed.
OpenCL - Only 2 years old, and requires Snow Leopard or newer.
Think about that. What you are saying is that Adobe has had all of 2 years to hardware accelerate some of Flash (not all of flash) and that the userbase for this new Flash will consist of only people who have purchased Mac's in the past 2 years.
Imagine if this was Microsoft that we were talking about. I know for certain that you would say that Microsoft is evil because up until 2 years ago, that they reserved feature access for themselves in a proprietary anti-competitive manner manner.
But this is Apple, and you didn't even know how long OpenCL has been available. You just know its one of them buzzwords that makes software great on your shiny new Mac system.
"His name was James Damore."
If that were the case, then their should have been a general performance hit to any multimedia format. Other formats continue to perform exceptionally well (native video (even those wrappered), audio, scripted and compiled programs, etc.). So either Adobe has gotten lazy and AS3 isn't what it's cracked up to be, or OS optimizations and checks and such aren't as great as you suggest. I prefer to believe the former as even with Windows there are increases in stability and usability.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Then use C or C++ dummy!
I blame the sales figures on good marketing.
Sure the product really is good, and most people (e.g. typical consumers) are sheep who really don't care about these issues. Jobs knows that and that is what makes him (and Bill Gates and others) a good businessman. We all know Jobs wasn't the geek brains behind Apple. He is, however, the marketing powerhouse behind it.
That being said, such technical decisions should be left to both the CTO and CEO.
Don't cripple your platform. If you alienate too many developers eventually consumers will notice the lack of choice and they will start bleating.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
1. Syntax is something subjective, and actually the way methods are invoked through messages is one of the key strengths of Obj-C that makes it so flexible without requiring all the complexity and pitfalls of of C++
2. What do you not like about the way you have to define methods? You basically declare the method name and its signature and that's it. Which is like every other programming language
3. How is XCode 'primitive'. It's actually the only graphical IDE that I've ever used and found to be somewhat tolerable. In my day-to-day job I use strictly gvim and the CLI, because no IDE I know of has enough positives to counter the many negatives that any IDE will have compared to having a powerful editor like gvim. But XCode comes pretty close, closer than anything I've used before. Calling it primitive makes no sense to me whatsoever
4. There is no garbage collection in iPhone OS because it would be a bad choice for memory-constrained applications. You use the retain/release memory model, optionally with user-defined autorelease pools to mimic garbage collection while still having full control over object lifetime. Much like using smart pointers in C++.
5. What is 'weird' about the way properties are defined? Just like your 'the way methods are defined is weird'-argument, your statement is basically void. Declaring a property basically involves declaring its name, type, its attributes and optionally any accessor methods. How is this weird and how would you expect this to work without sacrificing features like atomicity and automatic retain/release semantics?
6. What di you mean 'the IDE is not integrated'? Integrated with what? The debugger is integrated, the editor is integrated, the build control is integrated, the interface builder is integrated, the instruments tools are integrated, I really don't get what you're talking about?
The article summary misinterprets the core of what Gruber was arguing. He was speculating Apple didn't care so much about languages, it was more cross-platform frameworks they were after - so the subtle distinction is that systems that either converted other languages to objective-c or targeted the platform directly might be allowed. For instance, Mono for the iPhone lets you build applications in C#, but with bindings into the Cocoa frameworks.
Unity (popular game engine) might seem like a grey area, but if Apples motivation is quality of applications you simply cannot ban game engines, sine everyone having to write an engine from scratch would lower, not raise, overall quality. If for no other reeason than the pull of the game industry game engines should be OK.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Restricting development tools would would hinder the progress of the platform...
If Google really cared they would fix Android Chrome to reflow text, instead of discriminating
Agreed.
That wasn't the issue I was discussing though (although in a later thread I think I made that same conclusion). Flash has become too grandiose to be any good. When Macromedia was bought out is when Flash died. I agree that Flash is a horrible platform (though it used not to be so bad). I agree it has no place at all on a phone or tablet (or any website aside from simple animation effects).
Until it dies, though, we are going to have to deal with it.
I'm really surprised though that Adobe just doesn't use Java (which is already widely supported on many cell phones and smart devices) but I guess they feel it wouldn't look so good if they went with a competitors product. *shrugs*
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
The problem with console to PC ports is that consoles are designed with the limitations of game controllers in mind and so therefore are often "simplified" compared to native PC titles. That isn't what this is about. This is about porting between the different touch based smart phones which are all so similar in capability that it is like porting between Windows, Linux, or OSX (which works fine if you don't target a propriety platform to begin with). This is solely about Steve Jobs trying to turn his beachhead in the mobile market into an occupation.
========
CINC, 4th Penguin Legion
Flash on OS X is crap because Apple refused to give the plugin the kind of low-level access it needed. The newest version does a lot to ameliorate that. Flash 10.1 (now in RC) uses Core Animation, so you should see a significant improvement in performance.
No, properly written applications will use CoreAnimation, CoreAudio, Quicktime X APIs, etc so that they are appropriately abstracted from the low-level hardware. Hardware changes and Apple's engineers will figure out better ways of doing stuff (ala GCD). You use the high-level APIs, you get the improvements for free. You use the low-level APIs, we have to wait around for you to fix your crap (which history has shown that Adobe has no interest in doing in a timely manner).
The newest version does a lot to ameliorate that. Flash 10.1 (now in RC) uses Core Animation, so you should see a significant improvement in performance.
That proves the point that Adobe was wrong, they didn't need access to the low-level APIs. They just needed to use the appropriate high-level APIs.
All editorial writers ever do is come down from the hill after the battle is over and shoot the wounded.
You're trying to compare a browser plugin to a standalone application? Browser plugins have an extremely limited subset of API's they can call, as well as seemingly arbitrary limitations placed upon them.
Its all fun and games until someone loses an eye... then its just fun.
To develop for the iphone, you're supposed to develop on a mac OS that requires a license and the license (money) states the OS has to run on mac hardware (more money). If they allow 3rd party dev tools/langauges, then they lose out on OS and hardware sales.
I'll have to bookmark it. My crappy USB powered speakers are messing with my keyboard. Tuesday I buy a new set (these were used from a friend). Perhaps I can plunk down only $80 for a set similar to what I had about 11 years or so ago (2 4-inch full range satellites with a 6 1/2" omnidirectional sub-woofer in a wooden box). Best set of speakers I've ever had for a computer. If a nearby lightening strike hadn't of toasted them I'd still be using them (the sub-woofer wasn't damaged, just the satellites).
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
An interesting statistic that also kind of prove your point is the salary of the average VB.NET programmer vs C# programmer.
The two languages as of the current version are almost at feature parity (in the next version coming out in a few days, they are are feature parity aside for like, 2 things), so for all practical purpose, they are the same except one uses IF/End IF and the other uses curly braces.
However, from a demographic point of view, most VB.NET programmers had a VB6 background (VB6 being much higher level/RAD than the .NET platform), while C# devs mostly came from Java/C++.
End result, the average C# programmer in all the studies/surveys/etc done -always- ends up being paid more. That is even though you can do the -same- thing in both languages, and they run on the same platform and framework.
Why? It has nothing to do with the language itself, its the demographic. With all the flak it got, VB6 was an excellent environment, its just that people who used it sucked (since it was so easy), and they still suck once they move to VB.NET.
We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.” -- Apple
Is Apple actually calling iTunes for Windows for a sub-standard app? That perhaps should be banned from the platform? Apple themselves are using non-native API intermediate layers such as CoreFoundation and CoreGraphics in their implementation of iTunes for Windows.
...but, but, but... /. ?
If we don't get all emotional, and perform our mudslinging rituals, then what need is there for sites like
"Give a woman two glasses of wine and some pad thai, and they'll agree to just about anything." the Sports Guy
You didn't know that "2.5 ghz" means nothing these days.
You didn't know that the number for the amount of memory is 768.
Not once mentioned what video hardware was available, even though Flash uses hardware accelerated rendering.
Adobe doesnt support FreeBSD and you run it under an emulator on a crappy big-assed-pipeline P4 system (worst case scenario.. even a pentium 3 would be preferable) and you are surprised that its software decoding of H.264 is slow? Really?
Turn in your geek card. You've failed too many times in this one post.
"His name was James Damore."
First off, I was wrong for using the term "low-level". That's what happens when you don't have enough coffee in the morning. That was my paraphrasing of various Adobe team blog posts that stated they didn't have the APIs available to provide good performance on OS X.
CoreAnimation hasn't been around forever. I won't argue with you that Adobe can be slow to act at times (Flash 10 came out too soon after OS X 10.5 was released to make use of CA), but acting as if the entire thing has been their fault from day 1 is disingenuous.
Its all fun and games until someone loses an eye... then its just fun.
Do you have any real arguments or are you just throwing personal attacks at me? If you can't say anything useful, just shut up...
I'm waiting for you to say something either useful OR meaningful. You have failed twice.
(Hint: I know more about OpenCL than you do.)
Probably not, but I'm going to give this one to you anyways Mr Big Bad OpenCL Developer. Did you think that your OpenCL knowledge gives you enough street cred to bullshit your way into not presenting a valid argument? It doesn't.
I pointed out why your argument isn't valid, and that came off as personal because the type of invalid argument you used means that you are an idiot for thinking that people on SLASHDOT would buy the shit you are trying to sell.
How can VLC and mplayer decode video so much better than the flash player, even though they have the same API access?
They don't have the same API access. Shit selling failed again.
"His name was James Damore."
And feel free to use your freedom of speech to argue against a policy you don't agree with, that you don't want to catch on more widely, and that you hope will be changed if enough outcry is raised.
Sorry to promote MS here, but I happen to like method names like OnInit and OnLoad.
What, no PrestoChangoSelector? :-)
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
What special APIs do VLC and mplayer have access to, then?
The languages don't have features that tend to make bad programmers. I have heard arguments that features saving a programmer from things like tracking the lifetime of data structures beyond the scope of its usefulness makes them lazy, but those arguments fail to realize those bad developers didn't do that correctly and just wrote bad C programs. They were still lazy, and the ones to suffer were the users of their programmers.
What makes flash developers or java developers bad as a rule of thumb is they represent the popular languages for large scopes of the industry at a time when the industry is appealing. Namely, the legacy of the 'dot-com' days are still with us. In the late-1990s to 2000 or so, programming was perceived as a relatively accessible get-rich-quick industry. In that day, the thought was for non-web programming, Java was *the* language, and for Web programming, Flash was the important technology to incorporate. Masses of people with little to not talent or inherent interest in the industry latched on and became armies of unskilled labor with only Java or Flash barely under their belt. The 'Web 2.0' craze resurrected a fair amount of the Flash people (despite all the successful Web 2.0 endeavors having all their good stuff in server-side components or javascript and involving little to no flash).
Either way, I'm fairly certain Apple's agenda is not as benevolent as you want to believe. If they didn't want crappy apps, they already have a mechanism for precluding that result. What they do see is Android rapidly closing on (by some metrics beating) their share. They see these cross-platform environments allowing iPhone developers to start targeting Android at low incremental cost. To try to mitigate the flow of Android apps, they are trying to raise the cost of development so that hopefully some development places can't avoid to do both and presuming that they will only choose Apple if they can't afford both. They want a captive development audience without having to pay for it themselves, like a lot of companies do with open source software but with a much tighter control on the results.
I personally think this is the beginning of the end for iPhone as it is today. iPhone is not that far ahead of Android in the market, so ignoring Android represents a large missed opportunity for developers. Also, they see exactly the sort of relationship they have with Apple and see more control over their own destiny with Android. Even if they can only afford one and iPhone strictly speaking represents more revenue opportunity in the short term, I predict many shops selecting Android simply to help shift the market in the direction that benefits them more long term.
All this said, I like WebOS the best. I wish Android had been developed with the multitasking interface and SDL interface of WebOS (just as I wish Palm had been sane about camera access for SDL). I personally like Palm's platform for the moment (pretty open out of desperation probably) and advocate it, but it seems clear that Android is going to be the premiere platform in the market.
XML is like violence. If it doesn't solve the problem, use more.
Interesting. Serves to show that programming is still about the people doing it and the language is quite secondary. Something management obviously does not want to hear.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Isn't Apple being a hypocrite here? Apple allows apps written in C/C++ but those, when designed correctly, can be ported to/from another supporting platform (ie: Android) in a matter of days. Furthermore Apple has a web browser and has been touting support for web apps and HTML5, yet the web is a definition of cross-platform content. There are plenty of tools and frameworks in web development (ie: Dreamweaver) that allow you to make websites easily. Apple allows those websites.
It seems it comes down to a screw Adobe move.
Except that Apple ships a highly optimised H.264 CODEC as part of OS X. If they used that, instead of shipping their own, then it would be much faster. If you grab an H.264 movie and play it in QuickTime on a Mac, the CPU load is under half that of playing it in Flash. It's not that Apple doesn't provide APIs for doing it, it's that Apple doesn't provide APIs for doing it the way Adobe wants to do it, which is an entirely different complaint.
I am TheRaven on Soylent News
The job of creative people is to invent and to assemble a whole that's worth more than the sum of its parts. Then it is possible for a manufacturer to buy those parts for $C, put them together in a pattern, and get something that is worth $C + $X. What happens next is indeterminate. In a perfect buyer's market, the price is forced down to $C, the seller makes no profit, and the buyer is enriched by $X of extra value and is ecstatic. In a seller's market, the price is $C + $X and the buyer gets what he pays for, and is grudgingly satisfied but not thrilled.
The optimum social outcome is what maximizes the product $P times the number of units sold after other positive or negative societal effects are accounted for.
Now, by and large corporations seem to be greedy idiots who simply grab as much of the created value $P as possible. Lock-ins, bundling, bait-and-switch, misleading advertising, broken promises, preannouncements, monopolization--whatever it takes. They forget the costs of making their customers feel angry, or trapped, or betrayed, because they see it as a pure exercise of raw power, not a human transaction where fairness counts.
The problem in thinking about Apple is that Job is both wise and tasteful. He really _does_ care about the end-user's experience, in a way that other company's only give lip-service too. The very name Windows XP was supposed to stand for "customer experience," yet when Vista came along Microsoft was happy to collaborate with Intel and computer makers in marketing "Vista ready machines" that they all knew could never give buyers a good x-perience.
Jobs is willing to share more of the $X with customers. Apple products consistently have good fit and finish, they are nice, they are well-thought out, they work, and are almost free from the sort of errors that suggest that nobody ever tried some feature even once. (Current pet peeve: about 10% of the time, I cannot remove my USB drive from my Windows machine. It claims its in use but won't tell me who's using it. It says "close applications" but according to the Task Manager no applications are open. Eject does nothing. "Safely remove hardware" puts up a dialogue box saying it was waiting for the device to "stop" and never finishes. This has been true with XP forever, across multiple machines, across multiple USB sticks. Last week it happened on a brand new Windows 7 machine. I mean, what is this? Nobody at Microsoft uses USB drives? Nobody in Microsoft SQA has ever seen this? At no time in the past ten years, encompassing a supposed total OS rewrite and a major second release, did anyone ever fix it? This is some obscure problem that only affects me? Come on. Microsoft must know about it, they just don't care.)
It drive people batty that Job's high-handed dictatorial stance can result in very good products. But it does. Whether it's a good thing or not, is hard to say. Almost certainly not, and it's probably not sustainable--wise Emperor Steve Augustus will eventually be succeeded by Caligula. But while it lasts, let's acknowledge that it does produce awfully good results.
"How to Do Nothing," kids activities, back in print!
Hi! I'm here to make you aware that your opinions about technology don't make you better than other people. The world is not divided between those who see things your way and "sheep." People like things because they do. Your reasoning has nothing to do with it at all, no matter how compelling your find it to be in your own head. You know why? Your own head is the only place in the universe that your reasoning matters.
Thank you for your time, please resume your normal arrogant bullshit.
I guess by the same token Flash on Linux is crap because "the Linux company" refused to give low-level access? No? Can it be that Adobe are just putting Windows ahead of every other platform out there?
Face it, Adobe are Microsoft's b*tch and have been for years, ref. the delay between the Windows version of an Adobe program and the Mac version. But because of the fish slapping contest going on right now they choose to blame Apple for this.
"Flash performs badly on Apples because Apple wants it to perform badly."
Really? Flash has performed badly on Mac for YEARS. Well before this whole battle for the mobile space. Vocal community complaints to Adobe fell on dead ears, it seems. I guess because they figured Mac had such a small market share on the web that they didn't need to put in serious effort to make it better.
What has Apple previously had to gain from Flash sucking? Nothing. They had plenty to lose though: The appeal of the Mac. At this point Apple has just taken it for granted that Adobe has zero interest in making Flash work well on their platform, and has committed themselves to pushing forward the web without it.
Now they've got an extremely popular mobile platform, iPhone OS. It's the number one platform for browsing the web on a phone. Adobe's woken-up and thought "Damn! We need to get in on this!", but it's far too late. They can say "We can change! Give us a chance! You're the one being evil!" all they want, but Steve Jobs has made up his mind and is giving them the cold shoulder.
Think of it like your previously dull ex-girlfriend, whom you ignored too much while you played with other girls, suddenly getting hot. You want her back, but she knows better than to hook-up with your unfaithful ass again.
Does it make you happy you're so strange?
I normally try and defend Apple, but this one has me feeling like... well, any true nerd will get the Blackadder reference in the title.
I kinda understand the "innocent explanation" for this - the Mac platform has had its share of half-assed "ports" that don't really follow Mac UI standards as well as development tools to produce such ports - but generally users and developers have eventually voted with their feet (anybody remember when Microsoft produced a Visual C++/MFC cross-compiler for Mac?) - something Adobe are risking with their current Mac offerings.
However, this could be achieved by setting UI and performance standards for apps, not the blunt instrument of dictating which programming language could be used and making it very difficult for developers to target multi-platform.
Of course - this is all Job's risk: even in the phone/tablet market, Apple only "dominates" certain narrowly defined sectors and doesn't enjoy the sort of near-total monopoly that MS enjoyed in its prime. If he decimates the iProduct developer community then its still possible for the market to show him the error of his ways.
Meanwhile, I'll repeat what I've said before: the future in mobile "Apps" might just be browser-based apps hosted by the "cloud" or on your home server which completely bypass the App store and these rules - so although the end result has to be in Javascript, you are free to use cross-compilers like this or this.
Right now, mobile internet is barely up to snuff for this, but once that improves it makes so much more sense in a world where you may have multiple mobile gadgets.
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
Nah. More like multimedia on Linux is a mess, and it's not a big enough target for Adobe to give a crap.
Its all fun and games until someone loses an eye... then its just fun.
Yeah, stupid Steve Jobs, making Flash run badly on Linux is all his fault.
No matter what kind of video it is, on my Mac Flash uses nearly 10x the amount of CPU to play the same video clip as VLC.
Basically, hogwash. Having one language and one tool chain leads to fewer methods of being able to solve problems, and reduces the utility of your computer system. Now instead of being able to use a .5mm slot head screwdriver, all I have a big ol' sledge hammer. There really is no "computer science" basis for Apple's decision. There is a marketing reason or two, though:
1. Eliminate cross platform development tools and lock in developers and users to your platform.
2. Ensure you can always put out better stuff than independent software vendors by pulling a Microsoft and adding new (undocumented or unreleased) libraries to the OS and then using the libraries to produce more functional, better integrated software than ISVs can.
3. It's easy to kill off competition or those doing things you don't like with the platform by introducing incompatibilities in system libraries.
The rest of your post, while interesting is basically speculating that Apple will create some whiz-bang complier that will solve all of the remaining big problems in computer science. I wish Apple luck, and I hope they solve at least two or three of the big challenges.
A note on languages: Objective-C does not make for instant parallelism as you still have to fix the giant game of whack-a-mole that goes on with shared memory and have a more effective way of communication between processes/threads/whatever you want to call 'em. Providing some metadata might help, but it's no magic bullet.
-- $G
Maybe, except Apple also approves of C and C++.
Reading the posts he points to, he's basically doing it because he can, and it's in his interest to force devs to spend time specifically on the iPhone:
- less dev time for other platforms
- maybe slightly better iPhone apps
- no platform comoditization
- Apps integrate OS/Hardware advances more quickly
- he wants to achieve the iPhone = more Apps = more sales = more Apps positive feedback loop.
to me the drawbacks are
- entreprises are not gonna like this, though maybe he doesn't care
- i'll take a good generic-framework, well-mastered language app over a bad specific-framework, Sorry-just-learning-ObjC one anytime
The Cloud - because you don't care if your apps and data are up in the air.
Nokia was working on an iPhone version of the Qt framework. This would have allowed developers to develop on Windows, Linux, Mac OS, Symbian, Maemo and the iPhone using the same framework. Now, the new developer agreement has pretty much put a stop to all of that.
NVIDIA has released the vdpau and API for linux a couple years ago and the Adobe flash player for 64 bit linux is still in the alpha state and has NO hardware acceleration. Are you really going to take Adobe seriously with this argument when they haven't taken advantage of publicly available hardware acceleration other systems?
Gentlemen! You can't fight in here, this is the war room!
The Gruber blog highlights the Mac Kindle app built with the QT toolkit as an example of problems of cross platform libraries causing bad user experiences. He seems quite rankled by the OK button being not quite the right size and text ever so slightly clipped. This would appear to be the fault of a lazy programmer rather than "evil QT".
I don't remember having looked closely at the OSX style guidelines but my few QT applications have the approved order of "OK" and "Cancel" and all of my elements are properly aligned and not clipped. I would hazard a guess that the native design tools do not make it impossible to make a badly designed or non-conformant GUI.
I think Jobs has erred in highlighting 3rd party programming tools as the source of problems based on Gruber's pedanticism. The only great apps that are native have been written by the big companies that can afford to spend the extra effort on a single platform.
We all know that in the future Adobe will give in, Flash will be "enhanced" especially for Apple products and it will immediately become absolutely vital for web browsing according to the Job's reality distortion field.
And does Flash perform poorly on Linux because the community wants it to perform poorly? Why is the community denying my the capability of having a good experience?
Computers allow humans to make mistakes at the fastest speeds known, with the possible exception of tequila and handguns
Does a single thing you said explain why they won't allow frameworks which compile to Objective-C?
That's where I'm having trouble. I can see a technical reason to force people to use a single language, or at least a single runtime representation, in the same way that, say, the new Windows Mobile forces you to use .NET. I don't see any technical reason for them to care what language you originally use to produce it.
Don't thank God, thank a doctor!
there's only a loose correlation between what's best for you and what you do. It'd be best for me to spend the afternoon exercising, I'm in front of Slahsdot...
Apple is good at making people desire its wares, because they look sexy, trendy, and actually usable. They are also more limited, more expensive, and with a higher purchase and use cost, than other phones. Apple has nicely moved on from "knowledge workers" to "mom and dad", other tech providers still suffer from the linux syndrome: "by nerds, for nerds", which addresses a much smaller market.
The Cloud - because you don't care if your apps and data are up in the air.
http://blogs.adobe.com/penguin.swf/2010/01/solving_different_problems.html
Its all fun and games until someone loses an eye... then its just fun.
Aside from that, plugins are at the mercy of the browser to deliver in a timely fashion. This is doubly true for the Mac where plugins tend to be windowless due the way Carbon works. Windowless plugins must scream at the browser to be repainted and to receive mouse / keyboard. The NPAPI also defines hacks so that Cocoa browsers can run Carbon plugins and vice versa which must add another layer of problems. I would not be surprised AT ALL, if performance of Flash was especially bad under Safari because of this. And if this is the case then Apple deserves more than its fair share of the blame.
> If you grab an H.264 movie and play it in QuickTime on a Mac, the CPU load is under half that of playing it in Flash.
That's actually pretty sad depending on which type of Mac you are talking about.
On some Macs, the CPU load for playing any h264 file should be no more than 10% EVER.
The GPU should be doing all the work.
A Pirate and a Puritan look the same on a balance sheet.
A note on languages: Objective-C does not make for instant parallelism as you still have to fix the giant game of whack-a-mole that goes on with shared memory and have a more effective way of communication between processes/threads/whatever you want to call 'em. Providing some metadata might help, but it's no magic bullet.
I hear the iPhone OS 4.0 supports Grand Central Dispatch. That's about as good as "instant parallelism" in many situations.
It seems to me, this just means that Adobe et al. have to make it impossible to tell that their tools were used to create the app.
What Jobs is talking about here is that he doesn't want a scenario like the Windows version of iTunes, which has an entirely different GUI and widget set than the host OS in which it is running. Applications like that seem totally out of place, and are confusing to users because they depart so drastically from the GUI design of the host OS - for example, not having the standard Windows title bar. Apple would never release a fish-out-of-water application like that for non-OS X platforms, so why should they allow other developers to do the same on the platforms they control? What a bunch of hypocrites (and in a self-serving way I'm quite happy that Apple isn't allowing CS4 as a toolset for developing iPhone apps - so for now I'd like to thank them for this decision).
Better known as 318230.
...I will recycle that remark that someone made about VLC and mplayer.
Replace MacOS with Linux and repeat.
It's sad when a company like Adobe can't even keep up with the various Free Software cabals.
A Pirate and a Puritan look the same on a balance sheet.
So how long until Apple creates an App Store for OS X, and forces Developers to only write Apps in Objective C, under NDA?
Thin client apps should not be affected by this since you would already be coding your interfaces separately for each platform for a native look and feel and having the major grunt work done on the server.
Jesus was a compassionate social conservative who called individuals to sin no more.
Speaking as someone who has to deal with 64 bit flash on linux
this was hard once, but then we got nspluginwrapper to make it easy. Then Adobe released 64 bit flash "beta" for linux (works better than many of the released versions that have passed, AFAICT) and now it's super easy. But since the iPhone doesn't come in different flavors like that (yet?) then you're not going to have that same kind of problem. Consequently, 64 bit flash is a red herring. Stop it.
Apps running using native platform tools do fairly well, cross-platform apps suck a lot of the time. You windows users have seen this too -- itunes, quicktime and safari are dogs on windows because they had to import all their own libraries.
So you're saying that because Apple is bad at cross-platform, it's a bad idea? As far as I can tell, you've offered only evidence of Apple's incompetence.
On Apple machines these are lighweight apps that are fast.
Go on, pull the other one. On Apple machines, iTunes and Quicktime are both still chunky and funky. Safari is pretty speedy, though it is not as speedy as WebKit on Linux . Or in other words, it's not really that fast. It's slower than the performance-oriented competition. Hell, it's slower than what it's based on. I consider that a failure. Apple does NOT write small, efficient applications for most any purpose.
And let's face it, as nice as open software is, working well is what sells units, ideology is secondary.
Bullshit. Polish is what sells units. Apple's stuff is shinier. But there's plenty of room for a backlash when users find that all the apps they want are on all the other phones, and the only one who doesn't have 'em is the iPhone. Give it a year and this will start to happen.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
the Wolfenstein people said it was a piece of cake porting Wolf 3D to the iPhone
I wonder if this isn't really about Apple cutting off script kiddies at the knees by now allowing half-ass interpreters and extra "layers" on top of what is their gig. and the subsequent whining as the copy/paste elite have no templates to apply their incredibly awesome skillz on.
(yes, I'm too lazy to fire up gnucharmap to get the accented e).
That's what the compose key is for. :)
Do what thou wilt shall be the whole of the Law
It funny for a technical site, no one is trying to look at this from the technical side of things. If you look at most CROSS platform libraries, you find that they always have to go to the lowest common
features. Most CROSS libraries do not expose the OS threading model, they implement threads them self. This is what java had in the beginning, (They used to be call green threads, I am not even sure if they are not still used under windows.) With Flash, I don't ever recall that under linux I saw multiple threads associated with it. (though it may be that nobody does threaded Flash apps, I don't
know.) Now, with the way that Apple is implementing background threads, seem like they are relying on the way they do threading. So if a Cross Library is doing
their own threading, or no supporting it at all, I think apple multitasking will be going out the window. So by limiting that you have to program in C/C++/OBJ-C and directly to their API they can have
better control on how they handle background tasks, and task switching. Remember they have a limited amount of memory (In today's terms), and no place to swap changed code out, I think they are
able to swap out the executable parts (to/from the executable). But need to keep the amount of active code in memory to a limit. With Apple's API they know all the threads that are running and
all the memory each thread has acquired. With some CROSS API it may expose only a single thread to Apple, they have no clue what can be run in the background, they can only do the entire
app.
Everyone is saying Apple is saying 'Screw you to Adobe', I don't believe it, I think they are making it where they are trying to produce the best experience for the end user, and decided that CROSS
libraries and Cross languages are just not feasible to support under the Multitasking environment. This is some of the same reasons why they banned Java. And I am sure this will ban MacRuby and
all the other Cross languages. So as programmers, if all you know is Flash, I will say you are not a true programmer, programmers like to learn new languages all the time, so get off you but and
learn OBJ-C, and the API.
(FLAME ON) So, all the whiners, and Flash lovers, go play on android, all I think it can do is help Apple in the long run. When people start putting all those Flash apps on their phone and find that the
phones start getting slower and slower as they put stuff in the background, and the iPhone keeps it's smooth performance. (FLAME OFF)
At that point, it would become more effective to use cross-platform tools to target everything else at the same time.
To do performance testing of your apps on various devices, as well as compatibility testing with various defective driver implementations on various devices, you have to buy one of each handset that you plan to support. In the case of iPhone OS, you can get an iPod Touch version 2 (same HW as iPhone 3G), an iPod Touch version 3 (same HW as iPhone 3GS), and an iPad, and cover everything. But in the case of Android, there aren't a lot of iPod Touch equivalents other than the Archos 5 Internet Media Tablet. Most are phones, and unlocked phone handsets aren't exactly easy to buy in the United States.
- entreprises are not gonna like this, though maybe he doesn't care
The rule in question only applies to apps distributed through the iTunes store. It has no effect on in-house apps that a company wants to deploy through their own servers.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
You guys are making Flash sound wonderful on Windows. My experience is Flash is a CPU hog on any platform. My poor 3 year old Vista laptop struggles with Flash consuming a whole core, and that's just for the ads.
www.hackzilla.org - because I can
How many times do you hear gamers complain that a game is a crappy port because it is not properly written for the platform it is on, but instead tries squeeze in the functionality of some other platform?
A program designed for multiple platforms should be split into a back-end and a front-end following the model-view-controller paradigm. The business logic, such as the physics and AI of a video game, should ideally be exactly the same code on all platforms, even as the front-end is rewritten completely for each platform. The problem here is that in order to target Windows Phone 7 Series, Android, and iPhone OS, you'll have to completely rewrite both the front-end and the back-end in C#, Java, and Objective-C respectively.
Now imagine Ballmer looked at these awful apps like iTunes degrading his platform, and announced all Windows apps must be in C++ or C#.
'We've been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.'"
Take a look at any app on the Mac that uses Qt to generate the UI. Apple has seen plenty of instances of shallow ports of Windows or X11 apps to the Mac, and they're flat-out painful.
If you can't be bothered to learn the native development tools to write iPhone and iPad apps, then don't let the door hit you on the way out. Somehow, the iPhone market will just have to get by with the tens of thousands of developers who aren't trying to live in a little C# bubble.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
I've worked for a company that produced a fully automated Java-to-Obj-C and Java-to-Brew translator and we've place app in the AppStore's top ten several times.
We take the Java bytecode and generate and intermediate representation that can then be used to re-create, say, Objective-C or C++ (BREW) code (once again: we've put several apps in the top ten on the AppStore). Of course we were also shipping on BREW and Android.
How can they detect the process is automated?
I mean, heck... We generate frakking Objective-c SOURCE CODE.
What can they dew? Ask us to hand over the source code and see that it hasn't been typed by a thousand monkeys?
#1 didn't sound THAT bad, until I remembered trying to get started in iPhone development and found out the SDK tool chain wouldn't run on anything except a Mac. Which I didn't own. Which I would have had to spend thousands of dollars on.
Um, its still their tool kit, not yours.
Like others have said, don't like the game rules, go play in a different ball field. There are other fields to play in.
---- Booth was a patriot ----
I wish someone would port your post into a car analogy. Is there any rule against that?
Oh, yeah, it's not easy to pad these out to 120 characters.
Learn to use the Compose key...
And with the bad programmars you loose the creative people that are mediocrate programmers.
Having one language, so long as it's turing-complete, shouldn't give you fewer methods to solve a problem. Now, if you're locked into a single language it would probably make it difficult to find a pre-existing library that might assist you.
I agree that there's no computer science basis for Apple's decision, but then again, Apple doesn't make their decisions based on computer science, they base them on business.
Learn something new.
And again, from the almighty Gruber:
I think the issue is a red herring, spin from Adobe intended to share the blame for Flash's Mac OS X performance with Apple. First, Flash performance gripes are not limited to H.264 video playback. Everything Flash Player does is slower on Mac OS X than Windows. What's Adobe's excuse for Flash's performance on non-H.264 video?
Second, even Apple's own QuickTime on Snow Leopard only makes use of H.264 hardware acceleration with a single graphics card: the Nvidia 9400M. If you don't have that graphics card in your Mac, you don't get H.264 hardware acceleration, period. That card is used across the board in current MacBooks and Mac Minis, but there are an awful lot of older Macs in use -- a majority I'd wager -- which don't have that card. It's also not present in current brand-new Mac Pros and most iMacs.
By the way, I love the way the Adobe guy says "Let's take for example the question of hardware acceleration for H.264 video..." OK, great. Got any OTHER examples of how Flash sucking is Apple's fault? Anything? *crickets*
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
If you've ever written software, you know there are times you have to build your own tools.
If you've ever taken that CD and copied it to, say, an iPod, you just stepped out of what the music company says you can - but fair use allows it.
So you buy this electronic device with a general purpose computer in it - and get told oh, you aren't allowed to use it as a general purpose computer and, say, create your own set of class libraries with overloaded operators that doesn't look close enough to C++ for us - and now that such fantasyland ideas have actually been published, you know there's a deep deep streak of paranoia at work.
It is well past time to draw this particular line. I am sad that anyone would support such as strike at free and open software.
Also, the extreme and practically universal applause for Apple this week has to jar one to attention. Nobody is that good, or who is paying whom...
If you were targeting several platforms from the beginning, your core code should be C/C++
Why? True, C/C++ isn't a bad choice for a cross-platform app, but cross-compilers or virtual machine based languages are perfectly valid approaches. With the main competitor, Android, using Java as its preferred language then using a Java-to-C or Java-to-javascript cross compiler, or some custom language which can cross-compile to either might make sense.
For instance, the TeX typesetting software was written in Knuth's own Pascal subset called "WEB" and has been ported to most platforms by cross-compiling to C. That would apparently be disallowed by the Apple clause.
Or, there is the Google Web Toolkit, which cross-compiles Java to Javascript - again, that seems to fall foul of the rule that "Applications must be originally written in Objective-C, C, C++, or JavaScript" - although you could still eschew the App Store and serve the application over the web with a manifest file to give it a more App-like appearance.
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
Now what might be the resource use case improvement here? I'll start the speculation with this thought and leave it to others to fill in more.
No offence, but this does smack being the thin end of a typical wedge of rationalisation that ends up justifying and "explaining" Apple's behaviour in the absense of any explanation from them.
While I'm not accusing you (specifically) of being a fanboy necessarily, Apple's secretive nature generally benefits them when combined with their rather partisan fanbase. Say nothing concrete that can be seized upon, and let people speculate, rationalise and justify your marketing decisions.
It's up to Apple to explain- or not- the reasoning behind what they do; if the latter, that's their choice, but we're not obliged to give them the benefit of the doubt. Sorry, but I don't believe the reasons behind the decision were technical, and I'm not going to buy a third-party's speculation masquerading as explanation.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
... can somebody explain why could Apple get away with this policy and why Microsoft had to introduce a browser ballot in th EU?
The bulk of the low level stuff in OS X (ie, the stuff you say they "refused to give") is open source. Perhaps Adobe doesn't know how to check code out of SVN.
CoreAnimation is well documented for developers, I don;t see how Apple could "refuse to give" this information only to Adobe. "Don't tell them about the website! Then their flash player will suck on OS X! What if they google it? They won't google it, they'll take our word for it that there's no documentation!"
Steve Jobs is wrong. Now that the Apple fanboys have gone apoplectic... The reason Steve is wrong is not that he hasn't made what appears to be a sound business decision for Apple. Its that the purported reasons for doing so on behalf of customers is assuming that there are only two choices: Apple-provided toolkits and high quality, and third-party toolkits and low-quality. This is wrong. To me it's a classic tying argument, pulling together what you want (lock-in) with what you need (high-quality) and claiming they are inseparable. If you want the apps to be high quality, have a certification program which software vendors may submit to. Ensure this certification program only lets through the high quality apps you desire. Reject the rest. Then it doesn't matter which toolkit is used for which platform. Quality problem solved, and no draconian restrictions on development methods are introduced. Concerns are once again separate and honest. But, as has already been pointed out, Apple is not interested in being honest with their customers. Steve is out for his business (as he should be). But no one should be under any illusions that this decision represents the only one which achieves high quality applications for his customers.
CoreAnimation came out a few months before Adobe released Flash 10 - nowhere near soon enough for 10 to make use of it. 10.1 will.
Its all fun and games until someone loses an eye... then its just fun.
And on that point, this Apple fan will agree with you - there is no hardware support for H.264 decoding in OS X. I'm not sure why it's not there, since it wouldn't be too hard to add. My best guess is that it's to maintain a parallel with some of the older GPU-hobbled systems that wouldn't support it (but are otherwise not that that old in computer terms).
At any rate, it should at least be an option.
The current state of flash is an *abomination* on OS X though. Back before the BBC added swf verification to their iPlayer streams, the Mac version of XBMC would play back beautiful high bitrate HD programs without the cpu even breaking sweat (on top of OS X) where the flash plugin on the same OS is struggling and pegging at least 1 core at 100%. The HD content from iPlayer is unwatchable on OS X due to frame dropping. It's better (slightly) if you go full screen, but not much.
But even leaving aside the GPU acceleration argument (and OS X should definitely have it, let's hope soon) a very high bitrate H.264 HD file is no trouble for OS X in Quicktime or XBMC, or VLC, or Mplayer. Flash is the odd one out.
I don't agree with that. Apple is still very much in the game with "knowledge workers" as you put it, seeing as how what "mom and dad" are using is an industrial strength Unix under the hood, in the case of their computers. For their phones, being intuitive, well built and easy to use is a plus for a knowledge worker (I'm still not too sure what that is). And just because it has a shiny paint job doesn't mean there is nothing substantial underneath. I consider myself a "nerd", being an embedded systems designer since way before the phrase was coined. And Apple makes stuff for ME. I don't have the time, nor the inclination to tweak & tinker. I desire Apple's wares for what they give me, and their advertising is simply telling the rest of the world what they've got. I'm not swayed by it since I usually already have my mind made up to buy or not buy the newest widget (or an upgrade) long before there is an ad for it.
What's best for me is something that does a few things very well rather than something that tries to do all things and does none very well. I'll pay a higher price for that too.
If I didn't have absolutely NOTHING to do, I wouldn't be here.
http://www.kaourantin.net/2010/02/core-animation.html
Its all fun and games until someone loses an eye... then its just fun.
Sure, if by "thousands of dollars" you mean, "$599 for a brand new one".
Stop drinking the kool aid ... Flash perform badly because Adobe cannot be bothered to use the same exact API as everybody else and bitch for Apple to do it for them. Same happened with Photoshop CS3 - yeah big evil Apple didnt want to port the crappy obsolete carbon to 64bit - so they ignored 64bits editions until they started to look stupid with their own customers.
Adobe doesnt give a shit about Mac anymore, hasnt for years - they try to play hardball on Apple so that Apple do the difficult bits for them so they can focus solely on Windows.
The fact is - Apple has moved away from graphist crowd - Mac are regular joe products now - Apple has a lot less to lose than Adobe those days, so they went on some lame crusade to make Adobe life miserable. I cant say I sympathise with Apple - but Adobe is hardly a poor victim here - they had it coming.
This is the real reason why apple wants to keep flash off of the iPhone. Flash would run fine on the iPhone and Adobe would bend over backwards to make it work to Job's satisfaction. But Apple does not want any competition for native apps on the platform. They get a cut of everything that sells on the iPhone marketplace they don't get a cut if you play a flash game through the browser. Also flash will be cross platform mobile it' a better Java than Java in the respect that it's a virtual machine that actually works and produces attractive apps cross platform. So it's likely if they allowed flash on the platform that the flash/flex apps that worked well on iPhone would also work well on Android and Blackberry and they don't want that competition they want lock in to the iPhone platform. So it's never been about getting flash to run on the hardware it's always been about control and money. It's good business wise but it's anti competitive and bad for consumers.
Be fully aware of who your are doing business when you do business with Apple. If they had won the PC wars and we all had Macs they would be attractive and work well but Apples business practices and lock in would make Microsoft look like absolute saints.
And what's more, the way Adobe wants to do it is "in Flash". They could just use Apple's decoder, but the whole point is to keep all web video playing in Flash so that developers need to keep buying new versions of Flash.
What's more, if you read Adobe's on statements on the issue, you eventually realize that a lot of their performance problems come down to this: Apple has two APIs, Carbon and Cocoa. Carbon is basically a depreciated legacy API that exists in OSX to make it easier to allow developers to port OS9 applications to OSX, but Adobe didn't want to rewrite their applications so they kept using the depreciated API. Apple wasn't adding new features to Carbon and so it never got hardware acceleration support for video decoding, which meant that Adobe's applications didn't have access to hardware acceleration support.
Adobe is trying to blame Apple, but their real complaint against Apple is, "In the 10 years that OSX has been out, we never bothered to rewrite their plugin to stop using the depreciate OS9 APIs.
He said "OpelCL and similar" - OpenCL is not the only documented framework on OS X that Adobe could have used. And it's not like other third party developers couldn't make decently-performing apps and plugins on OS X before that. VLC plays back video content just fine, and has done for ages. There are even third party SWF players that perform better than the flash plugin itself from Adobe.
I used to produce commercial video for a living, and part of the production would sometimes feature web delivery, at a time when flash streaming was the "best" way to ensure cross-browser compatibility. At the time we were doing this output from Final Cut Studio and using On2's flash video encoder/builder to create self contained flash movies that could be included on websites. The inbuilt flash player from On2 performed better than the same file in the browser, so either they know something about Flash that Adobe doesn't, or Adobe doesn't really care about the OS X version of the plugin. I suspect the latter.
Apple released OpenCL to make things easier for developers, so instead of having to do A, B, C, D, E to solve a problem, the API already has A, B and C done for you, cutting your workload. It doesn't mean that you couldn't do it on OS X before. Apple also aren't the only OS vendor to add new APIs with new versions.
If you remember the demo on the release of CoreVideo, Steve told the crowd about the differences between two identical-looking videos - one of them being the iTunes Album Artwork screensaver, with the tiles of album covers that flip over. The number of lines of code needed to make that screensaver (by Apple) was an order of magnitude more, compared to the version they just produced using the new framework that they were releasing - ie, they didn't have it "reserved for themselves in a proprietary manner" before that time.
No, it's clear from third party development on OS X (as well as the extensive documentation on Apple's site for developers) that the faults with flash like squarely at Adobe's door.
How can VLC and mplayer decode video so much better than the flash player, even though they have the same API access? (Answer: They use more than just one CPU when playing back, and don't use a complete CPU when idleing.)
Don't give them ideas! Flash using 100% of one CPU, no matter how powerful the CPU and how tiny the animation is, that is bad enough. I wouldn't want them to use 100% of 8 CPUs on my MacPro.
Yes there is hardware assist for H.264 on MacOS X, specifically (and unfortunately at this point only) on NVIDIA 9400M cards. This has been widely reported. Nicly the lower-end macs consitanlty have this, so the computers most in need have this acceleration avalible.
Hopefully this hardware assist will be widened out a bit later.
" intermediate layers between the platform and the developer"
Does he mean like the operating system?
I don't understand what you are objecting to in his post.
He was complaining that restricting development to one language and tool chain allows less flexibility, and you just pointed out several tool chains with even more supported languages that you consider innovative. Then you point out they all have a common interface layer (ie, an *abstraction*, which Apple seems to be trying to limit). Which part of his assertion in absurd, again?
"With other languages, it is not so clear cut. The Java crowd, for example, has some good programmers, but a lot of terrible ones. The reason is that you can get an app with terrible structure and design working in Java, while it almost impossible in C/C++/ObjC."
My experience with Java suggests that you have to do things the "proper" way even if you don't want to. I think it's easier to create a poorly structured program in C/C++ (I haven't used ObjC).
No, indeed but CoreAnimation just makes it *easier*, it doesn't mean things weren't impossible before, it just required a bit more effort.
The charge is that Apple deliberately hobbled Adobe's attempts to make Flash decent on OS X when it's really just a case of Adobe not committing enough resources to make it work well (despite other developers, even open source projects that are maintained in spare time (ie, not the core business of the people working on it) got much better performance on OS X, even without CoreAnimation.
Ah yes, I forgot about the 9400M - I remember a forum discussion about it that it seemed to be a *very specific* implementation - ie, that even cards with the same hardware that were not 9400M's (even a more powerful Nvidia card based on the same core) would not work.
But you're right, I should have remembered that the 9400M has acceleration in OS X.
Yes, I don't need Cider.
But I really should have it!
Apps inside Cider wrappers were so awesome!
*please note sarcasm, and please someone go outside and find whoever thought Cider was acceptable performance on OS X and beat them with a sock full of oranges.
The main obstacle to making a 3d game on the iphone that can compete with the PSP right now is the OpenGL driver, which adds so much overhead that it usually shows up at the top of the profiler for any game. If they'd let us direct access to the hardware we'd be able to push twice as much polygons, but instead we're stuck with this "intermediate layer". Does this mean they'll get rid of it?
--
Stay tuned for some shock and awe coming right up after this messages!
Having had to do development on the iPhone/iPod Touch for work, I can tell you that I personally hate Objective C/XCode/Cocoa. It's one of the worst designed programming languages I have ever used. The vector-based graphics and animations are great, but the language is so backwards and retarded. It's not very hard once you figure out how to do stuff, it's just a pain because it is so unconventional. And I mean that not in a good way. Having done years and years of development in C++, Java, VB.Net, C#, and mostly recently WPF applications with C#, Objective C just feels inferior in EVERY way. Any experienced GUI developer who has had to do anything with the absolutely atrocious XCode Interface Builder knows what I'm talking about. (Although I would argue that doing GUI work in Java using ANY of the GUI frameworks is 10 times more painful than using the XCode Interface Builder. If you want to do good GUI's, Java aint the right tool, period.) I laugh at Apple wanting to force developers to use their own language. What did you expect from Apple? They are draconian and anti-open source and anti-developer. This is the reason that eventually the iCrap will be overshadowed by better products from competitors in the future.
Having one language, so long as it's turing-complete, shouldn't give you fewer methods to solve a problem.
Sure it can. Compare two Turing-complete languages, identical in every way except that one supports unsigned integers and the other doesn't. Right off the bat, one offers more ways to do some things than the other.
Please stand clear of the doors, por favor mantenganse alejado de las puertas
Look at the success of the JVM, and .Net and the CLI. look at the GNU (multi-language) compiler.
Ok, they are great innovations, all of which support multiple languages. Your point is what?
-- $G
+179 for a monitor and $70 for sales tax. Puts you pretty close to a grand if you buy the extended warranty.
-- $G
As if the Microsoft monopoly wasn't bad enough in the 90's, now we get a modern-day Apple one that makes Microsoft pale in comparison. ... what Microsoft actually did.
Apple has some market power, and this license change is sucky and genuinely anti-competitive, but it doesn't even hold a candle to the crap that Microsoft pulled or even the position that Microsoft had in the market during their history, and if you really believe that statement above, the journey from where you are now to even a glimmer of dim understanding is going to be a long, hard, and possibly untenable one for you.
Tweet, tweet.
So how exactly would you handle drawing within a browser plugin? I've pasted this elsewhere in this thread, but for the sake of showing that it isn't as simple as you and others make it seem: http://www.kaourantin.net/2010/02/core-animation.html
Its all fun and games until someone loses an eye... then its just fun.
Oh I know it's not, as shown by the large amount of code needed to write something like the Album Artwork screensaver (which I know it not a browser plugin) compared to the coded needed when you have the new API.
It was hard, it wasn't impossible.
I'm curious as to how exactly you think C# and .NET are a "god-awful hack of a language and framework". I may not be willing to go anywhere near them due to them being controlled by Microsoft, but that aside, they are both quite good from my experience. Said Microsoft-is-evil issue aside, I'd much, much rather use them than Objective-C.
The Daring Fireball article is obtuse and decidedly one-sided; you know how the cards are going to fall before they've even left the dealer's hand.
First, I suspect that this is only creating a pattern of diminishing returns. A smaller developer base will produce a smaller field of applications, attracting a smaller audience (...and repeat...)
Second, if you have a choice of becoming proficient on a specific subset of tools that can only be used to target a specific audience, you better hope that there are many riches to be found in your narrow niche. That is not true of the Apple store, where Chinese copy-cat apps and most favored nation statutes and poor delivery system (I never seen such a feature-poor store in my life) make extremely difficult to make a profit, never mind the fact that you first have to get over the opaque and unfathomable Apple App Approval process.
Third, programming towards a platform that is defined by such questionable ethics and so unquestionable self-serving (if you believe it is about quality you are fooling yourself ... this is about control and profit) should be considered as an ethical question as well as financial. That's un-American, I realize, but then I'm not American.
Best solution for Adobe: indefinitely delay CS5 for the Mac. Release it when Jobs is dead and is isolationist philosophy is gone with him. To be real jerks, Adobe could include a $100.00 credit towards the purchase of Windows 7 for their Mac users.
Compose key? What the heck? I don't see such a beast on any keyboard I've ever owned.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
You could simply create your own unsigned integer data type that corrected any problems, and then used it.
Learn something new.
Gruber writes:
I can think of several top-notch cross-platform apps I use on my Mac: Firefox, Thunderbird, jEdit, GMail, Flickr and Delicious - to name a few.
Yes, I realize that Web apps are permitted on the iPhone (so long as they work with whatever features Safari chooses to implement). The point is that under these rules (including the older rule against interpreted languages) the invention of most Web technology would not have happened. The next breakthrough platform, whatever it might be, likely won't be developed for iPhone. If the industry follows Apple's lead and lock down their platforms, it might not happen at all.
Maybe Jobs is fine with that. He doesn't want Platform Next threatening his control the way the Web threatened Microsoft. Maybe he's wrong: maybe the next platform will be for gaming or something else that doesn't threaten his core business. Regardless, I wouldn't pretend for a moment this attitude is good for users.
The long-term interests of users point in another direction also. I use Thunderbird, not Mail, because it does not tie me to Mac. My deliberate choice of cross platform apps and data formats (Thunderbird, OpenOffice, jEdit) was what allowed me to jump from Windows to Mac in the first place. While many Mac-specific apps are technically very good, my decision to remain as platform agnostic as possible is what will allow me to jump away again. It is true that many users do not realize that freedom is in their long-term best interests. You may accuse me of elitism for claiming to know better. But that is exactly what Jobs is doing. He says he knows best. At least my claim does not involve forcing anyone to make my choice, or making it difficult to change their minds later.
It should, that's still pretty decent and only 500MHz under the max AMD can come up with.
Actually it's only 687MB on my parents system. Quit pulling out numbers you haven't a clue of.
Some generic card. It shouldn't matter.
Software decoding of H.264 is slow on any system I've ever used! Flash was never meant for that task! That's the freaking point! Flash has been co-opted by Adobe and others for tasks it was never meant for.
Go crawl back in your troll hole.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
support Apple's decision.
What's next, will devs have to give up their first born male child in order to pray at the alter of Jobs?
You folks just don't get it. Apple really doesn't want anyone else developing apps for the iPhone - they want that playground all to themselves.
They only started allowing indies to be included in the app store to get the momentum going. Now they're going to continue to squeeze devs, putting more and more restrictions on how and what you can develop for their platform. Any really innovative (and profitable) apps that appear will no doubt eventually be pushed out when Apple provides their own version and gives it away for free.
Those that think the app store is the way to riches haven't been paying attention.
With over 65,000 apps (last count I saw) in the app store to compete with and with most apps going for $0.99, is this really the way to get rich? I certainly is for apple, given their $99 fee for the privileges of being able to submit your apps to the store (with no refund if they turn you down). Not to mention their cut of any sales.
I haven't seen this kind of arrogance since the late 70s from IBM when they were an empire. Even Microsoft recognized the benefits of catering to developers to increase their market share.
C'mon indy developers, do we really want to grovel and feed off the crumbs dropped from Apples table, or do we have the intestinal fortitude to better them at their own game? Whether it's Android or some other platform, can't we best them with our brilliance or does Apple posses some magic potion that non-Apple engineers and developers can't compete with?
As cool as the Android platform is, in order to drive lemming customers away from Apple, it's going to have to get better - and fast. It's going to have to be better on just about every front - from hardware (sleeker, faster, lighter, longer battery life) to software (more intuitive interface, better app multitasking and interoperability, less restrictions on what is allowed to be done).
Apple does have an Achilles heal and that is that they are a slave to their own success. One of the reasons they claim for placing restrictions on devs is that they don't want to impact the user experience with inferior apps (i.e. apps that drain the battery, slow the interface, etc). With an alternative platform, the customer can make that decision on their own. If I want to fire up an app that eats the CPU and memory resources up and drains the battery, but does something amazing that I want it to do, I should be able to run it (maybe I only run it while I'm tethered and charging and not doing anything else with the phone). The point is, I don't want Apple dictating to me what I can do with my phone that I paid a lot of $$$ for.
If I can show a friend how much better my Android (or whatever) phone is than their iPhone - and I mean every aspect, it will begin to reclaim the "cool" factor from Apple which has had it too long already.
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
I guess I would have to map that out, then.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
You have been able to deep link into Flash for years. And honestly, if you think touchscreen phones are over glorified, I'm not sure why you're involving yourself in this debate at all.
It's like you brought a big swath of your lawn up in here, laid it down, and asked everyone to get off of it.
meep
Your forgetting that proper video players just have to output yuv12 or whatever colour format the video is in. Flash has to convert to rgb32 and then potentially overlay html, css, javascript etc over the top of that. The GPU accelerated windows version will do that in hardware when possible something that apparently isn't possible on OSX.
It's not. It still requires you to explicitly parallelize code and specify dependencies. It also does nothing to deal with the problem of memory sharing.
Of course you can. I have all of them installed on one computer. They don't all have to be mixed into the same app, but each can be used to create different apps. That's the whole point.
(though with JNI you *can* use both a JVM and gcc...)
"STEVE:
We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform."
So what he's saying is that even all the bullshit APIs on the Apple computers they make is responsible for producing sub-standard applications. After all, Apple makes most of those 'intermediate layers.'
ASM FTW
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
Does Flash on Linux and Solaris also suck because Apple wants those to suck too?
If you don't like riding with your OCD acquaintance that requires you to remove your shoes and put on a Tyvek suit before getting in his oh-so-pristine car, then don't ride with him.
[b.belong('us') for b in bases if b.owner() == 'you']
"Please explain how Objective C is god-awful."
I can write the same thing in ASM and have it be 1/100th of the size and 4,000X faster. Sure it might take LONGER to write and develop but in the end it's much more secure when you don't have to rely upon vulnerable libraries and just speak natively to the machine instead.
You also actually LEARN how the machine works and the intricacies of the silicon, instead of just praying the error-correction in the executable works as intended.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
So how do you explain the difference between the XBMC performance and the flash plugin? Both of them pull from the same source (and the addition of the flash verification nastiness to the iPlayer streams recently has broken the XBMC plugin). XBMC can decode that flash stream with H.264 content just fine with almost no cpu use at all (even ignoring the lack of hardware decoding).
Even with all the extra stuff that the flash plugin "might" have to do (and an iPlayer stream is pretty basic as flash comes) there's no reason it should be so awfully, awfully behind.
Are you telling me that it's normal that a 480i SD stream in a flash container should tax a 2Ghz Core 2 Duo, even with a lack of H.264 hardware GPU decoding?
Please explain how Objective C is god-awful.
No namespaces. More brackets than Lisp. Lame. ~
There really is no "computer science" basis for Apple's decision.
True, but there is a Software Engineering rationale for Apple's decision.
I run a software engineering department. Yep, many of my guys have computer science degrees, but we're in the business of putting rubber on the road.
The more good, reliable, maintained tools, the better. However, by far, most tools are not good, reliable or maintained. These tools are rarely good for the practice of software engineering. And almost every software engineer I know has been screwed at one time or another by such pretenders.
The short answer is that designs last for a long time, but if your product needs to have a life, be nimble enough to shift away from any 3rd party tool at any time. Otherwise, an acquisition, bankruptcy, or mere business decision by a 3rd party can literally kill your business. There are almost zero businesses that want to lock themselves into any platform... including Flash, Sharepoint or the iPhone.
Developers that were able to quickly get their sophisticated game software on the iPhone did it because they have awesome design practices that let them reuse their designs on any platform. The easy part was writing the code.
So LaTeX sucks on Apple?
Face it, people that can create complex applications (e.g. ones with a GUI) with C/C++/Obj C know what they are doing, because if they do not, they fail pretty quickly.
Vast majority of applications for Windows is written either in C, or in C++ ...
... and that you come from an area where the government chose a wireless standard for a whole country, so choosing a phone doesn't mean choosing a wireless carrier. The US, for good or ill, didn't do that. The market here is fragmented to the point that the two major GSM carriers use different frequencies for their 3G service - if you jailbreak an iPhone and move it to T-Mobile, you can only get EDGE data. There is hope that when 4G gets rolled out, it will be broadly cross-carrier compatible.
To a Lisp hacker, XML is S-expressions in drag.
Mac users had to settle for being locked out, shit on, and ignored for many, many years. Suddenly the servant is the master and everyone's whining about how Adobe isn't allowed to continue to foist their buggy plug in and dev tools on us anymore. Grow up. Compete. Make a decent HTML 5 animation editor that doesn't suck like all the other Mac software you've put out in the last 10 years.
"The world is a construct of forceful imagination. Those who don't know walk around in the reailties of those who do"
"itunes, quicktime and safari are dogs on windows because" Apple made them poorly (probably partly due to insisting on carrying as much of OSX peculiarities as possible), not because it's inherently that much harder to do cross platform.
You just have to do it properly. Witness Google Earth, VLC, Last.fm player, SMPlayer, TeamSpeak, Stellarium, Scribus, Psi, LyX, Autodesk Maya, VirtualBox, Arora. Heck, many of those were not very far from simple recompile to make them crossplatform; and work fine everywhere.
One that hath name thou can not otter
You need to RTFA. You can't compare Flash with QuickTime because QT does not support RGB compositing on top of the video, a feature that is very popular with Flash movies.
Isn't Python out of the question on the iPhone now?...
One that hath name thou can not otter
Which is funny, because theres this whole API built around streaming video that I use on a daily basis that lets me play h.264 video in my applications.
Anyone who believes that particular statement is ... to put it lightly, a total and complete fucking moron.
Adobe CAN do it, they just don't. Adobe COULD make their apps like Photoshop work on a case sensitive filesystem, but they still don't. 10 years later and they still havent' fixed case sensitivity issues.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
I've heard this before, but it keeps being nonsense. QuickTime can use an OpenGL texture as a target. It also supports integration with CoreVideo for arbitrary postprocessing and compositing steps. You can use Quartz Composer to produce animations composited on top of things played back with QuickTime. Now, possibly Adobe devs can't RTFM and so don't know how to do any of these things, but they're actually not hard.
I am TheRaven on Soylent News
I trust you do all of your programming in BrainFuck right?
Face it, even if any Turing complete language can do what any other Turing complete language can do, sometimes there are write languages for the job, and sometimes there are wrong languages for the job.
"linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
In the words of Joe Clark:
This is not about you programming Python on your microwave, it's about users doing their fucking work. Are they going to benefit from some half ass attempt to run your shit on a phone? no? then go do that on the Android Market.
The motto "It just works" requires some level of control. Otherwise users (not you fellow ./, this was never about you) are back to square one worrying about installing apps that break, malfunction, or are plain retarded. Gruber said it right: "Apple doesn’t want everywhere, they just want everywhere good".
... someone could create tools to turn iPhone apps into apps for other platforms downstream from the Apple dev tools...
Like anyone can even know that
Firstly, I didn't do that much iPhone development, partially because I disliked it so much. I admit that I am not educated enough about the language to speak authoritatively. I'm just giving my impression. If Apple doesn't like it, there are several options. One of them is to improve the experience for developers like me. Another is to ignore me, because I'm just one developer.
1. You're right. Syntax is subjective, and I personally think that Objective C's syntax is horrible. It's just my opinion.
2. Part of the reason I don't like it admittedly comes down to the fact that I jumped into some iPhone programming without actually learning the language properly. With that in mind (my lack of understanding), I find the way modifiers are specified to be strange, such as the - for instance methods.
3. XCode is primitive. It only seems modern until you use VS.Net 2008 or later. Visual Studio blows it away. I'm happy to be shown to be an idiot in most of the other points, but until you have used Visual Studio, you can't really talk about what makes a modern IDE.
4. I understand, but I just don't like the amount of modifiers involved in declarations, and it feels like a step back. I learned about memory management back at university. I always give thought to what data structures I use for an given purpose, but I have grown beyond actually wanting to manage the memory of objects myself. I acknowledge that when there are experts writing software specifically to manage memory, they are probably going to do a better job than me. And I could be contributing value to the business by writing software that does stuff, rather than managing the memory of the software that does stuff. I've done assembler, but I'd like to work at a higher level of abstraction now that I understand how the fundamentals work.
5. I can't remember is that much detail, but I remember having to write the signature, then the autoproperty, and I think there was something else that needed to be written to get them to work.
6. It felt more like a few applications loosely tied together. They are all separate apps that are called from each other, but that is only integrated for low values of integrated. Once again, try VS.NET 2008/2010 and get back to me.
I wasn't trying to troll. I just gave my opinion on not liking the language and tools. I feel dirty when I say that MS has done something well, but I have to give credit where credit is due.
I'm gonna need a spec.
Who buys extended warranties? They are a scam when it comes to rust-proofing your car, they are a scam when it comes to your computer.
i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
Unless you happen to be Andre the Giant, beating someone with a sock full of oranges isn't going to net you much.
If you changed citrus fruits or containers, or both, you might get better results. Like beating someone with a pillowcase full of satsumas.
Non impediti ratione cogitationus.
But after doing a project in Visual Studio 2008 recently, I just gave up on the intellisense and kept the MFC documentation open on a second monitor.
Obviously you don't know what you're talking about... You keep referencing MFC and Visual Studio 2008 together like they are somehow related. If you were doing something in Visual Studio 2008, you were unlikely developing a MFC app. MFC is ancient and rarely used anymore. You were either doing something in WinForms, WPF, or a console app. If you think C# is a god-awful hack of language, then you, sir, are an idiot. Go play with your cocoa and let us real developers do the real work.
Nope, sorry. QuickTime is not a Cocoa API, it's exposed to both QuickTime and Carbon. CoreVideo sits under Cocoa, as does OpenGL. You don't need to use Cocoa to use any of these APIs.
I am TheRaven on Soylent News
C and C++ are great langauges.
I guess all the script kiddies are whining because they can't handle a language that bites you if you're a hacky programmer.
While I appreciate your comment, take it from somebody who's been on a picket line: don't expect your opinions and public shaming to make much of a difference when there's money to be made.
And that's marching in front of an employer's door -- I actually had to get out of bed to do that. Everyone I see criticizing this decision is doing it from the comfort of their (often enough Apple) keyboards.
Don't blame me, I voted for Baltar.
Carbon is basically a depreciated legacy API that exists in OSX to make it easier to allow developers to port OS9 applications to OSX, but Adobe didn't want to rewrite their applications so they kept using the depreciated API.
And this is also an interesting point, regarding Apple.
Way back in 1997, Apple told everyone that the future was "Rhapsody" and we were all going to rewrite our applications in Objective-C and everything would be wonderful. Developers, by and large, said, "So we're going to take decades of work and rewrite it in a 'weird' language just so we can work on your new operating system? Thanks, but if we're going to rewrite decades of work, we'll do it for Windows. Nice working with you."
So back in 1998, Apple told everyone that future was Mac OS X and that they'd meet us half-way or so. Drag your code up to at least System 7 standards and we'll do the rest. That was Carbon. Of course, developers rightly said, "Oh, but you're not going to be supporting Carbon beyond that." "No, no!" said Apple. "We understand your investment and we're going to keep supporting Carbon! That's why the Finder is in Carbon and will remain so! Trust us--Carbon applications will always be on equal footing with Cocoa applications!"
Yeah, right.
For example, Apple insisted that the future for Carbon apps doing UI was HIViews. "Use HIViews and we'll continue to support you!" They exclaimed. So Adobe rewrote all their stuff to use HIViews. And what happens? "Oh, HIViews aren't 64-bit compatible and they never will be. You have to rewrite all your UI code in Cocoa." So much for continuing to support you, huh?
As long as they can read your email, your documents, your voicemail messages, perform data mining on your publicly-available personal information in order to constantly present you with targeted advertising.
Don't blame me, I voted for Baltar.
Apps running using native platform tools do fairly well, cross-platform apps suck a lot of the time.
Agreed. That said...
I've used a lot of dopey "utility" applications written in Java. The interfaces are horrible. But they do their job. Would I rather have a nice, native, easy to use application? Undoubtedly. But I'd rather be able to do the task than not do the task, because if it wasn't for the Java application, I'd be out of luck.
At a cost of resources, whether it's memory, or CPU time, or whatever. Rolling your own types wouldn't be equivalent to having native support in the language, and that can be a big deal in resource-limited environments. That was my point. Of course, this also assumes that you can extend/create new types. Not all languages support this, and require that you do all kinds of ugly gymnastics in code to support the same functionality.
Please stand clear of the doors, por favor mantenganse alejado de las puertas
It was a general "for instance" that I gave most people credit for being able to pick up on by themselves.
Please stand clear of the doors, por favor mantenganse alejado de las puertas
Well I don't remember all of that, but the writing has been on the wall regarding Carbon for several years now. Adobe doesn't really have any reason to be surprised that Apple is pushing people to Cocoa. I don't know that Apple has made official announcements, but it was clear they were looking to move away from carbon for at least the past... 5 years or so...?
Ultimately, you're talking about a technology company who promised they'd support an API for the foreseeable future, and then is dropping the API after 12 years. 12 years is quite a long time. 12 years ago, Microsoft hadn't yet released Windows 2000. The first iPod hadn't been released. Photoshop was at... like version 5. Adobe CS1 wouldn't be released for another 5 years, and we're now on CS5.
Its not a matter of a slot head screw driver vs a sledgehammer. Its whether Apple should allow non-Metric tools when all the bolts are currently metric sized. Some people want to add a layer of bolt adapters so they can continue to use their old and friendly non-metric sized tools. Apple says fudge that, just buy metric ones.
I think iPhones account for less than 20% of smartphone sales, world-wide.
(Disclosure: I own a modest number of Apple shares.)
Ben "You have your mind on computers, it seems."
How about if you plug into your existing monitor and no extended warrenty?
Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
I think that was an analogy, and not meant as an exhaustive list of features that a particular group of languages do or don't have.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
They aren't just metric, they're heptagonal, you can only buy them from Apple and they cost twice as much as ordinary ones. But they're really nice and shiny.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
some good information.Thanks!
I can only assume that the .NET and Adobe compilers generate code that uses the Objective-C libraries. Considering Apple only checks that you're using the public frameworks, what is the big deal? It's not like they're going to be able to prove you were using something other than Objective-C.
I do know the .NET framework takes up a ridiculous 9+MB of space for even a hello world app, and I'm not opposed to getting rid of that crap.
Besides, the apps that take real advantage of the phone are going to be written in the native language anyway, purely so they can keep up with the feature set released by Apple.
He said two languages. C, C++ and Obj-C is three. If you're going to be overly literal...
Just because you can do something doesn't mean you should. Phones aren't gaming consoles. Yet they are used as one now. Does that make games a good fit for phones? No, it just means you can do it. I didn't say the games weren't good. I said they aren't a good fit for the medium (which is poorly supported on any non-Windows platform).
But that depends solely on what games you are talking about, many games ARE fit for and even SUPERIOR on that platform. For example Angry Birds, great on a touchscreen phone, would be awful on a console. Conversely Nazi Zombies, great on a console, rubbish on a touchscreen phone. There is no rule that 'games suck on X platform and are great Y platform'.
People are complaining "I can't write my app in precious language X and cross compile it (or whatever conversion they do) to run on iPhone" whether language X be Java, Flash or whatever.
Has anyone ever considered going to other way? Write something in Objective-C and cross compile to other platforms? Hell, most of the specifications are open, we even have GNUStep! It's really not THAT complicated a language, C with a Smalltalk style OO model strapped to it and a few libraries.
Why not have a converter that takes an Objective-C iPhone app's code and converts it to Dalvik, .NET or whatever your other targets are, instead of moaning because you can't write your app in Java or whatever you pick?
Seems to be all one sided, even lazy, if you ask me. Objective-C isn't THAT hard to learn, and the majority of specs are open.
You will be missed. Seriously.
The counter is to build the translation tools for the other phones. Have Google and Microsoft make easy iPhone App porting tools. Embrace and extend.
If you are not writing in assembler, or something like C without frameworks, there are intermediate layers. I quit working in the Windows arena because I objected to the force Microsoft was bringing to bare on programmers to writing using Microsoft language tools calling Microsoft frameworks targeting Microsoft intermediate code, executed my Microsoft common language runtimes. After Microsoft declared Visual Basic was the best language for writing Windows apps, I lost interest. In my mind the trusted computing initiative was more like the closed computing initiative. Citizens cannot be trusted to write real code. Only Microsoft staff because they are more trustworthy. I jumped ship to Apple and bought some Macs. I never became a fanboi about Mac style development though and still write most of my code at the command line with GNU tools. It is my way to like to be closer to the hardware because it changes more slowly. Writing programs that interface with and comply with vendor software layers is a life draining exercise and the windows of opportunity are so small these days, I can't believe it. The iPhone though is the pathological case of all these problems, and as a software engineer, a goodly part of my life has been spent improving language tools, and I find it wrong that Apple is taking a position that only they can write language tools for their ubiquitous instrument. My experience with Apple iPhone programming was such that after the first year, there was no way I would pay them again for the iPhone development program. While it may be popular, I find the App-Store to be the worst marketing environment I could have imagined, and that alone will cause people to think about alternatives to the iPhone. Anyway, I just don't like objective C or Apple's frameworks, and with Apple's current policies, that leaves me out of things I guess. The point I was trying to get to though is that on a platform as ubiquitous as the iPhone, I think it would be great of the public had the benefit of public inventiveness helping the platform, and I don;'t believe that Apple's Languages and Apple's frameworks, and Apple's Applications are the best that could be. Apple doesn't employ the best engineering in the world, just some good ones. Look how popular the PC became, and although IBM did lose control, look what it did for personal computing
If you are having problems affording a $800 computer, being able to afford getting it fixed (and continue earning) may be an issue. A $150 warranty isn't a bad deal when put in that context.
-- $G
It only takes a few killer apps that can't reach the iPhone due to Apple's control-freakness to tip the balance away to some other platform.
Steve Jobs should know, of all people. Apple was once so dominant in the field of personal computers it could laugh at IBM, much like the iPhone in smartphones today. Well, guess what? A few years down the road, IBM's presence in the Macintosh core market was no longer laughing matter.
Expanded comment at http://grenouille-bouillie.blogspot.com/2010/04/steve-jobs-and-iphone-lockdown.html
-- Did you try Tao3D? http://tao3d.sourceforge.net
It shouldnt give you fewer methods to solve a problem.
It will give you less problem solvers.
You're making two big assumptions. One is that if QuickTime actually can do whatever Flash needs to do hardware-accelerated, it's not using a private API. Adobe have asserted not that the API doesn't exist, but that they aren't allowed to use it.
The second is that Adobe must be liars. I see no evidence that this is the case. Why should anyone automatically assume they are liars just because they don't like the answer? If the performance of Flash on MacOS X was really just bugs or "lazyness" on their part, the far better PR solution would be to say "Flash Player 10.2, coming out Any Day Now, makes things WAAAAY better and here's a rough beta to prove it!". Saying "sorry we can't solve this, apple won't let us" is probably the worst possible answer because it sends a powerful message to Flash devs about the platform they are working with and what the can expect in future.
In short, apply Occams Razor. Adobe say the API they need is not available because Apple won't expose it publically. Now you can try and rationalize that away by assuming that the Flash devs just haven't bothered to read the docs, but the simplest explanation is that are telling the truth.
beat them with a sock full of oranges.
make it Apples ;)
If the performance of Flash on MacOS X was really just bugs
Given that QuickTime Player, which wraps a public API for H.264 decoding, and VLC, which has its own H.264 implementation, are both significantly faster than Flash (by a factor of 2 or more), why would I believe anything other than incompetence from Adobe? When your implementation is much slower than everyone else's and you say 'it's because the API we need doesn't exist!' you don't deserve to be believed.
I am TheRaven on Soylent News
of formatting annoys me !
# cat
Damn, my RAM is full of llamas.
Again, just because games are designed for a platform does not make that platform good for games. Just because Angry Birds was designed with a touch screen in mind does not make a PHONE a good platform for a game.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Really? Then you need to let flash website developers know. I've yet to come across a modern site, done entirely in flash, that allows you to deep link.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
I'm OS X user, but I think it's time to re-think this choice. Apple is getting a little too fascist for my taste, even though I don't develop software specifically for OS X, but still I don't feel it's good to sent my support dollars to them and give them the wrong idea that it's ok to continue to be assholes.
By the way I would never develop software for desktop or mobile anyway. It's 2010 after all :D.
Desktop is the domain of a 0.01% of developers now who mainly work in multi-media, heavy CPU domains (like image/video/sound processing). Rest of the world lives online (even in the traditionally desktop world like insurance and banking).
As the island of our knowledge grows, so does the shore of our ignorance.
Do it Apple's way. Phones aren't a gaming platform? Look again, junior...
Ask Me About... The 80's!
A lot of developers will just walk away.
I'm personally about to start my 1st Android app. I thought it was completely original as an idea, but someone pointed out that there's already an iPhone app that does something similar.
Now, I'm still going to do it for Android, but what with there already being a competitor for iPhone, the Mac overheads and having to learn Objective-C, I won't bother.
And I have no doubt that with what I was doing (quite straightforward GUI form input/output) that using a generator would add little to the performance of the App over handcoding it.
They'll end up with what they've got on Mac if they're not careful - either giant apps, or apps coded by Mac enthusiasts.
On top of TheRaven64's reply, this also only affects video and only affects Flash 10.1.
Ever compared Flash 10 on both platforms? No video acceleration either way, but it still runs a ton better on Windows. Flash has been terrible on Mac for years, hardware video acceleration is a feature that came around in the last few months. Adobe is trying to weasel around the fact that they just can't seem to make a plugin worth a shit (remember that even on platforms like Windows where it's fast, it's still getting exploited and/or crashing quite regularly, and let's not even get started on their PDF reader).
I used to get high on life, but I developed a tolerance. Now I need something stronger.
of course, you don't have to write apps in c/c++/obj-c. http://tetontech.wordpress.com/
This is probably a lame sig.
Actually a very good parallel. If you see the way that kids behave, the one who changes the rules and behaves like a pedant about goal decisions might win the game today, but all that happens is that eventually, the other kids stop calling on him.
I am a mobile developer that has worked on android mostly but my company is considering a product that would be cross platform or even tablet based. The initial design meetings centered around providing rich native apps for each platform but after seeing how much code would have to be duplicated, our design has turned to a webservice with the clients on each of the mobile platforms (android, iphone, RIM, Symbian) being a dumb html/javascript ui. It will still be marketed as an app through Itunes/android market or whatever the native delivery mechanism is, but the the app will do not more that fire a series of webservice calls and load the content into a local webpage that we load from the local app resource folders (so we don't have to download the page from the internet). This kind of vendor lockin might prompt more developers to do the same. Imagine if all the apps you downloaded were basically mobile safari/chrome running a locally served html file. Its not bad, it just doesn't encourage developers to really take advantage of the more powerful features of the frameworks/languages. I think this approach could actually lower the quality of cross-platform apps as developers look for the simplest way to deliver a consistent look and feel.
What if you can't efficiently do low level bit-bashing?
$ make available
@BItZtream
Perhaps it is YOU who should understand what "monopoly" actually means.
The OED defines monopoly as:
"The exclusive possession or control of the trade in a commodity, product, or service; the condition of having no competitor in one's trade or business."
Since Apple (and only Apple) does restrict what applications can or cannot be installed on an iPhone or iPad, they have a defacto monopoly on these platforms. How would you explain that Apple doesn't have exclusive possession or control of this?
Jailbreaking (and the ensuing vioding of one's warranty) does not get around this exclusivity!
What's ironic about this move is that XCode is pathetic as a software development environment compared with other platforms, like Eclipse and even Visual Studio. You can't even link to a standard version of the source of a library in another project in XCode, without making a copy of it. Refactoring? They never heard of it.
It seems that Steve Jobs is too insecure and too much of a control freak to encourage real innovation on the iP** platofrm.
This is much worse than Microsoft's refusal to publish their APIs for many years, until the European Union recently called them on it. We can only hope that the European Union will ride again. And soon!
Eclipse? Are you serious? If you are going to do any serious Java development, you are going to want to use IntelliJ. Do you even work as a developer? Visual Studio out of the box is slightly better than X-code for some niche tasks but overall X-Code is nowhere near as bad as Eclipse. What makes Visual Studio shine are plug-ins like Resharper (made by the same company that makes IntelliJ). You have heard of refactoring but you don't know what it means.
A development team can keep their core source code common to all platforms they are targeting lower down in the source tree and link to those files in each platform specific project. The only place you are going to have a problem is if you are using C# or Java somewhere but if your codebase is C/C++, there should not be a serious issue.
Eclipse is garbage. I used it briefly for Java and had to use it for Python via Pydev. I hated every minute compared to working with any other IDE.
Jesus was a compassionate social conservative who called individuals to sin no more.
Rearrange subject words.
Phones are already far too smart for me to be bothered with ; making them more complicated isn't going to increase the likelihood of them being considered, purchased or used.
Remember those early digital watches that included a 4-function calculator? (OK, that's all the 6-digit SlashID crowd ruled out. "Whatever.") Remember how ridiculous they were, particularly for non-smokers. Obviously the lesson still hasn't been learned. Or there is (yet) another generation of people in development jobs who think that they don't need to learn the lessons of the past because they're so clearly less stupid than the Neanderthals of the 1980s.
Birds are not dinosaur descendants;birds are dinosaurs, for all useful meanings of "birds", "are" and "dinosaurs"
Well what do you define as a good platform for games? And what are you defining as a game?
You don't seem to understand that there are many different types of games, Angry Birds is very different to Nazi Zombies. If all games were like AB then a touchscreen platform like the iphone, ipod touch, nexus one, etc... would be the best platform for games, the fact that it has phone functionality is completely irrelevant, conversely if all games were like NZ then the PC would be the best platform for games. But all games are different so obviously there is no such thing as a 'good platform for games' because not all games are the same.
I think Apple's reasoning behind this policy is pretty simple: If you want to develop cross-platform applications then build web apps.
Section 3.3.1 is the middle ground between Apple's policy when the iPhone was first released in 2007 and the policy that existed prior to 3.3.1. Remember that entire year that we begged for the ability to write native apps?
Now Apple is partially rolling back their policy and cutting out 3rd party development tools for native apps, but at the same time (whether they realize it or not) they are pushing the web as their preferred platform for cross-platform application development.
There are legitimate negative consequences associated with the 3.3.1 policy, but I think it's hard to argue with the fact that a policy like this is good for the future of web applications and improving the web as a development platform.
I define a "good platform for games" as being a platform (such as the console) specifically designed for gaming. PCs making such good gaming platforms because they were designed from the start to be able to run anything thrown at them (within the limits of the hardware available). Cell-phones (and in turn smart devices) were from the start designed to be communications platforms. They have relatively tiny viewing ports. Cramped controls and poor support for anything but a narrow sampling of code bases to develop from. Even with Apple deciding that only C/C++/Objective-C will be supported (ostensibly for improved app quality, something I really am not against), the iPhone and iPod were not designed from the ground up as gaming devices (well, perhaps the iPhone in particular but not the cell phone/smart device in general).
Yes, things change and progress. Woohoo, let's all celebrate change!
But is all change actually good? In this case I say, and adamantly so, NO. Keep the phone as a communications device (and the iPod an music/video player). I don't care what they do for the iPad. It's a tablet computer. It's supposed to be a low(er)-power, high-performance gadget. Who knows what it will be good at. Personally I see myself using such a device in place of an ebook-reader like Sony's eReader or Amazon's Kindle just because I don't like the lack of control over either the Reader or Kindle (nor do I like the idea of some company deciding that the book I legally purchased shouldn't be on my device because they had a snafu). I'd never dream of using it as a gaming platform not because I lack imagination or forward thinking, but because it really isn't made for that. Sure you can make some neat games that work well on it, just like you can make for any available platform something that will work well on it. Do we really need a PHONE taking the place of a PSP or a Gameboy? I don't think so. Perhaps we could add some features to the PSP or Gameboy (internet connectivity, app stores for purchasable games, etc.) that don't change it's underlying function (going from game platform to communications device).
But that's exactly what we're trying to do to phones. We are taking a device that's awesome at one thing (always available communications) and trying to make it, like the PC (dedicated rigs not considered because they are in reality the exception to the rule), only decent at everything (gaming, phone call making, whatever else you can do with an iPhone).
But you know what? That's just my opinion. The facts in evidence, as I see them, thusly:
1) Phones are communications devices
2) In order to become general purpose devices that have to, out of necessity for keeping things small, stop being completely awesome at making calls (inversely, if you keep them awesome at making calls while making them great at everything else, size will increase)
3) Eventually phones will morph into tablets tethered to cell phone providers (or ubiquitous wifi will become the norm within the next 20 years forcing all the telco's to become ISPs if they want to survive (oh wait, that's already happening))
4) Certain decisions have to be made. Will we let the companies lead the way into the future of what they think technology should be, or should the user be in the lead with the company and both decide what's best with the user (via purchasing power) having the final say? Personally I would choose the latter but because consumers are more prevalent than users, it will never happen.
Right now the companies are making all the decisions and even the users are going along with them because they think that is the right way of the world. They treat the corporation like government. "Because they are many and we are few, they must know better and since that is the case I'll just sit here and vegetate and go along with what ever they say."
If that's what you want, fine. Have it. Don't expect me to support it or like it, though.
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
Here's a question for you: would you more likely build an app because it "might be allowed"?
Probably not.
But then, I have always advocated building against frameworks in the native language they were meant for - I wouldn't go try to build Windows apps against a .Net library using Objective-C, similarly I would not advocate programming the iPhone in anything but Objective-C (or C++/C for game programmers). There are a ton of people who simply write applications using the Apple frameworks, they are the rule and not the exception. They are not affected.
There are millions of ideas that CAN be submitted without question of being allowed, that's what is always missed in the discussions about what Apple disallows. I don't like some of the limitations Apple has in place, and even though I don't personally like .Net I heartily defend the concept that people should be allowed to use it to write iPhone applications.
But that doesn't mean there are not a ton of applications that can be developed that this move will not impact at all... except possibly for Unity developers and other game engines, so Apple better clear that up PDQ or they could start losing a lot of games.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
The language of the agreement is quite clear.
Wrong. In case you had not noticed, Apple is not always strict on adherence to rules. And if you simply take a step back away from the document and use common sense, you will understand what will happen vs. what the document (which can change at any time) says NOW.
Apple is not stupid. If literal adherence to this rule hurts the platform (and losing Unity would I think hurt the platform) then Apple will re-work the thing to allow Unity but disallow other kinds of cross-platform application frameworks.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I own an I phone.http://apple.slashdot.org/story/10/04/11/0719213/Steve-Jobs-Weighs-In-On-iPhone-Programming-Language-Mandate?from=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29&utm_content=Google+Reader# I don't want apple to decide what applications I can and can not run on my phone. What if the coolest new application came from one of these cross compiled applications? Why is it apples job to prevent me from using it?
Saying third party apps break the iPad/iPhone/iTouch sounds like something Bill Gates says about Windoze. Apple's logo says it all: Bite Me.
sometimes there are write languages for the job, and sometimes there are wrong languages for the job.
But you see, there's only one right (write?) language for the Jobs
I work for the Department of Redundancy Department.