- Metal. pretty much lays down a gaming engine that can take an AppleTV (yeah, that's an iOS system), and turn it into a serious gaming platform, let alone the interface for iPad, iPhone
Read between the lines with today's keynote and you can see all sorts of new HW coming down the pipeline in the next few months to few years. New AppleTV is just one of them. Lots of cool new features that are cool, but could be much cooler and seemed to be designed for new HW in the future.
Nintendo, and to a slightly lesser extent, Xbox (MS) and Playstation (Sony) just had a massive shot fired across their bow.
This announcement ALONE cemented current developers to the OSX/iOS platform more than any other device and user statistics... PLUS, it gave 1000's of other developers a serious twitch in the pants to give developing on the Mac a really serious "take me" look.
There's no way anyone that gives a shit about software could feel "udnerwhelming" by this keynote. It was the single most impressive event, that I've EVER seen from Apple when it comes to iOS/OSX features, API, and development tools. Not only did they address pretty much every major complaint in some ways, they added features that I didnt even imagine, but make perfect fucking practical sense. Apple has clearly been busy, and all the additions and changes are thoughtful, well considered features that are incredibly practical and useful. I was literally cheering at so many points. Cant WAIT for the new OSX and iOS- the phone/message integration and "continuity" features will be used by me literally all the time. Hardware announcements will come later, but this exceeded my expectations in terms of software. Well done Apple- you haven't lost your touch, and are firing on all cylinders. iOS development was already far, far ahead of Android dev, but these improvements widen the gap infinitely more.
Yep. I don't even care that no hardware was announced today. This was all about software, all about platforms. The fall will be all about hardware.
This announcement ALONE cemented current developers to the OSX/iOS platform more than any other device and user statistics...
I loved the reactions on the faces of the older members of the crowd as Swift was being described. That, to me, is the biggest indication that Apple has done something huge here.
That hardly makes it portable. If you are doing iOS development you WILL be using Apple libraries which are not available on other platforms. So even if you abstract all of the Apple calls to an interface layer and then convert them to the target platform still not a trivial matter even if you are using C/C++.
What an earth moving keynote! New OS X with new UI and new features (awesome!), new iOS 8 with HealthKit, HomeKit, new features and UI improvements (incredible!), even more integration between OS X and iOS (amazing!), brand new Xcode programming language for writing code (earth moving and game changing!!! -mark my words!). What a keynote! Apple is leading the world for developing great software! There is no doubt about it! No one can refute the fact that, today, there is no place for developers like Apple.
I can't wait for the fall to see what Apple will release to complement and implement all the unbelievable software integration and development they have been able to achieve! This fall's product announcement is going to be the climax and the consummation of Eddy Cue's words:
"Later this year, we've got the best product pipeline that I've seen in my 25 years at Apple."
I can truly say, without equivocation, no company can achieve what Apple achieves the way that Apple achieves it. Not even close.
Without the baggage of C ... How true it is!!!! A lot of C folks in the crowd. Oooooooooooooooo!!! The fact that we are still using C and C derived languages shows how the state of programming has stagnated for 30 years or more!
That hardly makes it portable. If you are doing iOS development you WILL be using Apple libraries which are not available on other platforms. So even if you abstract all of the Apple calls to an interface layer and then convert them to the target platform still not a trivial matter even if you are using C/C++.
This already happens (though I don't have personal experience as I don't do game dev). The game engine is in C/C++ but the various platforms UI etc are usually done with platform specific calls. Metal should be accessible through the major game engines so you won't have to directly code Metal when using those engines but will get the benefit from it.
swift syntax looks like java and python combined i wish they keep the oo syntax from objective c its cleaner there the link on wikipedia article for swift lets you download the book continuity feature is the star answering phone on my mac cool another step of seamless integration
THIS is my out of "left field" and "it will blow your mind" prediction!
THIS is how how Apple has decided to blow past Microsoft and Google (Samsung): ground-breaking new tools based on performance and efficiency = SPEED!
Considering that the 64bit A7 already blows the doors off of anything running Android, Apple just bought themselves the equivalent of 2 years in speed improvements to ALL iOS devices.
Now THAT's impressive!
The only other tech co. working on cleaning up legacy code is Microsoft. Hats off to them for that, regardless of the sly TC remark regarding Win8 acceptance.
Apple just turned up the heat to boiling under the asses of every other companies tool developers: "well guess were not going to be shipping that tool box"...
It's not that mind blowing.
This has been Apple's M.O. since day one (well maybe day 200 after the first iPhone's were determined to be a bit pricey). Deliver more _functional_ speed at lower cost than your competitor. This isn't a spec war... it's how it feels in your hands.
Speed is the ultimate measure of User Experience. Or in other words. being able to do more things in the same unit of time, makes the experience richer/safer/secure-er. If you have a lot of great functions, but only can deliver 40% of them because of 'system limits' that means you've not got to 'say no' to 3 out of every 5 'features'. ("we'll take out bounds checking, as it slows down performance... what, that leaves us open to hacking... well... leave it out anyway.... we need to increase the keystroke response time")
Apple is the only computer maker that designs it's chips, it's OS, it's cloud services, it's point of sale (your device) services, and now its languages (ObjC was it's own language before NeXT/Apple pretty much took it over). It's not Swift, or 64 bit, or A7, or iTMS, or LiquidMetal, or Beats... It's all of them. Synergy.
The problem with your Microsoft reference is that their 'legacy code' is across several divisions... At Apple... It's all in one division. What is 'legacy' to one division may be 'stable code' to another division who is milking profits from the lack of attention. And the problem with Microsoft is that it has hundreds, if not thousands of HW configs to support. Apple... what... 10 mobile (4 phones, 4 iPads, 2 appleTVs?), and what 20 or so 'legacy' Macs? Microsoft can't get out from under its Legacy Code problem until it changes it's business model, and organizational makeup.
I loved the reactions on the faces of the older members of the crowd as Swift was being described. That, to me, is the biggest indication that Apple has done something huge here.
It was the intake of breath and applause at the mention of "closures", "type inference" and "multiple return types" that really shows that developers have been wanting this and it is going to be massive...
Nobody expects the unexpected. Time will tell, but usually new programming languages are met with extremely hostile developers at first, and lack of cross-platform viability (eg to Windows or Android) will ultimately prevent a language from muscling out whatever is dominant, no matter how crappy the dominant language is (eg Java and C++ are crappy for reasons owing to their unnecessary complexity and inflexibility between runtimes using the same language. This is why all third party libraries use C bindings and not something else.)
I was turned onto a video by GatorGuy a few years (years?) ago. Can’t find the link. Maybe he can. I have the video downloaded, but uploading it again would be unnecessary.
EDIT: FOUND IT.
<iframe src="//player.vimeo.com/video/36579366?title=0&byline=0&portrait=0" width="580" height="326" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe>
This guy’s giving a talk about software development and the power that could be afforded to developers if the coding software gave them realtime feedback. It blew me away, because that’s exactly what is needed! Being able to see where elements on the screen are going, changing them on the fly, building the world based on the realtime feedback, scrubbing through the execution, etc.
And Swift+Xcode ismuch exactly that.
I am absolutely thrilled by this. Can’t wait to see it in action.
This is what Apple has over Windows and Android. The mentally inadequate scream that features are being “copied” (ignoring that they’re not), while refusing to acknowledge that they don’t even have anything remotely like what Apple has on the back end.
From the icon, I expected the language to be called Peregrine. <span style="line-height:1.4em;">Swift works, too.</span>
The thing is, this isn't the first time such a thing has happened. Unity (which uses C#) or Flash (which is in the same script family as Javascript) do this already, but these are extremely bloated runtimes for doing simple things. The overhead for Unity almost makes it unusable on mobile devices, and indeed I was having to restart the game every hour or so because it would freeze, or the OS would kill it. Flash used to have a lightweight runtime, but damn near everything developed for it is not multi-threaded aware, and will burn a CPU core even when idle. So Apple coming up with this... if it allows for the flexibility... could work. But being locked to iOS/OSX will ultimately harm it. Apple needs a "build portable intermediate" target that can then complete the compiling with CLANG with anything it can target.
Oooh, very exciting, can't wait to try this. I tried to get into iOS development, but just couldn't wrap my head around Obj-C
OBJC actually is more usable than C++ because it's a superset of C and is much lighter than C++. The problem for most new developers is that they don't know C to begin with. I found C rather easy to learn, but when presented with C++ or OBJC, I get a headache. I like the data organizing aspects both languages have, but I hate the syntax of C++ because, like in Javascript... everyone thinks it's too hard so they write frameworks or other helper libraries that just make it harder to understand instead of just not using features they don't need. You see this in Javascript a lot, someone will want to write something very simple, but they don't know how to do it in Javascript, so they pull some jQuery example off stackexchange ( http://meta.stackexchange.com/questions/45176/when-is-use-jquery-not-a-valid-answer-to-a-javascript-question ), so several hundred kilobytes of code is loaded to do what might have taken 4 lines in Javascript.
This is what you see happen whenever you see the word "Framework" or "Factory" with C++ or OBJC. To give an example, when someone needs to load an image, they will most likely use a library for anything more complicated than BMP/TGA. But the latest thing to do for GPU efficiency is to design a sprite/texture atlas. This is because it's a lot easier to change the texture coordinates than it is to unload and load new textures for animated sequences. So if you decide to use a framework's version of this, you are now stuck using that framework for everything (because few libraries and frameworks talk to each other, they assume you are using only itself) involving images otherwise you will duplicate code (I've seen one game have three different JPEG saving libraries because their video capture codec was MJPG, their still capture was JPEG's jpeg library, and their internet leaderboard library had yet another JPEG library because it resized images) that wastes memory and processing time.
Before one gets invested in a library or framework, do your own research to see if the complexity of what you want to do necessitates the library in the first place.
Comments
- Metal. pretty much lays down a gaming engine that can take an AppleTV (yeah, that's an iOS system), and turn it into a serious gaming platform, let alone the interface for iPad, iPhone
Read between the lines with today's keynote and you can see all sorts of new HW coming down the pipeline in the next few months to few years. New AppleTV is just one of them. Lots of cool new features that are cool, but could be much cooler and seemed to be designed for new HW in the future.
Nintendo, and to a slightly lesser extent, Xbox (MS) and Playstation (Sony) just had a massive shot fired across their bow.
As did all the Android flunkies.
anyone seen any syntax for this yet?
This announcement ALONE cemented current developers to the OSX/iOS platform more than any other device and user statistics... PLUS, it gave 1000's of other developers a serious twitch in the pants to give developing on the Mac a really serious "take me" look.
Yes... this shit is SEXXXXY! :smokey:
anyone seen any syntax for this yet?
Get the book from iBooks, linked above.
I loved the reactions on the faces of the older members of the crowd as Swift was being described. That, to me, is the biggest indication that Apple has done something huge here.
That hardly makes it portable. If you are doing iOS development you WILL be using Apple libraries which are not available on other platforms. So even if you abstract all of the Apple calls to an interface layer and then convert them to the target platform still not a trivial matter even if you are using C/C++.
I can't wait for the fall to see what Apple will release to complement and implement all the unbelievable software integration and development they have been able to achieve! This fall's product announcement is going to be the climax and the consummation of Eddy Cue's words:
"Later this year, we've got the best product pipeline that I've seen in my 25 years at Apple."
I can truly say, without equivocation, no company can achieve what Apple achieves the way that Apple achieves it. Not even close.
"Can't innovate anymore, my ass" ™
A lot of C folks in the crowd. Oooooooooooooooo!!!
The fact that we are still using C and C derived languages shows how the state of programming has stagnated for 30 years or more!
That hardly makes it portable. If you are doing iOS development you WILL be using Apple libraries which are not available on other platforms. So even if you abstract all of the Apple calls to an interface layer and then convert them to the target platform still not a trivial matter even if you are using C/C++.
This already happens (though I don't have personal experience as I don't do game dev). The game engine is in C/C++ but the various platforms UI etc are usually done with platform specific calls. Metal should be accessible through the major game engines so you won't have to directly code Metal when using those engines but will get the benefit from it.
i wish they keep the oo syntax from objective c its cleaner there
the link on wikipedia article for swift lets you download the book
continuity feature is the star answering phone on my mac cool another step of seamless integration
"Can't innovate anymore, my ass" ™
Beat me to it! I was planning on saying that on a few posts but hit "submit" before I remembered I wanted to say it
touché
Same here. I'm in IT and a digital forensics consultant, but I could never get my head around programming logic. Those guys are too smart for me.
THIS is my out of "left field" and "it will blow your mind" prediction!
THIS is how how Apple has decided to blow past Microsoft and Google (Samsung): ground-breaking new tools based on performance and efficiency = SPEED!
Considering that the 64bit A7 already blows the doors off of anything running Android, Apple just bought themselves the equivalent of 2 years in speed improvements to ALL iOS devices.
Now THAT's impressive!
The only other tech co. working on cleaning up legacy code is Microsoft. Hats off to them for that, regardless of the sly TC remark regarding Win8 acceptance.
Apple just turned up the heat to boiling under the asses of every other companies tool developers: "well guess were not going to be shipping that tool box"...
It's not that mind blowing.
This has been Apple's M.O. since day one (well maybe day 200 after the first iPhone's were determined to be a bit pricey). Deliver more _functional_ speed at lower cost than your competitor. This isn't a spec war... it's how it feels in your hands.
Speed is the ultimate measure of User Experience. Or in other words. being able to do more things in the same unit of time, makes the experience richer/safer/secure-er. If you have a lot of great functions, but only can deliver 40% of them because of 'system limits' that means you've not got to 'say no' to 3 out of every 5 'features'. ("we'll take out bounds checking, as it slows down performance... what, that leaves us open to hacking... well... leave it out anyway.... we need to increase the keystroke response time")
Apple is the only computer maker that designs it's chips, it's OS, it's cloud services, it's point of sale (your device) services, and now its languages (ObjC was it's own language before NeXT/Apple pretty much took it over). It's not Swift, or 64 bit, or A7, or iTMS, or LiquidMetal, or Beats... It's all of them. Synergy.
The problem with your Microsoft reference is that their 'legacy code' is across several divisions... At Apple... It's all in one division. What is 'legacy' to one division may be 'stable code' to another division who is milking profits from the lack of attention. And the problem with Microsoft is that it has hundreds, if not thousands of HW configs to support. Apple... what... 10 mobile (4 phones, 4 iPads, 2 appleTVs?), and what 20 or so 'legacy' Macs? Microsoft can't get out from under its Legacy Code problem until it changes it's business model, and organizational makeup.
It was the intake of breath and applause at the mention of "closures", "type inference" and "multiple return types" that really shows that developers have been wanting this and it is going to be massive...
Bring on the disappointment posts!
Nobody expects the unexpected. Time will tell, but usually new programming languages are met with extremely hostile developers at first, and lack of cross-platform viability (eg to Windows or Android) will ultimately prevent a language from muscling out whatever is dominant, no matter how crappy the dominant language is (eg Java and C++ are crappy for reasons owing to their unnecessary complexity and inflexibility between runtimes using the same language. This is why all third party libraries use C bindings and not something else.)
The thing is, this isn't the first time such a thing has happened. Unity (which uses C#) or Flash (which is in the same script family as Javascript) do this already, but these are extremely bloated runtimes for doing simple things. The overhead for Unity almost makes it unusable on mobile devices, and indeed I was having to restart the game every hour or so because it would freeze, or the OS would kill it. Flash used to have a lightweight runtime, but damn near everything developed for it is not multi-threaded aware, and will burn a CPU core even when idle. So Apple coming up with this... if it allows for the flexibility... could work. But being locked to iOS/OSX will ultimately harm it. Apple needs a "build portable intermediate" target that can then complete the compiling with CLANG with anything it can target.
OBJC actually is more usable than C++ because it's a superset of C and is much lighter than C++. The problem for most new developers is that they don't know C to begin with. I found C rather easy to learn, but when presented with C++ or OBJC, I get a headache. I like the data organizing aspects both languages have, but I hate the syntax of C++ because, like in Javascript... everyone thinks it's too hard so they write frameworks or other helper libraries that just make it harder to understand instead of just not using features they don't need. You see this in Javascript a lot, someone will want to write something very simple, but they don't know how to do it in Javascript, so they pull some jQuery example off stackexchange ( http://meta.stackexchange.com/questions/45176/when-is-use-jquery-not-a-valid-answer-to-a-javascript-question ), so several hundred kilobytes of code is loaded to do what might have taken 4 lines in Javascript.
This is what you see happen whenever you see the word "Framework" or "Factory" with C++ or OBJC. To give an example, when someone needs to load an image, they will most likely use a library for anything more complicated than BMP/TGA. But the latest thing to do for GPU efficiency is to design a sprite/texture atlas. This is because it's a lot easier to change the texture coordinates than it is to unload and load new textures for animated sequences. So if you decide to use a framework's version of this, you are now stuck using that framework for everything (because few libraries and frameworks talk to each other, they assume you are using only itself) involving images otherwise you will duplicate code (I've seen one game have three different JPEG saving libraries because their video capture codec was MJPG, their still capture was JPEG's jpeg library, and their internet leaderboard library had yet another JPEG library because it resized images) that wastes memory and processing time.
Before one gets invested in a library or framework, do your own research to see if the complexity of what you want to do necessitates the library in the first place.
This pretty much blew my mind. Apple definitely did this big!!!! I am thrilled and excited to play with swift and the new OSX and iOS 8 this weekend.