In article <_uMC2.6302$hC.2930...@news1.teleport.com>, "David B. Lamkins" <dlamk...@teleport.com> writes:
> A number of people have stated something like: "I wouldn't, or couldn't, > propose doing a project in Lisp unless Lisp had features X, Y, and Z _out of > the box_." I realize that certain political perceptions fuel this kind of > thinking. So I'm going to put on my "manager's hat" (note: I'm not really a > manager, but I occasionally play one on c.l.l. :) and ask an obvious > question: If Lisp makes you so productive, why can't you put together a > proof-of-principle prototype which either provides or works around the > missing features X, Y, and Z?
I think you've missed the point of Ken's posting. (Well, at least my interpretation of it.) What's expected as a core minimum functionality is being raised by things like Java. When you have to resort to things "scattered all over the net" for this basic functionality, it really undercuts your claim of how advanced Lisp is. "Wait a minute. Your telling me how great lisp is but it doesn't come with X and Y and I have to pay extra for Z? And I have to pay royalties for every product I ship? And you're the only one in my groupwho knows lisp?" If you have your manager's hat on straight, the answer is "Are you crazy?"
> If you spend some time looking around, you'll find a plethora of libraries > and tools scattered all over the net; properly applied, these can make your > job easy. Yes, they are _not_ standardized. Yes, you may have to invest a > small amount of effort to make them useful for your particular purpose. But > then, how well have the implementations of the "popular" standards (C++, > Java, CORBA, ODBC, and all the MS pseudo-standards) withstood the test of > time? Call these standard if you like; they still look to me like moving > targets, and I have to redo a certain amount of "standards-based" code at an > alarmingly frequent interval. It would be nice if "standard" and "stable" > were somehow related...
I think your manager's hat slipped off. To managers, "standard" and "stable" are independant variables with the more important one being "standard". Being standard is about risk avoidance. If something doesn't work but it's a standard, it's not the manager's fault, it's the standard's. Having someone or something to place the blame on is a very important consideration. It's the same force that makes management reluctant to use "libraries and tools scattered all over the net". Who can they pass the blame onto when things don't work out? Some anonymous person that you can't even find anymore? No, the blame would fall upon him and his group for using unsupported software. It doesn't matter if it might help solve his problems, the downside if it doesn't work out is too great tobe risked.
Philip Lijnzaad <lijnz...@ebi.ac.uk> writes: > On Tue, 2 Mar 1999 01:00:17 GMT, > "Kent" == Kent M Pitman <pit...@world.std.com> writes:
> Kent> The specific things I'm harping on--sockets, corba, etc. (someone > Kent> mentioned odbc) are all connective tissue. If we could connect to > Kent> other systems
> On the CORBA front, there is definitely movement. Franz has recently proposed > a (new) lisp language mapping for IDL (OMG document number > orbos/98-10-16.pdf).
You cut out the part of my discussion where I mentioned if it's not free it doesn't really address the issue.
Saying you have to pay for CORBA is saying you have to pay for anything CORBA gives you access to. If you're trying to compete against Java because Java comes with a FOO for free, it doesn't suffice to say that CORBA gives you access to Java and hence to FOO for "free", since if you have to pay for the connectivity step, it's the same as having to pay for the FOO.
Sunil Mishra <smis...@cleon.cc.gatech.edu> writes: > Philip Lijnzaad <lijnz...@ebi.ac.uk> writes:
> > Likewise, you don't really *want* sockets if you've got CORBA.
> OK, I'm not sure exactly what CORBA does. Does it support communication > over a network? If not, sockets are still necessary. Besides, not all > systems and programs support corba, and not everyone knows how to program > with it.
CORBA is, as I see it, a language-independent way of doing two things:
(1) Providing a firewall between interface and implementation, much as CLOS provides a layer that DEFSTRUCT does not, so that if you reimplement the internals, you don't have to reimplement the callers. For example, when you talk to a CORBA object, you don't know if it's really on your machine or if it's just a little communication station that every time you talk to it calls out over the network to its home base and finds out what to respond. (Of course, you probably find out by latency or net protection errors, but no equivalent system not based on CORBA does any better.)
(2) Providing (some) flexibility of hosting your object anywhere on the net. It does have a model of being able to address a particular object owned by a particular (actual or virtual) process on a particular machine.
CORBA was designed by people (some with a Lisp background) who did understand object-oriented programming and who had a serious intent to do a multi-language binding without leaving some languages out. It does a credible job of creating a system that is at least capable of being cast into many languages and hiding a reasonable amount of messy details so you don't have to know the location (sort of), language, or low-level data format details (wordsize, byte order, endianness, etc.) of the other objects you're working with. The fact that it hides the language and other details is a plus for Lisp since clients don't have to know how you got them the answers, just that you did.
I have taken a course in CORBA but not to date programmed it, so my knowledge is from having heard it explained and seeing demonstrations done. If I'm in error on any of this, someone should correct me. CORBA *is* communication over a network. Whether it also offers such communication as a first class service a different matter, sort of like how Lisp doesn't offer pointers as a datatype even though it's all pointers, or how a database isn't about file access even though all it does is access files. My impression is that to the extent CORBA offers network access other than itself, it's as a layered service someone put atop it, not by virtue of its intended nature. But, nevertheless, just as someone could reasonably make the claim that applications don't need files for a great many applications if they have databasees, I suspect CORBA people could reasonably make the claim that you don't need the raw net for many things if you have CORBA. CORBA is one structured piece of a network puzzle, and it would be the entire piece if everyone used it exclusively. To the extent that they don't, of course, you need other things or layered CORBA componentware. (And I suppose if someone left out the componentware you could offer the service of connecting to the net from your machine via a CORBA program that accessed your machine via the net... :-)
Anyway, it's all about packaging. As far as I know, all of the systems we're talking about not having socket libraries do have foreign function call and that, I assume, implicitly supports sockets--so it's really just about the raw power. Just about the packaging.
Hope this helps frame the CORBA discussion for you.
Philip Lijnzaad <lijnz...@ebi.ac.uk> writes: > If there is a CORBA language mapping, a foreign function interface > essentially becomes unnecessary. In fact, CORBA *is* the ultimate foreign > function interface. Imagine SmallTalk, Cobol, C, Python and Lisp programs all > talking to each other; all possible in CORBA.
Hardly. What your talking about is an ideation of CORBA that is quite a bit removed from it's actuality, or even possibility. I prefer my ALIEN interface in CMUCL immensly to CORBA and the IDL bullshit when I want to talk to a C or other language Library. I would not want to talk to my FFT library via CORBA. I would rather use RMI with all of it's problems, if I wanna ship Java classes around, rather than wait for some molasses like RFP approval proccess from the OMG to decide how they wanna pack them up.
> Likewise, you don't really *want* sockets if you've got CORBA.
CORBA does not eclipse other forms of communications between processes, not by a long shot.
> In summary, I would argue that CORBA support (a standard IDL->Lisp mapping > and at least one ORB) is the only thing really needed to counter the > lack-of-connectivity arguments.
I would argue that you have CORBA on the brain. It's ok, I did too once.
-- Craig Brozefsky <cr...@red-bean.com> Less matter, more form! - Bruno Schulz
In article <u7k8x0nfxa....@ebi.ac.uk> , Philip Lijnzaad <lijnz...@ebi.ac.uk> wrote:
> On Tue, 2 Mar 1999 01:00:17 GMT, > "Kent" == Kent M Pitman <pit...@world.std.com> writes:
> Kent> The specific things I'm harping on--sockets, corba, etc. (someone > Kent> mentioned odbc) are all connective tissue. If we could connect to > Kent> other systems
> On the CORBA front, there is definitely movement. Franz has recently proposed > a (new) lisp language mapping for IDL (OMG document number > orbos/98-10-16.pdf).
> If there is a CORBA language mapping, a foreign function interface > essentially becomes unnecessary. In fact, CORBA *is* the ultimate foreign > function interface. Imagine SmallTalk, Cobol, C, Python and Lisp programs all > talking to each other; all possible in CORBA.
CORBA and FFI address two different problems. CORBA will not replace FFI capability. What are you going to do when you want to call an entry point in a library? Wrap the library so you can make a CORBA call? The last time I looked (about a year and a half ago) a CORBA method invocation cost a _lot_ more than a simple function call.
> Likewise, you don't really *want* sockets if you've got CORBA.
Maybe I've overlooked some context to this discussion that makes your assertion seem less hyperbolic. But what about the existing protocols that are already implemented via the facilities (ports, addresses, and transports) provided by a simpler network layer? Will CORBA subsume these, as well?
> I imagine that the idl->Lisp language mapping is a very important development > (and could actually be the first lisp-related standard since a long time).
> In summary, I would argue that CORBA support (a standard IDL->Lisp mapping > and at least one ORB) is the only thing really needed to counter the > lack-of-connectivity arguments.
Discussion subject changed to "ISO ISLisp (was: Emacs and CL (was Re: More LispOS talk (was Re: Lisp subverts the world (was Re: ints vs fixnums (was Re: Java ... (was Re: ... (was Re: ...)))))))" by Fernando D. Mato Mira
Christopher Browne wrote: > ISO ISLisp may be nice in some ways; it is not clear that anyone has yet > implemented it. (I won't be offended if someone supplies the URL to > an example...)
Well, there was the now defunct ILOG Tal (descendant of LeLisp), which was something of an `extended ISO Lisp'. It was a nice product. The automatic dependency tracking reminded me of Eiffel. Quite cool after you got used to it.
There's currently something called OpenLisp but I have not checked it:
mike...@mikemac.com (Mike McDonald) writes: > Being standard is about risk avoidance. If something doesn't work > but it's a standard, it's not the manager's fault, it's the > standard's. Having someone or something to place the blame on is a > very important consideration. It's the same force that makes > management reluctant to use "libraries and tools scattered all over > the net". Who can they pass the blame onto when things don't work > out? Some anonymous person that you can't even find anymore? No, the > blame would fall upon him and his group for using unsupported > software. It doesn't matter if it might help solve his problems, the > downside if it doesn't work out is too great tobe risked.
Just about any Microsoft license (and certainly others) disclaim just as much liability as any free software license I've seen. There was a thing on Slashdot about this a few months back. Some Microsoft database thing had a serious bug that could cause data to be corrupted in not-too-out-of-the-ordinary usage. The licensing terms prevented companies from taking legal action (and there were significant clean-up costs in some cases).
A number of lawyers jumped in to the discussion saying just how much of the crap in those licenses was really enforcable. But still, the point remains.
Christopher
[OT: By the way, it was recently posted in another group that Microsoft is dumping your hardware ethernet address encoded in Unicode into every Word .DOC file you save. I sent a thing to Slashdot about it a few minutes ago. It will probably get posted (A lot of this Pentium III ID number stuff is getting posted, and Microsoft has been at it a lot longer apparently).]
Discussion subject changed to "Emacs and CL (was Re: More LispOS talk (was Re: Lisp subverts the world (was Re: ints vs fixnums (was Re: Java ... (was Re: ... (was Re: ...))))))" by Barry Margolin
In article <lwyalggs51....@copernico.parades.rm.cnr.it>, Marco Antoniotti <marc...@copernico.parades.rm.cnr.it> wrote:
>cbbro...@news.hex.net (Christopher Browne) writes: >> Those are all properties that are of non-zero value.
>They are, but CL is still better. The fact that RMS decided to go with >Scheme for Emacs is a relatively "bad thing", but IMHO a minor one in the >grand lisp of things. :)
But the issue you're responding to isn't Scheme vs CL, it's Scheme vs. ISLISP. RMS is clearly biased against CL. Given the constraint that CL isn't an option, I would probably choose Scheme over ISLISP as well. ISLISP essentially came out of nowhere, just to fill a political niche (a number of members of the ISO Lisp technical committee didn't want to adopt CL as the ISO standard, so they created a brand new dialect just so there would be an alternative).
In general, the GNU project decided a couple of years ago that they wanted to make Scheme the basis of their extension languages across the board, and they developed the GUILE implementation to support this effort. Using it for Emacs would be consistent with this plan.
-- Barry Margolin, bar...@bbnplanet.com GTE Internetworking, Powered by BBN, 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.
* Kent M Pitman <pit...@world.std.com> | (Of course, you probably find out by latency or net protection errors, | but no equivalent system not based on CORBA does any better.)
dealing with networking problems is so complex that an application really cannot afford to trust a pre-packaged solution that does not give very good access to the error conditions. I've spent hundreds of hours giving Allegro CL's socket package and my protocol on top of it graceful failure modes. it's really hard work. judging from what I see from people who just use some random pre-packaged library, this is not an area that people tend to worry about, hence we get very dangerous solutions that work in a perfect world, but not in the hostile world we actually live in. what little I know about CORBA has not shown me a condition system that is capable of what I need from a basically unreliable universe where your application no longers dies when the machine dies, it may get wedged in some zombie state when some machine you didn't know about dies, like a router, a firewall, or simply someone messing up routing tables, etc. stuff like happens all the more often the more you are interconnected, and a distributed object system is no good if it doesn't deal with such problems gracefully, in my opinion.
* Kent M Pitman <pit...@world.std.com> | You cut out the part of my discussion where I mentioned if it's not free | it doesn't really address the issue.
while I'm sure consumers want anything for free if they could get it, I'm a little concerned that people think there's business sense in providing all of these "necessities" for free. you could argue increased sales and make such freebies into marketing vehicles, but you really can't argue that it's part of the standard and that vendors have to provide it. in all this concern for user's needs, I frankly see much too little concern for whoever is _actually_ going to pay for them, given that the users are not even remotely interested in doing so.
I'm probably among the old school of "free software" in that I respect that people will want to get paid for their efforts, that one has to expect to pay real money to develop software, and that it should cost money to have it supported, but that the _freedom_ of access to the source code should not therefore necessarily be reduced. I do not think the drive for "free as in gratis software" is healthy, and I actually think that the more people demand from the vendors without giving them any sort of incentive to do fulfill their demands, the less willing they will be in fulfilling them. catering to thankless, non-paying demanders is not good business.
besides, it's not as if this is rocket science. if you want it for free, I say: drum up the people who are willing to do it for free, license it so people can actually use it, and _chip_in_, don't just _demand_ that others do stuff for you. programming is, after all, about bringing new stuff into existence that you see a need for.
of course, I'm so happy that I don't _have_ to do a lot of work myself that I'm fully willing to pay for access to it. I guess this makes me a heretic, because the people I tell this to have these weird ideas that I'm opposed to free software and "summarize" my position as "make, buy, or shut up". apparently, the concept of creating something yourself to give it away is _completely_ foreign to these whining losers, and then I have even more reason to believe that they have no concept of how to make the vendors do what they think is a smart thing to do, namely create something they need and just give it to them.
how hard _can_ it be to write, say, a de facto standard socket interface for Common Lisp and make implementations for all Common Lisps available to the Lisp community for free? those who want it the most sound like it's an insult _not_ to provide them with something that trivial.
in brief: if you think free software is so great, make sure it wins by actually making the effort to make it available to everybody. meanwhile, I want to get paid well for my work. my give-it-away-to-thankless-losers time is history, but I'm sure there's business sense to _some_ people to do all this stuff for free or you wouldn't demand it of others, right? nobody can be so egoistic and self-centered as to completely ignore what it takes to create something they want, can they?
BTW, I think free software is wonderful, as long as it doesn't mean that people demand to get what I'm doing for them without compensating me, and I cannot in good conscience demand anything like that from others, either.
yeah, I'd love to get everything for free, too, like great food, a socket interface, great new hardware, CORBA support, fast Internet connectivity, and of course entire Common Lisp systems, but I'm a little more realistic than to expect to be able to _demand_ it. if somebody goes ahead and makes any of this stuff available for free, I'll be looking for attached strings and then I'll be happy if it's _actually_ free. in practice, however, nothing is ever truly devoid of costs, and I sometimes prefer to pay money and get off the hook. but that's just me, I guess.
however, I seem to recall several important speeches on copyright issues for contributed stories to a "Lisp Lore Library" or something, and I fail to see how software doesn't incur the same conditions and concerns.
Discussion subject changed to "Emacs and CL (was Re: More LispOS talk (was Re: Lisp subverts the world (was Re: ints vs fixnums (was Re: Java ... (was Re: ... (was Re: ...))))))" by Erik Naggum
* Sam Steingold <s...@goems.com> | With all due respect, this is not quite true, at least it needs a | clarification. | | CLISP is ~800k lisp.run + ~1,000k lispinit.mem (with UNICODE; or ~800k | 8bit) = 1,8M (or 1,6M) on my linux box. On the same platform, the guile | executable is 4k and libguile.so is < 500k. I agree that any reasonable | program will have to extend guile significantly, thus probably pushing | its size above that of CLISP.
unfortunately, memory management and data matters quite a lot.
In article <3129294462194...@naggum.no>, Erik Naggum <e...@naggum.no> wrote: > I get a little depressed when so few people are ready to _contribute_ > free stuff before they _want_ things. if you want a standard socket > interface and it doesn't exist, go ahead and _write_ it, damnit.
We're not talking legal liability here, but career CYA type of liability. Legal liability is difficult to ascertain (and enforce) almost anywhere in software. But, in almost all organizations, an excuse of "It's those damn Microsoft (or standard technology) tools," is much less likely to be met with a response of "Then why did you use them?" than the statement "It's those damn XXX tools." (where XXX can be filled in with any other vendor's - or technology's - name). I don't like or condone this fact. It makes using "non-standard" tools and tools by smaller vendors much more difficult than it should be. Microsoft's tools' quality is not that great so as to make my life easy by choosing them - in fact, I can safely say that there are many better alternatives. Nonetheless, Microsoft has done a great job of marketing where it counts - the level where people can break an underling's career for NOT using their tools. That's why Adrian's first rule of alternative tool use is: "Don't screw up."
Christopher R. Barry wrote in message <87zp5vlmqz.fsf...@2xtreme.net>... >mike...@mikemac.com (Mike McDonald) writes:
>> Being standard is about risk avoidance. If something doesn't work >> but it's a standard, it's not the manager's fault, it's the >> standard's. Having someone or something to place the blame on is a >> very important consideration. It's the same force that makes >> management reluctant to use "libraries and tools scattered all over >> the net". Who can they pass the blame onto when things don't work >> out? Some anonymous person that you can't even find anymore? No, the >> blame would fall upon him and his group for using unsupported >> software. It doesn't matter if it might help solve his problems, the >> downside if it doesn't work out is too great tobe risked.
>Just about any Microsoft license (and certainly others) disclaim just >as much liability as any free software license I've seen. There was a >thing on Slashdot about this a few months back. Some Microsoft >database thing had a serious bug that could cause data to be corrupted >in not-too-out-of-the-ordinary usage. The licensing terms prevented >companies from taking legal action (and there were significant >clean-up costs in some cases).
>A number of lawyers jumped in to the discussion saying just how much >of the crap in those licenses was really enforcable. But still, the >point remains.
>Christopher
>[OT: By the way, it was recently posted in another group that >Microsoft is dumping your hardware ethernet address encoded in Unicode >into every Word .DOC file you save. I sent a thing to Slashdot about >it a few minutes ago. It will probably get posted (A lot of this >Pentium III ID number stuff is getting posted, and Microsoft has been >at it a lot longer apparently).]
(Mike McDonald) wrote: > In article <_uMC2.6302$hC.2930...@news1.teleport.com>, > "David B. Lamkins" <dlamk...@teleport.com> writes:
>> A number of people have stated something like: "I wouldn't, or couldn't, >> propose doing a project in Lisp unless Lisp had features X, Y, and Z _out of >> the box_." I realize that certain political perceptions fuel this kind of >> thinking. So I'm going to put on my "manager's hat" (note: I'm not really a >> manager, but I occasionally play one on c.l.l. :) and ask an obvious >> question: If Lisp makes you so productive, why can't you put together a >> proof-of-principle prototype which either provides or works around the >> missing features X, Y, and Z?
> I think you've missed the point of Ken's posting. (Well, at least my > interpretation of it.) What's expected as a core minimum functionality is > being raised by things like Java. When you have to resort to things "scattered > all over the net" for this basic functionality, it really undercuts your claim > of how advanced Lisp is. "Wait a minute. Your telling me how great lisp is but > it doesn't come with X and Y and I have to pay extra for Z? And I have to pay > royalties for every product I ship? And you're the only one in my groupwho > knows lisp?" If you have your manager's hat on straight, the answer is "Are > you crazy?"
No, I understand the point. And I disagree.
You're arguing that a manager will prefer to optimize relatively small recurring expenses for software acquisitions, upgrades and support. And what if in so doing, (s)he increases the larger -- but less tangible -- costs of development salaries, lost time to market, customer support costs, etc? Commercial development practices virtually guarantee that a manager will behave in such a manner. The rush to market guarantees that no one will keep track of life-cycle expenses. So the manager focuses on the things that are controllable, like cost items that are down in the noise dollar-wise, but can be tracked just by pulling an invoice. Can you say "micro-management?"
I certainly agree with you that most managers behave in this manner. But I don't approve of the behavior, and don't agree that the industry should (continue to) cater to this style of management.
>> If you spend some time looking around, you'll find a plethora of libraries >> and tools scattered all over the net; properly applied, these can make your >> job easy. Yes, they are _not_ standardized. Yes, you may have to invest a >> small amount of effort to make them useful for your particular purpose. But >> then, how well have the implementations of the "popular" standards (C++, >> Java, CORBA, ODBC, and all the MS pseudo-standards) withstood the test of >> time? Call these standard if you like; they still look to me like moving >> targets, and I have to redo a certain amount of "standards-based" code at an >> alarmingly frequent interval. It would be nice if "standard" and "stable" >> were somehow related...
> I think your manager's hat slipped off. To managers, "standard" and "stable" > are independant variables with the more important one being "standard". Being > standard is about risk avoidance. If something doesn't work but it's a > standard, it's not the manager's fault, it's the standard's. Having someone or > something to place the blame on is a very important consideration. It's the > same force that makes management reluctant to use "libraries and tools > scattered all over the net". Who can they pass the blame onto when things > don't work out? Some anonymous person that you can't even find anymore? No, > the blame would fall upon him and his group for using unsupported software. It > doesn't matter if it might help solve his problems, the downside if it doesn't > work out is too great tobe risked.
Just as there are different styles of programming, there are different styles of management.
One -- the more common -- minimizes personal risk in the way you've described. My cynical summary of this approach is this: "Don't think too much about solving the real problem, because you probably won't succeed. Instead, choose the approach that any 'reasonable' person in your position would choose. That way you are blameless if you fail, because anyone else would have failed the same way." I think that that this is the management style to which you refer.
The other management approach -- thought by many in this industry to be the stuff of myth -- accepts a challenge with the desire to succeed. These managers evaluate everything that could help them achieve the desired result. Sometimes they go with "standard", and with "stable" at other times. They educate both their staff and their superiors as to what they are attempting to accomplish by choosing a particular approach. If they succeed, they usually succeed in a big way. And if they fail, they rarely fail worse than their "keep a scapegoat handy" counterparts.
(BTW, in twenty years, working for six companies, reporting to more managers than I can keep track of, I've had exactly two managers that used the latter style.)
In article <L53D2.7491$hC.3440...@news1.teleport.com>, "David B. Lamkins" <dlamk...@teleport.com> writes:
> In article <7bh5bu$88...@spitting-spider.aracnet.com> , mike...@mikemac.com > (Mike McDonald) wrote: > I certainly agree with you that most managers behave in this manner. But I > don't approve of the behavior, and don't agree that the industry should > (continue to) cater to this style of management.
Ahh, you're describing what should be, not what is. I agree with this by the way. Unfortunately, I have a very small influence on my manager's behavior. So until I get appointed Benevolent Dictator, I'm probably going to have to deal with this type of manager.
> Just as there are different styles of programming, there are different > styles of management.
Didn't mean to imply there weren't others. Just that this seems to be the most prevelant, in my experience.
> The other management approach -- thought by many in this industry to be the > stuff of myth -- accepts a challenge with the desire to succeed. These > managers evaluate everything that could help them achieve the desired > result. Sometimes they go with "standard", and with "stable" at other > times. They educate both their staff and their superiors as to what they > are attempting to accomplish by choosing a particular approach. If they > succeed, they usually succeed in a big way. And if they fail, they rarely > fail worse than their "keep a scapegoat handy" counterparts.
> (BTW, in twenty years, working for six companies, reporting to more managers > than I can keep track of, I've had exactly two managers that used the latter > style.)
In my 25 years, I've had one. I think that's what the refer to as "statistically insignificant". :-)
Discussion subject changed to "Emacs and CL (was Re: More LispOS talk (was Re: Lisp subverts the world (was Re: ints vs fixnums (was Re: Java ... (was Re: ... (was Re: ...))))))" by Erik Naggum
* Sam Steingold <s...@goems.com> | could you please be more specific?
fire up GUILE, CLISP, and any other Common Lisp implementations you have at hand. run them for a while. do real stuff. watch how much system memory the heaps consume. watch GUILE lose. fire up 100 copies of each of them, and watch code space being insignificant compared to heap space.
the U in GUILE is for Ubiquitous. there's going to be _many_ copies of the GUILE heap on a system, one in each process, just like the C library. in contrast, you're unlikely to exhibit the same behavior with a Common Lisp system, which users load stuff into instead of running a new process with its own heap all the time.
the problem with retrofitting a Lisp or Scheme onto Unix is that Unix really is a C programming environment, and using the C mindset when building Lisp or Scheme applications or systems on top of it loses. the same is true of any other programming language with an environment that takes the role of Unix for C.
Erik Naggum <e...@naggum.no> writes: > * Kent M Pitman <pit...@world.std.com> > | You cut out the part of my discussion where I mentioned if it's not free > | it doesn't really address the issue.
> while I'm sure consumers want anything for free if they could get it, I'm > a little concerned that people think there's business sense in providing > all of these "necessities" for free. you could argue increased sales and > make such freebies into marketing vehicles, but you really can't argue > that it's part of the standard and that vendors have to provide it. in > all this concern for user's needs, I frankly see much too little concern > for whoever is _actually_ going to pay for them, given that the users are > not even remotely interested in doing so.
At this point in time, I believe that the vendors have some pieces of software well developed, which they actually charge premiums for distribution. This is a repackaging cost. I do not buy the argument that there are still develepment costs to include CORBA support (or MK:DEFSYSTEM) in the standard distributions (i.e. those affordable by the individual - i.e. in the 456.85 Euro range) of Lispworks and MCL and ACL.
Not doing so is short-sighted, as KMP has correctly pointed out with very good arguments.
Note also that at this point, giving away these freebies is *not* (or it shouldn't be) a marketing gimmick. It is the only way to expand your user base. Assuming that that is what you want to do.
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
[Subject was ``Re: Barriers to Lisp acceptance - a "survey" question'' in comp.lang.lisp, but this sub-thread has drifted *way* off-topic and off-group, even. So followups to comp.lang.scheme...]
+--------------- | Rob Warnock <r...@rigden.engr.sgi.com> wrote: | >Seriously, though, the "fluid-let" style [or anything similar, based on | >dynamic-wind, say] *implies* a non-tail call, yes? 'Cause you want the | >value to be set *back*, yes? So failing to preserve tail-call optimization | >shouldn't come as a surprise. | | Not exactly. The top-level binding must, of course, be restored, but | the intermediate bindings you make each time around the loop need not | be restored. So, if the implementation is clever enough, a fluid-let | could be tail-recursive. +---------------
Yes, while replying to a similar side message from Dorai Sitaram, I finally realized that both of you are correct. My apologies for not seeing it sooner.
One way might be for the fluid-let to look at its own continuation, and if that continuation is some sort of magic "fluid-let frame" that contains a "restore" of the variable it's about to change, just pass that continuation on to the body of the fluid-let without building a new "restore" frame. And by hanging a *set* of variables on the magic continuation, you could even handle things like the following with a small stack (though there are some subtleties to worry about in case one of those intermediate functions, like "perverse-func" below, captures *its* continuation):
+--------------- | It is probably unreasonable to expect this if fluid-let is implemented | in terms of dynamic-wind (maybe not, though. If the dynamic-wind were | tail-called, and it's entry and exit thunks satisfied certain properties, | perhaps....) +---------------
Well, I haven't thought that part completely through, but those "certain properties" would have to be *awfully* restrictive if you're going to be able guarantee that you can "fold" multiple logical invocations of the "after" thunks into *one* invocation. [Folding multiple "restore"s of a variable is *trivial*, by comparison...]
-Rob
----- Rob Warnock, 8L-855 r...@sgi.com Applied Networking http://reality.sgi.com/rpw3/ Silicon Graphics, Inc. Phone: 650-933-1673 2011 N. Shoreline Blvd. FAX: 650-964-0811 Mountain View, CA 94043 PP-ASEL-IA
On 02 Mar 1999 21:51:04 +0000, "Erik" == Erik Naggum <e...@naggum.no> writes:
Erik> * Kent M Pitman <pit...@world.std.com> Erik> | (Of course, you probably find out by latency or net protection errors, Erik> | but no equivalent system not based on CORBA does any better.)
Erik> dealing with networking problems is so complex that an application really Erik> cannot afford to trust a pre-packaged solution that does not give very Erik> good access to the error conditions.
mm ... not everybody will (have to) go to that level. The networking part of CORBA is provided by the ORB (Object Request Broker), and if the ORB gets things wrong (which is sadly not too uncommon), you raise hell with the ORB vendor. Depending on the ORB, you have more or less access to error conditions and the like. From what I have seen, all this is at a higher abstraction level than socket libraries.
Erik> what little I know about CORBA has not shown me a condition system Erik> that is capable of what I need from a basically unreliable universe where Erik> your application no longers dies when the machine dies, it may get wedged Erik> in some zombie state when some machine you didn't know about dies, like a Erik> router, a firewall, or simply someone messing up routing tables, etc. Erik> stuff like happens all the more often the more you are interconnected, Erik> and a distributed object system is no good if it doesn't deal with such Erik> problems gracefully, in my opinion.
yes, absolutely. CORBA provides some of this functionality: a client will simply get an exception (which it can and should handle) if the server cannot be reached for whatever reason; it needn't die or zombify or anything. In addition, IDL (the lingua franca) allows user-defined exceptions on any user-defined methods.
Apart from this I think CORBA is the right kind of framework and abstraction for doing distributed objects (even if imperfectly/incompletely implemented).
Philip -- No electrons were harmed during the composition or transfer of this message --------------------------------------------------------------------------- -- Philip Lijnzaad, lijnz...@ebi.ac.uk | European Bioinformatics Institute +44 (0)1223 49 4639 | Wellcome Trust Genome Campus, Hinxton +44 (0)1223 49 4468 (fax) | Cambridgeshire CB10 1SD, GREAT BRITAIN PGP fingerprint: E1 03 BF 80 94 61 B6 FC 50 3D 1F 64 40 75 FB 53
I think this is not too bad, and wouldn't be surprised if it gets better.
Philip -- No electrons were harmed during the composition or transfer of this message --------------------------------------------------------------------------- -- Philip Lijnzaad, lijnz...@ebi.ac.uk | European Bioinformatics Institute +44 (0)1223 49 4639 | Wellcome Trust Genome Campus, Hinxton +44 (0)1223 49 4468 (fax) | Cambridgeshire CB10 1SD, GREAT BRITAIN PGP fingerprint: E1 03 BF 80 94 61 B6 FC 50 3D 1F 64 40 75 FB 53
On Tue, 02 Mar 1999 17:27:04 GMT, "Craig" == Craig Brozefsky <cr...@red-bean.com> writes:
Craig> Philip Lijnzaad <lijnz...@ebi.ac.uk> writes:
>> If there is a CORBA language mapping, a foreign function interface >> essentially becomes unnecessary. In fact, CORBA *is* the ultimate foreign >> function interface. Imagine SmallTalk, Cobol, C, Python and Lisp programs all >> talking to each other; all possible in CORBA.
Craig> Hardly. What your talking about is an ideation of CORBA that is quite Craig> a bit removed from it's actuality, or even possibility.
yes, I was trolling a bit here. This is currently far removed from reality, but the principle holds: in an ideal world CORBA, could theoretically do this. No other technology can make this claim.
Craig> I prefer my Craig> ALIEN interface in CMUCL immensly to CORBA and the IDL bullshit when I Craig> want to talk to a C or other language Library. I would not Craig> want to talk to my FFT library via CORBA. I would rather use RMI with Craig> all of it's problems,
This is another java compatibility thread I'm afraid ...
Craig> if I wanna ship Java classes around,
instances or classes? Currently, CORBA only provides access to remote instances; it doesn't ship them around by default. But you can implement you objects such that they can be shipped off-site (using the LifeCycle specification). There's a new spec called objects-by-value which offers the shipping of object state by default, too. Not implemented yet, of course.
Craig> rather than wait for some molasses like RFP approval proccess from the Craig> OMG to decide how they wanna pack them up.
OK, the standardization process can be a bit tedious, but it is very open, not too slow, and seems to have enough momentum. It certainly didn't stop the KDE and Gnome folks to use CORBA as their infrastructure.
>> Likewise, you don't really *want* sockets if you've got CORBA.
Craig> CORBA does not eclipse other forms of communications between processes, Craig> not by a long shot.
I don't talk about eclipsing, but maintain IF you can use CORBA, THEN sockets are not overly necessary anymore. I know of no one who actually mixes the two. But I concede that CORBA would be lost without, e.g. http. Still interesting to note that Java's RMI now uses CORBA's iiop protocol. This unifies rmi/corba against DCOM, usoft's version of distributed computing.
Craig> I would argue that you have CORBA on the brain. It's ok, I did too once.
I'm not married to CORBA, but thought that it could be illuminating to mention CORBA as an alternative in the foreign function interface debate.
Philip
-- No electrons were harmed during the composition or transfer of this message --------------------------------------------------------------------------- -- Philip Lijnzaad, lijnz...@ebi.ac.uk | European Bioinformatics Institute +44 (0)1223 49 4639 | Wellcome Trust Genome Campus, Hinxton +44 (0)1223 49 4468 (fax) | Cambridgeshire CB10 1SD, GREAT BRITAIN PGP fingerprint: E1 03 BF 80 94 61 B6 FC 50 3D 1F 64 40 75 FB 53
On Tue, 02 Mar 1999 09:17:13 -0800, "David" == David B Lamkins <dlamk...@teleport.com> writes:
David> CORBA and FFI address two different problems. CORBA will not replace David> FFI capability. What are you going to do when you want to call an David> entry point in a library? Wrap the library so you can make a CORBA David> call?
yes, that would be the idea.
David> The last time I looked (about a year and a half ago) a CORBA David> method invocation cost a _lot_ more than a simple function call.
yes, that's still the case. For many purposes, this would be good enough.
>> Likewise, you don't really *want* sockets if you've got CORBA.
David> Maybe I've overlooked some context to this discussion that makes your David> assertion seem less hyperbolic. But what about the existing protocols David> that are already implemented via the facilities (ports, addresses, and David> transports) provided by a simpler network layer? Will CORBA subsume David> these, as well?
not subsume, but use them (iiop is based on tcp/ip, so it uses IP addresses, ports and tcp transport). Turns out many people prefer the higher abstraction layer of CORBA over sockets, and I would argue that this is a Good Thing. Based on numerous posts in comp.object.corba, people who have used CORBA and sockets vastly prefer CORBA over sockets. This includes myself, although I have no great experience with sockets.
Philip
-- No electrons were harmed during the composition or transfer of this message --------------------------------------------------------------------------- -- Philip Lijnzaad, lijnz...@ebi.ac.uk | European Bioinformatics Institute +44 (0)1223 49 4639 | Wellcome Trust Genome Campus, Hinxton +44 (0)1223 49 4468 (fax) | Cambridgeshire CB10 1SD, GREAT BRITAIN PGP fingerprint: E1 03 BF 80 94 61 B6 FC 50 3D 1F 64 40 75 FB 53
> Anyway, it's all about packaging. As far as I know, all of the > systems we're talking about not having socket libraries do have > foreign function call and that, I assume, implicitly supports > sockets--so it's really just about the raw power. Just about the > packaging.
I think that's not really clear. Of course it depends what you mean by `have soickets', but if you want things to work such that the Unix (or whatever) file descriptors get suitably wrapped up in Lisp streams, such that CLOSE & so on work right for them, and so that once you've done the initial startup stuff you don't have to know if there's a socket there or a file, then I think that is asking rather more than foreign functions, unfortunately. And that *is* how sockets look from the C point of view, so you want at least that.
I only realised this when I was talking to someone the other day and rashly said that sockets are obviously not hard in CL, when what I meant was they're not hard to do in a portable way if you already have some support for them...
Of course a CLOSified stream system would make this much easier (:-).
Daniel Finster <d...@nanofab.utdallas.edu> writes:
> What I meant was, 8 year old Lisp hardware running the 8+ year old Lisp > software still compares quite favorably. Obviously the raw speeds of > any of todays processors totally blows the Ivory away. But when the > Ivory was made, it really blew away the competition. A new Lisp > processor made with modern technology would blow away any Alpha, I'm > sure.
No, it really didn't. I don't know the full history of relative performance, but I remember when the people who made the machines I used (risc based minis) sent us blurb in 86 or 87 showing their machines, with kcl, outperforming the current symbolics offering (which wouldn't have been ivory then, but I'm pretty sure that they were never really competitive after 87 or so).
Anyway, Alpha *is* a new lisp processor made with modern technology! Lots of tag bits on a 64bit machine, and you can probably get really good parallel tag checking given multiple execution units.
Really, I think yearning after the magic hardware fix is a huge mistake. The interesting thing about LispM's was always the software I think (well, unless you collect odd microcoded machines, like me...).