I write this post from a laptop that runs Windows and Linux. I'm considering buying a Mac, macbook or mac mini. The goal is to use it for App development and generally for coding. Do you have any suggestions ?
... if you are experienced in the field i would like your point of view.
I know it's not universally loved, but I'm a fan of the newer model of MacBook Pro (this year or last year). I'd definitely max out RAM.
I got a 2016 refurbished, and even though Apple is never the cheapest, it's the best value IMO apple.com/shop/browse/home/special...
Have you experienced any issues with the keyboard? There are a ton of posts on the forums about the new butterfly keyboard being very unreliable.
The Macbook Pro 15" 2016 seems to have quite a few issues, some which were addressed in the 2017 model. I've been trying to find a 15" 2017 refurbished instead of a 2016 model with no luck. I'll probably have to go with the 13" model it looks like.
Thanks Ben for taking the time to answer me, i will definitely consider your thought.
If you can afford a new MacBookPro it would be awesome, at least an old one should be ok. As long as it has i7 and SSD you'll be fine.
You want a laptop, not something fixed, you have to be agile, in moving state, prepared to code and have fun from any place on earth. Go mobile.
Laptops cost twice as much for the same hardware and have half the life expectency.
For ergonomics and your health, you shouldn't use a laptop trackpad/keyboard for extended period or time. My syster has her hand/arm damaged from not using properly the mouse for years at work... Now she can't lift anything heavy and need special device to replace the mouse... And so laptop are not longer an option at all.
Laptop are nice, but if you have only that, having a place with nice keyboard/mouse, nice chair too and big screen add tremendous value... On top of that, you get the work done faster/better. At work we all have laptop but with docking stations, dual screens so we get best of both worlds.
No they do not cost twice as much, maybe you forget to add the display and keyboard and track and the battery (which is like having an UPS).
I can see from a far away distance (unfortunately) people that are using (in a bad way) laptops for a long period, because they are young ppl but they have a hump.
Using a laptop with no periphericals for a long period of time is very bad for your health.
There are only a few situations when I recommend buying a stationary PC, but even for laptop you need at least 1 display, mouse and keyboard (preferably ergonomically / more expensive ones).
A desktop box with an i5 (still more powerfull actuall than the best laptop i7), 16GB memory, a mobo, a case and power suply and an SSD is 600-700β¬. Only branded, quality components.
A screen comparable in size to the one of a laptop is 100β¬. The most basic mouse/keyboard with still better ergonomics than a laptop is 30β¬ for both. But as you explained yourself, you'll want dedicated screen/keyboard/mouse and likely better than the most basic one in both cases. 2X 22" + nice mouse/keyboard is 500β¬, but these are perificals, not the main unit. I exclude them from the cost as they are needed both case anyway. And if really you want to get just a screen to replace the one of the latop, count β¬100. The laptop would need a docking station too for conveniance but I don't count it.
A desktop doesn't need an UPS. At least where I live it can stay up for months without a power shortage. And a laptop battery need to be replaced from time to time. Doesn't live more than 3-5 years.
Equivalent macbookpro to the 600-700β¬ desktop ? 3300β¬. Equivalent dell ? 1100-1300β¬.
Your desktop life expectency is much better and if one component fail, you may need to change only that. The worst is the mobo/cpu/ram combo but that's β¬400 for being up to date. My curent desktop main drive is a 6-7 year old 128SSD from a previous laptop. I just added a 1TB for 70β¬ a few year back. The screen/case/power suply/mouse/keyboard don't have to be replaced each time you change and be used for their full life.
You are comparing apples with orange juice. They serve different purposes and achieve different things and have different manufacturing costs.
If you want to compare only the price you have to include an UPS and an operating system, from similar manufacturers (apple vs apple), and to find small parts in a micro ATX so you can carry around, to be the same as a laptop portability.
If you are using your laptop as a desktop PC then you need a desktop PC, if you are a mobile, agile developer that goes to coding meetups, conferences, clients and can code to different desks depending on the project or problem he is facing in that day you do not have a choice (PC vs Laptop).
The key feature of a computer is to run software and to do that efficiantly.
This is the #1 feature. If that feature isn't achieved the rest is irrelevant.
Then there tradeof to be made if you prefer to lower cost, to have better mobility or better performance. Desktop goes toward perf and lower cost and higher durability and efficiancy. Laptop goes toward better mobility.
The OS is part of the software. Quite often doing the wrong choice is extremely prejudicable if the key software you need doesn't work as intended.... Like MS office suite without macro on mac. Windows without a nice console support or Linux without nice office suite and other common apps.
You are correct but with each reply you are deviating from the original question, there's no use to continue. Let's disagree to agree.
I said about OS and software as an example that you are comparing different things (you compare an APPLE mac book pro vs a home made PC without adding the value of what the APPLE brings, software, battery, OS, mobility etc), even if you do not use it, you are paying for it.
PS: I'm not an Apple fan, I think 40% of the price is just for marketing costs, but if the company buys it I would sure pick one for me. There are some perks and features that you couldn't get from a PC with Windows or Linux, it's just the perfect mix for a developer (better ergonomy with a bash shell), but for 10% more productivity and performance you are paying 40% more (random numbers).
Thanks for taking giving me your opinion, possibly that's what i'm going to do.
What as developper gives you the max efficiancy ?
First and foremost great keyboard, mouse, and 2 or 3 desktop screens so you can visualize more things. like the code on one screen and the browser on another one or the documentation. Or 2 part of your application at the same time (config file + code, 2 files of code and so on).
This is standard for everybody at work and this is a game changer.
You'll also likely want a laptop so when you are on the go, want to make a presentation you can leverage it.
You'll want an operating system that would integrate well with the tooling and program you'll make. Nobody use macs to run server in production, a few use windows. Most if not all rely on linux, now with docker and all. But this would depend of what kind of dev you want to do.
You'll want an operating system that is safe and stable (windows isn't the best for that, even if only it is more targeted), but also that easy to live with to do everything including word/excel/power point.
Ideally you'll want a second or third computer that can do most of the heavy task in the background wihout slowing you down... pass the unit tests, build the artifact but this may not be feasible so you want decide multitask computer with at least 4 physical cores, SSD and lot of memory so you can ultimately launch VM, have a database server in the background and alike. If you have fiber, the best solution maybe some server(s) on the cloud and that would give you great practical knowledge on the topic.
As you see, there various requirements. A desktop for β¬/$1000 would do everything except the mobility part, but you could buy an entry level 11 or 13" thin and like laptop for that... So the total cost would be β¬/1500.
You can buy a powerfull laptop + docking station and screens for maybe β¬/$1500-2000...
Doing the same with mac, you can multiply the price by 2 for the same hardware/performance but with the benefit of a luxury tool. Better finish, nice refined UI and alikes.
Beware that despite their look and premium finish, mac aren't more reliable than PC. My previous desktop PC lasted 10 years and could be salvaged except it was not really worth it while I got 2 macbookpro that failed in 2-3 years each. One had the battery failing, inflating and distording the casing, The other one was my fault because I poured accidently a few ml of tea on it.
The newest can't have anything replaced and use non standard components.
So choosing mac is like buying a mercedes, audi or jaguar. it doesn't mean you get more for the price or the thing is more reliable than a japanese car. It just mean you got a luxury product. That's nice but more expensive.
As a technical choice, it is a decent one, a middle ground between a Linux with mac working similar enough to one to leverage that and an every day computer easy and conveniant to use (standard desktop app, easy update/config/install) without the instability security issues of windows.
But it isn't as dev oriented to me as a nice linux or as ubiguitous as a windows. But if you use mac or windows, as long as you consider at least 16GB of memory, better 32GB these days, you can always run a linux VM. I never tried how this work in multi screen through.
As a side note, at work I have a Linux laptop connected to docking station and 2 22" screens. Most other have a windows laptop, often a more powerful one. I don't need an antivirus, the windows guys have one. In practice, even when they have more powerfull computer, I clone a git repo a few time faster and I compile the application 2X faster than they do... Even as the dev folders are excluded from the antivirus. But on day to day basis, I am slowed down each time I have to use word/excel/power point and cisco webex (for remote meeting, screen/voice sharing) is a nightmare on linux.
I'd say give refurbished systems a good look. I just purchased a refurb desktop (Windows) with 128GB SDD, 2TB HD and 16GB RAM for under $400. I'd guess similar deals are out there for Apple. Just make sure there's a good return policy in case the refurb is flawed.
One thing I would also recommend is getting a big screen to go with your laptop. While you can develop on a tiny screen, you'll have less eye strain if you can use a 27" or so monitor when you aren't mobile.
TL;DR
As a developer, you should buy a computer with 8 - 16GB RAM and SSD storage regardless the OS. I think you should go with MacBook Pro if you can afford, or at least Mac Mini, MacBook is lack of needed port and not suitable for development.
I was using Linux and Windows in my ThinkPad T430. I got a lot of problems with them like the drivers out-of-date, the bug with sleep mode and the most important are the whole system slowing down day after day, after 6 months or a year, I need to reinstall the OS.
The problem comes from both hardware and software. The manufactures can't do the specific optimization.
Apple makes Mac computers, they just have a limited hardware to take care so they can make the good driver, the warranty service, the good software compatible...
And you know, Mac computer really makes my life easier. I can close the lid after work and open it tomorrow without worry of the screen will turn to black on the next day. I never shut down the computer, except for the software update (maybe 6 months until now I do not restart the computer).
All the tool I need when using Linux also available here: iTerm, git, docker, vscode, openvpn, Android studio (Xcode for iOS development is the bonus here :D)
Just to say, my destop windows computer at home is like that. it reboot something about once a month because I hate loosing even few seconds for things to be available. it fast, lean stable. But I built it myself, don't do stupid things like downloading ilegal stuff or installing app all the time so it rock stable.
My Linux latop at work is also quite stable and run for weeks/month. Same strategy. The linux is more annoying definitely because it is not as user friendly. But for a dev machine it is really great. Everything standard, the same as in prod, lean and extremely fast.
Mac are also lean and fast, but for the same hardware you pay twice as much.
Example my work laptop is a DELL, they brought it 2 years ago, it is an i7 4core 3.4Ghz + HT, 512GB SSD and there hardware support for encryption (intel vPro processor) so the full disk is encrypted but extremely fast. There also 16GB of memory. The cost was a bit less than 1300β¬. The most similar spec macbook pro, 16GB, 4core i7 (a bit slower actually), 16GB RAM, 512 SSD is asking 3300β¬. Almost 3X more expensive and for the price, well, the CPU is a bit slower and it isn't specified if there hardware support for encryption...
Actually there no macbook pro bellow 2800β¬ that has a 4 core processor. I switched from mac to windows last time because of that. I got a desktop for β¬700 that had a 4core i5 and that processed my photo twice as fast as the dual core laptop macbook pro I had.
You have to be carrefull of the PC you buy, that true, but if you know what you do, you get more for your money with a PC than mac.
The best mac are actually the cheaper ones. You get the mac experience, lean/fast on very basic hardware that work well. The price is ok. But if you need something powerfull, apple put a huge tax on you.
Well if I didn't have a mortage for my flat, I would likely had brought mac again. I would be able to spend 3X time more to also get the refined design and all. But this is a luxury product.
MacBook Pro.
Don't be fooled by people who might tell you that 15" is minimum for development. It can be easily done on a 13".
Buy the most RAM and fastest procesor you can affort - but prioritise RAM over processor.
SSD all the way, 256 minimum.
You DO NOT have to buy the latest editions. Even a second hand 2015 MBP will give you good service for many years.
Agree that SSD 256GB is the minimum if you have only 1 HDD. Honestly for the 50β¬ difference in price when buying the part, you'll want the 480-512GB ones over the 256GB ones.
If your computer can have more than 1HDD, adding something like a 2TB HDD is much more conveniant.
16GB of memory is must. If you can afford it 32GB make sense. As dev you want to be able to run a VM without being slowed down too much.
To be noted that as parts, 256GB SSD is 120β¬, 16GB mobile ram is 170β¬. Such things are cheap so if you don't buy a mac (that don't allows that) you can always replace/upgrade the parts.
Ultimately, you have to decide what your laptop characteristics shall be... Mostly static powerfull one just moved from time to time. Can be heavy and connected to several screen/keyboard mouse. Or small/light/thin for ultimate mobility.
13" is nice for mobility but any laptop not connected to a set of screens, a nice keyboard and mouse is just slowing you down when using it. So if your life style means mobility 13" is lighter/smaller. If you have your "docking station", you don't really care i'll you'll not use the embedded screen that often.
My main requirement is an amount of RAM. anything less than 8GB is painful to work with since IDE and a few browser tabs can eat away all your memory. MacBook Pro seems a perfect choice if you're gonna develop apps for iOS
Dell XPS 13. I previously owned a few MBPβs and theyβre not worth it compared to what you get when running Linux on an XPS. On top of that, Apple is losing its edge when it comes to creating proper OSβs and Docker keeps dorking out on OSX.
Windows/linux machines are fine - get a XPS and save money from buying a MBP
if you are coding with mac , MacBook pro is your best choice.