Wiggins d Anconia writes:
 > 
 > 
 > > please let's do a split(/\s/, "Perl Programmer").
 > > 
 > > this return one array with two scalar:
 > > Perl
 > > Programmer
 > > 
 > > that's why
 > > 
 > 
 > Back to semantics, define "Programmer".  Your definition of programmer,
 > if it requires any knowledge of UML, is so strict that it will not work
 > in 99% of circles where the term is thrown around *today*. Admittedly I
 > have very little knowledge of UML, but my employer seems very happy with
 > my abilities as a "programmer", and from what little I have seen and
 > read around the subject UML is a colossal waste of time on any "real"
 > programming project.  

UML does not help you program; it helps you design.  UML is a
diagramming tool to help you think about the relationships between
verious things that could make up a system.  It is a way to view the
big picture.  Typical UML shows the relationships and data flow
between many computers and many programs and the data flowing between
them all.  That does indeed turn out to be pretty useless when you are 
trying to code an optimal loop to perform efficiently inside one of
those programs.  When people abuse UML to the point of trying to
express line-by-line details of a single program in UML, they need to
be slapped!  

I do not write UML, but I can read it, and use the diagrams to discuss
how a system design might be improved.  It has proved very helpful to
me on the few projects where the chief architect has used it properly.
I come from the "old school", having written my first program in
1967.  I use any informal diagramming technique that helps me
visualize and think about the problem at hand.  This helps me a lot,
but sometimes other people do not understand what I mean in these ad
hoc diagrams.  UML is an attempt to standardize the diagramming
conventions to achieve protability among system architects.

I remember having to throw out the idea of classical flow charts when
I started writing context switching code for operating system
internals in 1973.  The classical flow chart could not capture the
idea of parallelism.  Of course, that was back in the "good old days",
when I had 8K 16 bit words of real magnetic core memory and a 2.5
microsecond cycle time -- translates to 32 KB main memory and 0.4 MHz
on a 16 bit machine,and everything was coded in assembler.  The
smallest machine I ever programmed was 1 KB or ROM and 64 bytes of
RAM; that was for a robotic tool that worked inside of a sewer pipe in
1982.  Today I work on little PC's that have half a terabyte of disk,
several gigabytes of RAM, and run at several GHz.  They are networked
together and function as a single system.  In the words of Sun, "The
network *IS* the computer!"  Hardware guys make progress much easier
than software guys.

As we encounter new problems, we find that we need new tools to think
about them.  UML is a pretty good "formal" tool right now, but don't
ever think that is is the end-all.  I still like my informal diagrams
for brainstorming.  The formalizers can convert them into UML for the
system documentation.  They need to, as I will probably be long gone
(I am a consultant) before some maintenence programmer read the docs
when trying to fix some nasty bug.  He needs to be able to understand
the diagrams too, so formalization is necessary for portability
between people who never get to communicate with each other any other
way.

-- 
--------  "And there came a writing to him from Elijah"  [2Ch 21:12]  --------
R. J. Brown III  [EMAIL PROTECTED] http://www.elilabs.com/~rj  voice 847 543-4060
Elijah Laboratories Inc. 457 Signal Lane, Grayslake IL 60030  fax 847 543-4061
-----  M o d e l i n g   t h e   M e t h o d s   o f   t h e   M i n d  ------

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to