>It's interesting to see the meteoric rise of objective-c due to apple forcing it down developer throats. As someone who had to learn it to do iPhone dev, I find it objectively terrible compared to all the old favorites(C,C++,Java,C#). Partially because the language syntax sucks, but also because apples standard library sucks.
Yes. And yet, Objective-C, for application development, pisses all over most of the "old relatives". Saner than C++, can drop into C for close to the metal performance or be high level with a GC and all, and is more dynamic than Java (which admittedly is not hard).
But even you personally don't like its hybrid syntax, to even state that "Apple's standard library sucks" make your comment loose all credibility. Cocoa and Foundation are among the nicest and more feature complete libraries and framework collections there exist.
From the way you describe it, it sounds like you wanted something like the VB6 or .NET ecosystem of third party libraries...
>Basically I'm pretty sure nobody would use objective-C if apple didn't strongly push it on iOS and OSx developers.
You pretty sure, but also pretty wrong. Adoption might be quite smaller if there wasn't a huge potential market in the form of iOS users, but Objective-C was (and is) quite well regarded as a programming language and has always had hardcore fans. People who program in it (not just because they had a couple of assignments for iOS apps in 201x) tend to love it.
Heck, even back in the day, the first browser was developed in it, as well as the first true first-person-shooter. And nowadays, one of the most advanced GUI userlands, and the more cohesive mobile app platform.
My first contact with the language was in 1998, when I had to port a particle simulation engine done with Objective-C/Renderman to C++/OpenGL. From a dying NeXT Cube to then raising Windows 95 mainstream systems.
Objective-C has a nice appeal given its Smalltalk semantics for OOP.
However I don't like:
- lack of modules, using prefixes is so 70's!
- @ in all keywords and Objective-C literals
- manages to have method names even longer than Java enterprise frameworks do
- the way properties are declared
> Heck, even back in the day, the first browser was developed in it, as well as the first true first-person-shooter.
Historical accident, as these were the systems those developers had available to them.
>However I don't like:
- lack of modules, using prefixes is so 70's!
- @ in all keywords and Objective-C literals
No disagreement there. Though those are historical baggage, like C has. I see Apple fixing the module issue at some point though.
>manages to have method names even longer than Java enterprise frameworks do
Not true, most method names are short. Except if you also count the parameter names -- but then that's another story, and it has other benefits (knowing what every parameters does and self-documenting your code for example).
>Historical accident, as these were the systems those developers had available to them.
Not true, in fact they had to get out of their way to have these machines compared to the standard unix workstations of the day or PCs. Carmack has access tons of other machines at the time. And both TBL and Carmack waxed about the NeXT / objective-c environment afterwards.
Yes. And yet, Objective-C, for application development, pisses all over most of the "old relatives". Saner than C++, can drop into C for close to the metal performance or be high level with a GC and all, and is more dynamic than Java (which admittedly is not hard).
But even you personally don't like its hybrid syntax, to even state that "Apple's standard library sucks" make your comment loose all credibility. Cocoa and Foundation are among the nicest and more feature complete libraries and framework collections there exist.
From the way you describe it, it sounds like you wanted something like the VB6 or .NET ecosystem of third party libraries...
>Basically I'm pretty sure nobody would use objective-C if apple didn't strongly push it on iOS and OSx developers.
You pretty sure, but also pretty wrong. Adoption might be quite smaller if there wasn't a huge potential market in the form of iOS users, but Objective-C was (and is) quite well regarded as a programming language and has always had hardcore fans. People who program in it (not just because they had a couple of assignments for iOS apps in 201x) tend to love it.
Heck, even back in the day, the first browser was developed in it, as well as the first true first-person-shooter. And nowadays, one of the most advanced GUI userlands, and the more cohesive mobile app platform.