Given that this sentence occurs immediately after a five-line example of a working program, the beginner would probably say "but, you just got something working in five lines! what are you talking about?"
It takes time to learn the truth. I remember when I first read the results of the various productivity studies cited in McConnell's Code Complete, the ones which estimate that the typical programmer creates a handful of lines of bug-free code per day, on average. It seemed like such a stupidly small number, then. Not so unbelievable now. The bug-free part is harder than it looks.
I think we should take it as "You'll still have plenty of stuff to learn even after 30 years, just like today." Which is encouraging if you're a learning-addict like me :)
By the way, I completely agree with him. After years of Eclipse or Visual Studio, it was refreshing for me going back to basics, firing vim and getting stuff done without any distractions.
After years of Eclipse or Visual Studio, it was refreshing for me going back to basics, firing vim and getting stuff done without any distractions.
What distracts you? When I'm coding I see the text editor, that's it. But I guess if it distracts you, then it distracts you. My aunt can't cook with the radio on, because it distracts her. To me it adds to the experience, but I guess to each their own.
Personally I think the text editors in all IDEs I've tried are awful anyway. Plus IDEs are sometimes fiddly to get set up right for a given language; it's easy to sink way too much time into getting things set up when you could just be writing working code. Also, it's probably helpful to learn a new language without the instant crutch of auto-completion features.
"Also, it's probably helpful to learn a new language without the instant crutch of auto-completion features."
How is that? Why is poring over the API docs of a library to find out if you need GetSize(), get_count() or Count() better than having the computer look it up for you while you're typing? Auto-complete doesn't help in learning a language, only in using an API - and at that it's good.
I guess I'm being all Statler and Waldorf here, but the hipster 'look at me I only need a text editor' is bullshit. In the OP the author boasts about using makefiles FFS! If there is one over-'engineered', obscure, bandaid-over-bandaid 'solution' for problems that only exist because of historical cruft and that is inscrutable to beginners, it's make!
I guess I'm being all Statler and Waldorf here, but the hipster 'look at me I only need a text editor' is bullshit.
I'll grant you that it's been a fairly annoying meme over the last year or two, but people are being productive every day using text editors and they probably don't care whether you think it's bullshit or not. Be productive and use what you like. Since you have such a strong reaction to it I'd love to know why you think it's "bullshit".
Of course, I use vim every day too. I also use Visual Studio every day, and the things for which I use Visual Studio would take me 3 times as long if I had to do that with vim - and vice versa.
It's a good thing too that most people don't pay too much attention to what I think, it would have a rather devastating effect on the world I'm afraid.
(what I think is bullshit is the reflex where somebody learns something new and before reaching the level of competence where one starts finding flaws and drawbacks of said thing starts advocating it to the rest of the world as the silver bullet that will solve all problems. I recognize the pattern all too well since I've fallen so often for it myself. It's the exuberance of youth I guess.)
OK I'll concede that make on its own in its most basic form isn't all that bad (although it's not hard to make anything look good by comparing it with Ant); it's the autotools toolchain that makes it such a jungle. Which is, strictly speaking, separate from make, and is what I was mostly agitating against.
"Plus IDEs are sometimes fiddly to get set up right for a given language; it's easy to sink way too much time into getting things set up when you could just be writing working code. "
Right, because using vim or emacs is a matter of apt-get and off you go rollseyes . I'm pretty sure the configuration-to-actually using it for productive work ratio for vim and emacs users is way higher than for your average VS or Eclipse user who most of the time wouldn't even know how to configure it.
Relax. I'm not saying I don't think IDEs are useful or that I don't use one myself. The point of TFA is that there's some benefit, especially when learning a language, to just getting down to the business of writing text, compiling, and running it with as little other cognitive load as possible.
"Right, because using vim or emacs is a matter of apt-get and off you go rollseyes "
Uh, yes? Isn't that exactly what was demonstrated in the article? Substitute Notepad or whatever is on hand instead of vim/emacs if you want - what configuration could possibly be needed for producing a text file? Fancy editing features are nice, but again - the point is to just get down to writing code. Maybe your overreaction to the ghastly notion of using vim or emacs belies your assumption that hipster straw men are trying to steal your IDE from you and make you write Rails code in Vim.
Anyway, I'll bet you an upvote you couldn't present a similarly concise example of how to write, compile, and run an Erlang program using an IDE.
Yeah I get riled up too easily the last few weeks, and over absolutely trivial things - I should get some vacation.
Anyway I don't disagree with the notion that starting with a basic setup gives one a deeper insight into the tools. I have C++ noobs call g++ from the command line and then link object files manually. Also I've used vim since 1997 and still do daily, so it's not like I'm unfamiliar with 'plain' text editors. But hardly anybody who does 'real' work with just the editor without configuration - the amount of time spend on vim-users to save a few keystrokes attests to that. The whole reason to use vim or emacs is because they're so configurable.
I don't know about Erlang, but using Visual Studio I can make and run a C++ program without having to touch the keyboard, apart from typing the name of the project. I'm not sure what the amount of keystrokes to run a useless most basic program has to do with how easy it is to learn.
What annoyed me was the tone in TFA belittling the use of IDE's. After some size of a project, IDE's do have added value in exploring API's, structure of the project etc. There's no need to project one's idea that somehow using one or the other is 'morally superior' or makes one 'a better programmer'.
(it's quite ironic that I'm saying this, since for years I was a vim 'advocate', basically meaning to me that I took every opportunity to show people how superior vim was for every task imaginable; even if I had to spend 1/2 day writing a macro in vim's obscure macro language to accomplish a task that could've been done in 10 minutes by hand..I've come around now and I guess that's why I react so strongly now, much like ex-smokers who are often the most obnoxious anti-smoking campaigners).
Ah. Ok, thanks - I totally get where you're coming from now and can definitely relate to your sentiment. The "you must use an IDE" crowd irks me just as much as the "you must use only Vim" one.
Maybe it's an inevitable part of a developer's progression to annoyingly latch onto some tool or another as "the one way", but hopefully we eventually emerge from that phase and have a better perspective on how each tool can be useful in combination with others.
I've been telling anyone who will listen that the world would be a much better place if Vim or Emacs could be embedded as the text editor in your favorite IDE. Use the IDE's refactoring, auto-completion, and workflow features and still have the full power of the editor's text manipulation, macros, and configurability. (To anticipate suggestions, I do believe that jVi in Netbeans is the next best thing to a full-fledged Vim, and love it dearly.)
Re: you last point, I 100% agree. I have tried the basic integration that Vim has with Visual Studio but it's a hack and I never stuck to it.
Then since 2005 or so, whenever it came out, I've been using ViEmu, a Visual Studio plugin that makes the VS text editor work like vim, complete with (parts of) the macro language. It's so awesome I can't help myself but bringing it up every time a topic remotely related to it comes up.
But this wasn't about productive work, just about learning from scratch. In my experience, he's right about starting with a text editor and shell.
Anecdote: a complex toolchain that I have worked with for cross-compiling programs for an ARM development board was easier to set up for the command line - using an IDE just added more steps, more mystery and more problems.
No, it was also about a production setup. The author boasted about how he after 20 or 30 or whatever years of writing software still only used a text editor and make.
And a programming language where of 5 lines of the most simple program only one is really concerned with what the program actually does, is not a suitable beginner's language, or at least is not of particular use to demonstrate the most basic concepts of programming. From the article:
(arguably one would have to add the second command for calling it from the command line to this for a fair comparison; on the other hand the command for starting the Erlang shell wasn't included in the 5 lines either:
It takes time to learn the truth. I remember when I first read the results of the various productivity studies cited in McConnell's Code Complete, the ones which estimate that the typical programmer creates a handful of lines of bug-free code per day, on average. It seemed like such a stupidly small number, then. Not so unbelievable now. The bug-free part is harder than it looks.