I am looking for a laptop to code on ( I am using a Windows machine as my main rig). I've been looking at tutorials on coding (I know HTML and CSS so far) and the majority of people are using mac's. I won't be using the macbook for gaming anyways so I thought it would be a good idea to go for a mac. If anyone could help me it would be appreciated. Cheers
If you're going to start making iOS apps then you *need* a Mac as you can't actually develop for them on Windows or Linux platforms. However, if you're coding standard websites, it really doesn't matter what you use (If you're going to code C/C++ or any language that needs the "#" key I'd say getting a Windows laptop or a proper keyboard for a desktop Mac (Mac keyboards don't usually have the "'#") So, it's down to personal preference for web design.. good tools exist for both platforms to make nice looking websites. Only thing that would sway me to a Windows based OS is that you can use Visual Studio easily (but you can use parallels for that on a Mac if you so wish)
+1 With what buzzons said... it all depends on what you're coding/coding for... Also iirc it's only the UK layout mac kb that lacks the '#' key [the '£' is in it's place]... My current preference is Windows PC and a Linux Virtual Machine...
If I stay with Windows what software would you recommend? I'm currently using Notepad++ and I'm not a big fan , I want something elegant and fast i.e predicts what I'm going to write. While Notepad++ looks and feels outdated and inefficient .
I would say if you love your sanity, then stay away from Macs for any programming tasks. People use Macs, but not all of them use OS X . The problem with programming and Macs is the totally anti-user friendly key bindings for moving the cursor around (at least for someone who used non-Mac systems for long time), and that is made even worse in case of Macbooks which have no Home/End/PgUp/PgDn keys. Just take a look at shortcuts : http://www.hcs.harvard.edu/~jrus/site/system-bindings.html For HTML/JS/CSS i would recommend using Brackets : http://brackets.io/
Seriously : You get the functionality with various combinations of option and/or command and/or shift + arrows. But i think that is just stupid.
I agree with what is said. in addition, if you work on large programming projects with C/C++ or use a game engine system, you will quickly discover the abysmal memory management, and process scheduler of MacOS, which will cause you serious performance problem, due to the heavy multitasking required, and memory hungry processes. It will require frequent reboots to keeps things smooths. To solve this, don't multitask. If you dig on teh web, you can see people complaining about this, with a somewhat patch work fix, to make things better, but better on something abysmal, is no fix: for example: http://workstuff.tumblr.com/post/20464780085/something-is-deeply-broken-in-os-x-memory-management Usually these topics, especially on forums, are crushed by Apple fanboys who will blame it on faulty hardware, or blatantly say they are lying. Its not a hardware problem, as most if not all that had issues already replaced their Mac under warranty, and the problems persists. Keep in mind that most people using a Mac, probably don't really multi-task. Being on Facebook or youtube and playing music on the back is not the multi-tasking I am talking about. For application or gaming development with C/C++/C#, the best development tool, is Visual Studio. Nothing, and I mean NOTHING comes remotely close as an option to consider. That is why Microsoft charges a large amount for the software per system, and companies and individuals have 0 problem paying it. They are no free or low cost options to consider. The godo news for individuals like us, is that we have a free version of Visual Studio. Its not full featured, but most likely won't b using the advance features in any case. If you do a degree in software developer (eg: soft eng, or computer science), your school is general is registered to MSDNAA now called DreamSpark Premium, where you have a more full featured Visual Studio, available for free (you have also other Microsoft software for free, including Windows). I doubt you'll use the advance features on those edition of Visual Studio,but just saying. As for web development, I recommend to have a look a Microsoft WebMatrix (its free). It allows you to work on ASP.NET or PHP (as well as HTML, JS, and CSS), and run your web site locally with a click of a button. PHP and ASP.NET normally requires a to setup a server, to compile when viewing. This gives you the tools you need to no break your head to get started, or need a configured web server. It's also a nis\ce editor, which will point you out code errors as you work on HTML, if you just do that. So it's pretty cool. Worth a look. It's free too. So nothing to lose.
This post isn't a "You should or shouldn't use this post. It's a 'I can't believe the anti OSX venom I just read post. As a full time developer on OSX I had to counter with my experience Goodbytes is right that Visual Studio is pretty nice. I had my teams working with it for a decade, and if you're working exclusively on code targeting Windows it's really the only way to go IMHO. But where Goodbytes falls down is in his seemingly fanatical hatred of Macs and OSX. Sorry dude, but I say it as I see it. Your linked article is one persons experience from two years ago on an OS that is two versions out of date (Three versions if you include Yosemite beta). Goodbytes is making it out that OSX is completely unsuitable as a development platform and yet people seem to use it fine without issues. What gives? Why the discrepancy? Maybe OSX is actually fine as development platform? I was a windows developer (& Tech Director) for well over a decade but I've moved to Macs. Losing visual studio required some adjustment time as a few years ago Xcode wasn't as stable as it is now. Xcode 5.x is a strong IDE and Xcode 6 looks to be even nicer. OSX Mavericks is an extremely stable OS with efficient memory management. I use them for development day in - day out without issues. Seriously. Without. Issues. But then I don't on Windows systems either. Modern OSs are pretty damn good be them Windows or OSX. I'm sure there are scenarios where certain toolsets and certain use cases will cause issues. Maybe there are some game engines that do have massive memory leak issues - I don't know. My main IDE is the standard Apple Xcode and it most certainly doesn't suffer from such issues. Neither do the dozens of other related apps and productivity tools I use. Yes I'm a heavy multitasking user. OSX actively promotes not shutting apps down and I generally need to use about a dozen packages, spread across three screens. In addition to the main packages there's a lot of smaller helper apps I have running too. Including five real time cloud & local backup systems (TimeMachine, CrashPlan, Dropbox, GoogleDrive, SkyDrive). That's a lot of stuff running and never a hic-up. Maybe Goodbytes experience is out of date? Maybe it's like on my GFs Mac. She insists on using Firefox + Thunderbird and they seem to have more than the occasional stability issue where I using Safari + Mail have zero issues. Yes Zero. Some software is better than others. Apple's software may not always have all the features you want, but stability and efficiency isn't an issue in my experience. I wouldn't be surprised if some cross platform toolsets work better on one platform or another, such is the way of the world. If a certain toolset / toolchain / IDE is needed or desired then pick the best OS for it. If that OS is windows - run it on windows! My gear: Main machine: 2012 retina MBP. 2.7Ghz i7, 16GB Ram: Running external 1440p & 1200p screens as well as the retina. I also have my old MBP which gets dragged form room to room when I can't be bothered to undock the main machine. It's a 2009 13" MBP with a slow old dual core and 8GB. Again it runs fine, just obviously slower at full project builds (2+minutes vs 15+seconds) I've also dabbled with hackintoshes and my experience is they are not worth the hassle for commercial use.
This is my 'response to the OP' post What development do you want to do? If you never want to develop iOS or OSX apps then you'll be fine with a system running Windows. Goodbytes is spot on: Visual Studio (Inc the free versions) is great and skills learned in using it will serve you well. It's a great kicking off point into other areas or into more serious windows dev. If you want to develop OSX apps then you NEED a Mac. End of. If you want to develop iOS apps then you'd be mad to develop them on anything but a Mac (It can be done with certain cross platform tools, but IMHO... just don't go there). Even if a team is developing a multi platform app on Windows systems they'll still use Macs during certain stages of the pipeline. Do you want to develop web? apps? Do you want to learn the official Microsoft tools? The official Apple? Or are you looking at learning something upcoming and more fashionable? Answering these questions will help you decide what tools you need to use, and that will help you decide what platform you need. MacBooks are lovely machines. They are built well. Have great keyboards, trackpads and screens. They have AWESOME battery life and excellent warranties. They are very cost effective when compared to equivalent Windows machines, but clearly more expensive than say an entry level DELL. Apple don't make a cheap-as-chips plastic laptop. Even if you want a Windows system, a Macbook makes a mighty fine machine to install Windows on. If you ever want to develop for the Apple ecosystem then a genuine Mac is what you need. There's lovely windows machines too. If you don't want to ever use OSX then you can broaden your horizons and look at machines at many different price points. At the end of the day it comes down to what you want to learn and why? Do you have a specific need? Are you looking to get a job out of this? Do you want to specialise in one thing or get your toes damp in many difference areas?
Oh come on. Cursor control is just different on a Mac. I have all those 'missing' keys on my Mac keyboard and I don't use them. I either use different shortcuts or more often I use gestures. To be honest I don't think. I want the cursor to move and my hands just move it. It's just like on a Windows system where you have learned behaviour and it becomes automatic. There's a difference for sure, but you just need to adjust. In my experience there's usually several ways of doing something on a Mac compared to Windows. People see a difference and to them it just screams 'It's not the same! It's wrong'. if you really want to set up a Mac so it works just like a PC for text selection you can do it (pretty much). But I doubt it affects many people. We're all kinda used to swapping around between devices nowadays aren't we? If a fully dedicated home key is an essential need then maybe a macbook without an external keyboard isn't the machine to use. Of course you could re-program a function key, or learn to use a different key combination... or a gesture... or a mouse... Deciding which OS to use is generally less clear cut than 'does it have a dedicated home key?'
I'd also just throw in that notepad/notepad++/sublimetext et al are NOT IDEs - they're just decent text editors. A proper IDE will really REALLY speed up your coding, making you more efficient, and prone to less errors. XCode, Visual Studio, Eclipse, NetBeans etc are IDEs.. and Visual Studio is hands down the best for most languages. (Even Python!)
I'm just coming out of my junior cert (the Irish version of the GCSE's) and I will be doing something that is called Transition Year it's basically a year off doing real school work so I thought I would use this time to learn some coding languages and ultimately decide what I want to do in Uni. So I'd have to say I'd be trying to everything.
In that case go with whats available to you so. Which would be a windows machine. Your not going to get some massive benefit by going mac. Everything your likely to do can be done on a windows machine. You can revise the situation when your in college, see if you want a mac then.
Good advice. My advice is to create something pretty simple (Sudoko? 2048 Clone? Flappy bird?), but do it in a few different languages and platforms. A javaScript web app. An android app. A windows app. (iOS app too, if you do end up with access to a Mac). The more the merrier. You'll gain experience of coding in general, see how techniques differ (and yet are very similar) between platforms and learn a good spectrum of skills spread across pure coding and user interface focussed. I would certainly recommend having a focus to what you are doing than just 'having a play'. It will also look good later down the line as you can explain how you learned the basics and have something to show for it. If my examples above 'sound too complicated to start with' then google for tutorials on them. I bet there's a beginners tutorial on at least one of them in one language or another. It could be somewhere to start.
I agree with what's been said above. It all depends on what you'll be doing. Guinevere's suggestion about coding the same simple thing in different language is a good way to learn things (different approach, different difficulties / limitations, etc.) Also, a sheet of paper and a pencil will be your best friends. Write things down and simulate your algorithms on "paper". Coding is just the translation of an algorithm into lines of code. About the IDE or OS, I can't really give you any advise as it depends on what you'll do. I use emacs on Linux, but it's purely because I've been developping for real time embedded system for years. Sublime text is a nice IDE too, but it hardly justifies it's price.