Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 The Advantages of Eschewing IDEs for Learning
Index -> General Programming
Goto page 1, 2  Next
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
wtd




PostPosted: Sat Jul 16, 2005 1:56 pm   Post subject: The Advantages of Eschewing IDEs for Learning

Integrated Development Environments can be very handy, but for the most part, they are designed for programmers building large complex programs, rather than students learning the most basic aspects of programming.

What's a project?

When a student sits down to write his or her first program, that program won't be anything large enough to even remotely be classified a project.

Yet most IDEs will at least encourage a user to create a project. Yes, single source code files are often an option, but why present the choice at first? Offering students choices at this point in their education is just unnecessary confusion.

Using a text editor and command-line compiler this is not a problem.

Where does the compiled file go?

So you set the location of the compiled program in a dialog. Well, you have to know how to find that dialog, but that's not even the primary problem. Once you've set that, you can forget about it.

Beginning programmers should always think about what's going on: what they're creating and what they're changing.

But I have to know how to use the command-line...

Get over it.

No, seriously. Suck it up and learn. It's an incredibly valuable skill, and it gives one additional insight into the nature of directories and files.

What is source code?

IDE users may be tempted to think of source code as something magical. Some special data format.

Source code is plain text. Using a plain text editor to write a program will make that apparent.

Automatic API docs are bad

They're handy later on, but knowing how to manually search for information on the API you're using is vitally important.

Google is your friend.

IDEs aren't forever

IDEs get updated, replaced, rearranged... and one's knowledge about how to use a particular IDE is quickly outdated. The underlying programming languages, though, are typically much slower to change. Invest your time in learning the language.

IDEs have specialized tools...

Command-lines have general purpose tools.

Think in the abstract. You have tools for processing plain text at the command-line. You have source code that is plain text. Therefore, you have tools for dealing with source code.
Sponsor
Sponsor
Sponsor
sponsor
Delos




PostPosted: Sat Jul 16, 2005 2:32 pm   Post subject: (No subject)

Good way of looking at it, I'd say. Now, since we the masses are hardly ever satisfied, would you be able to provide some examples (perhaps in Ruby) that show how using command-line has advantages over IDE? I have a funny feeling that this is a lot easier said than done...but you're creative! Laughing
1of42




PostPosted: Sat Jul 16, 2005 3:37 pm   Post subject: (No subject)

While I'm starting to see what wtd means by pitfalls, I honestly think a lot of these issues are very contrived. The last time I saw someone who thought a .java or .cpp file was some magic format was... never. Honestly, if you're smart enough to write a program, these things should be blatantly obvious.
wtd




PostPosted: Sat Jul 16, 2005 4:14 pm   Post subject: (No subject)

1of42 wrote:
While I'm starting to see what wtd means by pitfalls, I honestly think a lot of these issues are very contrived. The last time I saw someone who thought a .java or .cpp file was some magic format was... never. Honestly, if you're smart enough to write a program, these things should be blatantly obvious.


You'd think so. Don't worry, that just means you're a naive optimist. There are worse things to be.

Sit in a community college 100 level CS course sometime.
wtd




PostPosted: Sat Jul 16, 2005 4:35 pm   Post subject: (No subject)

Delos wrote:
Good way of looking at it, I'd say. Now, since we the masses are hardly ever satisfied, would you be able to provide some examples (perhaps in Ruby) that show how using command-line has advantages over IDE? I have a funny feeling that this is a lot easier said than done...but you're creative! Laughing


Well, Ruby is a great one to use from the command-line, since there's no compilation step.

The first thing to emphasize with Ruby is that you can use the irb program to run code interactively. I mean, why create a file just to write a "Hello world" program.

code:
$ irb
irb(main):001:0> puts "Hello world"
Hello world
=> nil
irb(main):002:0>


And of course we can use this for multi-line code.

code:
irb(main):002:0> def hello
irb(main):003:1>    puts "Hello world"
irb(main):004:1> end
=> nil
irb(main):005:0> hello
Hello world
=> nil
irb(main):006:0>


Of course, at some point you'll want to create a program and run it all at once. That's simple. Just put your code in a text file with a ".rb" extension. Running it is then as simple as:

code:
$ ruby my_program.rb


At some point, too you're going to wonder: can I syntax check my file? Well, that's easily accomplished.

code:
$ ruby -c my_program.rb


And we can quickly run single lines of code without even going into irb.

code:
$ ruby -e'puts "Hello world"'
Hello world
$


We can pair this up with the "-p" option to create a very quick tool for manipulating files.

code:
$ cat > foo
hello world
foo bar baz
$ ruby -p -i.bak -e'gsub /[aeiou]/ do |vowel| vowel.upcase * 2 end' foo
$ cat foo
hEEllO wOOrld
fOOOO bAAr bAAz
$ cat foo.bak
hello world
foo bar baz
$
[Gandalf]




PostPosted: Sat Jul 16, 2005 5:37 pm   Post subject: (No subject)

Yep, now I see why interactive interpreting is useful - its pretty much like changing your program, then compiling it to test it, but much more convenient.

Learning command line is not only useful to programming, but it also allows you to do some things that otherwise you couldn't without getting a specific program. There's a whole bunch of things that are easier to do in command line than in a GUI environment.

"IDEs aren't forever" - I've never really understood why people mixed up IDE's and programming languages. It's... I just can't imagine how you could mix them up. Don't believe people think that IDE's are programming languages? Look around these forums a bit.
Martin




PostPosted: Tue Jul 19, 2005 3:44 am   Post subject: (No subject)

I think the problem is that Windows doesn't offer a useful shell environment, so not using an IDE can be challenging.

With linux, when coding in vim or emacs everything works out nicely because to compile it's just a few keystrokes. With Windows however, one has to switch between windows to compile code in a non-IDE environment. The IDE, although definitely an example of killing a fly with a shotgun, provides containment for everything the user is doing.

What I want is an intuitively designed IDE based around vim. One where I can do absolutely everything without taking my hands off of the keyboard, with features like code completion and a debugger. And a web-browser that uses vim commands.

:wq
McKenzie




PostPosted: Wed Jul 20, 2005 2:56 pm   Post subject: (No subject)

My biggest problem is that at my current school board they don't allow students access to the shell because they fear that the students will abuse the privilege. Doh!
Sponsor
Sponsor
Sponsor
sponsor
bugzpodder




PostPosted: Wed Jul 20, 2005 9:10 pm   Post subject: (No subject)

a student will gain more from debugging right from the source code (consider some console output) rather than tracing with an IDE debugger.
rizzix




PostPosted: Thu Aug 04, 2005 10:39 am   Post subject: (No subject)

logic problems can best be solved through tracing.
Aziz




PostPosted: Sun Jul 16, 2006 11:38 pm   Post subject: (No subject)

I personally use an IDE . . . probably because I'm lazy, and like to avoid extra work. I started out (long ago) with DOS, and I know my way around the command prompt, but the organization of the IDE is what I like the most. I can compile, run, and check API (well, for the standard library, at least) quickly in the same program. It's small (JCreator) and I don't use the project or debugging features (if it has debugging features, never really looked in to it i always peferred debugging myself because I know what's going on). I also like the "data view" of JCreator. I can see in a little sidebar all my methods and members. I've thought about looking at text editors with syntax editing. For a good text editor for me, though, it'd have to have:

- Syntax highlighting
- Auto-indent (I wouldn't want to press space 4 times EVERY new line)
- Shortcuts to compile/run (and possibly jar!) (Pain in the ass to switch to command line everytime to compile, which I do often)

And I would prefer:

- API search (no problem to do in browser, but again, lazy)
- Data view

If anyone's got a good simple texteditor out there like this? I don't really use most of the features that JCreator offers, I mostly like the organization and at-you-fingertips options.
[Gandalf]




PostPosted: Sun Jul 16, 2006 11:55 pm   Post subject: (No subject)

Aziz, try out Crimson Editor, it'll have most of the features you ask for. It's also far, far, far more lightweight and faster than JCreator. Probably my favourite editor, and definately my favourite editor for Java.
Aziz




PostPosted: Mon Jul 17, 2006 8:33 am   Post subject: (No subject)

Crimson editor? I'll check it out. I downloaded jEdit last night with some plugins but I'm not to sure about it.

EDIT: Does that blow or does that blow? Code completion is onyl available in the Pro version Sad
Cervantes




PostPosted: Mon Jul 17, 2006 11:46 am   Post subject: (No subject)

jEdit seemed to be really awesome, at first. But then I installed the Ruby plugin, and typing was laggy. But if you're doing Java, you don't need the Ruby plugin, so you're probably okay.

SciTE is another good editor, though I've lost part of my love for it, mostly due to crappy out-of-the-box settings. (Not that you buy it and it comes in a box. Download here: http://www.scintilla.org/SciTE.html)
Aziz




PostPosted: Mon Jul 17, 2006 1:37 pm   Post subject: (No subject)

I've looked at Crimson Editor, too. I think I'm going to stick with JCreator. Probably biased but it does what I need and I'm used to it. Just a comfort thing. I suppose the real tool is being able to do it with anything. If you can do it with notepad and command line, then IMO you're good to go, but with those basic skills, I think some organization and convience is a plus, for those that can "handle" it (meaning, still realize what they're doing. Sorta like sitting at a computer with RTP and writing code, where you already know how, instead of using the stupid hsa package)
Display posts from previous:   
   Index -> General Programming
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 2  [ 26 Posts ]
Goto page 1, 2  Next
Jump to:   


Style:  
Search: