4 ms·
I never got the "good for programmers to learn on" argument. If anything Windows has better IDE support and is easier to install things on for a beginner. Not s
by jimmaswell 7y ago
I never got the "good for programmers to learn on" argument. If anything Windows has better IDE support and is easier to install things on for a beginner. Not so bad on Linux with VS Code these days at least.
- conjectures 7y ago"Windows has better IDE support" Why would having better IDE support make for a better learning environment? It masks what is going on, and complicates it (for the benefit of people doing much more complicated things). But if you're bashing out helloworld.py you've just made it hard to disambiguate what the file is doing, what the runtime, and what the IDE.
- jimmaswell 7y agoWindows/VS: Type some stuff in the window and hit F5, get shown visually the line that went wrong. Install other things with easy setup utilities. Linux/CLI: Learn an obtuse (beginners, remember) command line text editor, save the file, run another text command to run it, remember the error as you go back in. Fight with apt to get things to work, pray there are no dependency conflicts/errors, learn sudo, go find an IRC channel to help with a package not working with some obscure error about "but it depends on .. which is not installed, try (command that won't fix anything)" First one sounds much easier for a beginner to me. Making programmers learn on linux is like making student drivers start on manual tractor trailers.
- flukus 7y ago> First one sounds much easier for a beginner to me They didn't say it wasn't easier, just that they'd learn less. A better platform to learn on doesn't result in you learning less. This is even true among "professional" developers, they think somethings impossible just because it can't be done inside visual studio because they don't know how all the parts fit together, all they can do is hit F5. > Linux/CLI: Learn an obtuse (beginners, remember) command line text editor, save the file, run another text command to run it, remember the error as you go back in. Fight with apt to get things to work, pray there are no dependency conflicts/errors, learn sudo, go find an IRC channel to help with a package not working with some obscure error about "but it depends on .. which is not installed, try (command that won't fix anything)" Aside from the command line text editor you have deal with almost similar issues with VS, different but similar. You can end up in DLL hell from nuget, you can fight with click once deploys, you can find useless "answers" on MSDN, etc.
- jimmaswell 7y agoYou can always learn the hard way later. Less distractions and friction is better for initial learning. Can't say VS has ever given me problems outside very complex large projects that are out of scope here while the Linux part is based on experience.
- Nursie 7y agoInstalling a new language is way easier on linux - apt-get install <language> and you're getting started. You seriously underestimate the amount of work people have to do to get started in an IDE.
- jimmaswell 7y agoapt is prone to catastrophic failure that's very hard to diagnose but setting up an IDE is as simple as clicking OK on a few prompts in an installer. For some real data nobody in the high school class I took that used visual studio had any issue with the fact it was visual studio. Really though, thinking on it the best environment for a total beginner is probably one of those web-based things like codeacademy.
- deleted 7y ago[deleted]
- Nursie 7y agoI don't want to start a huge argument or anything but it's years since apt has failed for me, and I run a bunch of systems. IDEs have a learning curve over and above learning the language, and really, locating and installing an IDE is easier than typing apt-get install <language>? Let's agree to disagree.
- diffeomorphism 7y agoWhy would you rely on CLI? As an example I write papers using latex. On Windows I have to: - Figure out that I need miktex. - Find its website and download the installer and install it. - Find an "IDE" like TeXniccenter. - Find its website, download it and install it. - Configure it. - I have buttons to click, great. I click on them and pray that it works. What if it doesn't? Error messages are buried somewhere and problems are horribly difficult to fix (e.g. utf8 problems or missing perl). - I need to convert some graphics from one type to the other. Can Windows do that? What do I need to install? Photoshop? On linux: - Open the software center/appstore/whatever. - Search "latex". - Click on all the stuff I like. Done. - Everything works out of the box and does not need fiddling. The second one is much, much easier for a beginner.
- edflsafoiewq 7y agoInstalling and navigating through enough of the VS interface (what is a "Project"? Why are there so many different types? Doesn't the book say I just need a text file???) to even get started in Windows is a huge challenge. The original reason I wanted to use Linux was precisely that "make a text file and run a command" appeared simple enough I could understand all the moving parts.
- jimmaswell 7y agoNone of the first timers in my high school class that used VS had any issue.
- tjohns 7y agoI've had the opposite experience. On Linux, you just open up a text editor, write some C/Python, then pop open a terminal and directly invoke gcc/python. There's typically nothing that needs to be installed - and if something's missing, it's just an 'apt install' away. As a beginner you can see how everything fits together since there's no IDE in the way. And if you want to dig deeper into how things work, everything is documented in the man pages. On Windows, you need to go online, find the right downloads, then install various developer utilities just to get to a working build environment. From there everything is typically done from the IDE - which means setting up projects and dealing with more abstraction. I'm firmly of the belief that IDEs are a great tool, but aren't something that should be introduced until after students have a firm grasp of the underlying fundamentals.
- pjmlp 7y agoIronically I remember the days when using Python on UNIX, not only I had to go online, I also had to compile it. Or get the IT to install the respective C compiler.
- saagarjha 7y agoWhat self-respecting UNIX distribution doesn't come with a C compiler?!
- pjmlp 7y agoAll of them since Sun started selling developer tools as an additional package? Plus just because there is a C compiler, it doesn't mean IT has made it available to common mortals, or allowed exec on $HOME for the clever dudes that try to sneak in one.
- saagarjha 7y agoThat's just depressing…
- JohnFen 7y ago
- pjmlp 7y agoIt is the UNIX cargo cult that 100% programmers use UNIX and software on other OSes just appears out of thin air as their users wish for its existence. /s
- atoav 7y agoAs somebody who uses both and comes from Windows I must say, that you learn a lot more in a Linux environment. The tooling is also better, because you are not made reliable on one IDE, but instead use a ton of well tested little tools that you can probably use the same way in two decades still. Don’t get me wrong, IDEs can be great, but they come and go or change significantly over a decade and the knowledge you build with it won’t work once you SSH into a headless server. Why not both?
- billfruit 7y agoCheck the state of clojure eco system, it works all fine on Linux, but on Windows it is harder to set up and to find help on the internet.