Re: Seeking computer-programming job (Sunnyvale, CA)

A

Arne Vajhøj

Seamus said:
No, it is perfectly true that your pointless jabs and pokes do not
advance the case for Lisp.

You missed the point again.

It is not my case for Lisp.

Arne
 
S

Seamus MacRae

Arne Vajhøj wrote:
[snip]

Why are you suddenly posting a whole lot? So far as I am aware you don't
have any horses in this particular race.
You don't think it is rather pointless to debate the merits of a
language that you don't master????

Who has ever truly mastered any language? Is there nothing that you have
yet to learn about Java?

If absolute mastery was the requirement before being allowed by the
Almighty Arne to discuss a programming language, then nobody could
discuss programming languages.

Well, except for one teensy weensy little thing: the fact that the
Almighty Arne has absolutely no authority whatsoever to impose such a
requirement anyway. The Almighty Arne is, in fact, a yapping terrier
that thinks it's a big bad mastiff but is not even a threat to the seat
of anyone's pants.

And, if it ever did become a threat, would get dragged to the pound by
the dogcatcher and euthanized.
Too busy discussing Lisp

Oh, is that what we were doing? That's funny, because it seemed to me
that we were discussing *me* now, rather than Lisp.
It is very relevant.

No, it is not.
If you don't know Lisp and want to discuss Lisp, then you should learn
about Lisp.

I know some things about Lisp. Your statement otherwise was a lie.
 
S

Seamus MacRae

Arne said:
Seamus said:
Arne said:
Pillsy wrote:
Pillsy wrote:
[...]
Your lucid writing

Thanks

almost makes up for your hypocrisy and willful ignorance.

But no thanks. None of that's true of course.

OK, fine: your crappy writing does nothing to make up for your
hypocrisy and willful ignorance.

:)

I'd find it touching that you find it amusing to see people viciously
attacking each other, if I happened to be a sadistic psychopath
reading this from in a prison library. And then when I got out I might
track you down and do things to you.

How fortunate for you that I'm not, and the only thing I'm likely to
do in response to this sort of silliness is think "the lot of you are
a bunch of stupid assholes" and take nothing you write very seriously
ever again.

Does that include not replying to it??

That depends. If "it" includes an incorrect public statement or
implication about me, I shall feel obliged to publicly correct it.
Otherwise, I may very well let it slide.
 
A

Arne Vajhøj

Seamus said:
That is clearly impossible, since that standard was published in 1986
and CLOS was still being developed into 1988. Unless you mean to suggest
that the specification for CLOS, published in 1988, was then couriered
via time machine to an ANSI committee at or prior to the date of 1986 so
that it could be included in the CL standard, then you shall have to
admit you are mistaken.

One of the actual Lisp knowledgeable will have to correct me if
I am wrong but I thought that the ANSI committee started the
work in 1986 and completed in 1992/94.

Arne
 
S

Seamus MacRae

Kaz said:
["Followup-To:" header set to comp.lang.lisp.]
Pillsy said:
Pillsy wrote:
[...]
Your lucid writing
Thanks
almost makes up for your hypocrisy and willful ignorance.
But no thanks. None of that's true of course.
OK, fine: your crappy writing does nothing to make up for your
hypocrisy and willful ignorance.
More stupid ad hominems.

Now go look up what the ad hominem fallacy actaully means.

And another stupid ad hominem. Implying that your opponent doesn't
understand ad hominem, and therefore Lisp beats Java.
Recognizing that your opponent in a debate is a pitiful moron is not the ad
hominem falacy.

Your opponent is a moron, therefore Lisp beats Java.
Ad hominem means that you weave irrelevant facts from someone's background
into an argument against him.

It means that you weave irrelevant arguments against the person saying
something into an argument against the something.

Often those arguments against the person are not facts, but rather
opinions, ill-informed speculation, errors, and even outright lies; such
certainly seems to be the case here.

You are attempting to argue for Lisp in preference to Java. Calling me
names does not furnish any rational basis for preferring Lisp to Java.
That is the error in your logic that I am endeavoring to point out.
That you're willfully ignorant is not an irrelevant fact about your background.

Of course not -- it is not a fact at all, so certainly it is not an
"irrelevant fact about my background".

P.S. Please stop trying to redirect my replies out of
comp.lang.java.programmer. If you badmouth me in
comp.lang.java.programmer then I will respond in my own defense in
comp.lang.java.programmer. Trying to prevent me from doing so is a)
futile, b) annoying, and c) rude and antisocial behavior.
 
S

Seamus MacRae

This statement of Paul's is incorrect. Please don't quote it as if it
were truth.
Not quite.

More internal disagreements. Please stop posting about me here and get
back to me when you've finally sorted yourselves out and can present a
coherent front in this debate.
[technical stuff not relevant to Java vs. Lisp]
 
A

Arne Vajhøj

Seamus said:
> P.S. Please stop trying to redirect my replies out of
comp.lang.java.programmer. If you badmouth me in
comp.lang.java.programmer then I will respond in my own defense in
comp.lang.java.programmer.

I am sure the readers of cljp would appreciate to be left out.

And don't worry about your reputation - it will not be
harmed by cljp not seeing your replies.

Arne
 
S

Seamus MacRae

I doubt it.

Doubt the truth all you want; it won't change just to satisfy you.
You don't have the discipline

I grow weary of being constantly insulted. If you have something to say
on the topic of Java vs. Lisp, then say it. If not, then kindly go away.
Again, I doubt the "One. More. Time." aspect.

Are you calling me a liar?
It's been pretty obvious for a long time that you don't know

This has nothing to do with Java vs. Lisp.
Instead, it's been about control, and your attempt to control

So, you are admitting that your real purpose in posting all of this
stuff is to have the last word? How childish of you.
you would choose to not answer some of these posts

But doing so would be at the cost of leaving an incorrect negative
statement about me unchallenged as part of the public record. Surely you
can see how that might be a problem.
 
A

Adlai

(let ('variable value)). (defun 'name (param1 param2) (body)). Where are
the types? There only seem to be the argument names and variable names
in these places.

Those two Lisp forms that you tried to make there show some SERIOUS
ignorance of basic concepts. Seamus, I'm sorry to say, but you really
do seem to have no clue what you're talking about. Not just in terms
of the more complicated stuff -- packages etc -- but also in terms of
basic Lisp syntax.

- Adlai
 
D

duane

Alessio Stalla wrote:
[snip]
Please stop posting five minutes after I post, in the interests of
letting me get caught up so I can move on to other tasks. I do have
other things to do than defend myself against you and your pals, you
know, and it is disrespectful to keep me jumping like this without any
time to even catch a breather. Furthermore, please try to limit your
posts to a reasonable length. This one isn't as ludicrously long as some
of your recent posts have been, but it isn't exactly short either.
I just answered another of your posts, and this precisely demonstrates
my point there; you are not in control in this conversation

I'm not sure I care for your threatening tone.

No threat. Just an observation. You are not in control of yourself.
You must post. Just as you must answer me. You have no control.
If I set out to catch up on Usenet, then once I have begun I must reply
to any posts that say incorrect things, especially if they say incorrect
things about me, personally, in public where other people might read
them and be misled.

Then let them be misled. Right now, they get the wrong idea about
you, because they laugh at your inability to back down from an
argument. Only after you've mastered the art of walking away can you
master the art of controlling people's viewpoints.
If people continue to flood the newsgroup with more incorrect postings,
then it makes it difficult to get caught up and be able to say "there,
I'm done" and move on to another task.

Not at all. for someone who is in control, it is easy to walk away
and say "there, I'm done". You know how to do that? Just walk away
and say "there, I'm done.".
Not every argument. Every argument that says or insinuates something
unpleasant about me, either by vigorously disagreeing with something I
said or by containing overt personal attacks, perhaps. But nobody sane
would want something like that aimed at them being on the public record,
but as yet unchallenged, now would they?

Of course they would, if they are in control of themselves. But I
don't expect you to understand this, because you can't control
yourself.

Duane
 
D

duane

You first.

Here's another example of you being not in control. It is the oldest
child's game in the world. As children grow up, they learn to control
themselves, and not to play "who can outlast the other" as a means of
discourse.
I suspect that you will respond to this, and I will likely just give
up trying to teach you something. But you will continue to be
embroiled in your own headlock with many others who want to still play
this game with you, and at that point I will feel a little more sorry
for you.

Duane
 
S

Seamus MacRae

Alessio said:
No, I don't. Packages in Lisp are name-spaces: spaces of names, sets
of names. They contain - names. Just names, nothing else. Really.

Then function and variable names in the same package with the same names
would collide. Which contradicts your earlier testimony here.

Wikipedia's article on Common Lisp may resolve this internal dispute of
yours, however:
The namespace for function names is separate from the namespace for
data variables.

Apparently the one-namespace version is wrong and there are at least two.
Names can refer to many things. They can have many meanings attached.
But those meanings are not attached using packages.

Did I say that? No. What I said was that the packages keep track of
those meanings in order to disambiguate some same-named things, which
seems consistent with what Wikipedia says.
The same is true in Java, somehow, too: if you use a Class as a
namespace (classes are indeed namespaces in Java, though not the only
kind of namespace).
class.getField("foo") returns a field, class.getMethod("foo") returns
a method, yet the name is always "foo". See?

Because the class actually contains multiple, separate namespaces and
fields and methods are in distinct ones.
Java on the other hand has "packages" which are namespaces, but also
are a sort of "logical directories" that contain resources (typically
classes).

They correspond to directories on the filesystem in most
implementations, and those directories may contain other resources, but
to consider the packages and the directories to be one and the same
would be erroneous.

Java packages, in terms of the language core semantics, are namespaces
for classes, interfaces, and enums (and are single namespaces; no two of
those can have the same name).
I'm using "namespace" improperly here, in hope to make things clearer
to you.

If by "improperly" you mean "the way that computer scientists and
Wikipedia use the term" then yes.

You can ditch the vaguely condescending tone, by the way. It does not
help you further your cause.

Well, then.
It's the price you have to pay for having a general naming mechanism
like packages.

That's funny, because Java has packages and lacks this restriction.
It's not really a big price, since I've never come up
with a case where it actually gave problems. Naming conventions help,
of course (e.g. variables are usually named *variable-name* with
asterisks).

Won't that be confused with multiplication, or emphasis, or something?
(Leaving aside the more general problems with allowing arbitrary
punctuation in identifiers.)

Java naming conventions would help, in that one ordinarily uses getFoo()
for a getter for a field named foo ... but a lot of languages lack such
a notion, and indeed many languages (Ruby, Python, Eiffel, and even C#)
have "attributes" support, fields made visible and possibly assignable
where this actually goes through getter and setter methods, sometimes
defined explicitly (to add extra behavior) and sometimes not. These tend
to involve naming patterns like

X foo (variable with some type X)
X foo() (method with return type X)
void foo(X value) (method with argument type X)

which Lisp apparently wouldn't allow without making the variable public.
Then people could bypass the getter and setter, and then what's the
point of having them?
C does not have namespaces IIRC.

It effectively has them through the mechanism of "external linkage" and
the ability to declare a symbol non-exported by not declaring it
"extern". A non-exported symbol is used by the compiler in compiling the
one C file, and that's it. The linker never sees it. As a result, the
same name can be used in multiple C files, if none exports it.

If a name is exported by a C file, say a.c, and b.c uses that name
internally for something else, then b.c can't use that name from a.c.
This is doable: suppose the name is foo. The header a.h will have a
declaration of extern int foo; or some such. The file b.c can simply not
include a.h and then when the compiler sees it the only foo it knows of
is the internal one in b. This gets resolved entirely internally, so the
linker never knows that b.o once had a foo in it. Everything works. If
b.c needs to use other symbols from a.c, it can use declarations like
those in a.h, excluding that for foo, to access them.

It's coarse-grained and clunky, of course. Names with "extern" linkage
are visible everywhere so cannot collide; the linker will give an error.
Names with internal linkage can't be exported directly, but for
functions you can make a "trampoline" function of a different name that
you export. More commonly, you might "namespace" the extern'd symbols by
using prefixes to indicate what part of the codebase they belong to.

But it is not as bad as you suggest, with all symbols pooled together in
one undifferentiated lump.

The Common Lisp situation seems slightly better: you can put symbols in
namespaces and still refer to them from elsewhere via a scope operator.
This is closer to C++'s namespaces, excluding the internal ones within
C++ classes. C++ however adds classes-as-namespaces and thus much finer
granularity than CL seems to provide. Java likewise has
classes-as-namespaces and a way to import from namespaces (including
from classes, via "import static").
yes, CL would be similar to C (but with the huge benefit that symbols
are first-class and you can manipulate them at runtime).

Java has reflection, too.

(Other similarities with C: CL's age (even older if anything); CL's
standard isn't freely available; CL's is an ANSI standard; Lisp more
generally has a bevy of somewhat different and incompatible legacy
variants from before CL standardization. Smalltalk has it worse
standardization-wise, I think, though if Squeak takes over the world
that will change.)

Yes. (The key in question is the key marked with ":" and ";", in case
you were confused.)
No, you can't

Yes, you can.
since symbol resolution is done at read-time, before macros are expanded.

Perhaps you already forgot your earlier mention of a "read-macro"? I
have a photographic memory. Anything you say can and will be used
against you in a court of law.
Yet it never gave me problems.

It will if you ever have to work on a large project that has numerous
developers, chooses CL as its implementation language, and ends up with
a loose cannon that is prone to using other peoples' private members and
generally eschewing what little scope for encapsulation remained after
the implementation-language choice was made. Tracking down the misuses
of private members sprinkled liberally throughout their commits will be
a colossal pain, compared to the Java case, where such behavior is also
less likely in the first place since everything in the language design
heavily discourages it.
You have it. Just make the slot name private.

I thought you said the class didn't constitute a namespace of its own.
This will make every slot of the same name "private" in every class in
the same package. OK, making your instance variables all private is
probably actually a good thing, except that you really only made them
"private" thanks to the colon-colon loophole.
Those about closing windows are different verbs, yes.
Acknowledged.

There are not many cases like this. How many more totally unrelated
things can you close?

According to Google, dozens:
Results 1 - 10 of about 189 from java.sun.com for "void close" "Java
Platform SE 6".

This says 189 but counts related uses, like I/O streams. The first page
of hits has streams, writers and readers (character-encoding stream
wrappers, arguably related), connections (arguably related), scanners
(arguably related), sockets, and splash screens. The second adds
statements, progress monitors, handlers, and result sets; the third, XML
encoders and interruptible channels. That's twelve so far.

Need I go on? :)

I'd say "dozens" is not an unreasonable estimate.

(And that's not counting any occurrences of "int close" or others that
for whatever reason have some kind of a result to return.)
I meant WRITING IN ALL CAPS.

And I meant you're not sorry.
What if I want to draw something I didn't wrote, and whose author
didn't know about my Drawable interface?

Then, hypothetically speaking, you're probably also the author of the
companion Graphics one, and can add the drawing code there.
Sure, and what's the problem? I don't change their code

Except for the little bit that goes (defgeneric ... (foo foo) (bar bar) ...)

But they won't mind, surely?
The classloader does it for you then. The effect is the same.

The effect is NOT the same because it happens at run time, which means
it can't possibly mess up the system's source code.
NO, IT ISN'T! If you still don't understand why I'm afraid you never
will. It's time to drop this line of debate.

For the last time:
[snip!]

The only differences are that, in Lisp,

1. you can define the new method after the class and not necessarily
together with it,
2. you have multiple dispatch, but in this example it is indifferent
since the argument is only one.

You're leaving out the really important bit:

In Java, you're subclassing my class and adding a method to your subclass.

In Lisp, you're subclassing my class and adding a method to my generic
function.
Don't be confused

Please don't be rude.
Yep. An instruction for the Lisp reader.

You mean, the sort of thing you claimed didn't exist earlier, when you
wrote:
b) you can presumably automate even the one lousy extra colon using a
macro;

No, you can't, since symbol resolution is done at read-time, before
macros are expanded.
?
Of course you can,

Ok, that's good.

[snipped some tangential rant about things not in Java's standard
library]

Which also served to demonstrate that I'm not an uncritical flag-waving
jingoistic Java jihadist with delusions of Java being perfect.
Maybe that's the reason I'm using, and sometimes contributing to, a
Lisp implementation running on the JVM... :)
Clojure?
[calls me a liar]

HAHAHAHAHA!

Such a thing should cause you feelings of shame, not amusement.
 
S

Seamus MacRae

Thomas said:
I'm not being intentionally dense.

Sure looked like you were.
It was inconceivable to me that when you replied "Don't have one, sorry."
that the one you referred to was a Lisp text

Why? Very few people in the world tend to keep Lisp texts lying around.
Probably mostly just you guys.
On reflection, it probably would have been most appropriate for me to
connect "Don't have one, sorry." with an interest in understanding
Lisp.

No, that also would have been incorrect.
I am not arguing.

There! You just did it again -- you argued!
I have only posted information and links to Common
Lisp references in the attempt to resolve misunderstandings

I have had no misunderstandings, save perhaps when one of you has made
an erroneous or otherwise misleading statement here.
Oh, I do not have a disagreement with gugamilare, nor you for that
matter.

That's an exceedingly odd thing for you to say shortly after saying
things contradicting things that both of us have said AND after
insulting me personally.
No, it's a way of saying that I hope the information and
clarifications I provided helped you in your understanding of Common
Lisp and in our communication.

I referred to your conspicuous omission of two levels of quoted
material, quotation of some other material, and then giving your signoff
without any more topical text of your own.
P.S. I noticed that you selectively clipped the quotations of my
responses [rest of accusation of dishonesty deleted]

I did sometimes elide pointless and insulting parts, leaving only what
was relevant to the issue of Java vs. Lisp, in the interests of decorum,
clarity, and avoiding unnecessary distractions from the topic at hand.
 
S

Seamus MacRae

Lars said:
Your email is (e-mail address removed).

Canada's TLD is .ca, not .nospam.

(More seriously, anyone can sign up for a live.ca address at Hotmail, or
at least they could when I got mine.)
Could be as much of a fake as yourself, of course.

This insulting quip serves no legitimate purpose in a debate over
programming language design.
 
D

duane

Doubt the truth all you want; it won't change just to satisfy you.

It doesn't matter to me. It's not "truth" anyway, since you're
continuing to demonstrate that you have no discipline to bite the
bullet and not answer. You're being controlled by your need to appear
correct, and because of that, the rest of the responders on this
thread control you.
I grow weary of being constantly insulted. If you have something to say
on the topic of Java vs. Lisp, then say it. If not, then kindly go away.

There it is again. You have no control over yourself in having to
answer me, and you have no control over your insistence that everyone
act the way you want them to act. This is clearly foolish, because
you can't enforce that. Putting the "kindly" in there doesn't make it
a kind request.
Are you calling me a liar?

Of course not. Just foolish in the belief that you will only say a
thing once here. I think you truly believe that you will only have to
say something once (or at most one more time). But I also doubt that
it's true, because that's not how you work. You're not the first
person we've seen here that is not in control of himself, and it's
simply not the way such people react. It's also not a hard concept to
understand, because many people on the internet have had to deal with
the question of whether to continue responding or not. And you simply
haven't yet learned how to bite the bullet and not respond, even
though you might believe that misinformation is getting out because of
it. You're becoming frustrated with everyone else for spouting
misinformation, and you haven't learned that the best way to remove
the misinformation is to remove yourself from the conversation. It's
hard, but everyone must learn to do it at one time or another.
This has nothing to do with Java vs. Lisp.

Of course it does. Lisp is all about the meta-level, and this is a
meta-conversation, i.e. a conversation about the conversation. We
Lispers always love to talk meta.

But as I've said before, you've refused to learn Lisp, so you've never
really been talking about Lisp in the first place (and thus it has
never been a Java vs Lisp conversation).
So, you are admitting that your real purpose in posting all of this
stuff is to have the last word? How childish of you.

This doesn't follow. I'm only trying to help you. And I won't do it
for long. But even if it did follow, let's assume that I'm being
childish. Now, since you're so concerned about appearances, how does
it feel to know that you're being bested by a child?
But doing so would be at the cost of leaving an incorrect negative
statement about me unchallenged as part of the public record. Surely you
can see how that might be a problem.

Of course I can see it, grasshopper. You must learn for yourself that
it is only in the giving up of control that you gain the control
again.

Duane
 
S

Seamus MacRae

Arne said:
Seamus said:
[You can even have multiple frames on different displays, in different
countries if you want...]
The ability to run multiple xterms concurrently had occurred to me,
yes. Why would I want to though? Twice as much of a bletcherous thing
is more, rather than less, bletcherous. One xterm at a shell prompt is
the most I'd normally ever desire.

Besides, it's not as if I'd magically get any real-GUI goodness out of
it, like being able to cut in one window and paste in a different
one. The X clipboard and the various emacs instances' clipboards would
all know nothing of one another.
You must be aware that emacs can run in windowed mode under both
X-windows and MS windows (and others I am not familiar with).

Yes, trivially; any console app can be run "in windowed mode" by
displaying it in a windowed terminal emulator instead of a full-screen
one or a real terminal.

But

But nothing. Any console app can be run "in windowed mode" by displaying
it in a windowed terminal emulator instead of a full-screen one or a
real terminal.
 
S

Seamus MacRae

I did not. The attributions have gotten mixed up somehow in the history
of this part of this thread. Thomas actually wrote it.

Yes. You can indeed "return 42.0;" now.

Or if you are objecting to "the person asked how does it work if they
want to return a literal", I will repost the appropriate quotation for you:

Now please drop this.
They were discussing whether they needed to wrap to be able to
return null.

They do not:

public Integer foobar (boolean baz) {
if (baz) return 42; // Look, ma, an unwrapped literal!
return null; // Look, ma, I'm able to return null!
}

The compiler can do the wrapping for them. As I originally stated.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,438
Messages
2,571,699
Members
48,796
Latest member
Greg L.
Top