MartyConnelly
martyconnelly at shaw.ca
Wed Mar 2 01:57:33 CST 2005
Yes you but you use those simplistic languages ;). The first language I learned in the 70's was APL, which has had different keyboard symbology over the years. I once used a series of APL programs to produce justification for an oil company to obtain a billion dollar loan It had to be written inside a month, the mathematical statistical analysis was intense and I also had to produce a couple of hundred pages of graphs. It would have taken months to write in C++ with classes. It is always horses for courses. That's what the OOP's guys forget and I think what Mansfield was trying to say. However APL moved on into a better OOP's language than C++ at least for parallel processing. Try doing parallel algorithm design in C++. The J programming language, developed in the early 90's by Ken Iverson and Roger Hui, is a synthesis of APL (also by Iverson) and the FP and FL functional programming languages created by John Backus (of FORTRAN, ALGOL, and BNF fame). To avoid the problems faced by the special character set of APL, J requires only the basic ASCII character set, resorting to the use of dot and colon characters to extend the meaning of the basic characters available.Being an array programming language, J is very terse and powerful, and is often found to be useful for mathematical and statistical programming, especially when performing operations on matrices. Like the original FP/FL languages, J supports function-level programming (also known as higher-order functional programming), via its tacit programming features (note that function-level programming is not the same as functional programming). Unlike most languages that support object-oriented programming, J's flexible hierarchichal namespace scheme (where every name exists in a particular locale) can be effectively used as a framework for both class-based and instance-based object oriented programming. J is an non-von Neumann programming language that nevertheless allows the programmer to use von Neumann programming style when desired. J is an extremely powerful language, and its programs can be very terse but even more cryptic. Here is a one-liner implementation of the quicksort algorithm: qsort =: ]`(($:@:((}.<:{.)#}.)),{.,($:@:((}.>{.)#}.)))@.(*@#) example APL form J form Matrix product x+.«y x +/.* y or Here is an APL function that will determin the determinant of a matrix. It was developed for APL\360 and has ran on all versions since. {It uses the hard gotos that refer to line numbers, but they were in style on those days.} {del} Z{<-}DET M;N;N [1] {->}3{times}{iota}2<N{<-}1{take}{shape}M [2] {->}0,Z{<-}({times}/ 1 1 {transpose}M)-{times}/ 1 1 {transpose}{reverse}M [3] J{<-}1+Z{<-}0 [4] Z{<-}Z+M[1;J]{times}({neg}1*J+1){times} DET M[1{drop}{iota}N;(J{/=}{iota}N)/{iota}N] [5] {->}4{times}{iota}N{>=}J{<-}J+1 {del} Here is an old article on J http://www.snakeisland.com/aplhiper.pdf John W. Colby wrote: >Well I read the first article and I'm not impressed. A lot of vitriol and >absolutely nothing advanced as an alternative. > >There are just a ton of things that classes make trivial that are a royal >PITA without them. I am a "single programmer" and I use classes all the >time. I use them because there are many places where I need to instantiate >more than a single instance of an object, the class holds all the data >structures and the code, it is just there, I wrote it, I understand it, I >just use it. Now granted because this is Access, I am not using the >inheritance thing (though I wish I could). There is absolutely NOTHING >difficult about writing classes. Trivial to understand, trivial to write, >trivial to use. > >As for cutting and pasting code... OH MY GOD. I think that pretty much says >it all for me. Anyone who is going to cut and paste any non-trivial code >would NEVER earn a position in my organization. > >John W. Colby >www.ColbyConsulting.com > >Contribute your unused CPU cycles to a good cause: >http://folding.stanford.edu/ > >-----Original Message----- >From: dba-tech-bounces at databaseadvisors.com >[mailto:dba-tech-bounces at databaseadvisors.com] On Behalf Of MartyConnelly >Sent: Tuesday, March 01, 2005 7:26 PM >To: Discussion of Hardware and Software issues >Subject: Re: [dba-Tech] C++ to vb.net conversion > > > Well I am an unabashed proceduralist and would much prefer to write >Fast Fourier Transforms in APL than having >to do it with an OOP language. I have been on teams using UML to churn >out PL1 or Cobol code. I don't mind patterns, however on an OOP team, I >always feel like I am in a trench and the shelling is getting >heavier and everyone else is huddled down >debating whether to load their rifles with .303 or 7.62 Ammo. > > Grady Brooch the father of OOP who worked at Rational Software before >it was sold to IBM >two years ago ,well now he is is dropping work on UML at IBM and working >on patterns for something called >aspect oriented development. This would be something like as an example, >the security aspect of system to system connectivity, >assuming similar underlying patterns.. > >Some thoughts on Ooops, procedural and generic programming problems > >OOP Is Much Better in Theory Than in Practice >Think object-orient programming (OOP) is the only way to go? You poor, >misguided soul. Richard Mansfield contends that OOP is just the latest in a >history of ideas that sound good in theory but are clumsy in practice. > >by Richard Mansfield >http://www.devx.com/DevX/Article/26776 > >And all the hate mail in response >http://forums.devx.com/showthread.php?s=&threadid=136762 > >Further thoughts from Mansfield http://www.geocities.com/tablizer/oopbad.htm > >Richard Grimes on VB.NET and VB6 columnist at Dr Dobb's Journals What >Microsoft missed. http://www.ddj.com/documents/s=9211/ddj050201dnn/ > >Shamil Salakhetdinov wrote: > > > >>Marty, >> >>I meant mainly UML used for OOP real-life projects design & development >>not just UML for database model diagramming - the latter is rather >>trivial these days, the first is still state-of-the-art. But the first >>was investigated a lot during last ten+ years and there are very useful >>results IMO. I did recently get through "Applying UML and Patterns" by >>Craig Larman - it shows that UML is a practical not an academic tool >>and that when combined with Software Design Patterns then it becomes >>even more powerful and more practical tool... >> >>Shamil >> >> > > > > -- Marty Connelly Victoria, B.C. Canada