Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

hassoon

macrumors regular
Original poster
Jun 8, 2009
154
0
Hi, as you all know WWDC's famous slogan is "Write The Code. Change The World." and obviously the entire event is about software. Recently all the people focused on the product announcement part of the event with little emphasis on new tech (API) in the application development area, which WWDC is here for! So, from the slogan you can tell there is some kind of stressing on code. Objective-C 2.0, which is the current iteration of the language used for development, has been announced back in 2006's WWDC. So what if this year they will be announcing Objective-C 3.0 ? maybe a revised version of objective-C that could harness and take full advantage of the latest tech coming? Apple recently has been pushing us (developers) to take advantage of blocks in our code. Indeed it was a a turning table piece of code to learn and adopt in code as it has so much power. What if Apple is revising the language and integrating blocks in many areas around the code? It's been a while now since they announced their last iteration, however year over year they do add so many new APIS such as Sprite Kit which was announced last year. Anyway, i got a feeling that this year there will be more emphasis over graphics and performance. Apple might make more sessions concerning graphics in games or animation and even in educating us on how to improve the performance of the apps and make it future proof. I just wanted to share this with you guys and see what's your stake until WWDC get's clear :)
 
It certainly was a reference that popped in to my mind reading that but the next question is really what could they do and be significant enough to call it 3.0?

Especially considering how much regular renovation the language has received over the the last few years without triggering a new version number. What more could they do, what would you want them to do, that would be significant enough to tick up the version number or has all the work over the last few years been about preparing for the new run time?

To me I wonder could they:-
-Change the language to make multi-threading trivial?
-Change the language to remove all boilerplate so "the code" is just the text that makes things happen?
- Make Header files compiler generated?
 
I doubt it. Apple is pretty open with their development of things like Clang, so I don't think they'd surprise us with an all new language at WWDC.

But if they want to...

I'd love it if the whole language became more unified feeling. Right now all the freaking @ signs just to signal that the following code is Obj-C code is obnoxious.

String building is annoying. Why can't we just add strings like in Java or Python, or like << in C++?

Needs namespaces (name collisions, while rare, are super obnoxious and difficult to discover and debug).

Needs a package manager (I'd love it if they added a marketplace full of carefully curated Obj-C frameworks and libraries that we could buy and sell and review and pop right into our projects - but that's a change to Xcode / the whole developer program, not to the language).

Generators, iterators, dictionary and array comprehension... that'd all be sweet.

I really dislike the
Code:
[object methodNameAndArgument1Name:argument1 argumentName2:argument2]
syntax... I'd much rather something that looked more like
Code:
object.methodName(argument1Name:argument1 argumentName2:argument2)

That would be a lot less jarring for people coming from C++, Java, Python, and related languages. The biggest difference to other languages is there's no commas between arguments, and argument names and their values are separated with a colon (as in Obj-C currently) rather than an equals (as in Python when using key word arguments... Java and C++ both lack this concept currently). Plus it would change []s as exclusively meaning that something is being indexed into and make dot syntax look less... weirdly out of place.

Further, I'd love the ability to have argument names be optional and to make arguments themselves be optional. This would require making it possible to set default arguments.

I'd love to introduce contracts that can be checked at compile time into the language. IE, better type checking and checking for null. It would cut down on run time error handling... or worse, not detecting/handling errors at all. You could also have contracts that guarantee a certain complexity class for a function, for example. See the "Typed Racket" language for more contract ideas (I love union types and the various niceties produced by that...)

Do away with having the programmer type out imports and includes lines. Those are dumb. The compiler should be able to run through the code, determine that it doesn't know what something is within its current scope and attempt to expand that scope on its own through trying different imports and includes and whatnot until it is able to resolve it - namespaces should help the compiler with this. If no matter what it does, it can't resolve the variable, only at that point should it fail compilation and think that the user has a typo.

And... I think that's all of the ideas I have right now. I've basically just described all of the major things I'd like for my own programming language that I'd like to implement someyear when I have the resources (i.e., time, money) for such pursuits.
 
Last edited:
I'd like to see changes to Xcode. Being able to add standard things like SQLite with a simple click or drag-n-drop.

Something in line with a standard interface where the app knows what to do. Example would be dropping a .jpg on an app that already knows what to do with it, or double clicking on a project file and having Xcode already know what to do.

This could be done with all the add-ons that programmers use like game engines, database tools, etc... have a header file area like movie files do so that it can be ready to go without having to go thru a cumbersome install routine.

Also, all the options are just dam confusing, something more automatic that detects usage. I download some example projects and they won't run because they were done in a different version or their device is different. Xcode should be smart enough to automatically handle these things.


A split window editor would be nice too, VB had that in the 90's and we don't have that now. It's nice to split the editor and look at some other part of the same code, then close the window. How much time is spent jumping around a larger source file looking at other code, then having to find the place you were.

After that, dump the old example files or have a filter. I'm tired of seeing Apple examples that are 3 years old, re-write the dam things using modern code. Why mix in ref counting when it's outdated?
 
Oh, I forgot about this:

.h/.m sucks. C and C++ are the only two other languages I know of with this bloat. For every section of code you write, you have to maintain two. The language should do away with that and add some real way of explicitly designating things as public or private, and then offer a way to build as a framework and automatically produce public doc files for you that go with it.

If they don't change the language for that, then they could at least change Xcode for it.

----------

Interesting piece here ...objective_next.
Also links to a bunch of other interesting blog on the discussion.

... You marked that as a URL but didn't actually provide a URL...
 
"Write the code ... change the world".

My idea or interpretation:

Being able to provide signed code bundles to integrate stuff like DropBox once
and not require that every app includes it.

Vendors could sell Plugins in the AppStore to let other developers use them. They would only be installed on the phone once. Like a framework.

Being able to "publish" UIViewControllers from your App and let other Apps use those. Like the Tweet Sheet, only for your own purpose.

Let Apps provide "data funnels" (similar to sockets or mach ports) that let apps talk to each other. Messaging an App would wake up certain parts of it (minus the GUI).
 
A split window editor would be nice too, VB had that in the 90's and we don't have that now. It's nice to split the editor and look at some other part of the same code, then close the window. How much time is spent jumping around a larger source file looking at other code, then having to find the place you were.

Are you using the latest version of Xcode? You should give the Assistant Editor a try.
 
I'm a daytime C# developer and I'm trying to get going with Objective-C and this just seems prehistoric to me. I have worked with C and C++ in the past under linux but this has just turned me upside down.
 
Well I quite miss all my Linq functions, string functions, just the all around free goodies you get with .NET. Then I have to worry about memory management. Also I have more collections and types in C#, etc. etc etc...

Xcode is great but its not at Visual Studio 2013 level. I'm not saying VS2013 is perfect.
 
I'm a daytime C# developer and I'm trying to get going with Objective-C and this just seems prehistoric to me. I have worked with C and C++ in the past under linux but this has just turned me upside down.

If you can program in C, it's a fully legal subset of Objective C. You can do almost everything except the Framework UI in pure C. Some Open GL games are written that way.

Managed code can help babysit a programmer, but it has it costs (in both overhead and less deterministic behavior). Apple makes programmers do it the hard way (but it's not really that hard), and thus ends up with apps that, on average, are generally more responsive and more power-efficient on small mobile devices.
 
I'd love to see the "click and write code" functionality that you get with Visual Studio. Drop a button onto a window and double-click it, and VS automatically makes a method stub and hooks it up to the button's Click event. Last time I tried to use Xcode you still had to do all of that manually (has that changed?)

I agree with the earlier post about eliminating as much boilerplate as possible, and that, in my opinion, should include trying to eliminate needless* action/outlet configuration.

*As in "it seems needless when you're used to VS".
 
Memory management has changed a little while back. If you are talking about ref counting, it's now replaced with ARC, so it's not as much of a pain as it was before.

The 2nd issue is that development is not all drag-n-drop. RAD (Rapid App Dev) helps to layout screens, but the real value in apps is what happens off screen. Saving some time by being able to have buttons align only goes so far.

Next issue is using C in iOS dev. You can, but there's a lot of value in using numbers as objects or strings as objects vs native C types. Most of this value has to do with the APIs and accessing what the device has like the camera.

The choice of language is not as important as the device becomes more advanced. The APIs and how well the apps interact with what the device has to offer is more important.

Having programmed in several different languages, I found ObjC odd at first. Reference counting sucked, glad that's over, but the important part is that the language is less important as the ability to exploit the sensors of the device and being able to make more advanced apps.
 
Also, you are stuck with just OSX and iOS apps. With VS you can build awesome sites with MVC. If I need to build an administrative backend FAST for a site I can use Lightswitch (html or silverlight) and have it done in a couple of hours.

Any who, I do enjoy Apple products and they are great but in my opinion the development part of the company is lacking and behind. Yes you can do anything with VI and a compiler/debugger but its just not the same to work with a hammer and a nail vs having a toolshed.
 
Last edited:
always wanted Xcode in the cloud :p

This would actually be fantastic. I could use Xcode at work without needing a Mac.

My workplace wants to "get modern" with iOS apps but they only give us one Mac, one iPad, and currently don't even use native code (instead they use crappy half baked web technologies to try and shoehorn apps into a mobile device.)
 
Oh, I forgot about this:

.h/.m sucks. C and C++ are the only two other languages I know of with this bloat. For every section of code you write, you have to maintain two. The language should do away with that and add some real way of explicitly designating things as public or private, and then offer a way to build as a framework and automatically produce public doc files for you that go with it.

If they don't change the language for that, then they could at least change Xcode for it.

----------



... You marked that as a URL but didn't actually provide a URL...

Sorry about that fixed now.
 
I'm not an Objective-C dev but the topic and thread here got me thinking about Apple's purchase of the company that owned Testflightapp. Could they announce something with that platform in that timeframe?

How about time limited trials on the App-Store?
 
I'm not an Objective-C dev but the topic and thread here got me thinking about Apple's purchase of the company that owned Testflightapp. Could they announce something with that platform in that timeframe?

How about time limited trials on the App-Store?

Oh wow, that does sound like an interesting rabbit hole. Given that it was purchased in February I think it's a bit early, BUT if they purchased this company in order to enhance an already in development product we may see a beta tomorrow.

Now you've got me excited. "Write the code, change the world". Maybe, juuuuuust maybe, apple is planning on vastly expanding their developer pool!

Possibilities, possibilities. IF this crazy idea has any legs, Moscone isn't going to be big enough for WWDC in just a few years....
 
Oh wow, that does sound like an interesting rabbit hole. Given that it was purchased in February I think it's a bit early, BUT if they purchased this company in order to enhance an already in development product we may see a beta tomorrow.

Now you've got me excited. "Write the code, change the world". Maybe, juuuuuust maybe, apple is planning on vastly expanding their developer pool!

Possibilities, possibilities. IF this crazy idea has any legs, Moscone isn't going to be big enough for WWDC in just a few years....

Expanding their developer pool is probably the last thing Apple needs. This and other forums get a constant feed of "I wanna start making apps, where do I start..." posts.

Apple created a gold rush that has caused a population overload. The app store is flooded with re-skinned and work-alike knock off apps from people looking to be the next viral app. It's flooded with spam-n-scam trash.

What we need is more quality apps and less trash apps. Right now it's very very hard to make an app that will stand out because there are well over 1 million apps in the app store.

This has caused a race to the bottom. Over a million apps trying to share ad money and get noticed. A flood of developers all over trying to find a way to scam people using bot download and fake reviews, neg reviews to other apps, etc...

Do we really need more app developers?

The focus should be on more advanced / higher quality apps. Programming is not a weekend, "i wanna get rich" thing.
 
Swift has nearly exactly the method calling syntax I wanted. The only change I proposed in my above post that didn't happen was the comma didn't get ditched.

Also, why are dictionaries surrounded in square braces? That was a disappointing and as far as I can tell, pointless change. Disappointing because it'll make reading code just a bit less easier than it could be.

It's interesting how obviously the language they're aiming to displace is Python. Stuff like _ for variables that don't matter scream Python.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.