Why does Autocomplete suck so badly?

Discussion in 'iOS Programming' started by ArtOfWarfare, Jun 21, 2015.

  1. ArtOfWarfare, Jun 21, 2015
    Last edited: Jun 21, 2015

    ArtOfWarfare macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #1
    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 :-/
     
  2. Boris-VTR macrumors regular

    Joined:
    Apr 18, 2013
    #2
    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 :) ).
     
  3. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #3
    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.
     
  4. chrono1081 macrumors 604

    chrono1081

    Joined:
    Jan 26, 2008
    Location:
    Isla Nublar
    #4

    Sounds like your computer. My autocomplete is instant.
    Xcode beats the crap out of anything else I've used.
     
  5. ArtOfWarfare thread starter macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #5
    I use Xcode for Obj-C, IntelliJ for Java, and Sublime Text + Command Line for everything else (Python, JavaScript, C, etc.)
     
  6. ArtOfWarfare thread starter macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #6
    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.
     
  7. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #7
    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.
     
  8. Boris-VTR macrumors regular

    Joined:
    Apr 18, 2013
    #8
    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.
     
  9. Watabou macrumors 68040

    Watabou

    Joined:
    Feb 10, 2008
    Location:
    United States
    #9
    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.
     
  10. ArtOfWarfare thread starter macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #10
    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.

    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 ==.
     
  11. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #11
    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) :(
     
  12. ArtOfWarfare thread starter macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #12
    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.
     
  13. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #13
    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.
     
  14. AxoNeuron macrumors 65816

    AxoNeuron

    Joined:
    Apr 22, 2012
    Location:
    The Left Coast
    #14
    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
     
  15. Boris-VTR macrumors regular

    Joined:
    Apr 18, 2013
    #15
    Since documentation is at your finger tips i dont get frustrated too much when i can remember exact name.
     
  16. ArtOfWarfare thread starter macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #16
    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.
     
  17. 1458279 Suspended

    1458279

    Joined:
    May 1, 2010
    Location:
    California
    #17
    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.
     

Share This Page