Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
What case problem is Franz trying to solve?
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 251 - 275 of 394 - Collapse all  -  Translate all to Translated (View all originals) < Older  Newer >
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Erik Naggum  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: 2000/11/10
Subject: Re: What case problem is Franz trying to solve?
* Barry Margolin <bar...@genuity.net>
| But it's unlikely that much code is currently written this way, so it
| would have to be found and fixed.  I suspect there's also code out
| there that reads user input using things like READ-LINE, and then
| calls STRING-UPCASE before calling INTERN or FIND-SYMBOL, to ensure
| that it will find the right symbol.

  The obvious solution to this problem is _not_ to make an irreversible
  global change, but to retain upper-case access to symbols even while
  you have lower-case access to them.  Franz Inc's solution is wrong,
  and causes lots or problems in transitioning between upper-case and
  lower-case "modes".  Such global mode switches are generally not the
  best kind of solution, anyway.  I truly wonder why they didn't look
  further when it has so many obvious drawbacks, apart from breaking
  code that relies on the old upper-case behavior, which is considered
  something that _shouldn't_ work by some Franz people.  I can't believe
  the argument that any such code is so easy to change there's no cost
  to it.  How do you know you've caught them all?  How is that easier to
  prove than not to break the thing in the first place while allowing
  people the choice?  And he's never seen find-symbol!  That is _not_
  comforting.  The sheer arrogance here is too much, just too much.

#:Erik
--
  ALGORITHM: a procedure for solving a mathematical problem in a finite
  number of steps that frequently involves repetition of an operation.
  ALGOREISM: a procedure for solving an electoral problem in a finite
  number of steps that frequently involves repetition of an operation.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Francis Leboutte  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Francis Leboutte <f.lebou...@algo.be>
Date: 2000/11/10
Subject: Re: What case problem is Franz trying to solve?

In one legacy application I have found about several ten calls to
find-symbol, here is one example:

(defun sub-FM-pull-down-menu-class
                (&optional (sub-FM-keyword *current-sub-FM*))
  (let* ((name (concatenate 'string (symbol-name sub-FM-keyword)
                                     "-PULL-DOWN-MENU"))
         (class (find-symbol name :cl-user)))
    (if class
        class
      'pull-down-menu)))

>I can only say that in practice it really isn't a problem.

Maybe

--
Francis Leboutte
www.algo.be   +32-(0)4.388.39.19


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "ACL 6.0 Trial Edition ships with non ANSI reader behavior." by Lieven Marchand
Lieven Marchand  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Lieven Marchand <m...@bewoner.dma.be>
Date: 2000/11/10
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

John Foderaro <j...@unspamx.franz.com> writes:
> In article <m31ywl2h6y....@localhost.localdomain>, m...@bewoner.dma.be
> says...
> > Technically, this is correct, but it gives the novice the impression
> > that if he has a class Box he can't name a variable box.

> ok that wasn't clear.  The idea was that you would store in the variable  
> Box the class object for a box and in the variable box an instance of
> that class.   So if both are variables then there is a clash.

I understood although I've never wanted to do this. But what the CL
novice is going to retain from it is that he can't do

(defmethod foo ((box Box)) nil)

which is false.

> Keeping two pointers to the same thing makes things hard to manage (if
> you've ever used soft or hard links in the Unix you know that you often
> end up following pointers to old or non existent files.).

It would certainly be feasible. Take the print name out of the current
struct and make a symbol a cons of the printname and a struct with the
remaining members.

> Pascal's descendents Modula-2 and Modula-3 are modern and are case
> sensitive (even though Pascal is case insensitive).

I've written a fair amount of code in Modula-3, it's a fine language
and Java didn't steal enough from it, but it's a weird argument for
your case. Sure, it's case sensitive but they chose to make the
keywords UPPER CASE and don't give you any choice about it ;-)

--
Lieven Marchand <m...@bewoner.dma.be>
Lambda calculus - Call us a mad club


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "What case problem is Franz trying to solve?" by Lieven Marchand
Lieven Marchand  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Lieven Marchand <m...@bewoner.dma.be>
Date: 2000/11/10
Subject: Re: What case problem is Franz trying to solve?

Barry Margolin <bar...@genuity.net> writes:
> But I think I can understand why the designers of Edinburgh syntax went
> that way.  Mathematicians and logicians make heavy use of case distinctions
> in their formulas (since just about all their variables are single letters,
> all they have to play with is case and font, and they use them
> excessively), so they probably felt that this would be more acceptable to
> the logic community.

And alphabet. The Greek and Hebrew alphabets are nearly exhausted so
the Cyrillic seems to next. The Tate-Shafarevich group is commonly
denoted by the Cyrillic letter Sha. Since most modern languages seem
to take Unicode as alphabet, programmers can start to take advantage
of this also.

Perhaps we need to revive the extended character functions for when we
have to interface with the java class ru.big-bussiness.RussianParser?

--
Lieven Marchand <m...@bewoner.dma.be>
Lambda calculus - Call us a mad club


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
vsync  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: vsync <vs...@quadium.net>
Date: 2000/11/10
Subject: Re: What case problem is Franz trying to solve?

Erik Naggum <e...@naggum.net> writes:
>   you have lower-case access to them.  Franz Inc's solution is wrong,
>   and causes lots or problems in transitioning between upper-case and
>   lower-case "modes".  Such global mode switches are generally not the
>   best kind of solution, anyway.  I truly wonder why they didn't look

(wading into the fray)

Hmm.  I'm fairly early in my Lisp programming journey, and curious:
wouldn't something like a WITH-LOWER-CASE-READER macro be much more
effective than a global setting?

--
vsync
http://quadium.net/ - last updated Fri Nov 10 03:41:55 PST 2000
(cons (cons (car (cons 'c 'r)) (cdr (cons 'a 'o))) ; Orjner
      (cons (cons (car (cons 'n 'c)) (cdr (cons nil 's))) nil))


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Barry Margolin  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Barry Margolin <bar...@genuity.net>
Date: 2000/11/10
Subject: Re: What case problem is Franz trying to solve?
In article <MPG.1476065f80dd16af989...@news.dnai.com>,
John Foderaro  <j...@unspamx.franz.com> wrote:

>In article <cmZO5.70$sG1.687@burlma1-snr2>, bar...@genuity.net says...
>> To make this portable with implementation-dependent case, the simplest fix
>> would probably be:

>>   (intern (format "%A-%A" 'make structure-name))

>correct, except it would be (intern (format nil "~a-~a" 'make structure-name))
>[it looks like you've just been programming in C]

I knew something didn't feel right when I was writing that!  What little
programming I do these days is mostly Perl, AWK, or Emacs Lisp, all of
which use C's formatting syntax.

>> But it's unlikely that much code is currently written this way, so it would
>> have to be found and fixed.

>True but in practice it's not hard.  I don't know how to prove it to you
>though.

Perhaps true, but is it worth forcing lots of programmers to go through
that for such a minor benefit?  IMHO, incompatible changes should require
more justification than this.

--
Barry Margolin, bar...@genuity.net
Genuity, Burlington, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
vsync  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: vsync <vs...@quadium.net>
Date: 2000/11/10
Subject: Re: What case problem is Franz trying to solve?

John Foderaro <j...@unspamx.franz.com> writes:
> Common Lisp can name things that are case insensitive, like html tags,
> domain names, files on DOS, and words in certain written languages.

> To names things with case sensitive names, like xml tags, C identifiers,
> and Java identifiers you have to use escapes to turn off the
> normal reader behavior or else change the reader behavior wholesale
> with readtable-case and deal with the consequences when
> naming Common Lisp functions and variables.

> It can be done though.  Definitely.

I'm wondering why symbols are considered to be so important.  Most of
these things seem to be more suited to strings, or, as in the case of
filenames, objects such as LOGICAL-PATHNAME, which are constructed
from strings.

--
vsync
http://quadium.net/ - last updated Fri Nov 10 03:41:55 PST 2000
(cons (cons (car (cons 'c 'r)) (cdr (cons 'a 'o))) ; Orjner
      (cons (cons (car (cons 'n 'c)) (cdr (cons nil 's))) nil))


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "ACL 6.0 Trial Edition ships with non ANSI reader behavior." by la...@known.net
layer  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: la...@known.net
Date: 2000/11/10
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

Yes, assuming we agreed with the changes.  I might even do it myself,
in my spare time.

Kevin Layer
Franz Inc.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
layer  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: la...@known.net
Date: 2000/11/10
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.
Jon S Anthony <j...@synquiry.com> writes:

Well, I'm sorry for that.  I did ask the question and I've reported
the answer I got.

I wasn't clear.  I was thinking that some people might want to create
xml by creating the Lisp form of it.  We do this for our
documentation.  We call it lxml.  All our documentation for 6.0
(except for a couple of items) is now in lxml.  We create documents in
this form.  Other people might want to do this, too.

Kevin Layer
Franz Inc.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Foderaro  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: 2000/11/10
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.
In article <wk1ywj7p1v....@441715.i-did-not-set--mail-host-address--so-shoot-me>,
cbbro...@hex.net says...

> Not _quite_ irrelevant; if by using a particular Lisp implementation,
> the user is _forced_ to go to "MODerN MODe," then even if the benefit
> is zero, there is still the cost of porting the code.

But all implementations today support ANSI mode and I would imagine
that they would continue to support ANSI mode as long as there
were people interested in that mode.

True new implementations could be written that are modern only
but as we've seen, new implementations of Common Lisp are rare.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "What case problem is Franz trying to solve?" by John Foderaro
John Foderaro  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: 2000/11/10
Subject: Re: What case problem is Franz trying to solve?
I'd disagree that this is a minor benefit.

Let me relate an anecdote.  Back in 1978 when UC Berkeley got its
first VAX computer, they got a copy of the Vax/Unix operating system
from Bell Labs and began work on adding a virtual memory system to it.

In this this version of Unix, external identifiers (such as function names)
in object files were limited to some small length (12 characters I think).
Even with a 12 character limitation for identifiers you can still write
any C program.  So there was no need to change anything.  However
the people working on this project (an in particular Bill Joy) recognized
that a 12 character limitiation to identifiers harmed
their ability to clearly write the system they intended to write.
Therefor they wanted no restriction on the length of identifiers.  So they
made that happen and that meant changing a large number
of programs (cc, ld, as, nm, adb) as well as creating a new
executable file format and changing the Unix kernel to understand
this format.   This also meant breaking with the version of Unix
at Bell Labs.

 So this was a tremendous step just to go from 12 character to unlimited
character identifiers.   I'm glad they did as it really added to
the clarity of long function names and didn't force unnatural abbreviation.
(e.g. GetWindowTitle -> GetWinTitle).  Since most Unixes in use now are
a descendent of this version this change they made is responsible
for the fact at we now take for granted that identifiers for functions
names can be any length.

 I wonder how many of us when faced with the question of whether
to make this change would say "We can write everything with 12 character
identifiers and we've got to stick with the standard, and Bell Labs sets
the standard for C [in 1978]".

 And so in a roundabout answer to your question about what the benefit
of a Modern lisp, let me say that we can already write everything
we would ever want to write in an ANSI lisp.   However a
Modern lisp does give us
1. more expressibility (without escaping things)
2. the ability to more easily represent objects outside the Lisp world that
   have case sensitive names.

Thus while Modern mode won't let us write any programs we
couldn't write in ANSI mode, it does make writing
certain programs easier and clearer.  That to me is a huge benefit.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
John Foderaro  
View profile  
 More options Nov 10 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: John Foderaro <j...@unspamx.franz.com>
Date: 2000/11/10
Subject: Re: What case problem is Franz trying to solve?
In article <86y9yrs8rd....@piro.quadium.net>, vs...@quadium.net says...
.

> I'm wondering why symbols are considered to be so important

Symbols are important (and much better than strings) because
1. symbols can be compared with a fast eq operation (usually one machine
instruction) compared to using equal for strings.

2. symbols are stored in packages and there is only one
symbol with a given name in a given package.

3. symbols have value cells so you can use them as variables

4. symbols have function bindings so you can call them
as functions.

5. symbols have property lists, a great place to store
information about the symbol.

strings really can't compare to symbols for representing
a foreign object that either has a value or is
a function or both.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "ACL 6.0 Trial Edition ships with non ANSI reader behavior." by cbbro...@hex.net
cbbrowne  
View profile  
 More options Nov 10 2000, 8:54 pm
Newsgroups: comp.lang.lisp
From: cbbro...@hex.net
Date: Sat, 11 Nov 2000 01:54:24 GMT
Local: Fri, Nov 10 2000 8:54 pm
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

John Foderaro <j...@unspamx.franz.com> writes:
>  I agree completely.  If you've got a working system then that's great
> and there's no reason for you to change.   Whenever you do any kind of
> porting work you've got to ask what is the cost and what is the benefit.  
> It sounds like in your case the benefit to going to Modern mode is zero
> so the cost is irrelevant.

Not _quite_ irrelevant; if by using a particular Lisp implementation,
the user is _forced_ to go to "MODerN MODe," then even if the benefit
is zero, there is still the cost of porting the code.
--
(concatenate 'string "cbbrowne" "@hex.net")
<http://www.ntlug.org/~cbbrowne/>
Rules of the Evil Overlord #24. "I will maintain a realistic
assessment of my strengths and weaknesses. Even though this takes some
of the fun out of the job, at least I will never utter the line "No,
this cannot be! I AM INVINCIBLE!!!" (After that, death is usually
instantaneous.)" <http://www.eviloverlord.com/>

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
David Bakhash  
View profile  
 More options Nov 10 2000, 9:56 pm
Newsgroups: comp.lang.lisp
From: David Bakhash <ca...@alum.mit.edu>
Date: Sat, 11 Nov 2000 02:56:18 GMT
Local: Fri, Nov 10 2000 9:56 pm
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

Tim Bradshaw <t...@tfeb.org> writes:
> I have dealt with Franz as a customer for a long time (more than 10
> years) and I don't think I've met anyone who thinks like this, and I
> can certainly say from my own experience that some of their
> competiitors have been significantly worse to deal with than they
> are (including being significantly more arrogant).

Okay.  So then we have different experiences.  I see where you're
coming from, and neither disbelieve nor discount your experience, and
actually I'm happy that you're happy.

> Certainly I have never met anyone who *fears* them: why would you
> fear them?

First off, I didn't say I feared _them_.  I do worry about the impact
that they have on the Lisp community, though.  But you really want an
explaination of fear for a business?

Okay, Tim.  Here's a first shot at an example of how Company might
come to fear ACL.

Suppose Company was in the business of developing software.  Company
chose Common Lisp as its primary development language, and Franz's ACL
as the specific implementation.  Company noticed that ACL provided
many of the extensions necessary for Company's development needs, such
as networking, multiprocessing, etc.  Company understood the basic
pricing scheme concepts.

After a few years of development, deliveries of various products,
Company suddenly notices that Franz has decided that to run a server
application, they will charge _not_ for the single seat, as they used
to, but for each person accessing the server, and at the VAR pricing
(which is far from cheap).  Oh, but unfortunately, Company doesn't
know exaclty how many people will access that server.  No big deal;
Franz will assume a few hundred, if not more.  Do you think that's
something to at least worry a little about, given that you're already
a Franz customer?  I'm just happy they changed this pricing thing
_before_ I ever purchased anything from them.

As far as I know, Franz is the _only_ Lisp vendor I'm aware of that
prices this way, with respect to servers.  I get sickened that other
vendors might follow along with this pricing approach.  Tell me, Tim.
Do I have your consent in feeling this way?

As I've said it once before here, some months back.  I priced ACL
against a competing Common Lisp.  The prices were an ORDER OF
MAGNITUDE different.  In a free market, they can sell it for as much
as they want.  And in an open forum, i'll openly admit my utter
disgust with this pricing, and since I do small jobs for small- and
mid-sized companies, I feel that if there's a company out there that's
going to potentially change the direction of Common Lisp away from the
ANSI Standard, I can better believe that don't want it to be Franz.

dave


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Robert Monfera  
View profile  
 More options Nov 10 2000, 9:57 pm
Newsgroups: comp.lang.lisp
From: Robert Monfera <monf...@fisec.com>
Date: Sat, 11 Nov 2000 02:57:33 GMT
Local: Fri, Nov 10 2000 9:57 pm
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

David Bakhash wrote:
> Tell me this, Kevin.  Is it unrelated that companies fear you guys?
> Many of them despise you guys, some your very own customers?  I can
> openly and honestly say, as for your direct compeditors, that the
> sentiment of their customers is _exactly_ the opposite?

Your post just proves that usenet bears every kind of messages without a
blink.  As a self-proclaimed open and honest person, please name the
customers you represent (including yourselves).  It's NIL, isn't it?

Robert


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
David Bakhash  
View profile  
 More options Nov 10 2000, 10:33 pm
Newsgroups: comp.lang.lisp
From: David Bakhash <ca...@alum.mit.edu>
Date: Sat, 11 Nov 2000 03:32:45 GMT
Local: Fri, Nov 10 2000 10:32 pm
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

Tim Bradshaw <t...@cley.com> writes:
> I don't think I saw the full horror of this until just now.  Perhaps I
> still do not understand.

Yes.  I think that the situation is not as bad as you might have
expressed in the choices below.

> If I'm in `modern mode' in acl, and I want to read some stuff in case
> insensitive uppercase, then I have a choice of:

> 1. write my own reader;

No.  You can definitely avoid this.

> 2. toggle, globally, into ansi mode and back, losing case information
>    about potentially every symbol in the system in the process.

I think after reading a post from one of the Franz guys, you can do
this without fear, and things will work just right.

> 3. don't use modern mode, and live with || where I need
>    case-sensitivity.

When do you actually _need_ case insensitivity?  It's not that often.
If it happens, then use the |'s.  Or, do what MCL does, and employ a
reader macro, such as the #_CallThisInJava, which not only is
annotationally expressive, it's more powerful than just interpreting
the following symbol as case-sensitive; it can expand that cleverly,
depending on what you're really trying to do (like FFI/FLI stuff).
Plus, this is just plain, pure Common Lisp.  There's no excuse to
_not_ use what's already there.  Writing the #_ reader macro will
certainly involve a bit of work, but SO WHAT!  Look what you get, and
look what you prevent -- breaking with the standard.

> [choice] 2 potentially breaks things in completely random ways, not
> just because I lose just the kind of distinction that
> case-sensitivity get me when FOO -> FOO -> foo, but because I might
> have other threads in the system which will fall about in ANSI mode,
> so I basically have to do a without-interrupts while I sit and wait
> for something to come down some network connection for 20 minutes.

No.  Someone (from Franz, I think) already explained that the
variables involved with case are thread-specific.  You definitely hit
something that was a possible problem, but they beat you to it, and
it's actually kind obvious, considering how *all*
multiprocessing-capable Lisps seems to treat the variables set by
WITH-STANDARD-IO-SYNTAX as thread-special variables.

> Wouldn't it be possible to split this thing in two -- a part which
> controls the readtable case sensitivity of a readtable (which I
> think we already have in ANSI CL) and some utility which will change
> the case of symbols in one or more packages?  That way I could be in
> a lower-case lisp (after using the second utility) but I could
> control how I read things by adjusting readtable parameters and/or
> changing readtables.

I personally wouldn't want that, as it would confuse the hell out of
me.  We don't need to add complexity to the package system, not to
mention that I don't even know that it would work right.

dave


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "What case problem is Franz trying to solve?" by Erik Naggum
Erik Naggum  
View profile  
 More options Nov 10 2000, 11:17 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: 11 Nov 2000 03:28:12 +0000
Local: Fri, Nov 10 2000 10:28 pm
Subject: Re: What case problem is Franz trying to solve?
* vsync <vs...@quadium.net>
| Hmm.  I'm fairly early in my Lisp programming journey, and curious:
| wouldn't something like a WITH-LOWER-CASE-READER macro be much more
| effective than a global setting?

  What would the macro expand to if not a special variable binding,
  which is a global setting?

#:Erik
--
  ALGORITHM: a procedure for solving a mathematical problem in a finite
  number of steps that frequently involves repetition of an operation.
  ALGOREISM: a procedure for solving an electoral problem in a finite
  number of steps that frequently involves repetition of an operation.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "ACL 6.0 Trial Edition ships with non ANSI reader behavior." by Erik Naggum
Erik Naggum  
View profile  
 More options Nov 10 2000, 11:17 pm
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: 11 Nov 2000 04:15:33 +0000
Local: Fri, Nov 10 2000 11:15 pm
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.
* David Bakhash <ca...@alum.mit.edu>
| After a few years of development, deliveries of various products,
| Company suddenly notices that Franz has decided that to run a server
| application, they will charge _not_ for the single seat, as they used
| to, but for each person accessing the server, and at the VAR pricing
| (which is far from cheap).  Oh, but unfortunately, Company doesn't
| know exaclty how many people will access that server.  No big deal;
| Franz will assume a few hundred, if not more.  Do you think that's
| something to at least worry a little about, given that you're already
| a Franz customer?  I'm just happy they changed this pricing thing
| _before_ I ever purchased anything from them.

  You're looking at a very strange situation and getting it all wrong.
  Franz Inc has always demanded royalties for commercial deployment of
  their software.  The developer license terms have always been just
  that: _developer_ licenses.  What happened was that they didn't know
  what to charge for the evolving server-based applications market, and
  for a long time didn't charge anything, despite the very clear text in
  the license agreement that you should pay them for commercial use of
  their product.  Now, did Franz Inc _sue_ you for this violation?  Did
  they become completely unreasonable and irrational when faced with a
  new condition?  No.  Neither.  Many users (me, included) observed that
  the license terms had changed for them, but that was only because they
  were abusing a loop-hole that it wouldn't take a whole lot of work to
  see was just that: a loop-hole.  You could argue until you're blue in
  the fact that Franz Inc were changing their license conditions, but
  the facts remain that (1) you were not licensed to do what you did, so
  got something for free, which they have not demanded back payment for,
  and (2) when they started to set up a price schedule for this, they
  made the same "mistake" they have made on many occasions, namely to
  give you a half-offending price up front and fail to understand why
  you walk away instead of negotiate.

| As far as I know, Franz is the _only_ Lisp vendor I'm aware of that
| prices this way, with respect to servers.  I get sickened that other
| vendors might follow along with this pricing approach.  Tell me, Tim.
| Do I have your consent in feeling this way?

  You would have had my consent in feeling this way half a year ago,
  when I was trying to recover from the serious blow that their first
  demand at unlimited server access would have on my work and on our
  business.  However, despite a very current, very disappointing case,
  reasoning with people at Franz Inc have been successful, even if time-
  consuming (we don't fit into any of their models, making the situation
  hard for us all).

  I think Franz Inc have good negotiators.  That means you have to look
  out for #1 and be aware of what you want to do and why.  This may not
  be the ideal situation for Common Lisp, but lots of people make the
  choice that they would rather stay with Franz Inc and Common Lisp, so
  it can't be _wrong_, only unsuitable to your current needs.  There is
  nothing wrong with that, either.  Sometimes, a product simply isn't
  for you.  Like, at my current target shooting skill level, I'm still
  not better than my $500 gun, and it would be a waste of money to go
  for a $1000 gun.  If and when I outperform my gun, I would upgrade.
  If you only produce small tools for small businesses, chances are you
  aren't making enough of a difference for them to be better than the
  tools you can get at a lot lower prices.  This should not piss you off
  if you are a rational individual.  It should tell you that as your
  demands increase and the value of the tool increases with them, you
  have an additional vendor to go to; you're not stuck in the low end of
  the market, having to change the programming language, which happens
  all too often to the many inferior languages.

  I'm a very big proponent of professional tools for professionals.
  That's probably because I make such tools, myself, so I know what it
  takes to succeed in a very small and well-defined area, giving me the
  opportunity to understand just how much work it is to do it in a large
  area like confomring to a standard and building an environment around
  it.  (And how easy it is to get lazy and how important it is _not_ to
  be lazy in the face of such challenges.)  When I was but an egg, I
  thought that the price of a software tool should be proportional to my
  own value -- except I didn't think of it in those terms then -- and
  thus wanted free tools because my time was basically free, too.  Now
  that my time very far from free, either for me nor my employer, I can
  no longer afford to work for free just to lower the price of the tool
  because it would cost more to do so than to buy an expensive tool.

  I'll make a simple statement and claim that the relationship between
  your own value and the price of your tools will remain fairly constant
  throughout your carreer, when you look at it in retrospect, mind you.

#:Erik
--
  ALGORITHM: a procedure for solving a mathematical problem in a finite
  number of steps that frequently involves repetition of an operation.
  ALGOREISM: a procedure for solving an electoral problem in a finite
  number of steps that frequently involves repetition of an operation.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Don Geddis  
View profile  
 More options Nov 11 2000, 2:10 am
Newsgroups: comp.lang.lisp
From: ged...@Goto.Com (Don Geddis)
Date: 11 Nov 2000 07:07:30 GMT
Local: Sat, Nov 11 2000 2:07 am
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

> * David Bakhash <ca...@alum.mit.edu>
> | After a few years of development, deliveries of various products,
> | Company suddenly notices that Franz has decided that to run a server
> | application, they will charge _not_ for the single seat, as they used
> | to, but for each person accessing the server, and at the VAR pricing
> | (which is far from cheap).  Oh, but unfortunately, Company doesn't
> | know exaclty how many people will access that server.  No big deal;
> | Franz will assume a few hundred, if not more.

Amusingly enough (?), this exact scenario happened to my previous company some
time ago.  We were properly licensed for all our development copies as well as
our commercial use.  Then we got a big contract; Franz caught a whiff of it,
and suddenly tried to force us into a major new pricing model.

Given that we were making a web server application with potentially millions
of users, Franz's proposed pricing wound up being _orders_ of magnitude more
than our previous arrangement with them.  That would have bankrupted us and
killed the deal, so under our time pressure Franz consented to merely hijack
us for as much as they could get away with, which at least allowed us to
continue in business.

But the conclusion at our company was that sole-sourcing Lisp from Franz in a
commercial setting was a disaster, given that Franz was more interested in
extracting as much blood as possible during our moment of weakness, rather than
maintaining long-term relationships.  (This, after 10+ years of using Franz
lisp by the principals!)

So: as much as I admire their technical accomplishments, in my view it is
a serious business mistake to rely on Franz for Common Lisp.  Use something
like the open source CMUCL instead, which has 95% of Common Lisp, has a much
better/faster compiler than Franz, and has no license issues.

On 11 Nov 2000 04:15:33 +0000, Erik Naggum <e...@naggum.net> wrote:

>   What happened was that they didn't know
>   what to charge for the evolving server-based applications market, and
>   for a long time didn't charge anything, despite the very clear text in
>   the license agreement that you should pay them for commercial use of
>   their product.

We had been paying them under the original license terms, which admittedly
did not anticipate server-based applications.  After basing a whole company
on this lisp with this pricing model, Franz changed it from under us the
moment they could get away with it, during a critical period when we couldn't
afford to switch to an alternate vendor.

>   Did they become completely unreasonable and irrational when faced with a
>   new condition?

In our experience: yes, they did.

>   However, despite a very current, very disappointing case,
>   reasoning with people at Franz Inc have been successful, even if time-
>   consuming (we don't fit into any of their models, making the situation
>   hard for us all).

Due to business realities, we couldn't afford the time to negotiate with
Franz.  Which made us hostage to their unreasonable demands, and they took
full advantage of it before we could recover from the shock.

I could not in good faith recommend Franz to any commercial enterprise,
and I'd say that if you feel compelled to use it, that you also invest enough
resources in being able to quickly switch to an alternate vendor in case
Franz attempts to blackmail you.

        -- Don
___________________________________________________________________________ ____
Don Geddis                    http://shop.goto.com              ged...@goto.com
VP of Technology, GoTo Shopping                              Phone 650-403-2220
1820 Gateway Drive, Suite 300, San Mateo, CA 94404             Fax 650-403-2201


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "What case problem is Franz trying to solve?" by David Bakhash
David Bakhash  
View profile  
 More options Nov 11 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: David Bakhash <ca...@alum.mit.edu>
Date: 2000/11/11
Subject: Re: What case problem is Franz trying to solve?

Erik Naggum <e...@naggum.net> writes:
>   Second, if you don't want to write symbols literally in upper-case,
>   you can (setf (readtable-case *readtable*) :invert) and have the
>   case reverted for mono-case symbols, and retained for mixed case
>   symbols.  This causes a similarly case-sensitive reader, but has the
>   advantage that symbols whose names are upper-case will read and
>   print with lower-case.

The problem I see with :invert is that it doesn't exactly solve what
Franz was trying to do from the outset.  Basically, if you use
:invert, then you get a case-sensitive reader for mixed-case
(something they want).  A symbol like 'remove-duplicates works just
great when interfacing with the :common-lisp package (and so if you
just make sure your code accessing symbols in the :common-lisp
packages is written in lower case, you're still doing good).  And even
the mixed-case stuff in foreign libraries is good!  It's the non-mixed
case in foreign libraries that jacks everything up.  But the solution
is just so simple that it strikes me as crazy that they didn't use it
instead of breaking with the standard:

 ###  Use the same :invert rules when reading foreign code ###

Why not?  Effectively, there's a symbol table that they create for
foreign libraries, right?  Only the external symbols of the foreign
stuff matters, and if that stuff uses the :invert rules, then we're
all happy.  In fact, there can be TWO alternatives for people who want
to use their Java interface:

 1) use :invert on your readtable when using the Java stuff (or, even
    more simply, just set your *readtable* to theirs when using the
    Java stuff, or copy theirs, and modify it in acceptable ways that
    don't break the interface, according to what they specify you can
    do with the readable.
 2) Use a nice, simple reader macro to escape the symbols.  Someone
    suggested #_ because it's used in MCL.  I like that.  It's not bad
    at all:

(defun foo (bar baz)
  (#_createWindow bar (#_size baz)))

Plus, with a reader macro, you can do much more than access the
symbol.  It can pretty much expand into whatever you want it to.  

Please correct me if my analysis is flawed.

>   There is nothing _natural_ about the upcasing reader.  It is merely
>   the default setting.  As long as we know that Franz Inc argues very
>   strongly that people "just" have to evaluate a few lines of code to
>   get an ANSI Common Lisp from the Modern lisp image, it seems rather
>   disingenuous to argue against changing these other default values,
>   or as if they cannot be changed as easily as building a new image.

But the other big deal is that the symbol names in the :common-lisp
package are upper case, and so it's kinda hard to deal with the case
issue while leaving those symbols upper case.

I'm actually interested to know what "Modern" programmers really want
in terms of case.  I think I'm hapy with:

 o readtable-case being set to :invert
 o *print-case* being set to :downcase
 o writing in all lower-case, all the while _knowing_ that the symbols
   in the :common-lisp package are internally uppercase.  This means
   that:

    (intern (format nil "~a-ID" fname))

  is safer than

    (intern (format nil "~a-~a" fname '#:id))

  since the *print-case* re-downcases the uppercasing done by the
  reader.  Of course, you can do:

    (intern (format nil "~a-~a" fname '#:ID))

This way, we write code in lower case (nice), get case sensetivity
(maybe nice, depending on what you want), and can interface well with
foreign libraries.

dave


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "ACL 6.0 Trial Edition ships with non ANSI reader behavior." by David Bakhash
David Bakhash  
View profile  
 More options Nov 11 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: David Bakhash <ca...@alum.mit.edu>
Date: 2000/11/11
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

ged...@Goto.Com (Don Geddis) writes:
> > * David Bakhash <ca...@alum.mit.edu>
> > | After a few years of development, deliveries of various products,
> > | Company suddenly notices that Franz has decided that to run a server
> > | application, they will charge _not_ for the single seat, as they used
> > | to, but for each person accessing the server, and at the VAR pricing
> > | (which is far from cheap).  Oh, but unfortunately, Company doesn't
> > | know exaclty how many people will access that server.  No big deal;
> > | Franz will assume a few hundred, if not more.

> Amusingly enough (?), this exact scenario happened to my previous
> company some time ago.  We were properly licensed for all our
> development copies as well as our commercial use.  Then we got a big
> contract; Franz caught a whiff of it, and suddenly tried to force us
> into a major new pricing model.

That's very closely in-line with my findings.  Probably not a nice
place to be, and so if I were, say a VC, and a software or service
company were using Lisp, I'd be very impressed.  If they said they
were using Franz, I'd be very *worried*, unless they somehow managed
to get a piece of paper, signed and notarized, which clearly stated
that there be some basic, fair pricing controls.

> But the conclusion at our company was that sole-sourcing Lisp from
> Franz in a commercial setting was a disaster, given that Franz was
> more interested in extracting as much blood as possible during our
> moment of weakness, rather than maintaining long-term relationships.
> (This, after 10+ years of using Franz lisp by the principals!)

again, this is a bug in their business model.  Do they actually think
that this information wouldn't come out?  How long did they think they
could get away with such things!  This is probably why John Foderaro
prefers one-to-one interactions; it's because eventually, in an open
forum people communicate information and the truth comes out.

> So: as much as I admire their technical accomplishments, in my view it is
> a serious business mistake to rely on Franz for Common Lisp.  Use something
> like the open source CMUCL instead, which has 95% of Common Lisp, has a much
> better/faster compiler than Franz, and has no license issues.

Yes.  I'm not so concerned with speed, as I mostly design
database-intensive applications where Lisp or Perl don't really make
all that much of a difference.  That's why I like the commercial
Lisps.  Then again, with CLORB and some of the other free CL stuff
that's coming out, maybe CMUCL isn't such a bad idea.  But (thank god)
there are a few good companies out there for Common Lisp that arn't in
the business of hanging their customers by their ankles until their
pockets are empty.

> I could not in good faith recommend Franz to any commercial
> enterprise, and I'd say that if you feel compelled to use it, that
> you also invest enough resources in being able to quickly switch to
> an alternate vendor in case Franz attempts to blackmail you.

Gosh.  I guess that even if you're dealing with the best of companies,
it's best to have this stuff pass by your legal department.  But with
a company that has a reputation of doing this, it's probably best to
just concede to the fact that there's a long-term safety
vs. short-term efficacy tradeoff, and personally, I tend to lean
toward safety.  It's part of caring about your company, your
co-workers, and your principles.  

dave

--
p.s. One thing I can just imagine right now are all the people that
     feel exactly the way you do, and have similar experiences, but
     they're so entangled in their current mess that they don't dare
     speak.  I think that while you'll certainly end up taking heat
     for your openness, a lot of people are feeling vicarious relief.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tim Bradshaw  
View profile  
 More options Nov 11 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Tim Bradshaw <t...@cley.com>
Date: 2000/11/11
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

* David Bakhash wrote:
>> 2. toggle, globally, into ansi mode and back, losing case information
>> about potentially every symbol in the system in the process.
> I think after reading a post from one of the Franz guys, you can do
> this without fear, and things will work just right.
> [...]
> No.  Someone (from Franz, I think) already explained that the
> variables involved with case are thread-specific.  You definitely hit
> something that was a possible problem, but they beat you to it, and
> it's actually kind obvious, considering how *all*
> multiprocessing-capable Lisps seems to treat the variables set by
> WITH-STANDARD-IO-SYNTAX as thread-special variables.

I think some other followups in this thread explain why this won't
work.

--tim


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
David Bakhash  
View profile  
 More options Nov 11 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: David Bakhash <ca...@alum.mit.edu>
Date: 2000/11/11
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

Tim Bradshaw <t...@cley.com> writes:
> > No.  Someone (from Franz, I think) already explained that the
> > variables involved with case are thread-specific.  You definitely hit
> > something that was a possible problem, but they beat you to it, and
> > it's actually kind obvious, considering how *all*
> > multiprocessing-capable Lisps seems to treat the variables set by
> > WITH-STANDARD-IO-SYNTAX as thread-special variables.

> I think some other followups in this thread explain why this won't
> work.

Then I'm still confused, which I guess I already knew.

But I think that between something like a #_ reader macro and the
:invert option on readtable-case, the "right" thing can be done
without sacrificing the Standard.

dave


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
cbbrowne  
View profile  
 More options Nov 11 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: cbbro...@hex.net
Date: 2000/11/11
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

Erik Naggum <e...@naggum.net> writes:
> * Christopher Browne
> | Fortunately, Emacs has a macro called "downcase-region."

>   It also downcases literal strings, comments, filenames, etc.

Yes.  The Modernist position is that they _should_ be downcased.

Next issue?

:-)
--
(concatenate 'string "cbbrowne" "@hex.net") <http://www.ntlug.org/~cbbrowne/>
"We're thinking about upgrading from SunOS 4.1.1 to SunOS 3.5."
-- Henry Spencer


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tim Bradshaw  
View profile  
 More options Nov 11 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Tim Bradshaw <t...@cley.com>
Date: 2000/11/11
Subject: Re: ACL 6.0 Trial Edition ships with non ANSI reader behavior.

Well, I don't see why this company *fears* the vendor.  It's probably
made a mistake in not making sure it has an alternative offering it
can move to, but that's not the vendor's fault.  I also don't think I
understand the licensing.  This company signed a license with the
vendor for a product.  It can continue to use that product under the
terms of that license.  If the vendor chooses to require a new license
with dramatically worse terms for a new version of the product, then
the company should sit on the old version, find a different vendor,
and move.  That happens all the time.

The situation under which I can understand fear is where the vendor
has a monopoly.  I can understand fearing Microsoft: if they do
something bad to the licensing of windows then a lot of people who
want to be in the consumer applications marked have no choice but to
keep using it.

But I can't see a market where you *have* to use Lisp: there are other
languages, and people do develop applications in them. If you choose a
language where there is only one realistic vendor, then you should
make that decision with open eyes -- at some point the vendor *is*
going to try and squeeze as much money out of you as they can without
causing you to reimplement.  Of *course* they are going to do that,
this is capitalism!  Why should they not?

--tim


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Messages 251 - 275 of 394 < Older  Newer >
« Back to Discussions « Newer topic     Older topic »