News for hackers. Stuff that matters.
Re:Visual Studio Code 1.0 by pknerd on Thursday April 14, 2016 @01:43PM (#11498849)
>Vim and Emacs are still superior if you want to put the time >in,

TBH, not every developer is willing to become a power user or interested to learn an IDE instead of the language itself. Being someone who worked on VStudio alot and now on Linux/Mac based tools, I can safely say that Microsoft tools are Developers friendly most of the time. It's good they are introducing same touch for Linux/OSX community.

Re:Visual Studio Code 1.0 by weaksauce on Thursday April 14, 2016 @03:09PM (#11499514)
Vim is a language to edit text and you can use that language in a lot of development environments. if you code all day it's worth learning.

verbs like ci" (change inside ") which deletes inside the current double quotes and leaves you in insert mode are pretty easy to get used to. dd deletes a line and puts it into the yank register so you can paste it somewhere. u undos an action.

using a plugin with visual studio is pretty king to get the best of the IDE and the most common vim functionality.

Classic SO answer on why vi: http://stackoverflow.com/a/1220118/1772636

edit: here is another classic why vi answer that is a bit different http://www.viemu.com/a-why-vi-vim.html

Re:Visual Studio Code 1.0 by coryrc on Thursday April 14, 2016 @02:56PM (#11499433)
Why spend a few hours over the course of 60000+ working hours to learn how to use more effective tools?
Re:Visual Studio Code 1.0 by crispyambulance on Thursday April 14, 2016 @03:09PM (#11499510)
"a few hours" ??? Come on, let's not pretend that EMACS is going to take "a few hours" to come to terms with and become more productive in than an IDE.
Re:Visual Studio Code 1.0 by TeMPOraL on Thursday April 14, 2016 @06:02PM (#11500680)
Actually, you can get decently proficient in just few hours. Have you actually tried sitting in front of Emacs or vim for more than 30 minutes, to the clock?

Humans have this funny thing as they grow older - they look at a thing, maybe try it out for few seconds, and then immediately determine it's too difficult and it will take forever. They rarely bother to spend actual five minutes, to the clock. If they did, they might actually have learned something.

25 minutes of deliberate practice - a single Pomodoro - is enough to become acquainted with several of Emacs features - like, navigation by semantic units and incremental search and autocompletion. You won't get proficient in that time, but it's enough to rewire yourself to actually start using it when writing code. Which will then lead to you becoming proficient while doing your regular, billable work.

Seriously, set up a Pomodoro timer, sit in front of Vim or Emacs, and try to practice a few things. You'll be surprised how fast you can learn.

(And yes, I did that, so I'm not talking out of my ass. I actually almost doubled my Emacs productivity once in 5 pomodoros - in 2.5 hours - two of which I spent watching Emacs Rocks videos, two on rewriting s-expressions with Paredit, and one on multiple-cursors.)

Re:Visual Studio Code 1.0 by crispyambulance on Thursday April 14, 2016 @10:33PM (#11501692)
Actual proficiency in emacs takes time, a lot of it, and practice, a lot of it.

To reach a level of skill where using emacs is easier/faster/better than something like intelli-j (for instance) requires significant dedication and repetition.

Far, far more than "a few hours".

Re:Visual Studio Code 1.0 by doktrin on Friday April 15, 2016 @01:05PM (#11505884)
> Have you actually tried sitting in front of Emacs or vim for more than 30 minutes, to the clock?

Not the parent, but I've spent a significant amount of time with pure vim. I use vim bindings in everything from my web browser (vimium, vimperator) to my WM (i3 & kde vim navigation bindings), to my text editors & IDEs (atom, VS, sublime)

Despite all that, I still find using pure vim to be ineffective relative to just using Atom, Sublime, VS or whatever with vim bindings. I may have internalized the most basic navigational concepts, but the more advanced / esoteric shortcuts that are essential to use vim as an exclusive editor are still ones I need to look up - and that's not counting stuff specific to vim packages liked nerdtree.

At the end of the day I'm sure you could always argue that I should have practiced differently / better / more or whatever - but to what end? There are plenty of full featured text editors on all platforms that do everything I need. Why on earth should anyone force themselves through dedicated practice just to learn the intricacies of a 20 year old editor?

Re:Visual Studio Code 1.0 by reitanqild on Friday April 15, 2016 @01:44AM (#11502450)
> Have you actually tried sitting in front of Emacs or vim for more than 30 minutes, to the clock?

Not parent but I have. I still would recommend something else for all the stuff I work with.

That said, it is amazing, I just believe in my line of work people are better off spending time learning an ide, esp refactoring, efficient search/ replace as well as how to enable block selection.

Re:Visual Studio Code 1.0 by TeMPOraL on Friday April 15, 2016 @02:54AM (#11502658)
> I still would recommend something else for all the stuff I work with.

I sometimes do to. In particular, when that stuff is Java or C# - it's hard to beat the support IDEs gives you there. So I personally opt to switching said IDEs to Emacs keybindings instead.

(Also, one could argue that you need IDEs there mostly as crutches to support the weak language, but that's a topic for another day...)

> better off spending time learning an ide, esp refactoring, efficient search/ replace as well as how to enable block selection.

Refactoring - if you mean semantic transformations supported by your IDE, then yes. See above. But for search/replace and block selection no IDE beats the convenience of Vim and Emacs. They simply can do that better and more naturally (along with plethora of similar things helping with selection and navigation). And this is exactly the type of thing I was talking about in my previous comments - you can learn both under one Pomodoro if you focus solely on it, and then normal work will quickly take you to proficiency.

Re:Visual Studio Code 1.0 by ajdlinux on Friday April 15, 2016 @09:13AM (#11503972)
I've used emacs as my main text editor at work for the past 9 months, and I can safely say I am still nowhere near proficient. I'm getting better, but I can fully appreciate why emacs has the reputation it has.
Re:Visual Studio Code 1.0 by granos on Thursday April 14, 2016 @04:02PM (#11499888)
I actually switched from VS to vim (while doing a project that integrated ironruby and C#). It took me about a week to reach 75-80% effectiveness with vim. At the end of 2 weeks I was back to full speed. At the end of 2 months I was considerably more effective at editing code. I'm now several years and several jobs removed from that initial project and I can't imagine not using vim.
Re:Visual Studio Code 1.0 by MrBra on Friday April 15, 2016 @01:33AM (#11502406)
IronRuby... good (and too short) memories.. I hope MS will embrace Ruby again sooner or later.
Re:Visual Studio Code 1.0 by granos on Friday April 15, 2016 @01:23PM (#11506052)
I gave up on that hope a while ago. And also on developing for Microsoft platforms in general.
Re:Visual Studio Code 1.0 by MrBra on Monday April 18, 2016 @07:13PM (#11523770)
This is completely nonsensical.
Re:Visual Studio Code 1.0 by aldanor on Thursday April 14, 2016 @04:32PM (#11500105)
I switched to Emacs (Spacemacs) from Sublime Text with zero prior knowledge of vim or Emacs. In a day or two I could continue doing what I was normally doing. In a few weeks I felt completely comfortable.
Re:Visual Studio Code 1.0 by taylodl on Thursday April 14, 2016 @05:57PM (#11500649)
My 13 year old daughter came up to speed with emacs in a couple of hours. Now she's starting to realize she can make it into whatever she wants and make it work however she wants. She hadn't even thought about being able to program new functionality into an application. It's opened whole new worlds for her. Yes, emacs.
Re:Visual Studio Code 1.0 by Goronmon on Thursday April 14, 2016 @03:02PM (#11499461)
You're making the assumption that vim/emacs are more effective tools.
Re:Visual Studio Code 1.0 by taylodl on Thursday April 14, 2016 @06:02PM (#11500681)
The best possible programming environment is comprised of emacs coupled with a "lispy" language such as Common Lisp, Scheme, Racket or Clojure and the REPL to go along with it.

Nerdvana.

Re:Visual Studio Code 1.0 by TeMPOraL on Thursday April 14, 2016 @06:06PM (#11500710)
And the somewhat sad thing is that this is only a shadow of what was once possible on Lisp Machines... In some areas, we really did make a big step back over the last three decades.
Re:Visual Studio Code 1.0 by krisdol on Thursday April 14, 2016 @03:53PM (#11499830)
You're arguing that stating that water is wet is an assumption
Re:Visual Studio Code 1.0 by imtringued on Thursday April 14, 2016 @04:37PM (#11500139)
If it's so obvious then it should be easy to back up your claim with data.
Re:Visual Studio Code 1.0 by typon on Thursday April 14, 2016 @04:59PM (#11500300)
I highly doubt its even possible to obtain such data. The best you will have is anecdotal claims.

For example, do productive programmers tend to use Vim or is it the other way around? It's hard to find the causality.

Re:Visual Studio Code 1.0 by marssaxman on Thursday April 14, 2016 @03:47PM (#11499794)
Because I don't need them, and would rather focus my attention on the part of the job I actually care about. The simplest tool which doesn't waste my time is the best. I have found that I would rather use a simple editor with no features that I never have to think about, and automate repetitive tasks using the same tools I already use for automating repetitive tasks: programming languages.
Re:Visual Studio Code 1.0 by galistoca on Thursday April 14, 2016 @07:15PM (#11500996)
That just sounds like a self rationalization to me. "I don't need them" is something you say after you tried something and realized you actually don't need them. It doesn't carry any weight when you haven't even tried. Because when you do, it's just saying you don't want to try new things. I'm not saying you must learn these, I'm just saying you shouldn't lie to yourself.
Re:Visual Studio Code 1.0 by marssaxman on Friday April 15, 2016 @03:57AM (#11502855)
That's a little harsh, but the cognitive bias you're describing certainly is a common one, and it's one I struggled with a lot when I was younger. I've learned to manage feelings of fear or anxiety by reinterpreting their activated, buzzy feeling as excitement or anticipation. This works well, though it has turned me into something of a daredevil...

I really don't think that's what's behind my attitude toward code editors, though. I've been writing code for thirty-odd years and making a living at it for twenty-five, and I've spent the majority of that time working on dev tools. Compilers, mostly - but I've written a couple of editors, too, plus a debugger, a couple of linkers, an assembler, you name it. So I have had a lot of time to think about tools, and have been lucky enough to get several chances to put my ideas into practice.

I'd have trouble remembering the names of all the different editors and IDEs I've used over the years. Emacs and vi are ubiquitous now but that was certainly not always true, and on some platforms, particularly embedded environments, using anything but the officially-blessed toolchain can make your life unnecessarily difficult. I have learned to get my work done using whatever tools happen to be on hand. That's meant a wide variation in the kinds of features which are available, the specific control-key bindings, the details of the build environment, pretty much anything you can imagine - so I have learned to rely on the basics and ignore the rest.

I find it far more frustrating to deal with a sophisticated tool that isn't working quite right than a simple, brainless tool that does the job but requires a little extra manual labor.

I'm not here to play with editors, after all, I'm here to build software, and the editors are just a means to that end. Time spent learning sophisticated editor features has to justify itself in time reliably saved using those features, which has to be balanced against the time wasted when they don't work quite right or when you have to go dig through the documentation to remember how to use them, times some distraction multiplier for the fact that you're thinking about the tool instead of the job you're using the tool to do. In my experience, there's been too much change and not enough actual need for sophisticated editor features to justify their cost.

Even if a sophisticated editor could allow me to perform certain editing tasks more quickly, that wouldn't change my overall productivity very much at all, because I spend far more time reading and thinking than I spend typing or editing. I type fast enough already; it's my brain that needs to be accelerated, and the best way I've found to do that is to eliminate distractions and focus as much as possible on the problem I am actually trying to solve.

I wrote a simple terminal-based editor a couple of years ago, including all the features I use every day and none that I don't, and I've been using it for all my daily programming work ever since. It's an unabashedly personal expression of my own taste, so I wouldn't necessarily recommend it to anyone else, but I like it and feel good when I use it. It's nice to know everything there is to know about the tool, so that I never have to think about it or try to remember how it works. Perhaps some day I'll be working in some new environment with some new toolchain and I won't be able to take ozette[1] along with me, but that's fine - wherever I go, I'll be able to get my work done with the tools I find there, because I'm comfortable doing my job with the basics.

1 - http://www.github.com/marssaxman/ozette/

Re:Visual Studio Code 1.0 by vacri on Thursday April 14, 2016 @04:00PM (#11499872)
So... you'd rather spend the time writing new code to do repetitive tasks rather than use existing ones? You'd rather spend time writing 'search and replace' in your favourite language than just use an editor with it? I don't see how that doesn't waste your time.
Re:Visual Studio Code 1.0 by marssaxman on Thursday April 14, 2016 @05:29PM (#11500489)
I'm happy to spend a little extra time every now and then doing some unusual task by hand in exchange for never having to think about the editor or try to remember how some powerful, infrequently-used feature works. As long as the editor can do everything I want to do on a daily basis, I'm happy; if it can also automate tasks I only have to do every week or two or every couple of months, it's a waste, because it'll take some effort to remember that the feature exists, what it's called, where to find it, and how to use it. I'd rather just use a simpler editor and deal with that oddball task in whatever way is convenient when it comes up. Since I spend all day slinging code, bashing up a little script to do some odd code-munging job is no trouble; I already have all the tools I need to do that paged into my working memory.

I was thinking more of the sorts of automatic refactoring tools some people really like to use in their IDEs. I haven't found that such tools save enough time to be worth learning how to use them.

Re:Visual Studio Code 1.0 by coliveira on Thursday April 14, 2016 @02:07PM (#11499071)
That is fine, I think it is great that IDEs exist for easy editing and debugging. But power users will always exist in the programming community. These people will naturally use Vim and Emacs because they support the customization levels needed for complex programming workflows.
Re:Visual Studio Code 1.0 by mwfunk on Thursday April 14, 2016 @03:22PM (#11499603)
In my experience novices have an easier time learning programming with an intuitive IDE, but experienced users use whatever makes the most sense given the task at hand, which in many cases might also be an IDE. They're just different tools with different pros and cons, and each of those pros and cons are weighted differently depending on what you're trying to accomplish.

Very few programming workflows are so complicated that it is simply not possible to do something without first creating your own highly customized environment within Emacs. However, very, very many programmers do have a lot more fun screwing around with customizing their work environment (editor, window manager, shell, etc.) than using that environment to get actual work done (myself included).

Which is not to say that Vim and Emacs aren't awesome tools, I just wouldn't generalize anything about anyone based on the tools they use.

Re:Visual Studio Code 1.0 by aldanor on Thursday April 14, 2016 @04:37PM (#11500144)
One thing that is not immediately obvious about vim (or evil Emacs) is the gamification part. Before I switched to Spacemacs myself, I used to think -- why do those vim guys torture themselves using an old deprecated tool. Now I actually find it fun to edit text or code and think of how much everyone else is missing :)
Re:Visual Studio Code 1.0 by Un1corn on Friday April 15, 2016 @02:25AM (#11502571)
It makes sense that if you program a lot that you will learn how to save time in the long run. It took me a day or two comfortable enough to be efficient in it, at least as I was with Atom. After the first few days, you will just learn new tricks while you are programming.

You will see that after you learn how to use Vim you won't want to use anything else to edit text, you emails, browser and word processing will be in Vim.

Re:Visual Studio Code 1.0 by dubdubbub on Thursday April 14, 2016 @03:29PM (#11499661)
> I can safely say that Microsoft tools are Developers friendly most of the time

You only think that because you have used it and became accustomed to vstudio. As someone who has used vstudio, eclipse, atom, intellij, vim, emacs - I can safely say that vim and emacs are far more 'developer-friendly' than the others.

Re:Visual Studio Code 1.0 by ngrilly on Thursday April 14, 2016 @03:52PM (#11499821)
Why?
Re:Visual Studio Code 1.0 by Ace17 on Thursday April 14, 2016 @04:21PM (#11500036)
Because the low-level modularity of Vim and Emacs gives you more control, by letting you choose the combination of tools you use ; instead of tying together the language(s), the compiler, the tag/completion engine, the build/project system, the debugger, the profiler, like many IDEs do.

The sole concept of IDEs specialized for one language makes me cringe.

Re:Visual Studio Code 1.0 by yoz-y on Thursday April 14, 2016 @06:31PM (#11500821)
I am a long time Vim user but I have never ever managed to get c++ tag completion work consistently there. At some point I just stopped trying - went to Qt creator and turned on Vim plugin there. The experience (for C++) is just vastly superior. The IDE integrates with CMake natively, the debugger is graphical and works, the symbol navigation over all project is blazing fast, I have real refactoring etc...

I still use Vim a lot, for JavaScript, for text, for remote sessions... But when a tool with real semantic highlighting and understanding of code is available (with a Vim plugin) then I'll take that.

Re:Visual Studio Code 1.0 by inDigiNeous on Friday April 15, 2016 @02:35AM (#11502601)
Check out https://valloric.github.io/YouCompleteMe/ C/C++ completion for VIM.

Of course an IDE like QT Creator does many things better. But it's a tradeoff always.

Re:Visual Studio Code 1.0 by JoBrad on Thursday April 14, 2016 @05:49PM (#11500600)
> The sole concept of IDEs specialized for one language makes me cringe.

Can you explain this a bit? I don't see that Sublime, VS Code, Atom, etc. were made for one language, at all. As a little background, I've used vim for a while, then switched to Sublime Text, and am just trying VS Code. I find Sublime/VS Code/Atom to be far easier to customize than vim.

Re:Visual Studio Code 1.0 by Ace17 on Friday April 15, 2016 @01:37AM (#11502424)
This is not what I said: I consider Atom and Sublime Text to be advanced general-purpose text editors, not IDEs.

I was indeed referring to Eclipse and Visual Studio. From what I observed around me, for some reason, people don't use these to edit:

- shellscripts/perlscripts/batchfiles.

- Files written in a in-house domain-specific language.

- Configuration files.

- Makefiles and project files: vcxproj, sln ...

Actually, I observed that these kind of IDEs discouraged people doing the above things, giving them the impression that it's not "real development" (I suspect that this is, in part, where the bizarre term "scripting language" comes from, but this is another debate).

Re:Visual Studio Code 1.0 by Skinney on Thursday April 14, 2016 @06:29PM (#11500812)
I'm pretty sure he is referring to Eclipse, Visual Studio and the like.