Do Development Tools Make It Too Easy

  • (3 Pages)
  • +
  • 1
  • 2
  • 3

40 Replies - 2284 Views - Last Post: 20 July 2013 - 05:41 AM

#16 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7651
  • View blog
  • Posts: 12,907
  • Joined: 19-March 11

Re: Do Development Tools Make It Too Easy

Posted 20 June 2013 - 07:33 PM

Hah. There are highly-paid "developers" at my office who literally do not understand the first thing about how the code they write works. I mean, perfectly smart guys who have never thought about these things at all - one guy who literally had no idea why 1/4 was coming back as zero, and another guy, just last week, who had no concept of how to write a compound boolean condition.

We're not talking about guys who don't know the difference between Tarjan's algorithm and Kosaraju's - we're talking about guys who can't figure out whether they need an && or an ||.

These people are the result of IDEs. And you know what? They solve problems. They solve lots and lots of problems every day, because yes, problem solving has become very easy. This is due to IDEs and ridiculously cheap memory.

I'm not going to moralize about this - these guys do their jobs, and that's what matters from the company's perspective, and I don't really mind that they're able to raise their kids in nice houses. But you can't say that IDE's have helped them learn to write code, because they absolutely have not learned how to write code. And you cannot say that IDEs have not made problem solving easier, because without bottled solutions that they can drop in by clicking a mouse, they would be as helpless as a couple of inverted turtles.

Someone always points out right around this point that if you took away my compiler or my interpreter, then I'd have a hard time too. And that's true. The difference, though, is that there's nothing that my language can do that I can't figure out how to do. The IDEot, on the other hand, is typically limited to the things their IDE will do for them. And I think this is what Lemur meant when he made his crutches analogy.

As I always say - and IDE is a fine tool, and anyone should be allowed to choose whether to use it or not. They should just have to wait until they know enough that they could write the IDE first.
Was This Post Helpful? 3
  • +
  • -

#17 IcyCode  Icon User is offline

  • D.I.C Head

Reputation: 6
  • View blog
  • Posts: 52
  • Joined: 21-April 12

Re: Do Development Tools Make It Too Easy

Posted 21 June 2013 - 10:31 AM

It's a matter of the knowledge in question(How compilers work, etc.) not being a necessity so it never comes up. When I first started trying to learn Java, I found TheNewBoston's tutorials. Throughout the course of those tutorial's he uses Eclipse, but not without explaining the process of compiling a java application by hand first.
Was This Post Helpful? 0
  • +
  • -

#18 trevster344  Icon User is offline

  • The Peasant
  • member icon

Reputation: 224
  • View blog
  • Posts: 1,505
  • Joined: 16-March 11

Re: Do Development Tools Make It Too Easy

Posted 21 June 2013 - 11:21 AM

We've all got it really easy if you think about it. We don't have to build our own cars, vacation homes, or a lot of things really but isn't that something we should consider when inventing things? My great great grandfather hand built my families vacation cabin in the mountains of Colorado in 1921. Nobody built cabins for you back in that day, and there were probably a total of about 5 families in the area which was at least 100 miles from the nearest signs of civilization. Generations can't progress any further than the last if we don't leave anything for them to build off of. What we should be asking is, why does it matter if tools have made it easier for others?

This post has been edited by trevster344: 21 June 2013 - 11:22 AM

Was This Post Helpful? 1
  • +
  • -

#19 Atli  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 3718
  • View blog
  • Posts: 5,989
  • Joined: 08-June 10

Re: Do Development Tools Make It Too Easy

Posted 21 June 2013 - 07:39 PM

For Web Design at least, this all hangs on the quality of the tools. Visual Studio, for example, isn't bad. Dreamweaver, on the other hand, is crap. Both will let you visually develop websites without knowing the first thing about HTML or CSS, but the end result for DW will never be comfortably reused or expanded beyond what DW is capable of doing through it's UIs. VS code, on the other hand, has a chance of being used that way. (As far as I've seen, at least, though I'll admit that my use of VS is limited in this regard.)

These days the DOM needs to look right; to be structured in a way that lets the UI programmers (read: Javascript coders) get the UI working as it should. Therefore, whoever designs the HTML/CSS needs to know exactly what's going on in behind the scenes, or it'll become an utter mess. Just learning how to use the DreamWeaver UI to make the site in no way prepares designers for modern web design. Moreover, the DW tools simply aren't good enough to make using them worth while, even for good designers. I've tried making JS enabled sites using DW, and the effort involved in getting it to do things the right way costs you more time and effort than it saves.

Give me a tool that lets people visually design websites, while creating good and clean markup ready for UI development, and I'll stop caring if designers actually know how to write markup. Until then...
Was This Post Helpful? 1
  • +
  • -

#20 Theomi  Icon User is offline

  • D.I.C Head
  • member icon

Reputation: 9
  • View blog
  • Posts: 88
  • Joined: 17-January 10

Re: Do Development Tools Make It Too Easy

Posted 29 June 2013 - 02:21 PM

I use eclipse at work and i learned to program in eclipse, but i don't agree that it hinders me in any way it just make's the process of developing faster because i can access java doc through the ide, i have auto complete and a lot of other cool tools.
I would still be able to develop what i do now if i used notepad and compiled via cmd but it would just take longer.
Was This Post Helpful? 0
  • +
  • -

#21 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7651
  • View blog
  • Posts: 12,907
  • Joined: 19-March 11

Re: Do Development Tools Make It Too Easy

Posted 29 June 2013 - 04:32 PM

View PostTheomi, on 29 June 2013 - 04:21 PM, said:

I would still be able to develop what i do now if i used notepad and compiled via cmd but it would just take longer.


I really do not understand why anyone feels that Notepad is an editor that you'd use for programming of any sort - it isn't. It's only a slight exaggeration to say that this sounds to me like "I would still be able to develop what I do by writing it out longhand and entering the characters as ASCII, it would just take longer".

That being said, I have to insist that the quoted statement is entirely and desperately wrong. If you can't write your code in a serious text editor (vi or emacs are the real contenders) and have it come out correct and well-formatted, then you simply don't know the language, and if you find that code completion speeds up your work, it probably means you need to spend more time on design and less time flinging code at the screen and hoping it sticks. You will actually program faster and more effectively if you start with design and proceed to type only after you understand what you're going to write - and at that point, "code completion" can only slow you down, because you know what you're going to do before it does.
Was This Post Helpful? 0
  • +
  • -

#22 Atli  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 3718
  • View blog
  • Posts: 5,989
  • Joined: 08-June 10

Re: Do Development Tools Make It Too Easy

Posted 29 June 2013 - 08:34 PM

View Postjon.kiparsky, on 29 June 2013 - 11:32 PM, said:

... and at that point, "code completion" can only slow you down, because you know what you're going to do before it does.

That I can't agree with. I always know exactly what I'm going to be typing. The only difference the code completion makes for me is that I can type long series of identifiers in two keystrokes instead of twenty. It also helps prevent accidental typos.

Honestly, jon, the bulk of that last paragraph is a tad arrogant on your part. That somebody feels more comfortable relying on the computer filling in the structure of the language he's using does in no way mean he knows the language any less than an emacs/vi user who types it all by hand. It just mean he's found a way to speed up that repetitive stuff. That you type it all out by hand doesn't necessarily make you a better programmer.
Was This Post Helpful? 2
  • +
  • -

#23 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7651
  • View blog
  • Posts: 12,907
  • Joined: 19-March 11

Re: Do Development Tools Make It Too Easy

Posted 29 June 2013 - 09:19 PM

That I do it by hand doesn't make me a better programmer. In fact, I don't think I'm an especially great programmer, and I honestly don't know what it would sorts of comparisons you'd use to determine whether I am or not. That's another question, and it's not one I raised.

What I asserted, and what is obvious if you think about it, is that there is no appreciable time savings from using code completion. And really, there isn't. How could there be?
  • Most of the time spent programming is not spent typing (if it is, you've got another round of problems there, and that might actually reflect poorly on competence), so there's very little possible gain.
  • At any reasonable rate of typing it's faster to just type out what you're doing than to bother yourself with the completion mechanism. I type 60 WPM. If we assume that every object, class, variable, and method name is populated at about the halfway point, and the thing runs perfectly smoothly, that means I could maybe get 100 WPM - sounds great, but now I can't let my skill at typing work. Instead of thinking "System.out.println(foo.getString(bar)" (which is one thought) and letting my fingers do that while I get the next line composed in my head, now I have to think about each character I'm typing, since I don't know when it's going to populate and I can accept its selection. So now my typing drops to maybe half what it was, maybe 30 WPM, and if I get the same sort of speedup I allowed before then I'm at 50 WPM at the end of the day. That's a loss. And it gets worse still:
  • code completion is a distraction from your train of thought. Instead of thinking about what you're working on, you have to pay attention to your toolset. This is a constant nagging distraction, which is the worst sort of load on someone's efficiency if they're meant to be concentrating. So not only is it not speeding you up in the absolute, and slowing you down in terms of finger speed, it's slowing you down mentally as well. Basically, it's like making a programmer play an amazingly stupid video game while programming. So not only can I not type as fast, I also can't think ahead, so I'm slowing down even further.

All in all, this is a dead loss. The only programmers who could possibly be helped by this are the programmers who have not learned the APIs that they're manipulating, and need popup hints, and programmers with encroaching repetitive strain issues.
This is not difficult to see. Just turn off the code completion on your IDE, and try working that way for a few days. By the end of the week, you'll have shaken off the hunted feeling of "have I satisfied the IDE yet?" and you'll be working much faster, and probably a lot happier as well.

This post has been edited by jon.kiparsky: 29 June 2013 - 09:21 PM

Was This Post Helpful? 0
  • +
  • -

#24 xclite  Icon User is online

  • LIKE A BOSS
  • member icon


Reputation: 902
  • View blog
  • Posts: 3,163
  • Joined: 12-May 09

Re: Do Development Tools Make It Too Easy

Posted 30 June 2013 - 01:13 PM

Is this where I say "Vim or die!"?

My personal use for autocomplete has almost always been when I didn't know the name of a method or ordering of parameters for a method I'm trying to use. In the case where I know what I'm doing (arguably never?), I find that my average typing speed is high enough that, as jon mentions, it's just faster to type the name myself unless I'm declaring something like
AbstractConnectionManagerBeanFactoryProxyBeanImpl.

I'm firmly on the side of "IDEs CAN make it too easy," but I don't lay this blame at the feet of IDEs. It enables this sort of "autofix" programmer that jon epoused above, and I've seen it in action. See red squiggly, select first Eclipse suggestion, it compiles, ship it.

I also find that I lack the sufficient faith in humanity to believe that these people can be rehabilitated. In my opinion, the solution is better hiring, better code reviews, and faster firing. Sadly, the first and last are very hard to achieve. In an industry where the demand still vastly outpaces the supply, a lot of poor programmers are in a position to do stupid things when handed something powerful like Visual Studio.

Additionally, I agree with the comments about autogeneration enabling repetitive code. I'm very wary of any code that can be automatically generated, for those exact reasons.

The more I program professionally, the less I think I want out of an IDE. Now the compiler, REPL, etc? Different stories.
Was This Post Helpful? 0
  • +
  • -

#25 Maplestory  Icon User is offline

  • New D.I.C Head

Reputation: 2
  • View blog
  • Posts: 16
  • Joined: 26-June 13

Re: Do Development Tools Make It Too Easy

Posted 01 July 2013 - 10:49 AM

I'm really new to java but I never heard of things like Emac and stuff like that (THinks job mentioned). I just type my code in Notepad ++ and then go to cmd and use javac to compile it. Altough I have a friend who's been programing for 15 years and he said to use eclipse. He used the analogy "Think of eclipse as a crane. Its not inhibiting you but it makes your construction work alot smoother and easier". But since reading what Jon said I'm now kinda confused wether I should use an IDE like netbeans/Eclipse or stick to notepad ++ :(
Was This Post Helpful? 0
  • +
  • -

#26 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7651
  • View blog
  • Posts: 12,907
  • Joined: 19-March 11

Re: Do Development Tools Make It Too Easy

Posted 01 July 2013 - 11:17 AM

While I'm not a fan of Eclipse or Netbeans - I have an integrated development environment already, it's called linux - I think as editors they may be preferable to Notpad or Notepad++, which seem to me quite weak.

My standard advice to the programming novice is to work in a good text editor like emacs or vi (both of which can be had for free on Windows as well as on real operating systems) and compile manually until you have created some non-trivial program, either by yourself or as part of a team. Once you've done this, you probably have some basis for making your own decisions.

Quote

He used the analogy "Think of eclipse as a crane. Its not inhibiting you but it makes your construction work alot smoother and easier".


I think a better analogy would be a wheelchair. You can decide later if you want to strap yourself into one, but you should at least try walking for yourself first.
Was This Post Helpful? 0
  • +
  • -

#27 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1956
  • View blog
  • Posts: 4,058
  • Joined: 11-December 07

Re: Do Development Tools Make It Too Easy

Posted 01 July 2013 - 11:43 AM

Jon, code completion is a particular bugbear of yours but it's not unique to modern IDEs. BASH has tab completion, which even shows you options when what you type is ambiguous. Emacs has dynamic abbrviation and vim has omnicompletion.

Is your objection to autocompletion that gathers information from other source files, object files and documentation? For me, that's just another way of browsing the documentation. Most of the time, when I bring up a javadoc or msdn page, all I'm looking for is a list of functions in a particular class.

I love the different ways my IDE lets me browse the documentation. It will never replace the browser version but it's great to have a popup with just a method's description. I'm more likely to double check the circumstances that an exception is thrown. If I had to leave my editor, I might guess and end up "programming by accident".

Moving on from code completion, I like how my IDE lets me navigate between my source files. Visual Studio and Eclipse both let me jump from a function call to the definition or bring up a list of references to it. In Eclipse, I can even use it to bring up the source of a third party API, assuming it is available.

Oh, it has a play button which builds and runs. That's convenient but it's the feature I could most easily dispense with.

Do vi and emacs let you do these things? If I were to guess, I'd say probably but the learning curve seems higher.
Was This Post Helpful? 0
  • +
  • -

#28 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7651
  • View blog
  • Posts: 12,907
  • Joined: 19-March 11

Re: Do Development Tools Make It Too Easy

Posted 01 July 2013 - 11:55 AM

Quote

Jon, code completion is a particular bugbear of yours


It's more like a low-hanging duck. It's just so obviously broken, and it's such a terrible misfeature, it's hard not to take potshots at it. I'm sure I could find other breakages in eclipse and netbeans and things, but I'd have to use them to do it.


Quote

Do vi and emacs let you do these things?


Generally I know where things are in the code I'm working on. That's probably because I've always relied on my own mental model of the code, and I've never offloaded that task to the machine, so my brain does it well. So I never have a problem navigating my source files. It's like dialing phone numbers or navigating a city - it's easy to do it for yourself, and if you let a machine do it for you, you just become a little stupider for no gain.
But if I were to lose track of something, or if I'm working in someone else's code, both vi and emacs give you access to grep, which will find you anything you need. And yes, you can do it by selecting the text if you want, but again, a good typist probably won't want to interrupt their work flow and will just type the pattern they're searching for.

Quote

If I were to guess, I'd say probably but the learning curve seems higher.


That seems like a good thing to me, since I'm targeting this at the beginner. You want the beginner to get higher on the learning curve, don't you?

This post has been edited by jon.kiparsky: 01 July 2013 - 11:58 AM

Was This Post Helpful? 0
  • +
  • -

#29 cfoley  Icon User is offline

  • Cabbage
  • member icon

Reputation: 1956
  • View blog
  • Posts: 4,058
  • Joined: 11-December 07

Re: Do Development Tools Make It Too Easy

Posted 01 July 2013 - 01:19 PM

Quote

Jon, code completion is a particular bugbear of yours


It's more like a low-hanging duck. It's just so obviously broken, and it's such a terrible misfeature, it's hard not to take potshots at it. I'm sure I could find other breakages in eclipse and netbeans and things, but I'd have to use them to do it.


But I made the argument that vi and emacs have this feature too and asked you, albeit in a roundabout way, why is it not broken for them too?

Quote

If I were to guess, I'd say probably but the learning curve seems higher.


That seems like a good thing to me, since I'm targeting this at the beginner. You want the beginner to get higher on the learning curve, don't you?


If you were designing something, anything, under what circumstances would it make any sense to make it harder to use? It seems like such a self-defeating argument.

This post has been edited by cfoley: 01 July 2013 - 01:19 PM

Was This Post Helpful? 0
  • +
  • -

#30 jon.kiparsky  Icon User is online

  • Pancakes!
  • member icon


Reputation: 7651
  • View blog
  • Posts: 12,907
  • Joined: 19-March 11

Re: Do Development Tools Make It Too Easy

Posted 01 July 2013 - 02:09 PM

View Postcfoley, on 01 July 2013 - 03:19 PM, said:

But I made the argument that vi and emacs have this feature too and asked you, albeit in a roundabout way, why is it not broken for them too?


I can't say that I've ever used those features in either editor, unless you're talking about the completion used in programming the emacs editor itself. That completion is a perfect example of the circularity of bad design. Emacs lisp has terrible variable names and no namespacing because it has a code completion mechanism built into the editor, and it has code completion to deal with the terrible variable names and the lack of namespacing. Both are awful.

If either editor has a code completion mechanism for the code I'm writing, I haven't seen it, but that means nothing, since both are customizable. I suppose I could find them if I looked for them, but I haven't. And yes, it's probably just as bad no matter what editor you're using.
The nice thing about a text editor, though, is that it doesn't really support the worst habit of the Eclipse-type editor, which is to pop up a suggestion box on top of what you're working on, like a cat puking up a hairball on your typewriter because it wants attention. So I imagine that in either editor, you'd have to call up the completion manually, and the interface for the completion would be off in the bottom of the page, where it's at least not so distracting and interruptive.



EDIT: also, you asked about bash tab-completion. That one should be obvious: none of the issues I raised have any bearing on quotidian command-line hacking. Not a one. So no, command-line tab completion is not broken at all, it's fine.

Quote

If you were designing something, anything, under what circumstances would it make any sense to make it harder to use? It seems like such a self-defeating argument.


Depends what you're designing. If you're making exercise gear, your intent is to give someone something hard to do. Nerf weights would be sort of silly, wouldn't they?

This post has been edited by jon.kiparsky: 01 July 2013 - 05:37 PM

Was This Post Helpful? 0
  • +
  • -

  • (3 Pages)
  • +
  • 1
  • 2
  • 3