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

ArtOfWarfare

macrumors G3
Original poster
Nov 26, 2007
9,698
6,269
I just realized a piece of why I hate Xcode so much.

When I'm typing a method for an object that's an NSString and I type "equal", it should pop up an autocomplete of "isEqualToString:". Instead it shows me nothing. This would be laughably bad and I'd just ignore Xcode and use a better editor if it weren't for the fact I'm being asked to write an iOS application, so Xcode must be running, and since I'm on my 2007 iMac, nothing else can be running at the same time.

And I guess that answers my question for why autocomplete sucks so badly - there's no reason for Apple to fix it. I'm forced to use Xcode whether they fix it or not, so they may as well not.

I really wish AppCode would actually replace Xcode instead of just augment it :-/
 
Last edited:
My problem with autoompletion is that is so sloooooow. I literally have to stop typing and wait for something to show. I dont remember it being so slow 3 yers ago. And i have a macbook air mid 2012 with i5, 8g of ram and ssd. Its not gaming machine, but simple code editor or ide should run lighting fast.
For example, i also use old core duo 2 win 7 machine with 6g of ram to develop android native apps. I use android studio.....and everything is relly really fast (except simultion......i dont even....i use real device :) ).
 
Just wondering what you use when you don't use Xcode... I'm not a big fan of Xcode, but I've read about what Android offers and they say it really sucks compared to Xcode. I can't see Xcode getting any faster as they just keep supporting more and more things.

You'd think at this point, we'd have a universal product that worked with all languages. We had that decades ago, but they didn't directly support prototyping tools like IB.
 
I just realized a piece of why I hate Xcode so much.

When I'm typing a method for an object that's an NSString and I type "equal", it should pop up an autocomplete of "isEqualToString:". Instead it shows me nothing. This would be laughably bad and I'd just ignore Xcode and use a better editor if it weren't for the fact I'm being asked to write an iOS application, so Xcode must be running, and since I'm on my 2007 iMac, nothing else can be running at the same time.

And I guess that answers my question for why autocomplete sucks so badly - there's no reason for Apple to fix it. I'm forced to use Xcode whether they fix it or not, so they may as well not.

I really wish AppCode would actually replace Xcode instead of just augment it :-/


Sounds like your computer. My autocomplete is instant.
Xcode beats the crap out of anything else I've used.
 
Just wondering what you use when you don't use Xcode... I'm not a big fan of Xcode, but I've read about what Android offers and they say it really sucks compared to Xcode. I can't see Xcode getting any faster as they just keep supporting more and more things.

You'd think at this point, we'd have a universal product that worked with all languages. We had that decades ago, but they didn't directly support prototyping tools like IB.

I use Xcode for Obj-C, IntelliJ for Java, and Sublime Text + Command Line for everything else (Python, JavaScript, C, etc.)
 
Sounds like your computer. My autocomplete is instant.
Xcode beats the crap out of anything else I've used.

I'm not complaining about speed. It doesn't give me useful suggestions. When I type "equal" on an NSString, it should suggest the "isEqualToString" method, but it doesn't.
 
I think it's something that you adapt to, if you have a protocol and type a dash "-", it comes up with all the methods for that protocol. Wouldn't the method come up if you typed "isequal" instead of "equal" ?
There are parts of the system that seem goofy, I've never seen "files owner" before Xcode, it's not intuitive, it's also odd coming from C/C++... to see params put in the middle of a method call, but someone thought it was a good idea, so that's what we have.

I'd personally like the autocomplete to have a longer description of the method's purpose so you don't have to look it up. So many APIs, it's hard to keep track of everything.
 
Just wondering what you use when you don't use Xcode... I'm not a big fan of Xcode, but I've read about what Android offers and they say it really sucks compared to Xcode. I can't see Xcode getting any faster as they just keep supporting more and more things.

You'd think at this point, we'd have a universal product that worked with all languages. We had that decades ago, but they didn't directly support prototyping tools like IB.

I belive java is bigger and is runing younger ide android studio and its code completion is way way faster.
Dont get me wrong.....my complaint is on code completion only. Xcode is great tool and i looove using it! Nothing to set up, especialy with simulator. It works automaticly. In android stuido or eclipse? Lol, prepare for torture :)

I would be cautious when reading other persons comments how hard or easy something is. Everybody said that android is hard.....it is as easy as ios in my opinion. People just dont like android and would write some incorrect statements.
 
I'm not complaining about speed. It doesn't give me useful suggestions. When I type "equal" on an NSString, it should suggest the "isEqualToString" method, but it doesn't.

Xcode's autocomplete like many other IDEs out there only lists prefix matches. This can easily be solved by fuzzy autocomplete plugins like this one: https://github.com/FuzzyAutocomplete/FuzzyAutocompletePlugin. I used it for some time and it works pretty good.

However, I actually prefer prefix matching these days because I don't want to forget the method name, and fuzzy matching shows too many results for me to be more useful than Xcode's prefix matching.
 
I think it's something that you adapt to, if you have a protocol and type a dash "-", it comes up with all the methods for that protocol. Wouldn't the method come up if you typed "isequal" instead of "equal" ?

That would require that I remember what pointless words Apple decided to add to the method name, as well as what order they put them in.

Xcode's autocomplete like many other IDEs out there only lists prefix matches. This can easily be solved by fuzzy autocomplete plugins like this one: https://github.com/FuzzyAutocomplete/FuzzyAutocompletePlugin. I used it for some time and it works pretty good.

However, I actually prefer prefix matching these days because I don't want to forget the method name, and fuzzy matching shows too many results for me to be more useful than Xcode's prefix matching.

That looks nifty.

Why does it matter what the method name is? If you're working with multiple languages all day, you don't want to remember the different parts that make each one unique. Obj-C uses isEqualToString:, Java uses equalTo, and Python (as is usually the case) is the only sane language, using ==.
 
That would require that I remember what pointless words Apple decided to add to the method name, as well as what order they put them in.
Trying to keep track of all the language, API, OS, HIG, and every other rule is a bear. They try to make things more automatic, but the reality is that we have a ton of stuff to remember and that's made worse when people expect you to be an expert on several platforms and be a "full stack" programmer.

I'm no fan of the paragraph long method names or the "we do things differently" style of OO (what was so wrong with the C++ OO system?), but someone decided it should be this way (wasn't me) :(
 
  • Like
Reactions: ArtOfWarfare
I'm no fan of the paragraph long method names or the "we do things differently" style of OO (what was so wrong with the C++ OO system?), but someone decided it should be this way (wasn't me) :(

C++ and Obj-C were both developed at the same time. Neither came before the other, so it's not unreasonable that they had different ways of doing things.

What's unreasonable is that Java came out after C++, Obj-C, and Python, and decided to go reinvent wheels that had already been invented.
 
C++ and Obj-C were both developed at the same time. Neither came before the other, so it's not unreasonable that they had different ways of doing things.

What's unreasonable is that Java came out after C++, Obj-C, and Python, and decided to go reinvent wheels that had already been invented.

You're right, I keep forgetting ObjC is only new to me :D ... I didn't study Java for very long, but I thought it was supposed to be C++ with safe pointers.

I really wish all these language making people would just make something like 5 languages and then stop. From a business standpoint, the business of software development isn't helped with all these different languages.

About the same as French/English/German/etc... Aren't almost all programming languages in English? Think about all the time wasted learning all the different languages, spoken or programming.

I guess the same could be said for mobile OS's and IDE's.
 
I personally haven't had many issues with xcode's autocomplete. It isn't slow for me either. I can understand the frustration though. When you are trying to compare NSString objects the default autocomplete suggestion really should be isEqualToString, but I've gotten so used to these little quirks that my workflow would probably actually get slowed down if Apple ever fixed them, at least for a few days :D
 
Since documentation is at your finger tips i dont get frustrated too much when i can remember exact name.
 
I really wish all these language making people would just make something like 5 languages and then stop. From a business standpoint, the business of software development isn't helped with all these different languages.

I think a big part of all these different languages is the Internet didn't exist so all these different people creating languages didn't really know about the work each other was doing. It seems to me there was a huge drop off in the number of new languages being created right in the middle of the 90s.

But maybe I'm wrong. Maybe it just seems like there was a huge drop off because it takes about 10 years for a language to develop critical mass, where it goes from a niche language that a few people use to a huge language that everyone knows about.

IE, Python was started in 1989, but it didn't really take off until the mid-to-late 90s.
 
Actually the Internet has been around for a long time, but we were using what's known as a BBS long before the Internet was known to most. They used to publish all the BBS numbers and we used dial up modems. It's basically the same thing as this discussion forum, except it was slower.

Some of them had delay echos of other message boards.

One thing might be a factor is the cost. I studied under one of the developers at SUN that co-wrote Java. At that time, Java was dirt cheap and C/C++ was over a $1,000 (IIRC).

Borland broke new ground with a $39 compiler called Turbo Pascal and GW-Basic was popular because it was free.

Getting a setup wasn't cheap, it was more than the cost of a PC. IIRC, someone was sued by a major company for making a language using their compiler. They wanted to protect their investment.

Shareware/Freeware had a following and there were many options there, but it required support at some point to make any language advanced.

IMO, it was in part a response from programmers to find a low cost option to expensive languages.

Some might have come out in response to the cost of add on products. dBase/FoxPro/Clipper came out because it could save people huge money vs buying a database like Oracle and others. The same thing happened with NOS (Network Operating Systems) Low cost products came out for simple file sharing.

Mom and Pop companies can't afford big IT budgets, yet need tech to compete.

Now we find many of these things dirt cheap or free.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.