List,
Terms used: IDE: Integrated Development Environment CS: Computer Science IT: Information Technology
I was thinking about this for sometime now, and realized, that there wasn't any emphasis on the "tools" being used in courses (graduate, postgraduate) (CS and IT).
They may not be of utmost importance, but I'll like to know your opinions and choices.
1. Most of the courses use Windows as their OS and have Notepad as the default text editor used for programming languages such as Java etc. Even for HTML, CSS etc, notepad remains the default text editor. Notepad (default) doesn't have any syntax highlighting or other options. Surprisingly, students are told they learn better, if they are not equipped with these. (Text editor features)
I wonder, programmers under *nix, have Konsole ( ;) ) based text editors as well as GUI text editors (Just to differentiate for the sake of it: vim, nano and Kate, Emacs, gEdit) which provide syntax highlighting and a host of other options. Are they at a loss?
2. IDEs are great for development. Because, they hide the actual commands of compiling, interpreting / running the program. (some) They also enable the user with point-click tools and generate code for those tools / components. Surprisingly, the same students are allowed to use the Turbo C++ 3.0 (16-bit compiler) IDE with syntax highlighting for C / C++ programs and are able to write typical C / C++ programs later.
The question is, are Text Editors better for students to begin programming or are IDEs better for students? (Irrespective of the language)
Text Editors in Windows and GNU/Linux have capabilities that allow the process of compilation, interpretation, execution, identation, adding comments, etc. In some sense, Text Editors nearly is an IDE.
-- http://www.gnu.org.in ubunturos @ freenode
5, 50, 500, 5000 - Store N number of mails in your inbox. Go to http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html
Hi,
My thoughts below:
----- On 9/14/07, Roshan d_rosh2001@yahoo.co.in wrote: | I wonder, programmers under *nix, have Konsole ( ;) ) | based text editors as well as GUI text editors (Just | to differentiate for the sake of it: vim, nano and | Kate, Emacs, gEdit) which provide syntax highlighting | and a host of other options. Are they at a loss? --
When you work with console based-text editors, like vi or GNU Emacs you directly work with system RAM, so it is quite fast.
And if you want to be fast with text-level coding, you shouldn't move your hand off the keyboard and find the mouse, and do this back and forth. It reduces your speed.
----- | 2. IDEs are great for development. --
Too generic a statement. It depends for what development, and for whom.
----- | The question is, are Text Editors better for students | to begin programming or are IDEs better for students? | (Irrespective of the language) --
Use the right tools for the right programming tasks. You cannot use all the tools for all types of development.
SK
--- Shakthi Kannan wrote:
When you work with console based-text editors, like vi or GNU Emacs you directly work with system RAM, so it is quite fast.
I'm not sure of what the statement "work with system RAM" means. Could you simplify?
Use the right tools for the right programming tasks. You cannot use all the tools for all types of development.
Agreed. But the question is pertinent to who is learning and what they learn? They (students) begin to learn the basics of programming and typically begin with C (in Mum. Univ.) (and not python) (please don't divert this thread to C versus python ;) )
So, the question still is the same.
-- http://www.gnu.org.in ubunturos @ freenode
Get the freedom to save as many mails as you wish. To know how, go to http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html
Hi,
----- On 9/14/07, Roshan d_rosh2001@yahoo.co.in wrote: | I'm not sure of what the statement "work with system | RAM" means. Could you simplify? --
I meant "buffers" on the RAM present in the system.
----- | Agreed. But the question is pertinent to who is | learning and what they learn? They (students) begin to | learn the basics of programming and typically begin | with C (in Mum. Univ.) --
IMO, students should learn the basics of programming with Lisp, not C.
The twenty video lectures by Hal Abelson and Gerald Jay Sussman on "Structure and Interpretation of Computer Programs":
http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/
But, since it has been decided on C already, I'd definitely recommend learning either vi or GNU Emacs, because:
1. It helps you to edit code faster.
2. You get to work with build environments (Makefiles, compilation, linking, etc.), so it helps you to understand the concepts.
You can still do all these with IDEs, but, most of the time when you have IDEs, somebody always setups all the linker, compiler flags for you, so you don't have to worry about it. But, as a student you need to know the basics :)
In one FOSS event, I still remember an "engineering student" who told me that compilation was "Alt+F9".
3. You don't get access to GUI IDEs all the time, especially remote logins. And you shouldn't get stuck with one IDE, and expect to do all development only with one IDE.
Regards,
SK
On 9/14/07, Roshan d_rosh2001@yahoo.co.in wrote:
Use the right tools for the right programming tasks. You cannot use all the tools for all types of development.
Agreed. But the question is pertinent to who is learning and what they learn? They (students) begin to learn the basics of programming and typically begin with C (in Mum. Univ.) (and not python) (please don't divert this thread to C versus python ;) )
Personally, I prefer to avoid IDEs for writing standalone applications (regular PC based apps). The plain old vi/emacs with a couple of terminals for compilation and debugging is the best combo for me. IDEs force me to work in a way that the IDE _thinks_ is the best. I know customization is possible but it's simply not worth the effort.
On the other hand, for web based development (particularly J2EE or .Net based development), IDEs work better for me. The reason is that for web based applications if you decide to go solo you will end up wasting more time configuring the environment, packaging and deploying than actually developing a solution.
Hence, right tool for the right job and in the right scenario.
On Fri, 14 Sep 2007 19:17:22 +0200, Shakthi Kannan shakthimaan@gmail.com said:
Hi, My thoughts below:
----- On 9/14/07, Roshan d_rosh2001@yahoo.co.in wrote:
I wonder, programmers under *nix, have Konsole ( ;) ) based text editors as well as GUI text editors (Just to differentiate for the sake of it: vim, nano and Kate, Emacs, gEdit) which provide syntax highlighting and a host of other options. Are they at a loss?
--
When you work with console based-text editors, like vi or GNU Emacs you directly work with system RAM, so it is quite fast.
Emacs has had non-console properties for over a decade now. I have syntax based coloring, context sensitive menues, multiple frames, code browsing, integrated compile time error parsing, integrated debugger sessions.
And if you want to be fast with text-level coding, you shouldn't move your hand off the keyboard and find the mouse, and do this back and forth. It reduces your speed.
Absolutely. I don't have to take my hand off the keyboard to go from code to email to irc sessions with my co-workers discussing code while it is compiling in the background. If I ever met an IDE that was as competent as Emacs, I would switch. But Eclipse is bloatware that does not provide the capabilities that my Emacs does, so why bother?
manoj
If I ever met an IDE that was as competent as Emacs, I would switch. But Eclipse is bloatware that does not provide the capabilities that my Emacs does, so why bother?
See this is typically a flame thing. "Eclipse is bloatware", not qualified it just comes out as a whim. Capabilities Like what?? As far as Java development goes, it provides a very decent environment.
On Fri, 2007-09-14 at 17:45 +0100, Roshan wrote:
List,
Terms used: IDE: Integrated Development Environment CS: Computer Science IT: Information Technology
I was thinking about this for sometime now, and realized, that there wasn't any emphasis on the "tools" being used in courses (graduate, postgraduate) (CS and IT).
<snip/>
IMO, it's never the tools that decide how good a programmer you turn out to be. It's the almost always the training you get (even when you are learning by your self.)
You can always argue one way or the other about whether tools help or hinder you. On the one hand having some details hidden may help you get over part of the learning curve. On the other, if you get dependent on buttons, you'll never know what's happening behind the scenes.
If I were doing the teaching (and I have done some :), I'd ask the students to learn without the extra help and then once they've got a hang of the ropes to start using the helps and tools. That way, the student has some clue about what happens when they click on a button or why a certain bit of code is marked red by the syntax highlighter.
-gabin
--- Gabin Kattukaran wrote:
IMO, it's never the tools that decide how good a programmer you turn out to be. It's the almost always the training you get (even when you are learning by your self.)
True. But I wonder, doesn't the IT industry train newcomers on specific languages and appropriate tools and then put them on (bench) or projects? I don't know much about the FOSS industry (I'm sure, its more of a community-pick'd up employee) and therefore, would need a balance between good programmer and familiarity with specific tools.
If I were doing the teaching (and I have done some :), I'd ask the students to learn without the extra help and then once they've got a hang of the ropes to start using the helps and tools. That way, the student has some clue about what happens when they click on a button or why a certain bit of code is marked red by the syntax highlighter.
Umm, so they should start with the text-editor, see the syntax highlighting, go to the terminal, compile / run /interpret etc. When they are comfortable with that, they'll customize the text editor to compile on shortcuts. When that is done, they'll look up to an IDE. Is that what you intend to say? (confirming)
-- http://www.gnu.org.in ubunturos @ freenode
Did you know? You can CHAT without downloading messenger. Go to http://in.messenger.yahoo.com/webmessengerpromo.php/
hi,
On Fri, 2007-09-14 at 18:49 +0100, Roshan wrote:
True. But I wonder, doesn't the IT industry train newcomers on specific languages and appropriate tools and then put them on (bench) or projects?
I'm really tempted to get into a rant about how the average sweat shop works but I think I'll try and control myself. What you is true for sweat shops that really don't care about the how much their code coolies know as long as their hours are billable. To them training on a specific sub-version of a tool is the least expensive way to get the coolie's time to be billable. However, in the long run, the coolie has not really improved him/herself.
I remember, Philip mentioning that the more important quality in a programmer is how well they can learn new stuff - not how much of a particular tool they know.
I don't know much about the FOSS industry (I'm sure, its more of a community-pick'd up employee) and therefore, would need a balance between good programmer and familiarity with specific tools.
Since most FOSS projects work as almost pure meritocracies, how clued in you are makes a big difference. Nobody really knows which particular set of tools you use since you tend to work alone. (As an aside - http://www.unc.edu/depts/jomc/academics/dri/idog.html )
Umm, so they should start with the text-editor, see the syntax highlighting, go to the terminal, compile / run /interpret etc. When they are comfortable with that, they'll customize the text editor to compile on shortcuts. When that is done, they'll look up to an IDE. Is that what you intend to say? (confirming)
The tools and helps allow you to abstract out parts of the tool chain that you're using. This becomes more important on larger projects. So, what I am saying is, Use minimum aid for smaller pieces of code. Once you know what you are doing start delegating the mundane stuff to the tools. (Try relating this to learning to fly - If you only learn how to fly with an auto pilot, you won't have much of a chance when the shit hits the fan :)
On 9/14/07, Roshan d_rosh2001@yahoo.co.in wrote:
True. But I wonder, doesn't the IT industry train newcomers on specific languages and appropriate tools and then put them on (bench) or projects?
The Indian IT industry scenario is completely different. Merit doesn't matter because the problem domain is not very complex. All they need is people who, once trained to jump through the hoops, can do so again and again.
I don't know much about the FOSS industry (I'm sure, its more of a community-pick'd up employee) and therefore, would need a balance between good programmer and familiarity with specific tools.
The FOSS industry (more of a community actually) doesn't care much for tools as long as the job is done. As far as tools like version control, etc are concerned, you just have to learn them enough initially to be able to use them. Slowly but surely you will learn enough to really _use_ them ;) If you can't cope, just go away. You can't say the same in the Indian IT industry scenario.
On 15-Sep-07, at 12:59 AM, Siddhesh Poyarekar wrote:
I don't know much about the FOSS industry (I'm sure, its more of a community-pick'd up employee) and therefore, would need a balance between good programmer and familiarity with specific tools.
The FOSS industry (more of a community actually) doesn't care much for tools as long as the job is done.
I use eric3 for python, quanta for html, css and js and joe on the command line. I do my subversion stuff from the command line. Most programmers use the following:
1. emacs 2. vim 3. textdrive or is it texmate (on mac) 4. pnotepad (on doze - it is a foss programmers tool)
and, yes, many foss programmers work on doze
Well, I am not from CS or IT, but here is my 2 paise.
On 9/14/07, Roshan d_rosh2001@yahoo.co.in wrote:
List,
Terms used: IDE: Integrated Development Environment CS: Computer Science IT: Information Technology
I was thinking about this for sometime now, and realized, that there wasn't any emphasis on the "tools" being used in courses (graduate, postgraduate) (CS and IT).
They may not be of utmost importance, but I'll like to know your opinions and choices.
- Most of the courses use Windows as their OS and
have Notepad as the default text editor used for programming languages such as Java etc.
Really? I've seen people use VC++ whenever available. Is eclipse similarly popular?
Even for HTML, CSS etc, notepad remains the default text editor. Notepad (default) doesn't have any syntax highlighting or other options. Surprisingly, students are told they learn better, if they are not equipped with these. (Text editor features) I wonder, programmers under *nix, have Konsole ( ;) ) based text editors as well as GUI text editors (Just to differentiate for the sake of it: vim, nano and Kate, Emacs, gEdit) which provide syntax highlighting and a host of other options. Are they at a loss?
- IDEs are great for development. Because, they hide
the actual commands of compiling, interpreting / running the program.
A real drawback as I see it. As long as I was using TC++, I did not even know about the existence of makefiles.
(some) They also enable the user with point-click tools and generate code for those tools / components. Surprisingly, the same students are allowed to use the Turbo C++ 3.0 (16-bit compiler) IDE with syntax
Quite a neat piece of software as such, but it obscures the details of building an executable.
Regards, Mohan S N
On 9/14/07, Roshan d_rosh2001@yahoo.co.in wrote:
Surprisingly, the same students are allowed to use the Turbo C++ 3.0 (16-bit compiler) IDE with syntax highlighting for C / C++ programs and are able to write typical C / C++ programs later.
Not really. They get a bit of a culture shock when they realize that they actually have something called a compiler and it is different from the stuff they write programs in.
I had a few colleagues complaining to no end about how poor Linux was as a development environment because the had to write the program with a different program and compile with another. It took them a while to understand the amount of power and flexibility unleashed by the combo.
On 9/14/07, Roshan d_rosh2001@yahoo.co.in wrote:
List,
Terms used: IDE: Integrated Development Environment CS: Computer Science IT: Information Technology
I was thinking about this for sometime now, and realized, that there wasn't any emphasis on the "tools" being used in courses (graduate, postgraduate) (CS and IT).
They may not be of utmost importance, but I'll like to know your opinions and choices.
- Most of the courses use Windows as their OS and
have Notepad as the default text editor used for programming languages such as Java etc. Even for HTML, CSS etc, notepad remains the default text editor. Notepad (default) doesn't have any syntax highlighting or other options. Surprisingly, students are told they learn better, if they are not equipped with these. (Text editor features)
I wonder, programmers under *nix, have Konsole ( ;) ) based text editors as well as GUI text editors (Just to differentiate for the sake of it: vim, nano and Kate, Emacs, gEdit) which provide syntax highlighting and a host of other options. Are they at a loss?
- IDEs are great for development. Because, they hide
the actual commands of compiling, interpreting / running the program. (some) They also enable the user with point-click tools and generate code for those tools / components. Surprisingly, the same students are allowed to use the Turbo C++ 3.0 (16-bit compiler) IDE with syntax highlighting for C / C++ programs and are able to write typical C / C++ programs later.
The question is, are Text Editors better for students to begin programming or are IDEs better for students? (Irrespective of the language)
I know im a little late on this post. But this IDe v Text Editor question has been in my mind for long. I have wrote most of the code in my life in Java, which probably has one of the best IDE support. But is still think those initial note pad days, and the javac and java have held me in good stead. I know what $CLASSPATH means, i know how packages relate to directory structures, how classloader works. Would i have known it if I was a victim of "eclipsing" everything. Hell no. And i can say that from experience. I have see ppl who didint know if there wasa way to execute java programs from command line, they always thought eclipse is java.
So, IMO start learning on a basic text editor, coz at that time ur learning the basicis of the language. IDEs should be used to increase productivity, reduce development time on projects.
Text Editors in Windows and GNU/Linux have
capabilities that allow the process of compilation, interpretation, execution, identation, adding comments, etc. In some sense, Text Editors nearly is an IDE.
-- http://www.gnu.org.in ubunturos @ freenode
5, 50, 500, 5000 - Store N number of mails in your inbox. Go to
http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html