Marcel K Haesok <Hae...@earthlink.net> writes: [About 10 thank-you notes]
Marcel,
There's nothing wrong with thanking people for providing you with useful information, but do it via _private email_. Some people pay for their bandwidth by-the-minute (not me), and having to download many articles you have before only quoted with 2 lines isn't cool, whether you're paying by-the-minute or not.
On Wed, 17 Mar 1999 20:49:34 GMT, "Gaurav Sareen" <sar...@savera.com> wrote:
>VB is the MS answer to Java. Java has C syntax which makes it look more >"serious" otherwise on the windows platform I would prefer VB anyday to Java >for anything I am doing.
While I agree that the C style syntax is obscure (intentionally so, IMHO, which makes it all the worse), the VB syntax, beyond the most basic level, is just as bad or worse. The language was built up over time by accretion, and there is no overall structure to it; While it is much easier to use for simple tasks, you can easily get bogged down after only a short time. Also, its support for OO is very poor indeed, partly because of Microsoft's insistence on redefining the term to mean COM. The lack of polymorphism (as opposed to properties, which aren't the same thing) and inheritance is keenly felt. 'Component-oriented' would be a better way of describing VB.
>( Of course C++ is preferred over anything). >VB has a more powerful faster "Virtual Machine"(The Sun name for Run-Time Library)
Actually, the term has been canonical in the industry for decades, and goes back to (at the latest) the UCSD Pascal p-machine in 1972. Strictly speaking, the JVM works quite differently from the RTL. VB runs as a mix of compiled x86 code and interpreted vb-code; the RTL is the interpreter for the vb-code. Java, OTOH, compiles entirely into a bytecode which is interpreted by the virtual machine. This is a tradeoff favoring portability and simplicity over performance. To get the extra performance they introduced the JIT 'compiler', which is a bytecode-to-machine language translator. After the JIT runs, the Java code runs similarly to the VB RTL, with most of the code running on the CPU and the more complex parts running interpreted.
>and much better support for COM/MTS which is the dominating programming >model on Windows.
This says more about Windows, and the political manuevering of M$ and Sun against each other, than anything else.
>For your questions: >1. Well how important and how powerful marketing is seen by the popularity >of Java. > Comparing Lisp to VB is being unfair to both the languages.
I agree. Comparing LISP to another language usually is unfair to the other language.
Seriously, if it weren't for the fact that you almost have to use one of those two languages to get a job these days, I'd tell you to stay away from either Java or VB. Using a language that is defined by a single company leaves you at that company's mercy, and in the end, there a lot of languages out there that are as good or better than either one. Finding a job using them, however, is another matter; the demand for VB, Java, C++ et al is growing so fast that there really isn't much choice in the matter, you'lll end up using at least one of them somewhere along the line.
-- Schol-R-LEA;2 ELF JAM LCF BiWM MGT GS (http://www.slip.net/~scholr/) First Speaker, Last Eristic Church of Finagle and Holy Bisexuality i with the soul of a hamlet ** Ye shall know the Truth, and doomed always to wallow in farce ** The Truth shall drive you mad.
s...@s.net (Schol-R-LEA) writes: > I agree. Comparing LISP to another language usually is unfair to the > other language.
> Seriously, if it weren't for the fact that you almost have to use one > of those two languages to get a job these days, I'd tell you to stay > away from either Java or VB.
really? people around me are mostly using fortran (some 77 and some 90). i usually use octave (like matlab) and some C. i do get really strange looks when i mention that i am dabbling in lisp. i have never used java nor done any serious visual basic (i did enough vb to clobber the awful `float over text' figure default in the most recent word by slavishly following the recipe laid out in word 97 annoyances but that is it). furthermore, i don't know anyone around me who does either java or visual basic.
also if you're into cobol, you can land a job - especially with the whole y2k hoopla.
-- J o h a n K u l l s t a m [kulls...@ne.mediaone.net] Don't Fear the Penguin!
> [Warning: Contains implicit stray references to another recent thread on > this newsgroup. If this message is confusing and doesn't seem "in context", > just ignore it.]
> "Fernando D. Mato Mira" <matom...@iname.com> writes:
> > Vassil Nikolov wrote:
> > > Prolog imperative? Shouldn't we substitute `declarative' for > > > `imperative' above?
> > Declarative .. and imperative (assert, !)
> I just assumed it was being done by special binding without those pesky > *'s. (let ((imperative 'declarative)) (eval what-was-said-before))
> (See? Sometimes the joke just wouldn't work if you had to put the *'s in.)
If we have a special variable with a starred name, e.g. *FOO*, doesn't this actually mean `FOO' in boldface, i.e. the asterisks are not conceptually part of the name? I am not sure if I can formulate it in the Right Way. But if I wrote Lisp with pencil and paper (which I find better than a keyboard, ceteris paribus which they rarely are), I could just press the pencil harder instead of putting the asterisks. (Though I am not sure if I would. See _Through_the_Looking-glass_ about `you would if you could.')
Vassil Nikolov <vniko...@poboxes.com> www.poboxes.com/vnikolov (You may want to cc your posting to me if I _have_ to see it.) LEGEMANVALEMFVTVTVM (Ancient Roman programmers' adage.)
-----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
* cba...@2xtreme.net (Christopher R. Barry) | Marcel, | | There's nothing wrong with thanking people for providing you with | useful information, but do it via _private email_. Some people pay for | their bandwidth by-the-minute (not me), and having to download many | articles you have before only quoted with 2 lines isn't cool, whether | you're paying by-the-minute or not. | | That's one reason, but there are others.
coincidentally, this is why the Net is seen as hostile and some people think it's only for people who argue all the time. whereas the old etiquette rule was "reprimand in private, compliment in public" may work well for social interaction, the exact opposite works on USENET. just like Christopher, I get _real_ tired of seeing people agree with or thank or applaud eachother. the archetypical newbie USENET articles says no more than "me too!", and it's a reason we don't want them: people agree on a _tremendous_ amount of issues. thanks to the absence of thank you notes, every single reader of an article may get _something_ out of it. if they were to publish their thanks, chances are that none of _those_ articles would bring anything new to the world. however, directed at the author, it _is_ very valuable.
Naggum's rule of optimal electronic communication: be harsh and critical in public, and kind and rewarding in private
(I don't know whether I first formulated this or not, but people have given me credit for it so I guess I can, too.)
Erik Naggum <e...@naggum.no> writes: > Naggum's rule of optimal electronic communication: > be harsh and critical in public, and kind and rewarding in private
So a corollary is that we don't have to actually put text in anything we send you (or anyone) we disagree with. We can just send null mail knowing that ill feelings will be the default content? Hmm...
Good observation about the bias in reply style, btw. I've observed this as well. There are many ways to disagree and there is only one way to agree, so the disagreers always seem to outnumber the agreers. (This will be the death of tv news shows. They always find someone to balance any bizarre claim and then have one person argue pro and one person argue con as if the truth were always halfway between any arbitrary claim and "the other side". It seems unlikely this can really implement fair, but many news organizations have taken to defining this as being fair by definition...)
Personally, I sometimes willfully defy the posting guidelines on "me, too" because I think the information content is often not what it seems. As someone pointed out to me recently, a "bit" is a "surprise". "me, too" is not worth sending perhaps in the case where it conveys no new bits of information. But it is worth sending if it conveys bits of information.
Besides, if you have an anti-"me, too" rule sometimes you just end up with people finding more verbose and dull ways to say "me, too".
"dbd" <dbd_@_i1.net> writes: > COBOL???? Intel 8080??? What landfill do you work for??? > Sorry Couldn't pass it up....<grin> > -- > Have a good day. > Don
Well, it *was* somewhere in the mid-80's, and the only high-level languages I had available at that particular time were COBOL and Billy-boy's GWBASIC.
* Erik Naggum <e...@naggum.no> | Naggum's rule of optimal electronic communication: | be harsh and critical in public, and kind and rewarding in private
* Kent M Pitman <pit...@world.std.com> | So a corollary is that we don't have to actually put text in anything | we send you (or anyone) we disagree with. We can just send null mail | knowing that ill feelings will be the default content? Hmm...
heh. a more important corollary is that good articles have much fewer followups than bad articles, and zero followups may mean it's very good. (even those devoid of contents get followups criticizing them for their lack of contents.) this is not how people ordinarily view communication and the way people get their feedback, so it's worth pointing out.
| Besides, if you have an anti-"me, too" rule sometimes you just end up | with people finding more verbose and dull ways to say "me, too".
yeah, I agree. however abstractly you define the rule, someone will treat it like those silly games where the players aren't allowed to say certain words. </example> :)
Jack Strangio wrote: > Well, it *was* somewhere in the mid-80's, and the only high-level languages > I had available at that particular time were COBOL and Billy-boy's GWBASIC.
rob...@brightid.se (Robert Claeson) writes: > Jack Strangio wrote:
> > Well, it *was* somewhere in the mid-80's, and the only high-level languages > > I had available at that particular time were COBOL and Billy-boy's GWBASIC.
> > *Obviously* I had to use COBOL.
> What about Assembler?
I'm just too LAZY.
(That's not quite true. I quite enjoy working with assembly language, but I wanted something completed fairly quickly. )
Actually just did a quick grep around the system and I'll be damned, look what I found, tucked away in a set of subdirectories archived from a PC some years ago:
0010* ****** This program is written in NEVADA COBOL ******. 0020 0030 IDENTIFICATION DIVISION. 0040 0050 PROGRAM-ID. 0060************************************** 0070 JACKS-DISASSEMBLER. 0080* ** Version Number 1.0 0090************************************** 0100 0110* AUTHOR. Jack Strangio. 0120 0130* INSTALLATION. Giacomo Software, P.O. Box 584, Hamilton, 3300 0140 0150 DATE-WRITTEN. 29 MARCH 1984. 0160 0170***************************************************************** 0180* THIS PROGRAM PREPARES * 0190* AND DISASSEMBLES INTERMEDIATE PSEUDO-CODE FILES * 0200* INTO 8080 ASSEMBLY LANGUAGE. * 0210* * 0220***************************************************************** 0230 0240 ENVIRONMENT DIVISION. 0250 0260 CONFIGURATION SECTION. 0270 SOURCE-COMPUTER. 0280 CPZ-48000 SBC. 0290 OBJECT-COMPUTER. 0300 CPZ-48000 SBC. 0310 0320 0330 INPUT-OUTPUT SECTION. 0340 0350 FILE-CONTROL. 0360 SELECT MACHINE-CODE-FILE ASSIGN TO DISK 0370 ACCESS MODE IS SEQUENTIAL. 0380 0390 SELECT PSEUDO-CODE-FILE ASSIGN TO DISK 0400 ACCESS MODE IS SEQUENTIAL. 0410 0420 SELECT OPCODE-FILE ASSIGN TO DISK
Frightening isn't it? 1984. That's almost exactly 15 years ago, in a week or so. And by the configuration section, still in 8-bit days, before my IBM-XT. And therefore I wrote in COBOL to escape not Billy-boy's GWBASIC but his MBASIC which was almost as bad.
Hi, I was reading the following passage in the book: 1. Program to an interface, not to an implementation. Don't declare variables to be instances of particular concrete classes. Instead, commit only to an interface defined by an abstract class. You will find this to be a common theme of the design patterns in this book.
And I said to myself, holy Moses, what a radical statement! But then I realized that as ideal and radical as it may sound, if I followed that advice, the program will be totally flexible and reusable. What I would love to hear from experienced developers are two things:
1. How 'practical' is this advice? Is this sort of radical approach 'actually' practiced? 2. If 'interface' is preferrable to 'inheritance' in oo design, wouldn't it follow that Java is much superior to C++? In the sense that using interface is so much easier in Java than in C++?
Hi, I am a relative rookie, but after perusing the language ngs, I came to the following conlusion: <<<The "near/medium term future of computing" involves several keywords and they are-- among others---'networking', 'internet', 'OO', 'portability', 'AI' and 'marketting power'>>>; To my mind, JAVA scores highest in that six criteria, thus promises to be the dominant power. Smalltalk and Lisp score highest in OO and AI perhaps, but not much in the other four areas. Tell me where my argument is flawed. Thanks Marcel
Marcel K Haesok wrote: > I am a relative rookie, but after perusing the language ngs, I came to > the following conlusion: > <<<The "near/medium term future of computing" involves several keywords > and they are-- among others---'networking', 'internet', 'OO', > 'portability', 'AI' and 'marketting power'>>>; > To my mind, JAVA scores highest in that six criteria, thus promises to > be the dominant power. > Smalltalk and Lisp score highest in OO and AI perhaps, but not much in > the other four areas. Tell me where my argument is flawed. Thanks
You forgot at least: `multimedia', `3D',`IT workforce shortage', `adaptability'
Java does not score very high in the first two yet (it probably will). The third means increasing programming in 4GL (in a more general sense, not just for DB apps) languages and AI (developing 5GL tools), and less 3GL-level programming. I can imagine Lisp losing ground everywhere (don't forget the ML/Haskell/etc. generation).
Fortunately for Lisp, it easily extends to 4GL anf 5GL. Eventually, when Java falls out of favor, Smalltalk should too (if it has not before). Unless they have fixed the `adaptability' thing, which would come in the form of a complex macro system `a la Dylan', or an easy one based on an alternative simpler syntax. Whichever of the two, they just keep getting closer.
For 3GL, Lisp is the `computer language space attractor'. Hm. I said `losing ground' ?
PS: Why isn't there a `popular' purely functional language with nice parenthesis and macros?
-- Fernando D. Mato Mira Real-Time SW Eng & Networking Advanced Systems Engineering Division CSEM Jaquet-Droz 1 email: matomira AT acm DOT org CH-2007 Neuchatel tel: +41 (32) 720-5157 Switzerland FAX: +41 (32) 720-5720
Marcel K Haesok wrote: > I was reading the following passage in the book: > 1. Program to an interface, not to an implementation. > Don't declare variables to be instances of particular concrete > classes. Instead, commit only to an interface defined by an abstract > class. You will find this to be a common theme of the design > patterns in this book.
> And I said to myself, holy Moses, what a radical statement! > But then I realized that as ideal and radical as it may sound, if I > followed that advice, the program will be totally flexible and reusable. > What I would love to hear from experienced developers are two > things:
> 1. How 'practical' is this advice? Is this sort of radical approach > 'actually' practiced? > 2. If 'interface' is preferrable to 'inheritance' in oo design, > wouldn't it follow that Java is much superior to C++? In the sense that > using interface is so much easier in Java than in C++?
Well, I've been doing that in C++ for a couple of years now. The STL source was a real eye opener (did not read that book until last year). Basically it involves setting up a convention and discipline and writing a lot of typedefs in your classes. Using templates too. So this is something more general than inheritance, although inheritance can be used, too. It also means your redundant type declarations for variables and so on typical of C(++) [thank you for the lack of type inference] become longer too, so here it goes more time wasted to typing (but not _re_typing fortunately).
Isn't there something missing in Lisp here? I mean, I can't use some MOP wizardry inside a DECLARE, right? Oh, I see. I have to define my own MY-DEFINE-CLASS macro..
-- Fernando D. Mato Mira Real-Time SW Eng & Networking Advanced Systems Engineering Division CSEM Jaquet-Droz 1 email: matomira AT acm DOT org CH-2007 Neuchatel tel: +41 (32) 720-5157 Switzerland FAX: +41 (32) 720-5720
In article <36FBC414.6D506...@earthlink.net>, Marcel K Haesok <Hae...@earthlink.net> wrote:
> Hi, > I am a relative rookie, but after perusing the language ngs, I came to > the following conlusion: > <<<The "near/medium term future of computing" involves several keywords > and they are-- among others---'networking', 'internet', 'OO', > 'portability', 'AI' and 'marketting power'>>>; > To my mind, JAVA scores highest in that six criteria, thus promises to > be the dominant power. > Smalltalk and Lisp score highest in OO and AI perhaps, but not much in > the other four areas. Tell me where my argument is flawed. Thanks
(A) I see no argument here, just conclusions. (B) I disagree with them. (Don't ask me why, this is just FYI.) This makes it too hard for me to try to recreate the argument to look for flaws.
By the way, a keyword is not a criterion.
Vassil Nikolov <vniko...@poboxes.com> www.poboxes.com/vnikolov (You may want to cc your posting to me if I _have_ to see it.) LEGEMANVALEMFVTVTVM (Ancient Roman programmers' adage.)
-----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
I would say that design by contract (the contract being the interface) is _the_ most effective OO design method. Encapsulation is one of the great benefits of an OO language such as Java and should be practiced all the time. That said, I believe many programmers are still too procedure-oriented such that encapsulation often isn't used.
On point 2, pure virtual functions in C++ are basically abstract classes. I think you'll find that the design patterns outlined are applicable to most OO languages - however, interfaces and abstract classes may be named differently.
BTW, I think what GoF are trying to say is program to the most general class, not the most specific. Your programs will be be far more flexible the more general you program to... again, there is the draw-back of how general you get.
> Hi, > I was reading the following passage in the book: > 1. Program to an interface, not to an implementation. > Don't declare variables to be instances of particular concrete > classes. Instead, commit only to an interface defined by an abstract > class. You will find this to be a common theme of the design > patterns in this book.
> And I said to myself, holy Moses, what a radical statement! > But then I realized that as ideal and radical as it may sound, if I > followed that advice, the program will be totally flexible and reusable. > What I would love to hear from experienced developers are two > things:
> 1. How 'practical' is this advice? Is this sort of radical approach > 'actually' practiced? > 2. If 'interface' is preferrable to 'inheritance' in oo design, > wouldn't it follow that Java is much superior to C++? In the sense that > using interface is so much easier in Java than in C++?
> Thanks. Marcel
-- Darren Webb Department of Computer Science, Research Student The University of Adelaide South Australia 5005 dar...@cs.adelaide.edu.au Tel: +61 8 8303 6170 http://www.cs.adelaide.edu.au/~darren Fax: +61 8 8303 4366
* Marcel K Haesok <Hae...@earthlink.net> | I am a relative rookie, but after perusing the language ngs, I came to | the following conlusion:
| <<<The "near/medium term future of computing" involves several keywords | and they are-- among others---'networking', 'internet', 'OO', | 'portability', 'AI' and 'marketting power'>>>;
this isn't a statement of a conclusion of an argument.
| Tell me where my argument is flawed.
easy: there is no argument, just a marketingese catch-phrase. and all we can say about such is that the future is believed to be made out of them, but the present is not.
> 1. How 'practical' is this advice? Is this sort of radical approach >'actually' practiced?
This is the way I have been programming for years and I found it VERY practical.
> 2. If 'interface' is preferrable to 'inheritance' in oo design, >wouldn't it follow that Java is much superior to C++? In the sense that >using interface is so much easier in Java than in C++?
As was discussed in another thread, static typing gets in the way quickly once you start extending the scope of the interface. In Java, you'd end up rewriting the same code using different declarations.
A simple example: Take a family of Beans which are essentially a TextField and Number format working together: IntegerField, LongField, FloatField, DoubleField, DateField, TimeField, TimeStampField. In Smalltalk, there is a single hierarchy in which one one method is specific for each field, namely the method decodeContents. In Java, you'a end up copying several other method for the only reason that the declarations must be adapted to each case.
"Fernando D. Mato Mira" <matom...@iname.com> writes:
> "Didier H. Besset" wrote:
> > method decodeContents. In Java, you'a end up copying several other method > > for the only reason that the declarations must be adapted to each case.
> No macros. No templates. No parameterized interfaces/classes. > Java is not ready yet in the reuse department.
I beg to differ. Apart from macros (which partitions languages into the [CL], [Scheme-Dylan] and [everything else] equivalence classes, with [CL] being the most (too much?!?) flexible), I'd say that the top 'Object' inheritance scheme pretty much serves your (my) needs.
The only missing piece in earlier Java SDK's (< 1.2) was the lack of the 'Comparable' interface implemented, say, by Integer et similia. Sun fixed that, so now you can write parameterized priority queues, trees and binary comparison based data structures rather easily.
As per the "pattern" stuff, reading Gabriel's"Patterns of software" was enlightining (though I came away with the idea that patterns are neither a panacea nor an easy thing to set up).
Cheers
-- Marco Antoniotti =========================================== PARADES, Via San Pantaleo 66, I-00186 Rome, ITALY tel. +39 - 06 68 10 03 17, fax. +39 - 06 68 80 79 26 http://www.parades.rm.cnr.it/~marcoxa
Marco Antoniotti wrote: > > No macros. No templates. No parameterized interfaces/classes. > > Java is not ready yet in the reuse department.
> I beg to differ. Apart from macros (which partitions languages into > the [CL], [Scheme-Dylan] and [everything else] equivalence classes, > with [CL] being the most (too much?!?) flexible), I'd say that the > top 'Object' inheritance scheme pretty much serves your (my) needs.
I like precise, concise, reified, non-fascist typing.
-- Fernando D. Mato Mira Real-Time SW Eng & Networking Advanced Systems Engineering Division CSEM Jaquet-Droz 1 email: matomira AT acm DOT org CH-2007 Neuchatel tel: +41 (32) 720-5157 Switzerland FAX: +41 (32) 720-5720
Fernando D. Mato Mira wrote in message <36FF4992.10B1C...@iname.com>...
>"Didier H. Besset" wrote: >> method decodeContents. In Java, you'a end up copying several other method >> for the only reason that the declarations must be adapted to each case.
>No macros. No templates. No parameterized interfaces/classes. >Java is not ready yet in the reuse department.
jim ------------------------------------------------------------ James P. White Netscape DevEdge Champion for IFC IFC Exchange - Insanely great Java - http://www.ifcx.org