www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Re: What kind of Editor, IDE you are using and which one do you like

reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Sun, Dec 29, 2019 at 09:25:44PM +0000, Adam D. Ruppe via Digitalmars-d-learn
wrote:
 On Sunday, 29 December 2019 at 14:41:46 UTC, Russel Winder wrote:
 Whilst many programmers are happy using 1970s approaches
Please. Have you actually spent the time to learn these systems in the last 40 years? My experience is IDEs are just different, not necessarily better or worse. Just different enough that people used to one find the others difficult to learn.
[...] Yeah, vim (and probably emacs -- I don't use it so can't speak for it) has come a *long* ways from its original vi roots. So has CLI development tools in general. I think it's very unfair to equate vim to the 1970's version of vi when comparing it to a GUI-based IDE. Generally, I find myself *much* more productive with CLI-based tools; IDEs are generally much heavier in terms of memory and CPU usage, and worst of all, require a GUI, which for me is a deal-breaker because I do a lot of work over SSH connections on not necessarily reliable networks. The amount of network traffic needed to operate a GUI over a remote desktop is just so much more than the much lighter weight of a few keystrokes that for me it's a very unproductive choice. That, plus the amount of RAM + CPU + disk investment needed just to get an IDE to even start, to me cannot even begin to compare to how few resources are needed to be highly productive with a bare-bones Vim installation. I just have a hard time justifying such an investment when what I get in return is so undesirable within my operational parameters. If I were forced to use an IDE, I would be tempted to just stop programming at all. It would certainly *not* make me a better programmer. On Mon, Dec 30, 2019 at 01:26:11AM +0000, bachmeier via Digitalmars-d-learn wrote: [...]
 I have trouble seeing how an IDE is going to make anyone a better
 programmer.
[...] Yeah, I call BS on that statement. OTOH, it's certainly a valid point that IDE support needs to be good in order to appeal to that subset of programmers who prefer to work in an IDE. T -- Today's society is one of specialization: as you grow, you learn more and more about less and less. Eventually, you know everything about nothing.
Dec 29 2019
next sibling parent reply bachmeier <no spam.net> writes:
On Monday, 30 December 2019 at 06:43:03 UTC, H. S. Teoh wrote:

 Generally, I find myself *much* more productive with CLI-based 
 tools; IDEs are generally much heavier in terms of memory and 
 CPU usage, and worst of all, require a GUI, which for me is a 
 deal-breaker because I do a lot of work over SSH connections on 
 not necessarily reliable networks. The amount of network 
 traffic needed to operate a GUI over a remote desktop is just 
 so much more than the much lighter weight of a few keystrokes 
 that for me it's a very unproductive choice.  That, plus the 
 amount of RAM + CPU + disk investment needed just to get an IDE 
 to even start, to me cannot even begin to compare to how few 
 resources are needed to be highly productive with a bare-bones 
 Vim installation. I just have a hard time justifying such an 
 investment when what I get in return is so undesirable within 
 my operational parameters.
Another way in which the IDE is "heavy" is the amount of overhead for beginning/occasional users. I like that I can get someone started using D like this: 1. Open text editor 2. Type simple program 3. Compile by typing a few characters into a terminal/command prompt. An IDE adds a crapload to the learning curve. It's terrible, because they need to memorize a bunch of steps when they use a GUI (click here -> type this thing in this box -> click here -> ...) Back when I was teaching intro econ courses, which are taken by nearly all students here, I'd sometimes be talking with students taking Java or C++ courses. One of the things that really sucked (beyond using Java for an intro programming class) was that they'd have to learn the IDE first. Not only were they hit with this as the simplest possible program: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } but before they even got there, the instructor went through an entire lecture teaching them about the IDE. That's an effective way to make students think programming is a mind-numbingly stupid task on par with reading the phone book. Contrast that with students opening a text editor, typing `print "Hello World"` and then running the program. IDE support should obviously be made available. I think it would be a mistake, however, to move away from the simplicity of being able to open a text editor, type in a few lines, and then compile and run in a terminal. It's not just beginners. This is quite handy for those who will occasionally work with D code. For someone in my position (academic research), beginners and occasional programmers represents most of the user base.
Dec 30 2019
next sibling parent reply Patrick Schluter <Patrick.Schluter bbox.fr> writes:
On Monday, 30 December 2019 at 14:59:22 UTC, bachmeier wrote:
 On Monday, 30 December 2019 at 06:43:03 UTC, H. S. Teoh wrote:

 [...]
Another way in which the IDE is "heavy" is the amount of overhead for beginning/occasional users. I like that I can get someone started using D like this: 1. Open text editor 2. Type simple program 3. Compile by typing a few characters into a terminal/command prompt. An IDE adds a crapload to the learning curve. It's terrible, because they need to memorize a bunch of steps when they use a GUI (click here -> type this thing in this box -> click here -> ...) Back when I was teaching intro econ courses, which are taken by nearly all students here, I'd sometimes be talking with students taking Java or C++ courses. One of the things that really sucked (beyond using Java for an intro programming class) was that they'd have to learn the IDE first. Not only were they hit with this as the simplest possible program: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } but before they even got there, the instructor went through an entire lecture teaching them about the IDE. That's an effective way to make students think programming is a mind-numbingly stupid task on par with reading the phone book. Contrast that with students opening a text editor, typing `print "Hello World"` and then running the program. IDE support should obviously be made available. I think it would be a mistake, however, to move away from the simplicity of being able to open a text editor, type in a few lines, and then compile and run in a terminal. It's not just beginners. This is quite handy for those who will occasionally work with D code. For someone in my position (academic research), beginners and occasional programmers represents most of the user base.
Good point. It also trains people to not be able to work without IDE. I see it at work with some of the Java devs who aren't even able to invoke javac in a command line and setting javapath correctly. Why? Because IDE shielded them from these easy things. It has also a corrolary that they're not capable to implement sometimes simple protocols or file processings without resorting to external libraries. A little bit like people needing even and odd library in Javascript.
Dec 30 2019
parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Mon, Dec 30, 2019 at 04:13:03PM +0000, Patrick Schluter via
Digitalmars-d-learn wrote:
[...]
 Good point. It also trains people to not be able to work without IDE.
 I see it at work with some of the Java devs who aren't even able to
 invoke javac in a command line and setting javapath correctly. Why?
 Because IDE shielded them from these easy things. It has also a
 corrolary that they're not capable to implement sometimes simple
 protocols or file processings without resorting to external libraries.
 A little bit like people needing even and odd library in Javascript.
This is the natural consequence of pursuing popularity by making things accessible to the lowest common denominator. You can't say it's wrong -- because without it, the programming industry wouldn't be anywhere near where it is today. But OTOH, some aspects of programming are inherently hard, and no matter what you do, you simply cannot remove the necessity of thought about your programming problem. T -- I've been around long enough to have seen an endless parade of magic new techniques du jour, most of which purport to remove the necessity of thought about your programming problem. In the end they wind up contributing one or two pieces to the collective wisdom, and fade away in the rearview mirror. -- Walter Bright
Dec 30 2019
prev sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Mon, Dec 30, 2019 at 02:59:22PM +0000, bachmeier via Digitalmars-d-learn
wrote:
[...]
 An IDE adds a crapload to the learning curve. It's terrible, because
 they need to memorize a bunch of steps when they use a GUI (click here
 -> type this thing in this box -> click here -> ...)
[...] To me, that's not necessarily the failure of the principle of using an IDE, but of the way in which existing IDEs are designed. Modern IDEs suffer from the same wrong design principles as modern browsers: too much accumulated technical debt and cruft accumulated from decades of legacy code, old habits that die hard, inertia in the name of backwards compatibility, and stagnation. Somebody should seriously rethink the whole design of the IDE experience. I, for one, in spite of currently preferring to work with vim + CLI tools, would love to see an IDE which does its job in a minimalistic, on-demand way, in which you only pay for what you use, and it does not take 5 minutes grinding your harddisk to next week and back again just to start up. What about an IDE that starts at lightning speed where you can immediately start typing code? Where you can just run the code immediately -- with the compilation steps *shown* and saved in a clear-text script that you can edit, as opposed to some mysterious black magic welded shut under the hood? Where advanced features are loaded on demand and unloaded when no longer used, as opposed to requiring GBs of RAM just to start up? The technology to do all this is already there, it just takes someone to think outside of the box and design something that doesn't look, run, and feel like an overweight elephant with an obesity problem. (OTOH, I may have just described Vim and the modern Linux shell. Oops. :-D) T -- BREAKFAST.COM halted...Cereal Port Not Responding. -- YHL
Dec 30 2019
prev sibling parent Steven Schveighoffer <schveiguy gmail.com> writes:
On 12/30/19 1:43 AM, H. S. Teoh wrote:
 On Mon, Dec 30, 2019 at 01:26:11AM +0000, bachmeier via Digitalmars-d-learn
wrote:
 [...]
 I have trouble seeing how an IDE is going to make anyone a better
 programmer.
[...] Yeah, I call BS on that statement. OTOH, it's certainly a valid point that IDE support needs to be good in order to appeal to that subset of programmers who prefer to work in an IDE.
I don't use an IDE for D programming, just vim + cmdline. However, I DO use one for php (Netbeans) and Swift (xcode). In both cases, I'm not as familiar with the standard library. In the case of PHP, my IDE tells me types, so it can auto-complete member names (I need this for that project). And especially in the case of Swift, the long verbose names of everything are hard to guess and hard to remember. Not to mention the visual editing of the UI for iOS apps. If I wrote more code in those languages, I might get to the point where I could remember all the proper names. But I still probably would use the code completion for it to avoid spelling errors -- something like iota is not readily descriptive of what it does, but it's a lot easier to spell correctly than didFinishSettingUpViewController or whatever the hell the real name is. IMO, the two killer IDE features are code completion and syntax highlighting. Almost every editor (not IDE) already does syntax highlighting and many support code completion. Most of the other stuff is not critical for success. I can read the compiler outputs and figure out the locations of stuff. Yeah, it's nice to have the editor show me there is an error. But I can deal with it otherwise. -Steve
Dec 30 2019