5 ms·
It's getting harder because it's become fashionable to shun IDEs that make most of these issues obsolete, and have done so since at least the 90's. It's ridicu
by TimJYoung 9y ago
It's getting harder because it's become fashionable to shun IDEs that make most of these issues obsolete, and have done so since at least the 90's. It's ridiculous to expect newcomers to a language and/or programming in general to slog through a 20 or 30-step environment setup process. This idea that using an IDE will discourage someone from finding out the more detailed workings of the language, compiler, etc. is nonsense. If anything, immediate progress and reward will encourage new developers to keep going and exploring further, whereas an overly-complicated, tangled mess of setup instructions will just make many people throw their hands up and quit.
Case in point: my first experience with the Delphi IDE in 1996 had me immediately writing a basic text editor without knowing anything about Delphi/Object Pascal at all prior to sitting down with it. Drag, drop, consult the context-sensitive help, write some code, and compile/run, all in the same IDE. It also helped that Delphi shipped with the entire source code to it's RTL and the VCL (Visual Component Library), but that's more important as you get deeper into the language/product.
- danaliv 9y agoIndeed. There's no way I would've learned how to program at such an early age if the process had been any more complicated than "install Turbo Turtle." (And later, HyperCard, THINK Pascal, THINK C, and finally CodeWarrior.) It wasn't until I had basic command of a few different languages that I was thrust into the world of UNIX, emacs, Perl, CPAN, and so on. By that time I was able to handle it, but if that had been my first go of it, I'd have run for the hills and never looked back.
- hyperpape 9y agoI do Java programming by day, and I still find the IDE to be a pain in the ass. It offers me a lot of power (enough that I still use it for all my Java code), but the configuration is so opaque. It's a GUI, but what a confusing, complicated GUI. In contrast, opening a repl in python/node is super easy, and it was super easy even when I was a beginner. Building a GUI like you said would be hard, (though I did a very simple tkinter gui in my first year), but I think that even for a beginner, opening a repl and starting to muck around is easier without the IDE in the way.
- pjc50 9y agoVisual Basic was this for many people. These days the Community edition of Visual Studio with C# comes close, with a combination of drawable GUIs, code generation, and generous autocomplete.
- commandlinefan 9y ago> Shun IDEs Well, I don't think anybody is "shunning" IDEs just to be difficult; it's just really, really hard to describe something in the context of an IDE. For one thing, IDEs are (obviously) graphical, so you have to include a screenshot if you want to refer to something. Worse, IDEs change things around a lot (sometimes for no particular reason). Then of course, there are no standards in this area - in Java you have Eclipse and IntelliJ, so if you want to describe something in terms of an IDE you either pick both and double the explanations, or you pick one and freeze out the others... or you just do everything on the command-line which is unambiguous. And don't forget, eventually you're going to have to get out of the IDE comfort zone if you want to interface with a continuous integration system.
- dan_mctree 9y agoCommandline instructions fail as often as IDE based instructions do. Changes in different versions, changes in the environment, different ways of trying to use the software, different ways projects were set up; all of these and many other reasons cause plenty of issues with commandline based instructions. It's never "just do everything on the command-line", it's "it just spewed out an essay of errors on step 2, and google is silent"
- TimJYoung 9y agoIt's not really that hard, though. Almost everything you see in an IDE is just a pretty version of something in a text file somewhere. IDE's don't get rid of project files, source files, object files, etc. They just simply manage the complexity in a way that keeps what you need at your fingertips.
- gameswithgo 9y ago> It's ridiculous to expect newcomers to a language and/or programming in general to slog through a 20 or 30-step environment setup process Modern IDEs often require an hour long install, and then you turn them on and are faced with 10,000 buttons and 50 windows, they aren't simple either. I have had good success with making beginners people sit through a 30 minute dev environment set up process, in video form. No complaints, everyone got it working, on linux, mac, and windows. I used VS Code + the Go language plugin. Once set up, you have a pretty simple IDE-like environment. I do miss the days when every dos PC just shipped with QBasic, or when you could get a simple, quick loading IDE like TurboC++
- watwut 9y agoVS Code is modern ide. And I would really like to know which IDE takes an hour long install. Because I tried multiple on windows and they all required download, double click and that was it.
- gameswithgo 9y agoVisual Studio, Jetbrains, if you happen not to have a fast internet connection and SSD can take a long time.
- edgarvaldes 9y agoInstalling Android Studio over a slow connection was a real PITA.
- dan_mctree 9y agoHaving to wait an hour for a download/install to complete is completely different from requiring an hour of browsing stackoverflow to figure out why the CLI install instructions given aren't working on your device.
- yjftsjthsd-h 9y agoYou're not exactly wrong, but are we not still comparing to "turn computer on, get BASIC prompt" (C64), or "turn computer on, type 'qbasic', hit enter"?
- dabockster 9y ago> It's ridiculous to expect newcomers to a language and/or programming in general to slog through a 20 or 30-step environment setup process. It's ridiculous for anyone really. If you're not using something outside of the standard libraries, it's ludicrous to expect someone to slog through the manual setup process when they can double click an IDE icon and be ready to program in under a minute. Not to mention the fact that a lot of those setup guides are for specific OSes and the author always seems to leave that part out. So you get to step fifteen and get a weird makefile error only to find out that that particular library is for another OS with no alternative for your own. This forces you to restart at square one with more potential added steps (eg virtual machine setup, OS setup, etc).
- icebraining 9y agoIDEs are not magic, they don't make OS-specific libraries just work on other OSs. And they're not required to automate stuff either.
- watwut 9y agoJesus christ, this. I was doing free online course recently and guess what the forum was full of: self proclaimed geniuses that discouraged beginners from using IDE "notepad is enough". In java mind you, just about the worst language to write in notepad. Of course they struggled with homework.
- Clubber 9y agoYes, I remember people who would say that. I guess they felt it made them look smart.
- Clubber 9y agoDelphi was WAY ahead of it's time. I agree with your point. Installing the IDE also installs just about any library you would want, even TCP/IP socket libraries in 1996. It's literally: 1. Install 2. Wait forever (CDs are slow) 3. Run it 4. Code, compile and run.
- switchbak 9y agoSurprisingly I think I'm the first to disagree. I find a modern IDE comes with so much implied mental baggage that new users can get completely overwhelmed. Sure, languages which require complex build environments almost demand one, but in simpler environments it can be a lot easier to reduce the cognitive load in a simplified environment. One can do a lot of programming and learning with just a simple editor (Nano?) and a Python-like environment (repl, interpreter). With quality online notebook-style environments, we can now accomplish an outrageous amount with very little time or cognitive overhead devoted to build tooling. As professionals, we ought to be familiar with the underpinnings of our tools though. It can be really painful trying to work with a colleague who's afraid of getting low level to really understand their build issues. I've worked with people who actually become visually agitated when I open up a command line. What's worse (I see less of this these days) are those who are so coupled to their IDEs that they don't use proper build tools - limiting reproducability, CI integration, etc. This was a real problem back in the earlier Java days before Ant/Maven/etc came around. No need to shun an IDE - I certainly don't, but one needs to understand how it works otherwise you risk having incorrect (overly simplified) mental models about how your programs are built and run.
- gowld 9y ago? Ant and Maven work fine in my IDE
- shakna 9y ago> This was a real problem back in the earlier Java days before Ant/Maven/etc came around. (Emphasis mine.)
- dan_mctree 9y agoFor me it's the opposite. A modern IDE is significantly easier to understand, with far less mental baggage than some hacked together combination of several CLI based tools. The mental drain of clicking some nice green play arrow on screen when you want to execute code is non-existent. The baggage of remembering which tool does what, what weird flag you have to keep adding to one of the commands you need, what keyboard shortcut you needed again to exit your CLI based text editor, all of that takes far more baggage for me. Especially when you have 10 different setups like it, and may not return to some of them for months. And even if you do somehow remember how all of your CLI tools fit together, you're still missing out on an incredible amount of power and clarity that IDEs provide. A CLI just doesn't have the ability to show information nearly as well as a GUI, it doesn't even come close in terms of the amount of bits worth of information you can show simultaneously, nor in its ability to use positioning and formatting to clarify what's important and related. Add that GUIs provide constant in your face hints that tell you what your options are, and it's no wonder almost everyone finds them significantly more pleasant to use. You don't have to remember anything, it shows you. Yes, people end up developing bad habits and will run into some problems later. But these issues aren't as significant as people giving up early because of learning curves that are too steep on software which is only vaguely connected to what they actually want to do. "I want to build an app" is what drives people, not "I want to learn all the flags for javac".
- dan_mctree 9y agoYeah if anything it's people moving away from IDEs that's making life much more difficult. The complicated part of an install is rarely ever just downloading some software, clicking the executable and then 'next' a few times. The hard part is docker throwing out nonsensical error messages into your console, offering 3 equally illegible possible solutions, which after 2 hours of googling and attempts turn out to be wrong, because all you needed was a reboot to get to the next error (which ends up being caused because of one of the 3 attempts to fix the earlier problem). Yeah sure, with an IDE you might not grasp what really happened, but do you really with the 15 step install instructions? Both GUIs and CLIs only ever show the information that the programmer decided to output anyway, and GUIs are actually much better at showing legible output due to all the extra space, formatting options, etc. So what is it that people think makes a CLI somehow grasp what's happening better? The fact you just copy pasted some command with 3 flags?
- eadmund 9y ago> The hard part is docker throwing out nonsensical error messages into your console, offering 3 equally illegible possible solutions, which after 2 hours of googling and attempts turn out to be wrong, because all you needed was a reboot to get to the next error (which ends up being caused because of one of the 3 attempts to fix the earlier problem). Docker is a CLI program written by GUI programmers — it's a whole new level of terrible. It's certainly not a stain upon the CLI escutcheon.
- imtringued 9y ago>The hard part is docker throwing out nonsensical error messages into your console, offering 3 equally illegible possible solutions, which after 2 hours of googling and attempts turn out to be wrong, because all you needed was a reboot to get to the next error (which ends up being caused because of one of the 3 attempts to fix the earlier problem). Are you talking about kernel updates breaking docker until reboot? Yes that's annoying but you have to reboot anyway.