New to python, do I need an IDE or is vim still good enough?

G

Gisle Vanem

Wayne Werner said:
Yep. That's how I feel. I had used ViEmu in Visual Studio for coding in .NET at
work - but I found that the buffers & macros were more powerful. So now I do
most of my programming in Vim, and only head to VS if I need autocomplete or
some of it's auto-generation tools.

Learning X different IDEs for different languages and uses can be
confusing. So if you use Visual-Studio a lot there is Python Tools for VS [1].
A great but kinda slow extension to VS. Sticking to VS is also useful
if one does Swig and need to debug your crashing .pyd modules.

[1] http://pytools.codeplex.com/

--gv
 
A

Anssi Saari

Ben Finney said:
And any decent Unix-alike (most OSen apart from Windows) comes with its
own IDE: the shell, a good text editor (Vim or Emacs being the primary
candidates), and a terminal multiplexor (such as ‘tmux’ or GNU Screen).

Just curious since I read the same thing in a programming book recently
(21st century C). So what's the greatness that terminal multiplexors
offer over tabbed terminals? Especially for software development?

For sure I use screen at the remote end of ssh connections where I don't
want the application like irssi to die if the connection goes down but
other than that?
 
C

Chris Angelico

Just curious since I read the same thing in a programming book recently
(21st century C). So what's the greatness that terminal multiplexors
offer over tabbed terminals? Especially for software development?

The main thing is that you'll need a _lot_ of terminals. On my Debian
and Ubuntu GNOME-based systems, I tend to assign one desktop to each
of several "modes", usually with my (tabbed) editor and browser on the
first desktop. At the moment, desktop #3 (hit Ctrl-Alt-RightArrow
twice) is for building Pike, running Gypsum, and git-managing Gypsum;
desktop #2 is for my poltergeist controllers (MIDI to my keyboard),
with a few different windows depending on what I'm doing; and desktop
#1 is... everything else. SciTE, Google Chrome, a couple of Nautilus
windows, and roughly twenty terminals doing various things like
Command & Conquer Renegade, iptables management, SSH sessions to two
other servers, the Yosemite project... wow, what a lot of random junk
I have running on Sikorsky at the moment. It seems I currently have 25
instances of bash running, in addition to the non-bash windows.

Tabbed terminals probably would work fine, but I've personally just
never gotten accustomed to any. You will want some kind of system that
lets you group related shell sessions together (eg one for 'make', one
for running the app, and one for git, all relating to one project),
and add more terminals to a group as required. The most important
editing key is command recall (up arrow or similar), and keeping three
or four different command histories per project is hugely
advantageous.

ChrisA
 
J

jrodkeyjr

If you are going to review an IDE, or multiple, I would recommend Komodo and Komodo Edit.
 
T

Tim Chase

Just curious since I read the same thing in a programming book recently
(21st century C). So what's the greatness that terminal multiplexors
offer over tabbed terminals? Especially for software development?

For sure I use screen at the remote end of ssh connections where I don't
want the application like irssi to die if the connection goes down but
other than that?

The reattaching is a nice feature--especially since you can start
some work in one location, then SSH into the box remotely and
reattach, resuming where you left off. Other nice things include

- if it's a remote machine, only connecting once. This is more a
factor if you need to enter a password, rather than using
passwordless public/private key auth. But even with passwordless
key-pairs, you still have to type "ssh user@host" rather than
"{prefix key}c" to create a new connection on the same machine.

- the ability to monitor windows for activity/silence (at least GNU
Screen offered this; I haven't dug for it yet in tmux which I'm
learning). This is nice for backgrounding a compile and being
notified when it goes silent (usually means it's done) or watching a
long-running quiet process to get notification when it finally has
some output. I used this feature a LOT back when I did C/C++ work.

- both offer the ability to do screen-sharing with other parties, as
well as granting them various permissions (user X can watch but not
interact with the session, while user Y can issue commands to the
terminal as well) which is nice for remotely pair programming, or
teaching somebody the ropes or troubleshooting.

- depending on your tabbed terminal windows, terminal multiplexors
usually offer some split-screen abilities (last I checked, GNU
Screen only offered horizontal splits; tmux had both vertical &
horizontal splits). As a Vim user (which doesn't have a way to
include a terminal window inside Vim unless you rebuild it with
unofficial patches), this allows me to have an editor in one
{screen|tmux} window and a shell in the other and be able to see
them together. I don't use it much, but it's nice to have when I do
need it.

- tmux offers the ability to transmit keyboard input to all
linked/synchronized windows, so you can connect to multiple servers
and then issue the same commands and they get run across all of
them. I believe Screen offers a similar ability to broadcast
keystrokes to all windows, but with a clunkier interface. Sort of a
poor-man's "clusterssh". I've not needed this one, but it's there
in case you manage clusters or develop/deploy with them.


Those are just a few of the things that come to mind. Some might be
replicated by a tabbed terminal window; others less so.

-tkc
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top