[Tutor] command line

alan.gauld@bt.com alan.gauld@bt.com
Mon, 1 Apr 2002 23:32:45 +0100


> >hardly ever use the "toys". There's nothing so productive
> >as just typing the code in and it works first time! Many
> >experienced pros reach that level of quality after 10 years
> >or so...
> 
> Depends what you include in the "toy" category.

Granted, I really mean things like parameter displays, 
class browsers (for the core libraries, they are useful 
for user defined classes), graphical debuggers - "a sop 
to those who don't understand their own code" - to quote 
one seasoned hack...

> changes (ala make).  

make is most definitely not one of the "toys" but GUI 
project builders could be... depeding on their power. 
Some of these are now getting to the stage of being useful.

> Templates and dialog box driven
> builders of various types also save time.

Depends, If the GUI desitgners are non programmers and 
design the GUI in Visio (quite common) then the coders 
will often just hack together a resource file. The 
biggest Unix project I ever worked on the GUI team 
all used VT200 terminals and shared a single X display 
for testing! I definitely wouldn't recommend that!

> Helpful and useful:  a visual class browser, 

Hmm, sometimes yes. Mostly I find them overrated if 
you know the library well.

> code rollups,

??? whats one of them? Do you mean folding?
If so yes I agree that's useful, but with ctags still 
very much a luxury.

> and, of course, a way to develop GUI forms by simply
> dragging and dropping widgets from a palette ala VB

But that implies you are designing 'on the fly'. Fine 
for small projects with maybe a dozen forms but once 
you get into big projects(Photoshop say) then the design 
will tend to be on paper or in visio etc. Or maybe 
in VB as a demonstrator but be recoded by hand 
elsewhere...

> want to go back to the text-only tools of my past.  But I
> can understand sticking with what you know best.

On mainframes text only is all you get very often but 
I agree GUI tools have their place. However on Unix most
of the traditionally GUI tools are available as text 
and thats what gets used. I stress I'm talking about 
hard core coders here. I certainly am not in that 
category and I've been programming on and off for 25 
years. I mean the contractors who specialise in maybe 
3 or 4 languages on 2 or 3 OS's. They are paid to 
produce large volumes of code to a predetermined design. 
They have no need for design as you go type tools - they 
just sit down and churn out a thousand lines of 
working C/Java/COBOL per day.

> The idea that a *nix environment is itself an IDE makes
> plenty of sense 

Yes, Its the biggest thing about Unix, its a software 
engineering foundry that just happens to double as 
a decent OS :-)

> I also appreciate that *nix gives you more high powered
> tools at an affordable price 

Its not just the freeness of Linux etc. I was using 
Solaris(SunOS) long before Linux etc existed - I even 
tried Minix for a while! But its the integration and breadth 
of the tools. PC IDEs have only recently started shipping 
with profilers, they still don't do test coverage. You 
can buy the addons but often they don't integrate with 
each other - you can debug this build but not profile it...

> But it's also true that the *nix OS is a platform for
> expensive, proprietary, closed source software development
> IDEs and applications.  

Sure is. The IDEs I mentioned earlier all cost >$1000 per seat.
The test tool we use costs over $5000 per seat and the CASE 
tool is higher still. But these are production strength 
tools for serious use. When a projects development budget 
exceeds 10 million dollars (say) the tool costs become a 
minor issue! An hours downtime of the server will likely 
cost more!

> is, of course, not true.  Yet it seems some evangelists
> want us to believe that only Windows users ever run closed
> source, expensive stuff.

And that is certainly a myth. Unix has lots of closed source 
software, mostly good quality but there are some stinkers 
in there too.

> What I really like about Python, on all the platforms it
> supports, is that batteries are included.  

Absolutely. It is a great prototyping language, great 
for experimenting and great for scripting. For occasional 
users like me (I only program for a few hours each week) 
its perfect. If you want to take an idea to production 
level you can do that too. It only runs out of steam on 
the very biggest of projects or on the highest performance 
cases - Once you know you need that performance thens a 
good time to wheel in the hard core C++ gyys to rewrite 
the critical bits - and python is the pseudo code :-)

>  > This is true and is where Python development differs from
>  > traditional style coding.
> 
> Some languages have a builtin shell mode, and take advantage
> of it, whereas others don't.  APL, Logo, Scheme, many Lisps,
> Xbase, MATLAB, Mathematica, ISETL and Python are very shell-

Yeah but only LISP and Python out of that list are things 
I'd consider writing a big application in. And even Lisp 
has some problems in that area.

Smalltalk is the other one. The Smalltalk transcript window 
and class browser IDE are very similar in feel to a python 
prompt/editor environment IMHO.

Alan G