Hi, I know this is a C++ forum but having used it previously and receiving such useful help I thought I'd try asking for help in choosing my classes.
So there are two equivalent courses (in the sense that if you take one, you cannot take the other for further credit) and so we need to choose between the two to fulfill a requirement. The difference is that course A is with a seemingly bad prof, and you need to learn objective-C (but on your own) for developing iPhone apps (the final project). Course B is with a great prof (having had him before) who teaches you how to use java/android and takes you through a series of projects aimed to prepare you for the final project, an android app.
So my question is - which is more valuable to know, objective-C or java (in those settings mentioned above)?
I wouldn't really say one is more valuable at all. iOS is obviously more wide spread, but Android is definitely not small. I would say Java gets used much more outside of Android dev than Obj-C gets used outside of iOS dev, though. This just sounds like preference to me, do you wanna learn Android or iOS?
Actually Android is far larger than iOS. In fact, Android alone has about 51% market share. I'd go with that, because I don't see the situation changing soon, except for the better. Besides, like ResidentBiscuit said, Java is much more widely used outside of Android than Objective-C is outside of iOS.
Java is much more widely used outside of Android than Objective-C is outside of iOS.
I would legitimately like to see the numbers for production level code written in Objective-C that isn't for an apple branded device. Honestly, I'm fairly certain it's next to nothing.
Though I'm an Apple fan and dabble with Objective-C, I would take the Java road if I were you, purely because you specify that you have a good professor that way.
A good professor makes all the difference on a course. At the end of the day, you need to get a good grade out of it. If you have a bad professor, you won't get the support needed to get that grade and learning on your own is an uphill struggle.
If you learn Java first with the help of a good academic, there's nothing stopping you applying that knowledge to other languages or frameworks. You'd be surprised at how similar they can be.
What device are you likely to have good access too? it's a lot easier if you can mess around with your own kit.
While this is true, there's lots of simulators you can run on a computer so that you can test your app without owning a device.
I would say what's more important than which device you own is whether or not you're running OS X. It's supposed to be a major pain in the ass to develop iOS apps on a non-apple operating system.
I don't see the situation changing soon
The iPhone 5 is coming out soon and it might tip things towards apple.
Anyhow, take the Java course. Knowing Java is important, even if you don't intend to write Apps, and if you know that a course has a bad professor you should stay away from it.
I talked about this about a year ago with the instructor for a mobile app development course. He said that although Android had a larger market share, there was more demand for IOS apps. That was just his opinion though, and that was a year ago.
@ResidentBiscuit
There are probably more iPhones than any other single Android phone model, but the Android market is very fragmented (Linux seems to be cursed with fragmentation, except on its filesystems).
Adding on to what I said earlier about the iPhone 5 tipping things towards Apple, I found out today it's also possible that the new Galaxy S3 (the biggest Android release of the year) could soon be taken off the market because Apple has accused Samsung of patent infringement and filed a sales injunction.
(Linux seems to be cursed with fragmentation, except on its filesystems)
Apple are ridiculous about this patent stuff. Have you seen the evidence they used for the Galaxy Tab? It was clearly manipulated, and Samsung weren't even able to defend themselves (AFAIK that's not necessarily unusual, but it's still unethical). Not to mention that Samsung makes all the displays for Apple devices.
Linux seems to be cursed with fragmentation, except on its filesystems
You mean like the on-going battle between the Ext4, Btrfs, ZFS, etc...Every single one of them claiming to be the "only filesystem that matters"? Fragmentation is a FOSS problem really, nobody can be satisfied completely when you can just write your own that suits you just fine. No free software is immune to this.
@(GreyWolf && chrisname)
Google is taking Apple to court over non-essential patents, hoping to shut down Apple in the US for good.