Thread: Why do we need to use UNIX/VI/EMACS etc?

  1. #1
    Registered User
    Join Date
    Mar 2010
    Posts
    94

    Why do we need to use UNIX/VI/EMACS etc?

    Please guys let us know about these questions!

    1. Should we all the time try to use VI and EMAC's for writing code instead of different IDE's?

    2. If I ask you on person which one would you prefer VI or EMAC's?

    3. Why do we need to learn UNIX or shell? How learning UNIX or shell can simplify our work if we are using UNIX GUI's such as LINUX and MACOSX?

    4. Does the companies give you more credit if you know UNIX in an advance way? (but not to program UNIX programs just to know to use it)

    5. Well, try to extend your answers with even more questions.... if you need and think that is useful

    I do believe that the answers from this post will be worthy for thousand of "geek" users around the internet...

    Thanks for helping me/us!

    Have fun...

  2. #2
    Registered User UltraKing227's Avatar
    Join Date
    Jan 2010
    Location
    USA, New york
    Posts
    123
    i cant answer all your questions, but i can answer
    two:

    2. If I ask you on person which one would you prefer VI or EMAC's?
    EMac, its advanced, its powerful, its useful, its handy,
    the list goes on. althrough, abit high priced, its just
    great!

    3. Why do we need to learn UNIX or shell? How learning UNIX or shell can simplify our work if we are using UNIX GUI's such as LINUX and MACOSX?
    learning a command-line Os version can also be useful.
    so, if i was to give two reasons:

    1) Command-line increases our knowledge and also
    makes us more hard-core. thus making us potent
    enough to face more difficult problems in programming.

    2) You can use the System; command to do things that
    the command-line can do (only for beginners, i dont
    use this though).

    i guess thats all...

  3. #3
    Registered User claudiu's Avatar
    Join Date
    Feb 2010
    Location
    London, United Kingdom
    Posts
    2,094
    1) I really want to meet the person that is willing to pay you per hour to write code in VI or EMACS.

    2) None.

    3) Linux and Mac OS X are not UNIX "GUIs". They are operating systems just like UNIX. There are similarities between them, yes!

    4) Depends on what the company does.

    5) I have a question! What does all of this have to do with C Programming?

  4. #4
    Registered User
    Join Date
    Mar 2010
    Posts
    94
    This has not to do with C programming directly! But in-directly yes and the forum had not a place related to UNIX questions so I posted here instead.

    Thanks!

  5. #5
    and the hat of sweating
    Join Date
    Aug 2007
    Location
    Toronto, ON
    Posts
    3,545
    1. No, use a real IDE.

    2. If those are my ONLY options, then vi.

    3. Because you'll definitely encounter the command line at work, so you should know how to use it. Also, if you need to telnet or ssh into a machine, you need to use the command line to do everything.

    4. Only if you work at a company that uses UNIX and it's part of your job requirement.
    "I am probably the laziest programmer on the planet, a fact with which anyone who has ever seen my code will agree." - esbo, 11/15/2008

    "the internet is a scary place to be thats why i dont use it much." - billet, 03/17/2010

  6. #6
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by c_lady View Post
    1. Should we all the time try to use VI and EMAC's for writing code instead of different IDE's?
    No, that should be a personal choice of yours. There are some advantages to doing this if you commonly work in certain specific environments, but you will be aware of that if this is the case.

    2. If I ask you on person which one would you prefer VI or EMAC's?
    VIM (specifically, not VI). People who have not put serious time into using VIM tend to have a very distorted, ignorant impression of it, and this is probably true of emacs too.

    3. Why do we need to learn UNIX or shell? How learning UNIX or shell can simplify our work if we are using UNIX GUI's such as LINUX and MACOSX?
    The shell is programmable from the command line. If you know how to use it, you can do a lot of things very quickly and easily -- more quickly and easily than any other way, which is why people who do know how to use it appreciate it. The shell and shell utilities are quite extensive and take some practice to understand and enjoy, but they are also available everywhere you can find a *nix command-line because they are so super-portable and have a very long history of development and use.

    4. Does the companies give you more credit if you know UNIX in an advance way? (but not to program UNIX programs just to know to use it)
    One of the jobs I am doing right now would not have been possible without knowledge of the command-line. It was not a definitive prerequisite for the position, but it may be why I got it, and it is definitely the reason I was given the responsibilities I was given on day 1 (eg, root access), which what I was capable of helped to define what my specific job would be. The result is I have more responsibility, more freedom to do what I want, and do not have to rely on others (eg, the sysadmins) to deal various things. Nb: this is not a C programming job, it's web-dev, altho there may be some C/C++ work server side, etc.

    5. Well, try to extend your answers with even more questions.... if you need and think that is useful
    I enjoy the command line more and more all the time. Sometimes I feel like a Luddite, preferring a GUI desktop which is mostly terminal emulators. On the other hand, IMO the reason your average joe user does not do this is it requires too significant an investment of time and energy to learn, and most people do not like typing. A lot of CLI functionality cannot be replaced as effectively with a GUI, but they do provide more eye candy and opportunities for the mouse.
    Last edited by MK27; 03-19-2010 at 07:10 AM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  7. #7
    Registered User jeffcobb's Avatar
    Join Date
    Dec 2009
    Location
    Henderson, NV
    Posts
    875
    Quote Originally Posted by claudiu View Post
    1) I really want to meet the person that is willing to pay you per hour to write code in VI or EMACS.
    Answer: Sony for one. Pretty much all of the senior devs there use one or the other on PS3/Linux. I do know of one of the more senior devs there who uses Nano pretty exclusively.


    Oh and for the record:
    EMac, its advanced, its powerful, its useful, its handy,
    the list goes on. althrough, abit high priced, its just
    great!
    Emacs is open sourced and free on all platforms. As much as I encourage public support for the editor, misinformation is worse than none.

    As for the rest of the questions, I prefer Emacs since it works well on all platforms (although so does Vi and friends), having working knowledge of multiple platforms is nothing but a help to you in your career (and anyone who says otherwise is not speaking from a position of knowledge), Linux is NOT a GUI but rather a collection of programs that comprise an OS of which part is the XServer which does provide hooks for the GUI. The GUI itself can be anything from something light like LXDE to something heavier such as GNOME or KDE.

    Almost anything else here is going to start a flame war and I am just not up to participating.
    C/C++ Environment: GNU CC/Emacs
    Make system: CMake
    Debuggers: Valgrind/GDB

  8. #8
    Registered User UltraKing227's Avatar
    Join Date
    Jan 2010
    Location
    USA, New york
    Posts
    123
    i donno what flame war is, but... i leave!

  9. #9
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by UltraKing227 View Post
    i donno what flame war is, but... i leave!
    It's like crack -- no one wants any until they try it, then it gets out of hand

    Flame War - Uncyclopedia, the content-free encyclopedia
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  10. #10
    Reverse Engineer maxorator's Avatar
    Join Date
    Aug 2005
    Location
    Estonia
    Posts
    2,318
    I didn't get all the buzz about bash scripts and shell either, until I was forced to work a day on Linux without an IDE. The next day when I came back to my Windows machine, I was like "not this stupid IDE again...". I guess it might be the same with VIM or Emacs, but I haven't tried them out yet. Although I think they could take a lot more time to get used to.

    Correct me if I'm wrong, but it seems to me the word UNIX mostly does not refer to that exact operating system anymore, but just all OSs that work pretty much the same way (Linux, BSD, also Mac OS X).
    "The Internet treats censorship as damage and routes around it." - John Gilmore

  11. #11
    and the hat of sweating
    Join Date
    Aug 2007
    Location
    Toronto, ON
    Posts
    3,545
    Quote Originally Posted by maxorator View Post
    Correct me if I'm wrong, but it seems to me the word UNIX mostly does not refer to that exact operating system anymore, but just all OSs that work pretty much the same way (Linux, BSD, also Mac OS X).
    That's my definition of UNIX.
    "I am probably the laziest programmer on the planet, a fact with which anyone who has ever seen my code will agree." - esbo, 11/15/2008

    "the internet is a scary place to be thats why i dont use it much." - billet, 03/17/2010

  12. #12
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    People actually tried to standardized OSes.

    POSIX - Wikipedia, the free encyclopedia

    Almost all commonly used OSes today are on the list. Well, almost as in except for Windows.

  13. #13
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Quote Originally Posted by c_lady View Post
    1. Should we all the time try to use VI and EMAC's for writing code instead of different IDE's?
    Nope. You choose what will serve you better under a given situation and based on your preferences and limitations.

    2. If I ask you on person which one would you prefer VI or EMAC's?
    I'd prefer VI. But the reasons are not what you'd expect. I'm political. Which means, I don't run GPL software on my Linux machine unless I don't have a choice.

    3. Why do we need to learn UNIX or shell? How learning UNIX or shell can simplify our work if we are using UNIX GUI's such as LINUX and MACOSX?
    You don't need to learn anything. Not Unix, not the shell, not math, not to read or write. But you should. Because it becomes knowledge. And knowledge is powaa!

    4. Does the companies give you more credit if you know UNIX in an advance way? (but not to program UNIX programs just to know to use it)
    Depends on the companies. Most companies don't give a rat's arse if you know Unix. However recruitment processes do tend to favor people that show encyclopedic knowledge, or that like to explore new/other things instead of just sticking to one thing.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  14. #14
    Registered User NeonBlack's Avatar
    Join Date
    Nov 2007
    Posts
    431
    jeffcobb, I think UltraKing was joking about the price. Though you'd have to pay me extra to use it, so I also think it's overpriced.

    To answer the OP,
    1. No. I think you should try to learn to use a number of different tools.
    2. I prefer vi to emacs, but there are a number of other IDE's I'd rather use.
    3. As others have mentioned, the command shell is scriptable. There are also many programs which can only be run from the command line.
    4. Depends on what you're doing. I think in general, companies care more about you getting ........ done than which text editor you use.
    I copied it from the last program in which I passed a parameter, which would have been pre-1989 I guess. - esbo

  15. #15
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    I think you really have two main goals. 1) Be as productive as possible. 2) Interact as efficiently as possible with others.

    If a tool makes you more productive, it is probably worth using. If a tool makes you more productive at the expense of not being able to interact with others, it may not be worth it. If you absolutely hate a certain tool, but you need to work in a team of people who use it, you may have to adjust, by either biting your lip and using the ill-regarded tool, changing the task at hand (or the minds of the group), or leaving the group to do work elsewhere.

    And I mean "tool" in the broadest sense, from a text editor to an entire operating system. Your goal should be to use whatever tools are the best choice for the task at hand, and although you sometimes get to define (or at least influence) what those tools are, you don't always. Sometimes you even get to redefine what "best" means -- that's when you really get to sit down and put your feet up and enjoy yourself.

    Learning to recognize when a tool is a minor detail vs. an important component of a process, is a valuable skill.

    And I mean "process" in the broadest sense, from a simple development process to the process of getting hired. See, I closed the loop
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

Popular pages Recent additions subscribe to a feed