Optimal iMac for Coding

Discussion in 'iMac' started by cevans32, Aug 14, 2017.

  1. cevans32 macrumors newbie

    Aug 14, 2017
    Entry coder for small business, deciding on specs for 21.5 inch 3.4 ghz iMac. Should I go with 8 or 16 gb ram, and 256 or 512 ssd?
  2. jlseattle macrumors 6502


    Jan 9, 2007
    Seattle WA
    What applications are you going to use to do the coding? Just Xcode? I would go with the 8gb and 256 ssd.
  3. cevans32 thread starter macrumors newbie

    Aug 14, 2017
    Yeah it will just be Xcode to start with. Thanks
  4. rkuo macrumors 6502a

    Sep 25, 2010
    Screen size most important, believe it or not. RAM next, then SSD. Can depend on what you're developing.
  5. villicodelirant macrumors 6502


    Aug 3, 2011
    You folks need to stop with this horrible buzzword, "coding".
    Is that a verb now? What does it even mean?
    Surely a telegraph operator in the 19th century would also encode and decode Morse code, they did a fair share of "coding".

    What? Sure, I hear you: you mean "writing computer code", silly me.
    Well, thank you very much, it's about as informative as "typing" in the days of typewriters, that would apply equally well to Hemingway, John Lennon and the clerk at the post office.

    The question is: what you are doing?
    • Front end programming?
      If so, beware, you will probably want a few VMs open, read that as "more RAM" - and maybe more screen real estate.
    • Phone apps, especially Android?
      See above, the Android toolkit eats up ridiculous amounts of RAM, and don't get me started on the emulator.
    • Lots of test-driven stuff and/or batch jobs with lots of numerical computations?
      If so, you want all the possible cores and, in the former case, also the fastest I/O.
    • Database-centric programming?
      You want fast I/O.
    • Tiny scripts that don't do much computationally?
      You're lucky, you don't need much.
    What sorts of languages and toolkits? In particular, is the JVM involved in any capacity?
    Is some sort of Intellisense-like technology involved in your workflow?
    If so, as ridiculous as it may sound, buy the biggest, fastest machine money can buy and maybe scale down on the screen a little bit.
    Less than lightning-fast intellisense is useless, believe me.

    In general, I concur with rkuo on one thing: screen real estate is horribly underrated for all sorts of development.
    I disagree on one thing: spinning platters are barbaric and unacceptable in nearly all situations, except maybe, maybe, if you're writing small Perl scripts in vim.
  6. thefriendshipmachine macrumors regular

    Apr 14, 2017
    theres nothing wrong with using the word coding and its not a buzz word! Telling someone youre coding is a lot faster than telling them "im writing swift in xcode for ios"

    I dont think you should get an imac. Look into image retention issues on imacs. I found lots of people on the forum saying running the imac hot causes the retention to happen even faster which permanently damages the screen. The second reason I wouldnt get an imac for coding is because its going to run into the 90C - 100C range especially in xcode when its indexing and compiling. The best option for you in my opinion is a mac pro but since there arent good ones I would just build a hackintosh.

    p.s. I run xcode and vim all the time on my imac so if you have more specific questions let me know.
  7. villicodelirant macrumors 6502


    Aug 3, 2011
    There is, it's an abomination and it must be stopped.

    Believe me, it is. Even the White House under Obama had a page about "teaching kids to code".
    The word "coding" as a synonym for "programming a computer" was unheard of until 10 to 15 years ago.
    Head over to Google Trends and see for yourself.

    If you want to go for "fast", how about... "programming"?
    (But then you're so fast, you don't even stop for apostrophes...)

    That's a fantastic idea if your livelihood depends on it.
  8. thefriendshipmachine macrumors regular

    Apr 14, 2017
    Maybe its generational since I just finished my undergrad in CS and nobody was upset about the term "coding". Are you a software engineer? If so what do you work on!
  9. villicodelirant macrumors 6502


    Aug 3, 2011
    Of course it's generational.
    Damn kids.
    Now get off my lawn!

    (And I mostly dabble in computer vision, in theory; in practice I mostly scream at people on Skype. I'm curious myself to know what you are going to specialize in, consider continuing this in the appropriate forum ;) )
  10. danielwsmithee macrumors 65816

    Mar 12, 2005
    I've been working as a Software Engineer for 15 years. The modern iMac is a fine machine for software engineering. I agree with the comment that 1) screen size, 2) minimum RAM, 3) SSD are the most critical.

    The Base 27" iMac configured with an SSD, and 16GB of RAM is a reasonable selection. I don't think you will need more RAM than that unless you get into VMs and other RAM intensive applications.

    If you want the 21.5" iMac upgrade to SSD and 16GB of RAM. You will then most likely want to add a second monitor.
  11. kschendel macrumors 6502a

    Dec 9, 2014
    I've been in OS and DBMS development for over 40 years. (Take that, youth!) I will also agree that screen size, RAM, and SSD are important, pretty much in that order. Don't worry about the CPU too much, although for any serious DBMS stuff involving benchmarks you'll want the i7 for the extra cores / threads. (Actually, you'll want a dual 6-core tower Mac Pro, or a Hackintosh, but that's getting off topic.)

    I'm fine with "coding", but it's too vague. There's lots of different programming domains. Doing a website with the various browser oriented tools is very different from writing a compiler, or a DBMS engine.
  12. thefriendshipmachine macrumors regular

    Apr 14, 2017
    I didn't want to derail OP's thread but I had no idea there were so many developers here on the forum. Where have you all been hiding!

    Wow computer vision seems really interesting! For my own specialization I'm not sure what I want to do yet. A lot of things seem interesting to me (like OS development, working on distributed systems, neural networks) but I'm not sure what kind of experience would be best to strive for as a junior engineer that would allow me to gravitate towards those subjects.

    Over the past 2 years or so (I graduated this past June but worked during my last 2 years of school) I've been at a startup doing iOS development in Swift/Obj-C and also on building out/maintaining a RESTful backend for a mobile application in nodejs running on heroku and AWS. It has a decent user base and has been interesting but I don't want to do it forever. Before that I was making web apps in React and I really enjoyed that but also want to expand my horizon beyond web development.

    My big fear is that I'm not doing *enough*. The company I'm at is really great but there's not really any senior engineering guidance and I'm worried that I don't have the opportunity to keep learning and improving. What if some of my practices are totally stupid and nobody is here telling me that and I end up disadvantaged w.r.t. my colleagues 5 years from now because they got that on-the-job discipline and experience and I did not.

    So I think I might consider working for a bigger company that isn't a startup. I've been reading several algorithms books and I might try passing the Google/Msft/Apple/Fb interviews. So far I haven't bothered with those companies because my friends mostly got destroyed during their interviews and I've been scared. I think I did pretty well in my algorithm analysis course though and I might keep practicing for a few months and just give it a shot.
  13. danielwsmithee macrumors 65816

    Mar 12, 2005
    If you are looking for more discipline and learning experience from Senior engineers I'd suggest looking to get into Aerospace or the Medical Device industry. Those two industries are filled with very senior engineering staffs that are quickly approaching retirement and are more then willing to enforce discipline on engineers. Typically they are looking for emdedded real-time experience.

    They also pay a lot better and have better working conditions than the typical Silicon Valley corporation. Most engineers are underpaid in Silicon Valley in my opinion...
  14. jzhangc macrumors newbie

    Sep 28, 2015
    I do bioinformatics (machine learning, data science, which requires CPU. And a lot of genome work that requires a huge RAM size).

    I wanted a terminal to run stuff locally and anything more demanding I just run on a cluster. So the 2017 27inch iMac (mid tier but with i7 and 512GB SSD, also self upgraded RAM 64GB) I got is more than enough.
  15. t0mat0 macrumors 603


    Aug 29, 2006
    Entry coder for small business, deciding on specs for 21.5 inch 3.4 ghz iMac. Should I go with 8 or 16 gb ram, and 256 or 512 ssd?

    Well the 21" 3.4 is $1500 and the highest end 21 before upgrading to the 3.6 for $300 more

    $200 more gets you the base level 27" and whilst you can't upgrade the RAM after purchase in the 21 I think you can in the 27" (check OWC or other one to see what they suggest about upgradeability) easily and later on.


    You could always use external HD/External SSD if you need to not spend too much. TB3 drives will be quick enough for you.
  16. jerwin macrumors 68020

    Jun 13, 2015
    yes, the 27 inch imac has a user accessible ram slot.

    If you ever have to reverse engineer a binary file format, a huge screen is a godsend....

Share This Page