Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Mecki Foerthmann

With other words nothing I really need like manipulating a U2 database.
Does it make cups of tea too?
Well, I don't like cups of tea, so why should I change?

Steve Romanow wrote:

Mecki Foerthmann wrote:

It really boils down to this.
What can you do with Python in a U2 database that I can't do with 
Pick Basic?

Umm, real unit testing ala nosetest

real exception handling,

umm, real inline documentation (the topic of this thread)

Umm, access to thousands of trained developers all over the world.

lets see, point 5, joining this decade with a modern toolkit.

cross platform capability built in (python runs everywhere, everywhere 
I care about at least.)


Great UI toolkits gtk, Qt, Tcl, (for free)

integration with everything under the sun (except U2) jython, ipython, 
.NET,


Anyone think of anything else?


And do I really need to be able to do that to do my job improving and 
maintaining commercial software in an SB+ Unidata environment any 
better?
If you limit youself to what SB+ can do, wow.  I am coding around SB+ 
as much as possible.

Do I get paid more if I write code in Python instead of Basic?
Doesnt matter.  You will have a better chance of being employable with 
your next job by learning python (or anything else).


I doubt it. The hardest bit is not the coding but figuring out the 
business logic, and no language nor fancy tool can do that for you.
It is also hard to graft policies and processes onto a toolkit that 
was never made for it.  SB+ and Unibasic are very dated and are 
showing there age more and more every year.


I bet there are a lot of things I can do with Pick Basic and 
multi-value that you can't (or at least not as easily) do with Python.
Please name some.  I would really like to know.  Basic has nothing to 
do with MV, nor does python.  Unibasic is merely the language chosen 
to manipulate data objects.
What I propose is no different that what Tony G does with  .NET,  or 
what the java bindings for mv are.


For a db to remain relevant, it needs hooks and GOOD, FREE bindings to 
as many technologies as possible.  If IBM wants a license for every 
single thing related to U2, its growth and uptake will remain stunted.


Things could be a lot different in our marketplace.  We should charge 
for services, not connections.  If you give away the connections, we 
have larger installs, which give more opportunity for consulting and 
getting money into peoples pockets.





So in the end would it really benefit me in what I am doing for a 
living every day if I would learn yet another new language?


I am going to be learning a new language every day that I continue to 
work.  I am not going to hang my whole career on Unibasic.

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Results

All,
  Please keep it polite. This is a civilized list.

  - Charles Barouch
  resu...@keyally.com
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Steve Romanow
Mecki,

My apologies for being confrontational.  This is a subject I care deeply about. 
 I have worked in mv shops exclusively since 1994 (not bragging)  and my point 
was primarily that the IT world has surpassed our tools by a large margin.

I have written my last complicated F-correlative and also my last prestore in 
ED.  I don't save the brain cycles to remember their syntax.

I am also tired of apologizing to programmers who come to my company for how 
archaic U2 FEELS.  I know how nice Unidata is, but I feel like the country 
cousin come to town, marveling at the tools available to my team mates working 
next to me with other db's.

No I don't want to join them in MSSQL.  Further from the truth.  I really want 
to see a mv db that I does what I want.

If I say I one more time, I'm going to be sick.

:)

Regards,
Steve
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Brian Leach
Hi

I thought about adding code folding to mvDeveloper, but with Pick/Basic it 
doesn't really work in the same way.

If you have a language that is function or member based, there is a very clear 
boundary for each function, e.g.

private void doSomething{
  code in here
}

which makes it easy to collapse.

The problem with Pick/Basic is that there isn't always a clear boundary.
If your subroutines are all like this, it will work:

GoSub MySubroutine

MySubroutine:
  code here
Return

But an IDE or editor has to be able to cope with bad style/design as well as 
good, so you may have the following:

If SomeTest Then
   GoSub MySubroutine
End Else
   GoSub JumpIntoTheMiddle
End

MySubroutine:
   If SomeTest Then
  Return
   End
   (code)
   (falls down into...)
JumpIntoTheMiddle:
   (some more code)
Return

Here you have overlapping labels, and more than one return. Which means that 
the boundary isn't clear. It can be done, but it makes it more complicated.

Brian
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Steve Romanow

Brian Leach wrote:

Hi

I thought about adding code folding to mvDeveloper, but with Pick/Basic it 
doesn't really work in the same way.

If you have a language that is function or member based, there is a very clear 
boundary for each function, e.g.

  
Could a mild folding (fold the ones there is no dispute about) work?  If 
it worked 90% of the time (but 100% correct) I would use it.  Just leave 
the indeterminate ones un-folded.


I have tinkered some with folding in vim with U2, but I have not worked 
it into my workflow yet.


Good examples Brian.

private void doSomething{
  code in here
}

which makes it easy to collapse.

The problem with Pick/Basic is that there isn't always a clear boundary.
If your subroutines are all like this, it will work:

GoSub MySubroutine

MySubroutine:
  code here
Return

But an IDE or editor has to be able to cope with bad style/design as well as 
good, so you may have the following:

If SomeTest Then
   GoSub MySubroutine
End Else
   GoSub JumpIntoTheMiddle
End

MySubroutine:
   If SomeTest Then
  Return
   End
   (code)
   (falls down into...)
JumpIntoTheMiddle:
   (some more code)
Return

Here you have overlapping labels, and more than one return. Which means that 
the boundary isn't clear. It can be done, but it makes it more complicated.

Brian
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
  


___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Brian Leach
Steve

I think you're possibly out of date in your view of the database - again, not 
wanting to be confrontational but this is an important point that you raise. 

I've also used MV for many years, but for the vast majority of that it has been 
as part of a client/server or similar platform.

If you're using MSSQL, you still end up coding stored procedures in TSQL - 
which is truly archaic. The only difference is that you *have* to use other 
languages on the client side to make up for the lack of inherent functionality.

Over the years I've used UniVerse with VB, ASP, Java, Delphi, PHP, VB.net, C#, 
ASP.Net and I'm now journeying into Silverlight. There is, and for the last 20 
years has been, no good reason to limit the database by your choice of 
language. With the APIs available, you can code in whatever you like.

 
BTW I gave up F correlatives as soon as I moved to UniVerse - that's what I 
descriptors are for .. and I haven't used ED for serious development for almost 
20 years. I use my own autodoc style, and have a parser that uses that to 
assemble documentation. These things are not platform limitations.

On another specific point, I actually prefer the fact that Universe and UniData 
statements support Else and On Error as opposed to exception handling. I've 
seen too many C# projects where exception handling was - pardon the pun - very 
badly handled, bubbling exceptions up but not finally treating them correctly. 
java may be retentive in the extreme, but at least it forces you to handle 
exceptions - just about the only thing in that language I wish would be added 
to C# (even as an option). 

The language syntax hasn't evolved on the U2 platforms, but the functionality 
avilable has, which is the important thing. There are other interesting moves 
with Pick/Basic outside the U2 space - take a look at what is happening with 
QM, for example. They have added some OO features to the language that seem 
genuinely useful. Perhaps we should petition IBM to add something similar, but 
I don't think a rewrite of the language is necessary so long as the hooks are 
in place to call into UniVerse or UniData from the outside world.

No, the reason why so many UniVerse and UniData sites look and feel archaic is 
because they are. People simply haven't taken full advantage of the features, 
and developers keep within their comfort zone. And management sees a working 
system and rarely spends the money. It's not the database that is limited, it's 
the imagination of those who pay for it.

Brian
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Symeon Breen
Here Here Brian - I was about to say something on the same lines...



-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach
Sent: 29 June 2009 10:12
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Program Comments/Documentation/Notes/Revision History

Steve

I think you're possibly out of date in your view of the database - again,
not wanting to be confrontational but this is an important point that you
raise. 

I've also used MV for many years, but for the vast majority of that it has
been as part of a client/server or similar platform.

If you're using MSSQL, you still end up coding stored procedures in TSQL -
which is truly archaic. The only difference is that you *have* to use other
languages on the client side to make up for the lack of inherent
functionality.

Over the years I've used UniVerse with VB, ASP, Java, Delphi, PHP, VB.net,
C#, ASP.Net and I'm now journeying into Silverlight. There is, and for the
last 20 years has been, no good reason to limit the database by your choice
of language. With the APIs available, you can code in whatever you like.

 
BTW I gave up F correlatives as soon as I moved to UniVerse - that's what I
descriptors are for .. and I haven't used ED for serious development for
almost 20 years. I use my own autodoc style, and have a parser that uses
that to assemble documentation. These things are not platform limitations.

On another specific point, I actually prefer the fact that Universe and
UniData statements support Else and On Error as opposed to exception
handling. I've seen too many C# projects where exception handling was -
pardon the pun - very badly handled, bubbling exceptions up but not finally
treating them correctly. java may be retentive in the extreme, but at least
it forces you to handle exceptions - just about the only thing in that
language I wish would be added to C# (even as an option). 

The language syntax hasn't evolved on the U2 platforms, but the
functionality avilable has, which is the important thing. There are other
interesting moves with Pick/Basic outside the U2 space - take a look at what
is happening with QM, for example. They have added some OO features to the
language that seem genuinely useful. Perhaps we should petition IBM to add
something similar, but I don't think a rewrite of the language is necessary
so long as the hooks are in place to call into UniVerse or UniData from the
outside world.

No, the reason why so many UniVerse and UniData sites look and feel archaic
is because they are. People simply haven't taken full advantage of the
features, and developers keep within their comfort zone. And management sees
a working system and rarely spends the money. It's not the database that is
limited, it's the imagination of those who pay for it.

Brian
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread kishor

Hi Brian,
How about adding a folding option that you can manually set the start  
and end points and add your comments for the fold?


I use mvDeveloper for U2 development and textpad for other MV databases.

Kishor


Quoting Brian Leach br...@brianleach.co.uk:


Hi

I thought about adding code folding to mvDeveloper, but with   
Pick/Basic it doesn't really work in the same way.


If you have a language that is function or member based, there is a   
very clear boundary for each function, e.g.


private void doSomething{
  code in here
}

which makes it easy to collapse.

The problem with Pick/Basic is that there isn't always a clear boundary.
If your subroutines are all like this, it will work:

GoSub MySubroutine

MySubroutine:
  code here
Return

But an IDE or editor has to be able to cope with bad style/design as  
 well as good, so you may have the following:


If SomeTest Then
   GoSub MySubroutine
End Else
   GoSub JumpIntoTheMiddle
End

MySubroutine:
   If SomeTest Then
  Return
   End
   (code)
   (falls down into...)
JumpIntoTheMiddle:
   (some more code)
Return

Here you have overlapping labels, and more than one return. Which   
means that the boundary isn't clear. It can be done, but it makes it  
 more complicated.


Brian
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users





___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Dawn Wolthuis
On Sun, Jun 28, 2009 at 4:32 PM, Steve Romanowslestak...@gmail.com wrote:
 Mecki Foerthmann wrote:

 It really boils down to this.
 What can you do with Python in a U2 database that I can't do with Pick
 Basic?

 Umm, real unit testing ala nosetest

I realize this is the U2 list, but I thought I would note that at
least one implementation of mvbasic is enhanced for OO and does have a
unit test framework (like junit). I will state up front that I'm using
Cache' then just refer to it with other terms such as our MV toolset
as this is not intended to be a sales pitch.

 real exception handling,

it has this too

 umm, real inline documentation (the topic of this thread)

Available in the OO classes, so you can put a /// comment, for
example, in front of any mvbasic method and these work with html,
this is not available within mvbasic code itself, however

 Umm, access to thousands of trained developers all over the world.

To a great extent, you have to train those who work on any project in
the specifics of whatever platform you are using anyway. BASIC is one
of the easiest languages to learn, so I'll agree this is an advantage,
but not as big as one might think.

 lets see, point 5, joining this decade with a modern toolkit.

On the flip side of this one, you get developers who do not feel a
need to chase every shiny object (so to speak) that comes along if
they are writing mvbasic. Coding with today's most current tools
pretty much implies you will be behind on some front next year, at
which point you will either stop and revise your code for the new
stuff or lose your most work with shiny objects developers.

 cross platform capability built in (python runs everywhere, everywhere I
 care about at least.)

I have only read a few pieces of python and was not overly impressed
with the whole white space approach, for example, but there are many
who love it, so I'll assume it is a nice language. It is just a
language, however, and I already have plenty of those, with javascript
and mvbasic along with markup like html, xml, css. I can see no good
reason to swap out any of those for python.

 Great UI toolkits gtk, Qt, Tcl, (for free)

We are using an AJAX framework for mvbasic and it works well (although
I'm a bit slow to catch on at times). There definitely are plenty of
toolkits out there and most do not integrate mvbasic, but the fact
that some do is encouraging.

 integration with everything under the sun (except U2) jython, ipython, .NET,

This hasn't been a problem either. So, python is fine, but so is
mvbasic. They can both be used to get the job done, with an exception
that you note that python doesn't work natively with U2, while mvbasic
does. There are many variations and nothing works with everything.

 Anyone think of anything else?


 And do I really need to be able to do that to do my job improving and
 maintaining commercial software in an SB+ Unidata environment any better?

 If you limit youself to what SB+ can do, wow.  I am coding around SB+ as
 much as possible.

I think there are tools out now or there will be that convert SB+ to
something newer too (I think our MV implementation has or will have a
tool for that)

 Do I get paid more if I write code in Python instead of Basic?

 Doesnt matter.  You will have a better chance of being employable with your
 next job by learning python (or anything else).

If a particular employer is looking for specific toolset skills, it is
not hard to teach yourself new tools if you understand your profession
to begin with, enough to get your foot in the door of an interview. I
will grant that at first it will be like picking up a saxophone when
you are a flutist (not trying to get into the flutist vs flautist
discussion) where you can perform the fingerings but surely are not as
ept at the instrument at the outset. This is where my statement that
you end up having to learn any environment these days comes in. It is
not as if a person is likely to know the precise full suite of tools
in the platform of any company when they arrive.

 I doubt it. The hardest bit is not the coding but figuring out the
 business logic, and no language nor fancy tool can do that for you.

 It is also hard to graft policies and processes onto a toolkit that was
 never made for it.  SB+ and Unibasic are very dated and are showing there
 age more and more every year.

The data model for U2 has really made a comeback this century with XML
and JSON  being much more like PICK than RDBMS's data structures. Most
RDBMS's have enhanced their toolset for newer SQL standards so they
can handle nested structures even if inelegantly. So in some ways
there is a movement back to MV, even if not typically in the form of
MV databases (somewhat unfortunately, I think).

 I bet there are a lot of things I can do with Pick Basic and multi-value
 that you can't (or at least not as easily) do with Python.

 Please name some.  I would really like to know.  Basic has nothing to do
 with MV, nor does 

Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Steve Romanow

TY Dawn,

Very cool post.  You laid it out there very nicely.

I hope to avoid the shiny new thing syndrome. I need to look up the book 
reference you made.


WRT to the resurgence of mv-like data structures, no one will care that 
we've been mv when mv wasn't cool.


Thanks guys for engaging me in this exercise.  I'm usually not this 
outspoken.


Steve


___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Brian Leach
  Thanks guys for engaging me in this exercise.  I'm usually 
 not this outspoken.

We *like* outspoken. It's better than leaving things unsaid grin.

Brian

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Steve Romanow

Brian Leach wrote:
  Thanks guys for engaging me in this exercise.  I'm usually 
  

not this outspoken.

Look at the times of my posts.  I should use Google's Beer Goggles.  No 
posts over 5 lines between 2am and 7am.

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Anthony W. Youngman
In message 
1fdb619c0906290746n2d553c0ao867cb5d64327b...@mail.gmail.com, Dawn 
Wolthuis dawnwolth...@gmail.com writes

On Sun, Jun 28, 2009 at 4:32 PM, Steve Romanowslestak...@gmail.com wrote:

Mecki Foerthmann wrote:


It really boils down to this.
What can you do with Python in a U2 database that I can't do with Pick
Basic?


Umm, real unit testing ala nosetest


I realize this is the U2 list, but I thought I would note that at
least one implementation of mvbasic is enhanced for OO and does have a
unit test framework (like junit). I will state up front that I'm using
Cache' then just refer to it with other terms such as our MV toolset
as this is not intended to be a sales pitch.


Many of you will know this, I expect, but Jim Idle (of jBase fame) 
worked for Cache for a while. I meet him every now and then on a 
compiler-compiler mailing list. So I would guess he was rather involved 
in writing a lot of this stuff for Cache :-)


Cheers,
Wol
--
Anthony W. Youngman pi...@thewolery.demon.co.uk
'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the
thimble. 'What *is* he?' said Magrat. 'They're gnomes,' said Nanny. The man
lowered the thimble. 'Pictsies!' Carpe Jugulum, Terry Pratchett 1998
Visit the MaVerick web-site - http://www.maverick-dbms.org Open Source Pick
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Charles Stevenson

Dawn Wolthuis wrote:

Just my two cents.  cheers!  --dawn
  
How come Dawn's two cents are always worth more than my two cents?  
Don't answer that.
All, I've found lurking on this whole thread informative  
thought-provoking.  Thanks.

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-29 Thread Allen E. Elwood
Hey David,

Why not just write a program to flip them back and forth between commented
and decommented?

*#*comment 1
code
code
code
*#*comment 2

Is what it would look like until you re-ran it to restore the comments
or you could write it so that after comment 1 it would have 40 chars of the
original comment, or something to that effect...

Allen

-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org]on Behalf Of David A. Green
Sent: Friday, June 26, 2009 9:50 AM
To: 'U2 Users List'
Subject: [U2] Program Comments/Documentation/Notes/Revision History


I've always commented my program at the beginning, but some programs have
many changes and when we have 300+ lines of comments it gets a little
tedious to deal with embedded in the source code.



I'm think of placing them in an external file and then doing a $INSERT in
the source code in order to tie them together.



How do you handle the long comments?



Thanks,

David A. Green

www.dagconsulting.com

(480) 813-1725



___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-28 Thread Ross Ferris


-Original Message-
From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-
boun...@listserver.u2ug.org] On Behalf Of Tony G
Sent: Sunday, 28 June 2009 6:26 AM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Program Comments/Documentation/Notes/Revision History


But then there is the next step.  There is a major difference
between folding code exclusively based on syntactical stuctures
and folding based on logical/functional components.  In BASIC we
can have several labelled, internal subroutines, and UV
Functions, that are a part of a functional set.  But, we can't
put those into a block to get them out of our way while we're
working on other sections.

At a higher level though these subroutines would (should) probably be
called in sequence from (yet another) internal subroutine corresponding
to the higher level functional unit ... 'least that is the way I'd
tackle it (not strictly true, as I tend to use our snippet technology
inside Visage, so by default I already have code compressed to a
single line ... double click on a snippet or external subroutine name 
you can edit/examine that. Not the same I know, but it works for me
:-)

 Err, except for our (n)ever evolving Pick BASIC.

As you pointed out, the functionality you are talking about becomes a
function/feature of the IDE or editing tool you are using, rather than
Pick Basic itself -- when I call up Javascript in Notepad I get to
see it all, but the same code viewed from another can be collapsed
nicely. 


Ross Ferris
Stamina Software
Visage  Better by Design!
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-28 Thread Steve Romanow
Talking about never evolving pick basic.  Can you imagine the posibilities if 
we just abandoned pick basic and used something like python as the data 
modeling language.  

It would be unstoppable.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-28 Thread Mecki Foerthmann

It really boils down to this.
What can you do with Python in a U2 database that I can't do with Pick 
Basic?
And do I really need to be able to do that to do my job improving and 
maintaining commercial software in an SB+ Unidata environment any better?

Do I get paid more if I write code in Python instead of Basic?
I doubt it. The hardest bit is not the coding but figuring out the 
business logic, and no language nor fancy tool can do that for you.
I bet there are a lot of things I can do with Pick Basic and multi-value 
that you can't (or at least not as easily) do with Python.
So in the end would it really benefit me in what I am doing for a living 
every day if I would learn yet another new language?


Steve Romanow wrote:
Talking about never evolving pick basic.  Can you imagine the posibilities if we just abandoned pick basic and used something like python as the data modeling language.  


It would be unstoppable.
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

  

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-28 Thread Steve Romanow

Mecki Foerthmann wrote:

It really boils down to this.
What can you do with Python in a U2 database that I can't do with Pick 
Basic?

Umm, real unit testing ala nosetest

real exception handling,

umm, real inline documentation (the topic of this thread)

Umm, access to thousands of trained developers all over the world.

lets see, point 5, joining this decade with a modern toolkit.

cross platform capability built in (python runs everywhere, everywhere I 
care about at least.)


Great UI toolkits gtk, Qt, Tcl, (for free)

integration with everything under the sun (except U2) jython, ipython, 
.NET,


Anyone think of anything else?


And do I really need to be able to do that to do my job improving and 
maintaining commercial software in an SB+ Unidata environment any better?
If you limit youself to what SB+ can do, wow.  I am coding around SB+ as 
much as possible.

Do I get paid more if I write code in Python instead of Basic?
Doesnt matter.  You will have a better chance of being employable with 
your next job by learning python (or anything else).


I doubt it. The hardest bit is not the coding but figuring out the 
business logic, and no language nor fancy tool can do that for you.
It is also hard to graft policies and processes onto a toolkit that was 
never made for it.  SB+ and Unibasic are very dated and are showing 
there age more and more every year.


I bet there are a lot of things I can do with Pick Basic and 
multi-value that you can't (or at least not as easily) do with Python.
Please name some.  I would really like to know.  Basic has nothing to do 
with MV, nor does python.  Unibasic is merely the language chosen to 
manipulate data objects. 

What I propose is no different that what Tony G does with  .NET,  or 
what the java bindings for mv are.


For a db to remain relevant, it needs hooks and GOOD, FREE bindings to 
as many technologies as possible.  If IBM wants a license for every 
single thing related to U2, its growth and uptake will remain stunted.


Things could be a lot different in our marketplace.  We should charge 
for services, not connections.  If you give away the connections, we 
have larger installs, which give more opportunity for consulting and 
getting money into peoples pockets.





So in the end would it really benefit me in what I am doing for a 
living every day if I would learn yet another new language?


I am going to be learning a new language every day that I continue to 
work.  I am not going to hang my whole career on Unibasic.

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-27 Thread Boydell, Stuart
By the way, if you use Edit Plus it can fold code based on indent. A little 
more primative than VS but can be useful anyway.



From: u2-users-boun...@listserver.u2ug.org on behalf of Tony G
Sent: Sat 27/06/2009 08:26
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Program Comments/Documentation/Notes/Revision History



 From: David A. Green
 I've always commented my program at the beginning, but
 some programs have many changes and when we have 300+
 lines of comments it gets a little tedious to deal
 with embedded in the source code.

 I'm think of placing them in an external file and then
 doing a $INSERT in the source code in order to tie
 them together.

 How do you handle the long comments?


I've often thought of this as being a problem with both the
language and the editors that we commonly use.

Typical MV editors show all code.  There is no provision for
folding content or outlining.  For example, in C# we can do
this:

#region Initialization
// lots of comment lines here
// variable definitions, code, etc
#endregion

In Visual Studio that collapses to a single line:
+Initialization
We can click the plus sign to open it up and see the entire
section.
Other editors support this feature for different languages.

Code can be nested:
#region Main Section
#region Define Variables
// definitions here
#endregion vars
#region Major Function 1
// code here
#endregion functions
#endregion main

Again, that collapses to something like this:
#region Main Section
+  Define Variables
+  Major Function 1
+  Major Function 2
#endregion main

Or collapses entirely to:
+  Main Section

But with MV BASIC the language doesn't support this unless we use
a pre-processor, and even then we don't have editors that
recognize the constructs.  The best we can do is to use something
like this:
*!+ This starts a region
*   code here
*!- This ends the region
But then we need an editor to support it.  And that brings me
to...

a minor rant
I was writing a new MV Editor to support this and many other
features highly desirable to MV developers.  But as with many
projects where people would inevitably demand a free solution I
decided to put this project on the shelf indefinitely.  It's just
not worth it to try to improve our lot here.  Since people are so
fond of open source freeware I'll suggest that the source code is
available for people to enhance to recognize code as defined
above.  That's the spirit of open source - we're supposed to give
as much as take.  If no one wants to enhance one of the fine FOSS
utilities out there, then it seems we'll simply never have the
functionality.  People all too often confuse free=liberty with
free=beer.  They want the software to be free-of-charge but we
rarely see people publishing MV-specific enhancements to open
source code as a contribution to the community.  It's this
condition that causes us to continually lose sites to the
mainstream world as people wonder why our development practices
are so primitive.  C'est la vie.
/

Tony Gravagno
Nebula Research and Development
TG@ remove.pleaseNebula-RnD.com

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users



 
**
This email message and any files transmitted with it are confidential and 
intended solely for the use of addressed recipient(s). If you have received 
this communication in error, please reply to this e-mail to notify the sender 
of its incorrect delivery and then delete it and your reply.  It is your 
responsibility to check this email and any attachments for viruses and defects 
before opening or sending them on. Spotless collects information about you to 
provide and market our services. For information about use, disclosure and 
access, see our privacy policy at http://www.spotless.com.au 
Please consider our environment before printing this email. 
** 

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-27 Thread Brian Leach
David

I have an auto-doc style of comment that defines what the program does, and
version stamps that are compiled into the object code that include a short
description alongside other information, similar to the Windows version
resource.

But I would suggest that modification logs really belong outside the source
code and should be in your source code control system (e.g. subversion).
That way, you can match the modification log with fetching the actual
versions of the source code as it was at that point, and use the tools
provided (e.g. TortoiseSVN) to do visual diffs across versions if you need
to see what changed. 

Regards

Brian

 
 -Original Message-
 From: u2-users-boun...@listserver.u2ug.org
 [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of 
 David A. Green
 Sent: 26 June 2009 17:50
 To: 'U2 Users List'
 Subject: [U2] Program Comments/Documentation/Notes/Revision History
 
 I've always commented my program at the beginning, but some 
 programs have many changes and when we have 300+ lines of 
 comments it gets a little tedious to deal with embedded in 
 the source code.
 
  
 
 I'm think of placing them in an external file and then doing 
 a $INSERT in the source code in order to tie them together.
 
  
 
 How do you handle the long comments?
 
  
 
 Thanks,
 
 David A. Green
 
 www.dagconsulting.com
 
 (480) 813-1725
 
  
 
 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users
 
 ___
 U2-Users mailing list
 U2-Users@listserver.u2ug.org
 http://listserver.u2ug.org/mailman/listinfo/u2-users
 

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-27 Thread Steve Romanow
Another option is to have an accompanying wiki/vcs setup where a lot of 
metadata about why and what can be stored outside of the code.


With version control, you fight the need to comment out old code and 
leave it in.  And the wiki can be as verbose as you want.



___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-27 Thread Tony G
Ross - Your suggestion for folding on syntax is fine but it
doesn't go far enough.  The mainstream development world
recognized what you're saying long ago, did it, and then improved
upon it again.  We're sort of two generations behind in this
discussion.

Yes, Visual Studio folds C++, C#, and VB.NET on language
structures.  NetBeans, Eclipse, and other IDEs fold Java, PHP,
and other languages like that too.  They all fold comments as
described in the OP.

But then there is the next step.  There is a major difference
between folding code exclusively based on syntactical stuctures
and folding based on logical/functional components.  In BASIC we
can have several labelled, internal subroutines, and UV
Functions, that are a part of a functional set.  But, we can't
put those into a block to get them out of our way while we're
working on other sections.

The way I've done this is by INCLUDING code and then using a
utility that imports and exports all included code when I need to
see it all in one block or for editing.  The mvToolBox editing
software from DM Consulting is the only product I know that does
this sort of visual hydration and dehydration of code stored in
different modules.

Your faith in programmers following standards is amusing.  There
are no standards to be followed here.  This is just a function
of the development environment, like comments.  Use it or don't
as it's convenient.  Other languages and IDEs support folding and
developers use this stuff every day - it's unnatural Not to have
it anymore.  Err, except for our (n)ever evolving Pick BASIC.

Tony Gravagno
Nebula Research and Development
TG@ remove.pleaseNebula-RnD.com
Visit PickWiki.com!  Contribute!


 From:Ross Ferris 
 Whilst I appreciate the structural tags I'd suggest 
 that they are not needed. It doesn't take too much 
 thought to recognise the self-bounding regions
 
 Label: -- return
 For -- next
 If -- else -- end
 Loop -- repeat
 Begin case -- case -- end case
 
 There are some funny possibilities with read/locked|then|else
 
 Whilst I appreciate the fine grained control your 
 suggestion provides, my faith in programmers generally 
 following this standard is low, and providing people 
 haven't employed a single, linear top-down approach to 
 their programming, I think most (all) of the 
 collapsible regions could be derived directly from the 
 code with minimal effort

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


[U2] Program Comments/Documentation/Notes/Revision History

2009-06-26 Thread David A. Green
I've always commented my program at the beginning, but some programs have
many changes and when we have 300+ lines of comments it gets a little
tedious to deal with embedded in the source code.

 

I'm think of placing them in an external file and then doing a $INSERT in
the source code in order to tie them together.

 

How do you handle the long comments?

 

Thanks,

David A. Green

www.dagconsulting.com

(480) 813-1725

 

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-26 Thread Steve Romanow
That might cause you problems if you use the u2 debugger. 



___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-26 Thread Symeon Breen
The notes for the changes are in the source control repo so the comments in
the code are more to do with what it does rather than how it changed .


-Original Message-
From: u2-users-boun...@listserver.u2ug.org
[mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David A. Green
Sent: 26 June 2009 17:50
To: 'U2 Users List'
Subject: [U2] Program Comments/Documentation/Notes/Revision History

I've always commented my program at the beginning, but some programs have
many changes and when we have 300+ lines of comments it gets a little
tedious to deal with embedded in the source code.

 

I'm think of placing them in an external file and then doing a $INSERT in
the source code in order to tie them together.

 

How do you handle the long comments?

 

Thanks,

David A. Green

www.dagconsulting.com

(480) 813-1725

 

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-26 Thread David Jordan
Think about using xml for documentation in the source code, then some external 
tools can be used for documentation.

*subRoutine to 
*   modAdded to 
* mod Date .
* mod Author 

Regards

David Jordan


___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-26 Thread Tony G
 From: David A. Green
 I've always commented my program at the beginning, but 
 some programs have many changes and when we have 300+ 
 lines of comments it gets a little tedious to deal 
 with embedded in the source code.
 
 I'm think of placing them in an external file and then 
 doing a $INSERT in the source code in order to tie 
 them together.
 
 How do you handle the long comments?


I've often thought of this as being a problem with both the
language and the editors that we commonly use.

Typical MV editors show all code.  There is no provision for
folding content or outlining.  For example, in C# we can do
this:

#region Initialization
// lots of comment lines here
// variable definitions, code, etc
#endregion

In Visual Studio that collapses to a single line:
+Initialization
We can click the plus sign to open it up and see the entire
section.
Other editors support this feature for different languages.

Code can be nested:
#region Main Section
#region Define Variables
// definitions here
#endregion vars
#region Major Function 1
// code here
#endregion functions
#endregion main

Again, that collapses to something like this:
#region Main Section
+  Define Variables
+  Major Function 1
+  Major Function 2
#endregion main

Or collapses entirely to:
+  Main Section

But with MV BASIC the language doesn't support this unless we use
a pre-processor, and even then we don't have editors that
recognize the constructs.  The best we can do is to use something
like this:
*!+ This starts a region
*   code here
*!- This ends the region
But then we need an editor to support it.  And that brings me
to...

a minor rant
I was writing a new MV Editor to support this and many other
features highly desirable to MV developers.  But as with many
projects where people would inevitably demand a free solution I
decided to put this project on the shelf indefinitely.  It's just
not worth it to try to improve our lot here.  Since people are so
fond of open source freeware I'll suggest that the source code is
available for people to enhance to recognize code as defined
above.  That's the spirit of open source - we're supposed to give
as much as take.  If no one wants to enhance one of the fine FOSS
utilities out there, then it seems we'll simply never have the
functionality.  People all too often confuse free=liberty with
free=beer.  They want the software to be free-of-charge but we
rarely see people publishing MV-specific enhancements to open
source code as a contribution to the community.  It's this
condition that causes us to continually lose sites to the
mainstream world as people wonder why our development practices
are so primitive.  C'est la vie.
/

Tony Gravagno
Nebula Research and Development
TG@ remove.pleaseNebula-RnD.com

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users


Re: [U2] Program Comments/Documentation/Notes/Revision History

2009-06-26 Thread Ross Ferris
Tony,

Whilst I appreciate the structural tags I'd suggest that they are not
needed. It doesn't take too much thought to recognise the self-bounding
regions

Label: -- return
For -- next
If -- else -- end
Loop -- repeat
Begin case -- case -- end case

There are some funny possibilities with read/locked|then|else

Whilst I appreciate the fine grained control your suggestion provides,
my faith in programmers generally following this standard is low, and
providing people haven't employed a single, linear top-down approach to
their programming, I think most (all) of the collapsible regions could
be derived directly from the code with minimal effort

Ross Ferris
Stamina Software
Visage  Better by Design!


-Original Message-
From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-
boun...@listserver.u2ug.org] On Behalf Of Tony G
Sent: Saturday, 27 June 2009 8:27 AM
To: u2-users@listserver.u2ug.org
Subject: Re: [U2] Program Comments/Documentation/Notes/Revision History

 From: David A. Green
 I've always commented my program at the beginning, but
 some programs have many changes and when we have 300+
 lines of comments it gets a little tedious to deal
 with embedded in the source code.

 I'm think of placing them in an external file and then
 doing a $INSERT in the source code in order to tie
 them together.

 How do you handle the long comments?


I've often thought of this as being a problem with both the
language and the editors that we commonly use.

Typical MV editors show all code.  There is no provision for
folding content or outlining.  For example, in C# we can do
this:

#region Initialization
// lots of comment lines here
// variable definitions, code, etc
#endregion

In Visual Studio that collapses to a single line:
+Initialization
We can click the plus sign to open it up and see the entire
section.
Other editors support this feature for different languages.

Code can be nested:
#region Main Section
#region Define Variables
// definitions here
#endregion vars
#region Major Function 1
// code here
#endregion functions
#endregion main

Again, that collapses to something like this:
#region Main Section
+  Define Variables
+  Major Function 1
+  Major Function 2
#endregion main

Or collapses entirely to:
+  Main Section

But with MV BASIC the language doesn't support this unless we use
a pre-processor, and even then we don't have editors that
recognize the constructs.  The best we can do is to use something
like this:
*!+ This starts a region
*   code here
*!- This ends the region
But then we need an editor to support it.  And that brings me
to...

a minor rant
I was writing a new MV Editor to support this and many other
features highly desirable to MV developers.  But as with many
projects where people would inevitably demand a free solution I
decided to put this project on the shelf indefinitely.  It's just
not worth it to try to improve our lot here.  Since people are so
fond of open source freeware I'll suggest that the source code is
available for people to enhance to recognize code as defined
above.  That's the spirit of open source - we're supposed to give
as much as take.  If no one wants to enhance one of the fine FOSS
utilities out there, then it seems we'll simply never have the
functionality.  People all too often confuse free=liberty with
free=beer.  They want the software to be free-of-charge but we
rarely see people publishing MV-specific enhancements to open
source code as a contribution to the community.  It's this
condition that causes us to continually lose sites to the
mainstream world as people wonder why our development practices
are so primitive.  C'est la vie.
/

Tony Gravagno
Nebula Research and Development
TG@ remove.pleaseNebula-RnD.com

___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users
___
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users