--- Steve Fosdick fozzy@pelvoux.demon.co.uk wrote:
On Fri, May 04, 2001 at 01:15:53AM -0700, David Freeman wrote:
Exactly, and a compromise is the worst parts of all solutions. The language I am liking at the moment is java, it just makes sense
with
the OO design etc...
Engineering is about making things that are fit for a purpose and very often this involves compromise. A system that will need to be changed but is unmaintainable is not fit for purpose and neither is one that goes to slowly.
Very true, but things need to be designed not created, which means that things like expansion etc... need to be designed in from the beginning, compromises whould be minimial.
Engineering is full of compromises. Take the example of the clutch in a motor car - this is an ineffcient device (wastes energy when it is slipping) and has poor life (it wears out much faster than the engine does) and yet it is still widely used. It is an acceptable compromise.
Very True, but what method would you suggest instead of a clutch?
I would agree, C was one of those things which changed history, without it we would never have the computer revolution we have now. It is however over 30 yrs old, which means it's not as modern and good as a language which was designed recently.
What of Linux then? Much of the Linux functionality is a clone of Unix which is also the same age. Should we switching to something more modern like MS WIndows?
Windows and modern in the same sentence? Remember alot of theoretical computer science originated in the late sixties early seventies. And its still tought like that, and as such we have stuff being designed based on very old theory, but it works. If it aint broke don't fix it (or for an engineer, if it ain't broke it ain't got enough features)
Actually there is some debate as I understand as to whether we should move away from monolithic kernels towards a microkernel and message passing (which suites OO design).
Personally I think OO is very sensible, but everything needs to be OO, which Java and C++ aren't. Small talk I believe is the closest thing we have to a true OO langauge. If you think about it, the kernel is an onject, which should be talked to by other objects (programs) to tranlsate and talk to other objects (hardware).
The last article I read in which Linus made any comment on working with microkernels he likened it to masturbation.
Hmmm? INterresting way of putting it.
....
BBC basic @ 9 yrs old, horrible language, then Visual Basic - I agree with ESR "about as uch fun as a picnic in a toxic waste dump" Z80 assembler and then C. Since learing C I have learnt Java and it makes more sense to me than procedural programming.
Another interesting viewpoint. When I first encountered BBC BASIC the only comparison I could make myself was against the BASIC on the Sinclair machines (ZX81 and Spectrum) and comments made my friends about other home computers they owned. BBC Basic was considered good because it had long variable names, named procedures and a proper IF/THEN/ELSE, and REPEAT UNTIL.
BBC basic was good for the reasons above, but bad cos it used goto's etc...
Take a look at your older code, you will notice you did very BASIC things in C, I know I have tried these things.
The language I learnt after Sinclair BASIC was Z80 Assembler and it was quite imposible to do BASIC like things in that. Next was BBC BASIC, then 6502 Assembler. At that time I also tinkered with Pascal a little (enough to discover that unextended ISO pascal at the time was not a useful language) and a bit more with BCPL.
look at the way you approached assmebler tho, I bet you though in terms of if thie do that, instead of in assembler commands? how did you design it? I no that when I did z80 assembler I wrote the basic program in a high level basic and translated it.
After that I learned C, programmed in HP Pascal, learnt and used TQL (an SQL like language), then programmed in C, C++, then learnt and used SQL.
lots of languages, impressed.
Of all these SQL is the odd one out and, while I usually don't have a problem with SQL, it does seem to be capable of complexity explosion
i.e. you take a very straightforward query and need to make a small change to it and and up with something very much more complicated, and I often think how much simpler it would be sometimes to write something like:
for every row of table x where condition y for every row of table a where condition b do g,h,i,j end end
rather than a big join with unions too and both lists of columns and conditions repeated in various places (waiting for the unwary maintainer).
Again SQL is a comprimise in some ways, it needs to be simple as the people who orginally used it were not techies, and would telnet into a SQL server and then issue the commands by hand. Remember context.
Thanks
D
Steve.
alug, the Anglian Linux User Group list Send list replies to alug@stu.uea.ac.uk http://rabbit.stu.uea.ac.uk/cgi-bin/listinfo/alug See the website for instructions on digest or unsub!
__________________________________________________ Do You Yahoo!? Yahoo! Auctions - buy the things you want at great prices http://auctions.yahoo.com/