With a mighty <3076789076329...@naggum.no>, e...@naggum.no uttered these wise words...
> puerile impatience is deadly unless you have parents that do the long-range > planning for you. the Microsoft market is parented solely by Bill Gates, > and he does _not_ plan for _your_ best interests. if he could kill Lisp, > he would, and _that's_ the reason Lisp vendors should not flirt with him. > he's made it abundantly clear already that he has _no_ soft spot for good > ideas or elegant design. it's time people understand that he is no good. > and like all predators that run out of prey, he'll starve to death, soon.
Ooh, lovely. Another flame.
So you're saying that I'm using the wrong OS? What should I be using, then? Will you pay me to use it and write code for it?
I'll make it clear for you. Windows people make a big distinction between an EXE and a DLL. Perhaps this distinction is a forced one, but it exists. There are development tools that make the distinction, and which complain if you give them the wrong type of module. Also, when you load a module, it knows what type of module it is, and a DLL does very different things to an EXE. The distinction may be forced, but when you can't control where the event loop goes, or the way in which the module is initialised, the way in which you can use that module become somewhat limited.
So, could you please tell me how I turn a WinMain function in somebody else's code into a LibMain function? Do you have any idea what I'm talking about? Can you do more than attempt to divert this thread into another subject? It's obviously one that you're good at discussing, as you've done little here but rant about Bill Gates.
Thanks. -- <URL:http://www.wildcard.demon.co.uk/> You can never browse enough cybes for 4.5 years, now plain old mcr Please note: my email address is gubbish
* Martin Rodgers | So you're saying that I'm using the wrong OS?
no, Martin, that is not what I'm saying. please try to understand your native language for a change.
I'm actually saying that whatever OS Martin Rodgers is using (be it Windows or some Unix or whatever) is utterly irrelevant for any public discussion of anything whatsoever that has any bearing at all on anything outside of his cubicle and his relationship with his colleagues. Martin Rodgers' choice (or lack thereof) of OS is as insignificant to the future of Lisp as the fact that my second 19" Sun M monitor burned the other day, and that the spare I received from a friend also burned. yes, I used to run a dedicated Emacs with Allegro Common Lisp on that display. of course, I'm very sad about this loss, and I have to find a way to either use virtual displays or crowd the Emacs I run Allegro in into the first display which is full of status-displaying windows, ZenIRC, Gnus, etc, if I can't locate another monitor that's still in good shape. should I quit using Lisp, now that I have had a small setback? should I sit down and cry that the world is harsh and uninhabitable? and are _you_ getting bored yet?
you see, Martin, the above irrelevant rant is the level on which you're talking to us about Windows and DLLs, Martin. irrelevant technical details from your immediate surroundings that have no trace of value to discuss with anybody. who _cares_ what Martin Rodgers suffers through in his working day? who _cares_ what other Windows victims suffer through in their working day? who _cares_ how many gazillions of Windows victims there are as long as there are enough of the _relevant_ people to keep the Lisp vendors happy and growing?
now, of course it would be useful if one could program on a real computer and deploy on the GAIDS-infected wastes, but hey, if somebody actually has the money to put where their mouth is, it'll happen. as long as some whining loser lost somewhere in Britain makes a lot of noise about it, but refuses to buy it when it comes out (ooh, it's too expensive for my toy budget!), refuses to pay for the development (oh, no, I didn't mean _I_ should help them), and effectively argues against people who do make a living using Lisp in non-Windows environments and even against those who make a living in the Windows world _without_ that magic DLL thingy (oh, that's not the "real world"), _why_ should anyone do it?
and _if_ somebody does it, what will Martin Rodgers complain about next? you see, Martin, you don't do anything constructive here at all, so I'm loathe to have a vendor actually come up with a solution to your problem, as you might accidentally stumble on some relevant issue to whine about if you don't continue to whine that you can't use it, it's too expensive, it has the wrong color, it has American spelling, or something like that.
| I'll make it clear for you. Windows people ...
I wonder how clear a message needs to be for you to get it, Martin. let's try again with a single sentence:
"Windows people" DO NOT MATTER on the time scale where Lisp matters.
you seem to be utterly unable to handle anything but the most trivial of technical details, unable to lift your gaze to anything having a time frame of more than a slight elongation of the moment, and incapable of handling the fact that Microsoft's reign will pass. you're just like the incredibly annoying people who argue against building infrastructure because they can't immediately use it themselves to go shopping groceries, and they need a water melon that's soft, but not too soft, and ... you get the idea.
| So, could you please tell me how I turn a WinMain function in somebody | else's code into a LibMain function?
(make-library-entry-point <function>)
| Do you have any idea what I'm talking about?
no. why the hell should I? you don't matter. Windows doesn't matter.
| Can you do more than attempt to divert this thread into another subject?
oh, like it's _you_ who understand the _real_ issue? I see. HAHAHAHA!!
| It's obviously one that you're good at discussing, as you've done little | here but rant about Bill Gates.
you have already proved beyond any possible doubt that you don't get any message but your own, but I regret that I have given you an opportunity to think you have.
#\Erik -- if DUI is "Driving Under the Influence" then GUI must be "Graphics Under the Influence"
* Martin Rodgers | It appears that some Lisp people are rather hostile to this platform, and | are unwilling to discuss the _technical_ issues.
I see. you actually think you discuss technical issues. that's pretty amazing, considering that you don't include anything constructively technical in any of your messages at all.
tell you what, Martin, if you had discussed technical issues, this thread would have run to its completion in February 1996, and you would have the ability to create DLLs in a Lisp you could afford to buy. the fact is, however, that _you_ don't know enough about creating DLLs to help anybody who could have done it. (IF you had known, you would have shared of this knowledge to help fulfill your actual wishes, instead of whining for month upon month that you don't get what you want. if you actually DO know how to create DLLs, but keep going with your whining, you're more destructive than I thought possible, so in the interest of being generous, I disregard that possibility.)
| The political issues should be irrelevant. The Lisp vendors I've asked | about this have replied to me in a much more civilised manner, and I | appreciate that.
hm. you know what? if you call a company with a really stupid question or being incredibly annoying, whoever answers can reply to you in a civilized manner because they can share the experience with their colleagues as soon as they hang up. this is one of the great benefits of having large rooms of support people answering phones. this is why going out to lunch was invented. it's very important to relieve stress, and having to deal with people like you sure is stressful. if I were to answer a phone call from you, I would be civilized to your face, too. if I worked for a Lisp vendor, I would, however, insist that you help me solve the problem in a constructive way, I would probably request a purchase order for the product whenever it was finished, and I would probably also ask for funding to get the job done in a timely fashion if you were in a hurry. _then_ it would be a professional relationship between me and you, and you would be paying me to be civilized to you on the phone, too. also, it doesn't take much to be civilized to somebody on the phone if no commitments are made, no plans are altered, no costs incurred (except the wasted time of the one person answering the phone and those he tells afterwards). what _does_ take real effort and goodwill is to be generous and civilized to people who make destructive noises about Lisp vs the "real world" in a crowd of thousands. your goodwill account is seriously overdrawn, Martin, and that's why I get seriously hostile to you when you don't quit being annoying. you could rectify your goodwill account by publishing _technical_ details necessary for somebody to, like, change a WinMain to a LibMain function instead of being an annoying asshole by asking others to "prove" to you they know some idiotic arcana of Windows. consider this: if you asked somebody on the phone to prove the same to you the way you do it here, they would hang up and refuse to take more calls from you, IF they were civilized. if they were not civilized, or the civilized veneer cracked, I sure wouldn't want to be you.
| I believe that I'm just being realistic. Perhaps if I were being truely | realistic, I might listen to the people who tell me to use something | other than Lisp, instead of looking for ways to convince them that Lisp | can solve their problems.
let's see. you would like us to infer that you are using Lisp, not something other than Lisp, but Lisp cannot be used in your world, because the DLL is the sine qua non of software development and no Lisp can build DLLs. this contradiction must mean that you are _in_fact_ using something other than Lisp, and it is obviously impossible successfully to convince anybody that Lisp can solve their problems when Lisp can't solve their problems because Lisp lacks the sine qua non. this means that all the evidence presented can only suggest that Martin Rodgers would _like_ people to believe he uses Lisp and has a real problem that he desperately needs solved, but what people who read his rants carefully _actually_ believe is that Martin Rodgers does not know Lisp, does not use Lisp, does not intend to use Lisp, and even if he wanted to and tried, his boss (who must have _some_ brains even though he hired Martin, because he finds my articles entertaining) would turn down his desire to buy a professional version of a commercial Lisp that could create DLLs.
who do you think you're kidding?
why do you insist upon wasting other people's time so much?
more importantly, who do I waste my time with you? (the answer is obvious, actually. when I got back to reading comp.lang.lisp after a few weeks of absence, as much as 90% of the articles contained whining about Windows or followups to whining about Windows. if this is what Windows does to people, I have one more reason to avoid it. when I'm faced with a serious irritant, I try to remove it -- be that Windows or Windows fanatics. I don't know whether I have actually succeeded in removing Martin Rodgers' incessant whining, but I _have_ removed the irritant as far as _I'm_ concerned. and I doubt that anybody else is reading this, anyway, so the danger of having annoyed any third party in the process is slim.)
#\Erik -- if DUI is "Driving Under the Influence" then GUI must be "Graphics Under the Influence"
With a mighty <3076828202548...@naggum.no>, e...@naggum.no uttered these wise words...
> * Martin Rodgers > | So you're saying that I'm using the wrong OS?
> no, Martin, that is not what I'm saying. please try to understand your > native language for a change.
Hehehe. That's a wonderfully cheap shot, Erik. English may be your second language, and you might not understand it as well as Norwegian, but I think you know exactly what this is about.
I think that you're trying to direct this thread away from the real questions, like how come LWW and ACL/PC can't create a DLL? Fortunately, Harlequin are fixing that with DylanWorks. They describe of the features as "DLL interoperability and library generation" See: <URL:http://www.harlequin.com/full/products/sp/dylan.html>.
> I'm actually saying that whatever OS Martin Rodgers is using (be it Windows > or some Unix or whatever) is utterly irrelevant for any public discussion > of anything whatsoever that has any bearing at all on anything outside of > his cubicle and his relationship with his colleagues. Martin Rodgers' > choice (or lack thereof) of OS is as insignificant to the future of Lisp as > the fact that my second 19" Sun M monitor burned the other day, and that > the spare I received from a friend also burned. yes, I used to run a > dedicated Emacs with Allegro Common Lisp on that display. of course, I'm > very sad about this loss, and I have to find a way to either use virtual > displays or crowd the Emacs I run Allegro in into the first display which > is full of status-displaying windows, ZenIRC, Gnus, etc, if I can't locate > another monitor that's still in good shape. should I quit using Lisp, now > that I have had a small setback? should I sit down and cry that the world > is harsh and uninhabitable? and are _you_ getting bored yet?
Did I say that I was concerned about what _you_ think is important to Lisp? You're welcome to question what _I_ think, but I'm merely suggesting to you that DLLs are rather important to Windows development. The strength of Lisp support for dynamic linking indeed have little relevance to the future of Lisp, but I suggest that you ask people like Kent Pitman and David Moon about that, not me. Their opinions may be of more interest than either of ours.
> you see, Martin, the above irrelevant rant is the level on which you're > talking to us about Windows and DLLs, Martin. irrelevant technical details > from your immediate surroundings that have no trace of value to discuss > with anybody. who _cares_ what Martin Rodgers suffers through in his > working day? who _cares_ what other Windows victims suffer through in > their working day? who _cares_ how many gazillions of Windows victims > there are as long as there are enough of the _relevant_ people to keep the > Lisp vendors happy and growing?
Who said that I'm suffering? I'm suggesting that _Lisp_ may be suffering, due to the - perhaps justified, perhaps not - belief that Lisp has poor support for Windows. You can dispite that, but you've yet to do so.
Instead, you're trying to make this personal. Don't bother with the insults, Erik, as I don't take any of this personally. I've seen you flame to many people in the same way to believe that this could be about me. I suspect that I'm saying some things that make you uncomfortable, and that you're using these bully tactics simply to try to make me shut up.
Why not simply address the issue directly? I'm not the only one asking about the value of dynamic linking for Lisp. For example, in a recent
posting, Kent Pitman wrote: > Because of the large amount of investment required to change Lisp > in a way that compatibly runs old programs but still accomodates new > programs, Lisp changes slowly. However, there does seem to be motion > toward integrating Lisp through modern databases, object interfaces, > and even DLLs. (Part of this depends on what you think counts as Lisp; > I think Dylan is in the Lisp family, and represents a substantial step > forward in terms of the incorporation of DLLs into Lisp.)
I find myself agreeing with this. Who are you questioning, Erik? Perhaps if you weren't flaming anyone of lower rank than Kent Pitman who dares to express what we could call "Lisp Revisionism", there might be a few more of us discussing this, and in a more constructive fashion.
As Kent himself said, part of this depends on what you think counts as Lisp. If Lisp is only what you personally will use, and you insist on flaming anyone who thinks that it should be just a tad different, then you're nothing more than a bully. You've made disparaging comments about Bill Gates, but I'll leave the question of whether or not he too is a bully for an advocacy newsgroup.
This article is being crossposted to an appropriate newsgroup, BTW. I'm sure you know this, as you keep removing it when you post. Are you denying that your strong negative feelings toward Windows make this an advocacy issue, or are you denying that you such feelings?
> "Windows people" DO NOT MATTER on the time scale where Lisp matters.
This is a highly contentious issue. Hence my assertion that your making a point that belongs more in an advocacy newsgroup than in comp.lang.lisp. Are you unable to discuss the use of Lisp and Windows without making derogatory comments about Windows, and ignoring the issues that also concern Lisp, however limited that may be in your opinion? No doubt Lisp would suvive if nobody used it to write Windows software, but isn't the case. Instead, we have a number of Lisp vendors with Lisps for Windows. I suggest that you continue your private watr against Lisp for Windows with Franz, Harlequin, Mark Freeley and anyone else who has the audacity to grace Windows with a Lisp implementation.
> you seem to be utterly unable to handle anything but the most trivial of > technical details, unable to lift your gaze to anything having a time frame > of more than a slight elongation of the moment, and incapable of handling > the fact that Microsoft's reign will pass. you're just like the incredibly > annoying people who argue against building infrastructure because they > can't immediately use it themselves to go shopping groceries, and they need > a water melon that's soft, but not too soft, and ... you get the idea.
On the contrary. I'm familiar with the way in which Windows modules are initialised, tho I'm not sure that you are. Like it or not, but in Windows, an EXE and a DLL work a little differently. I know this is awkward, but perhaps that's historical baggage for you. It hangs around for years, getting in the way. We still have to deal with it.
> | So, could you please tell me how I turn a WinMain function in somebody > | else's code into a LibMain function?
> (make-library-entry-point <function>)
<ahem> I'm aware of that, and it doesn't address the issue. Are you saying that the only option is and can only ever be an ugly kludge involving a hand written DLL that runs and then dynamically links to an EXE? I think that we can do much better than that, and it would be of great help if a Lisp implementation could just create the DLL itself.
Placing the runtime support code into a DLL instead of the image (or the EXE, in the case of LWW) would also help, as the EXE or DLL could then be much smaller. One of the reasons I like Gambit C so much is that the support code is in a DLL. With some effort, it should also be possible to get it to create a DLL. However, this is not "Lisp" as you define it, as that could only be Common Lisp, and Gambit C is Scheme.
Still, you may see my point. It can be done, and a number of other languages succeed in doing far more demanding things than this. There's an APL that can save the workspace as an OLE object, and Smalltalk/MT can create DLLs. So can VB!
Why not Lisp? Apart from your stock answer, which is to place the entire burden on the Lisp programmer rather than the vendor. You may not like Windows, but can you not see how Lisp may benefit from gaining a few more programmers, by supporting the things that they need from a language?
> no. why the hell should I? you don't matter. Windows doesn't matter.
<sigh> Don't tell me - tell Franz and Harlequin, and their customers. Meanwhile, save your riligious anti-MS rantings for a newsgroup where they may be relevant - like comp.os.ms-windows.advocacy. -- <URL:http://www.wildcard.demon.co.uk/> You can never browse enough cybes for 4.5 years, now plain old mcr Please note: my email address is gubbish
In article <3076789076329...@naggum.no>, Erik Naggum <e...@naggum.no> wrote:
>* Martin Rodgers -> Hrvoje Niksic >| Are you saying that it can be done, then? Have you done it? Why have >| Harlequin or Franz not done it, if it's so simple?
>if it were that simple, even you could have done it, and no Lisp vendor >would need to waste time on it.
Look, Martin is a guy with a problem. He'd like to use Lisp, but has great difficulties with it. Nor is he alone, except that he's still struggling to use Lisp in a hostile environment.
>however, it is obviously non-trivial, but doable. this means it costs time >and money to do it. if nobody offers a vendor to buy the product (or >otherwise cover the costs), it could be a week's worth of coding to get it >done, and _still_ it would never happen. it's as simple as that.
Yes, but why bother to put out a commercial Windows CL system without it? Further, what does it imply about the future of Lisp?
>| For all I know, you're just dismissing this as a "Windows problem", and >| you can't be bothered to deal with it.
>look, Martin, it's obvious that you have some sort of inferiority complex >on behalf of Windows, but Windows in whatever incarnation or version or >build or whatever Microsoft ships it is _completely_irrelevant_ to this >discussion. this is _not_ a discussion about Windows, pro or con, it's an >attempt to make you understand that Windows is not by itself an argument >for anybody to do anything.
Erik, in the past you've let us know that you use Lisp, and that you can make a living doing only Lisp. This is good. The fact is that there are a whole lot of Microsoft Windows installations out there. Now, you think this is a mistake. I think it's a mistake. I'm also typing this in on a Windows machine because I work in a place that uses it (they've made many other mistakes, as well).
In order to keep Lisp live, it behooves us to see that people use it. It therefore behooves us to see that people *can* use it. If you care only about yourself, Erik, that's your business. I'd like to see my son grow up in a world where he can program in Lisp, or something better if something better is invented.
>(yeah, I know, the Windows world tends to >think that market share is the be-all-end-all argument, but people who >aren't into selling good old products in new wrappings just because some >fresh-out-of-school MBA aced the "retargeting the market" class will see >the _problems_ of addressing the Windows world, namely that you have to be >a big player to overcome the marketing threshold of the Windows market, you >have to prepare an organization to ship thousands of copies a day once you >hit the right marketing channels, and you have to have a gargantuan support >system to handle all the dimwits who buy the product and lack every >conceivable clue yet expect to get free help on the most trivial of issues. >sure, anybody can sell a small volume to the Windows market, but if you >don't ship at least a hundred thousand copies, at the ridiculously low >prices they are willing to buy, you're not going to be able to _afford_ to >stay in business. the real reason I don't want Lisp vendors to go into the >Windows market is that I want them to stay alive. substantial companies >have crashed and burned trying to sell niche products to the Windows >market. the Lisp world doesn't have the luxury of any expendable vendors.)
The other side of this is that there's a tremendous amount of software written for Windows, since that's where the big bucks are. There are a tremendous amount of perfectly nice programmers who have to write software for Windows. Have you no sympathy for them? Individually, some of them could drop out of Windows programming, perhaps at a pay cut. (Some have financial obligations that make pay cuts impractical.) To keep your corner of the Universe comfortable, you'd tell them all to keep on using Visual C++ and MFC?
>get your head out of Bill Gates' rear and start to realize the demons that >you invoke with your misguided propaganda against Lisp in the guise of >being in favor of Lisp-on-Windows are so mind-bogglingly costly for vendors >and developers that you are a direct threat to the very existence of Lisp >if anybody is stupid enough to listen to you. to be successful in the >Windows market, you _have_ to get very, very comfortable with Microsoft, >and Microsoft is a company that is known far and wide to eat it partners >alive and kill those who offend them. there are many documented cases of >Microsoft changing systems internals to screw their past partners, IBM in >particular. Microsoft is a _predator_, and Bill Gates doubly so.
Yeah, Microsoft is dangerous. They gained their current market share before the Justice Department realized what was going on, and they've been capitalizing on that ever since, but that doesn't mean companies can't deal in the Windows world.
Besides, both Harlequin and Franz are already selling Common Lisps for Windows. Why should they keep their products substandard?
>Lisp has survived in the underbrush (niche markets) for many decades, and >will in all likelihood continue to survive for many more decades, but those >who venture into the open field _will_ fall prey to Microsoft's fraudulent >business practices until Microsoft itself rots and dies, which I predict >happens between the years 2005 and 2010.
Lisp is in the open field! For pretty much all major platform, you can get a good implementation of Common Lisp (free for some platforms). This is the sort of thing that supports Franz and Harlequin and Digitool.
Martin simply wants a CL system for Windows that will go along with industry standards, the same as any other non-Microsoft language system for windows. There are several of them, and they aren't showing signs of going out of business soon.
>unlike the Windows world of predators and prey ruled not by ethics but by >whoever runs faster, the _real_ world is not in their hurry. substantial >projects still need to be completed, vast amounts of information still need >to be computerized and made accessible to software that will need to run >for decades to come. the kinds of fools who are upset with EXE or DLL or >whatever this week's hottest TLA is, are of no consequence, because they >are willing to sacrifice their _information_ at the slightest hint from >Redmond that something new and improved is coming out. people who invest
The other technique is to wait until other, non-Microsoft, vendors commit to something. DLLs are not something new, they're here and are supported by several vendors other than Microsoft. It's time that Franz and Harlequin joined in, if they want to continue to sell in the Windows environment.
>for a programming language that has survived the coming and going of lots >of inferior languages, multiple dialects and standardization of itself, and >still has an active community of programmers, the short-term flirts with >the here-today-gone-tomorrow community of Microsoft is _not_ a value, and, >I maintain, _will_ kill it.
Well, yes. Never be the first to jump onto a Microsoft bandwagon. Let somebody else do it, to see if there's traps. However, it is possible to deal in Windows software with reasonable safety, and there's a good deal of money in it.
>that's why Martin Rodgers (and, god forbid, more people like him) should >pay for the development of Windows-friendly Lisps, not sit back and demand >that Lisp vendors commit suicide so that they can produce one stinking DLL >and decide "nah, Lisp isn't for me, anyway". you yourself have claimed >that you're waiting for Dylan to meet your needs, Martin, so it is hardly >unfair or overly harsh to ask you to shut the fuck up about your Windows >shit and let people earn their living as best they can, _without_ the >enormous costs that sleeping with Microsoft will entail.
Um, Martin has clearly said that he will pay for a Common Lisp on Windows that satisfies his needs. This is how the free market works, Erik. If there are a lot of people like Martin, who want to use quality tools and have reasons that seem good to them to work in Windows (like, maybe, it pays), then it will pay Franz or Harlequin or both to add DLL creation to their existing Windows products.
Have you ever called or written or emailed to a Lisp vendor and said "Gee, it would be really neat if..."? If you were working on a commercial Lisp that didn't handle tail recursion, would you write and call and politely ask when they might add it, or would you think, "Gee, would I want to fund the necessary programming to do tail recursion? Maybe I'll just use DO rather than complain, even when tail recursion would be cheaper."
The intemperate language I've seen in this thread has *not* come from Martin. He has been civilized and mostly courteous, even when exasperated. Now, I don't have any problems with intemperate language being used to refer to Microsoft or Microsoft products, and I haven't seen Martin object to that either. I do have a problem with intemperate language being used against Martin. He has a need, and there are products that almost address it. I don't have a problem with Erik's view that it would be best if no professional touched Microsoft Windows, in the hopes of killing Microsoft sooner, although I don't think it's practical. I do have problems with Erik impugning professionals that do, and who hope that others will help, or possibly just sympathise, with them.
>Microsoft _will_ die, and I give them a decade, but Lisp must _not_ go down >the drain with them or be sacrificed to keep Microsoft alive a few more >months.
I'm not so sure Microsoft will die. It isn't even necessary; before monopolizing the desktop OS market they were mostly harmless. If we were to, say, see PowerPC machines running Apple's Rhapsody stuff taking over desktops, Microsoft could continue to make software and nobody would be the worse. (I'd also
...
With a mighty <5pdnob$qj...@darla.visi.com>, thorn...@visi.com bravely poked his head over the parapet and risked being shot at...
> The other technique is to wait until other, non-Microsoft, vendors > commit to something. DLLs are not something new, they're here and > are supported by several vendors other than Microsoft. It's time that > Franz and Harlequin joined in, if they want to continue to sell in > the Windows environment.
They're also more than just, as Erik put it, "this week's hottest TLA". That's exactly like describing forking as the latest Unix fad! Not only have DLLs been part of Windows for most if not all of its (compared to Unix) short existance, but an ever increasing number of technologies are being built on them - and not just by MS.
Remove DLLs from Windows and nothing would be left. Somewhat like removing forking from a Unix without any threading. Oops, your OS has no bones to support the flesh. While Unix may not depend so heavily on shared libraries, no Windows program can run without using a DLL. The entire Windows API is in DLLs. While Win32 doesn't depend on forking (coz of threading), and Win16 doesn't even have threading, where would Unix be without multitasking?
I'm only comparing Windows with Unix to show how these two systems both have features without which they couldn't function. I'm ignoring the forking vs threading issue, as that isn't relevant here. While there are still crtical Unix programs that depend on forking, that OS feature will be seen as important by Unix programmers. For Windows programmers, there are also vital features. DLLs, for example.
It's regretable that Erik fails to appreciate this and flame those who _do_. Well, his lack of appreciation of Windows could be excused if not for the manner (flaming) with which he expresses himself on this subject. He might have something useful to contribute, as he so often does. Alas, when the issue concerns Windows, it's hard to tell.
Most Windows people I know think that Lisp is dead. If Erik is typical of Lisp programmers (I hope not), then perhaps they're right. At least, as far as Windows is concerned. I'm more optimistic, tho. I also have an interest in Lisp, while most people I know do not. If I didn't feel that CL and Scheme were useful to me, I'd just quit Lisp (as Erik seems to define it, i.e. no DLLs) and instead use Dylan.
Frankly, I could do without Erik's negativity. Until 1992, when I discovered comp.lang.lisp, I was alone. I knew no other Lisp programmers. UseNet has put me in contact with many like-minded individuals, but now it seems to be isolating me again.
While I once felt that Lisp could do anything, I found on UseNet that people have a much more limited view of how and where Lisp may be used, while paradoxically claiming that "Lisp can do anything".
> In the meantime, how do we want to see Lisp in the marketplace? > The one thing that's likely to kill Lisp is preventing people from > using it. IMHO, Lisp vendors in the Windows market should provide > what's necessary for Windows developers. They don't have to pioneer. > (Nobody should pioneer in that market. In many markets, pioneers > get arrows in the back. In the Windows market, it's machine-gun > bullets.) They do have to follow, albeit at a safe distance.
Wise words, for which I'm grateful. Perhaps I'm not so alone!
Many thanks. -- <URL:http://www.wildcard.demon.co.uk/> You can never browse enough cybes for 4.5 years, now plain old mcr Please note: my email address is gubbish
Martin Rodgers <m...@gubbishwildcard.demon.co.uk> wrote:
] With a mighty <3076789076329...@naggum.no>, ] ] So you're saying that I'm using the wrong OS? What should I be
Apparently.
] I'll make it clear for you. Windows people make a big distinction ] between an EXE and a DLL. [...]
That's sad. After all, what is a dynamically linked library if not a library that is dynamically linked? And what is an executable if not a library + loader?
] So, could you please tell me how I turn a WinMain function in ] somebody else's code into a LibMain function? Do you have any ] idea what I'm talking about? Can you do more than attempt to ] divert this thread into another subject? It's obviously one ] that you're good at discussing, as you've done little here but ] rant about Bill Gates.
What a goober! Ok, I'm jumping into this thread, but just convert the lisp code into C with any number of high-quality programs.
Lisp compilers and interpreters are some of the very best of their kind, and many high-quality solutions exist. If the appropriate tools do not exist for Microsoft Windows, instead of reflecting poorly on Lisp it is a sad commentary on Windows.
(Personally, I prefer Scheme to Common Lisp .. who needs side effects anyway?)
-- thur Mail Address: LordArt...@vt.edu or jmaxw...@vt.edu n r a JAMax "When a true genius appears in the world, you may know him h o w by this sign, that the dunces are all in confederacy tan lle against him." --Jonathan Swift
I agree with Martin. C++ is a horrible language to develop Windows apps in, but there are few alternatives (Basic?!?!?). I would spend money on a Lisp development system that could parse and produce all the crap you need to interface to existing code (like C and C++ header files, MIDL files, TLB files, etc.) and produced DLL 's as output. It would be especially good if CLOS objects could be compiled into ``ActiveX'' components. I'd like to be able to produce deliverables for my clients without having the fact that the code was written in Lisp be any concern whatsoever to them.
Actually, given the way that Microsoft's DCOM works (late binding, explicitly tagged arguments, reference count GC, structured exception handling, etc.) it looks like they'll reinvent Lisp at some point. Of course I'd rather not wait that long, and I'm sure it wouldn't be pretty.
m...@gubbishwildcard.demon.co.uk (Martin Rodgers) wrote: > While Unix may not depend so heavily on > shared libraries, no Windows program can run without using a DLL.
Note there's a big difference between the need to _use_ some existing DLLs (which I assume the Windows implementations do allow, directly or via some foreign-language interface and possibly an intermediate layer) vs. the need to _generate_ DLLs. At least as far as I remember, the problems you've been talking about have been entirely within the second area, and not about problems with using Windows' core libraries from Lisp applications (if necessary via FFIs).
Well, if some Lisp implementation can't directly generate DLLs, and one can't reasonably convert EXEs (or a bunch of non-linked object files, if that's what the Lisp implementation happens to generate - I don't know) to DLLs, an obvious strategy would be to use an EXE in Lisp as the server process for one or more (depends on typical usage of the code) non-Lisp programs - including some DLLs not written in Lisp.
You wrote you could do that with sockets or similar means, but it would be to slow. Now I don't know much Windows internals, but I'd hope it's not too primitive to allow/support some form of shared memory - which should be sufficiently quick for all but the most extreme applications (from what you wrote you don't seem to need a high-volume database with heavy io rates as Lisp DLL). To cut down synchronization overhead for the cases where one Lisp server has to work with more than one client (or equivalently, with several threads from the same client program), such code should obviously pre-allocate and reserve communication areas to the performance-relevant threads of the client, thus serializing the access protocol between one logical client-thread and the respective server (re-)actions.
Unless Windows is even more primitive than I already thought, something like the above shouldn't be very hard to do for a professional Windows programmer, and probably require at least not much beyond C with Windows- specific and Lisp-implementation-specific parts (though even most of the communication logic should possibly remain more abstract than this).
Once the technology to do this is understood, generating the partially application-specific protocol for each respective application semantics should be simple from Lisp (after all, building a more abstract - and more comfortably usable - layer on top of specifications is one of the strenghts of Lisp). Of course, as far as it makes sense, even this form of marshalling should be done essentially once and for all, with suitable reflexive protocol specifications - which could be either compiled for each specific usage, or even interpreted dynamically where that's needed. Naturally, the C/whatever low-level side of application-specific instances would also be generated by Lisp from the specification (a _general_ inter- preter on the client-side may or may not need to be hand-optimized C for best performance, depending on the complexity and performance-requirements of your sytem).
If this is designed and implemented well, it may perhaps even be adapted to other forms of byte-level communication paths than shared memory, and different run-time data structures of other implementations and even of other programming languages. (Who knows, somebody might even have done something similar already, possibly without noticing that it might help with this problem?)
Sure, doing all this would be more work for you than having someone else change a Lisp implementation to generate DLLs and do the dirty parts of primitive-to-high-level data interfaces for you, but it doesn't sound too hard if the current alternative is not to use Lisp where you'd like to use it, and if you really have such a big desire to use Lisp as you imply in your postings here. Whether it would be good for Lisp vendors to do this and try to become more widely used within the Windows world is a question which goes far beyond technical discussions (Erik has mentioned some of the potential problems, which are hardly unrealistic, even if you may not like the way he phrased it, or don't agree with his evaluation of risks), and for the most part wouldn't belong in comp.lang.lisp at all - even if it made sense to discuss some company's business strategies in a public forum (which I doubt quite strongly, for almost all cases - people don't have the relevant information, rarely understand the problems with the required depth, and are likely to evaluate other people's risk differently from those where they'll have to live with the consequences themselves).
If you have Windows-specific technical questions, the Windows-related newsgroups should be the relevant target (and you don't even need to mention any relation of your questions to Lisp over there, preventing possible "acceptance problems", uninformed flames and language wars). On the other hand, if only some conceptual hindrance or Lisp-related technical problem comes up while trying to implement such a solution, I guess even Erik wouldn't attack you for actually trying to do it, and might even contribute some helpful advice.
Martin Rodgers <m...@gubbishwildcard.demon.co.uk> wrote in article <MPG.e248c12b65f554b989...@news.demon.co.uk>...
>[snip]
> Most Windows people I know think that Lisp is dead. If Erik is typical > of Lisp programmers (I hope not), then perhaps they're right.
I just had the misfortune to get temporarily assigned to a Win32/MFC project, due to a staffing problem. As I brush up on my somewhat-rusty MFC, I have to tell you that, after a couple of years of Lisp development, it's like flint knives and stone axes. Nevertheless, there is no Lisp I know of that would fit for this project, which requires the creation of many Windows-centric objects like OCXes, DLLs, and interfacing with 3rd-party components implemented as same. <sigh>
Another shock I am having to endure is the C++ tunnel vision of the MFC jocks we do have on the project. So far, I can see no reason to do the main GUI in MFC -- VB or Java would have been preferable and far more effective IMO, but suggestions in that direction have met with enormous pushback. Oh well, once you buy into a religion, objectivity goes out the door. Lisp religion is no different, I guess, but it's too bad -- a good Windows-centric Lisp would save light-years of work on this beast!
Bill House -- http://www.dazsi.com Note: my e-mail address has been altered to confuse the enemy. The views I express are mine alone (unless you agree with me).
On Sun, 29 Jun 1997 21:09:59 +0100, m...@gubbishwildcard.demon.co.uk
(Martin Rodgers) wrote:
: With a mighty <kigyb7t48dl....@jagor.srce.hr>, : hnik...@srce.hr uttered these wise words... : : > Not that I would attempt to defend his tactlessness (to put it mildly), : > but he has been very clear in what you should do to make Lisp support : > DLL-s (or whatever fancy thing you want to have) -- write wrapper : > functions. If you are uncapable of doing it, pay others to do it. : > But don't expect others to do it *for free* because you don't feel : > like doing it. : : Wrapper functions? Do you know what a DLL is? One EXE cannot link to : another EXE.
Not quite. You can have one EXE link to another EXE. Using LoadLibrary routines, you can map in modules exported by either a .dll or a .exe. And I suspect, pretty much any .<suffix> you want.
: IPC techniques like pipes and sockets can pass data : between an EXE and a DLL that acts as its "front end", for other EXEs : to link to.
With a mighty <5pei0e$ce...@trumpet.uni-mannheim.de>, m...@ipx2.rz.uni-mannheim.de uttered these wise words...
> You wrote you could do that with sockets or similar means, but it would > be to slow. Now I don't know much Windows internals, but I'd hope it's > not too primitive to allow/support some form of shared memory - which > should be sufficiently quick for all but the most extreme applications > (from what you wrote you don't seem to need a high-volume database with > heavy io rates as Lisp DLL). To cut down synchronization overhead for the > cases where one Lisp server has to work with more than one client (or > equivalently, with several threads from the same client program), such > code should obviously pre-allocate and reserve communication areas to the > performance-relevant threads of the client, thus serializing the access > protocol between one logical client-thread and the respective server > (re-)actions.
Indeed, I've considered this. It could certainly be done, tho something like this adds time to a project, which is, I suspect, where the real objection will be. Also, many Windows components use MFC, so this will require the creation of "proxy" classes to mimic the MFC classes used in the components. Each proxy would then map calls to its functions thru the interface (sockets, pipes, memory map & semaphore or whatever) to the Lisp functions.
While some programmers have the patience to study the internals of the MFC classes, most of us would prefer not to. It takes time, and it's very ugly. Even MFC fans might hesitate to do this! When a simpler, and more importantly, faster solution is available, even a programmer like myself who would prefer to use Lisp will find resistance from colleagues and management.
Using Lisp would need to provide a massive time saving to be worth it. For a large project, this might be so. However, due to the nature of Windows, what we often find is a collection of small components used by servers, apps, and Windows itself.
The Lisp approach favours a large monolithic application. The Windows style of development is increasingly oriented toward the small units of code refered to as components (OLE, OCX, basic DLL, etc).
> Once the technology to do this is understood, generating the partially > application-specific protocol for each respective application semantics > should be simple from Lisp (after all, building a more abstract - and > more comfortably usable - layer on top of specifications is one of the > strenghts of Lisp). Of course, as far as it makes sense, even this form > of marshalling should be done essentially once and for all, with suitable > reflexive protocol specifications - which could be either compiled for > each specific usage, or even interpreted dynamically where that's needed.
Sure, once you've spent the time (I've no idea how long this might take), you could generalise it. You could write a utility that can read C++ headers and generate C++ code (the proxies) and Lisp (the Lisp side of the proxies).
Has anyone done this yet? Has anyone even looked into how this might be done? All I know is that MS keep changing the API, the rules, the language (VC++ acquires new featurses all the time, and not all of them will be documented), MFC and anything else they want to. Any task like this will be a race with MS.
> Sure, doing all this would be more work for you than having someone else > change a Lisp implementation to generate DLLs and do the dirty parts of > primitive-to-high-level data interfaces for you, but it doesn't sound too > hard if the current alternative is not to use Lisp where you'd like to > use it, and if you really have such a big desire to use Lisp as you imply > in your postings here. Whether it would be good for Lisp vendors to do this > and try to become more widely used within the Windows world is a question > which goes far beyond technical discussions (Erik has mentioned some of > the potential problems, which are hardly unrealistic, even if you may not > like the way he phrased it, or don't agree with his evaluation of risks), > and for the most part wouldn't belong in comp.lang.lisp at all - even if > it made sense to discuss some company's business strategies in a public > forum (which I doubt quite strongly, for almost all cases - people don't > have the relevant information, rarely understand the problems with the > required depth, and are likely to evaluate other people's risk differently > from those where they'll have to live with the consequences themselves).
Lisp vendors have good reasons to do this (Harlequin's DylanWorks is a good example), while lone developers not paid to do this may find it very hard work, and esp if only their own time is available.
> If you have Windows-specific technical questions, the Windows-related > newsgroups should be the relevant target (and you don't even need to > mention any relation of your questions to Lisp over there, preventing > possible "acceptance problems", uninformed flames and language wars).
You don't think that linking to an EXE like this might sound a little odd to a Windows developer? It does. There's no reason for a C++ programmer to not use a DLL when a DLL is called for. That's the beauty of C++ - it behaves the way that C++ programmers expect it to. We're Lisp programmers, which is why we see it differently. The problem is that C++ programmers will look at Lisp in the same way that Lisp programmes see C++ - they'll see something alien.
As I've said before, there are languages not at all dissimilar to Lisp that have no trouble creating DLLs. When creating a DLL is the obvious answer to the demand for a DLL, the ugly kludged solution discussed above will only make Lisp look like a language that uses ugly kludges. This is exactly what you're saying.
What was it that Richard Bach said? Something like, "If you argue for your limits, you get to keep them." Why accept a limitation that C++ compilers don't?
> On the other hand, if only some conceptual hindrance or Lisp-related > technical problem comes up while trying to implement such a solution, > I guess even Erik wouldn't attack you for actually trying to do it, > and might even contribute some helpful advice.
There is a big conceptual hindrance here. You and Erik are arguing against progress - support for a feature that is _expected_ of any compiler for Windows. Even VB can do it! _VB_. Think about what that says about Lisp. Lisp can't do something fundamental to Windows, and yet that VB can.
Your entire arguement is based on a misconception about Windows. Why work so hard to not use a feature that is vital to Windows software? -- <URL:http://www.wildcard.demon.co.uk/> You can never browse enough cybes for 4.5 years, now plain old mcr Please note: my email address is gubbish
With a mighty <33bf1a5d.84922796@siesta>, sang...@inlink.com.remove.everything.after.dot.com uttered these wise words...
> You can have one EXE link to another EXE. Using LoadLibrary routines, > you can map in modules exported by either a .dll or a .exe. And I > suspect, pretty much any .<suffix> you want.
You still need to check if the EXE is already running, run the EXE, then link to it and use it, then remember to unlink it afterward. To make this transparent, you'd need to write a "proxy" DLL to hide the EXE. Would you do this for every OLE, OCX, or DLL that you wish to write in Lisp? -- <URL:http://www.wildcard.demon.co.uk/> You can never browse enough cybes for 4.5 years, now plain old mcr Please note: my email address is gubbish
With a mighty <01bc8738$5acc7b80$03d3c9d0@wjh_dell_133.dazsi.com>, bho...@dazsi.nospam.com uttered these wise words...
> I just had the misfortune to get temporarily assigned to a Win32/MFC project, > due to a staffing problem. As I brush up on my somewhat-rusty MFC, I have to > tell you that, after a couple of years of Lisp development, it's like flint > knives and stone axes. Nevertheless, there is no Lisp I know of that would fit > for this project, which requires the creation of many Windows-centric objects > like OCXes, DLLs, and interfacing with 3rd-party components implemented as > same. <sigh>
I have to agree with you about the flint knives and stone axes. The availability of large numbers of "must have" OCXes, DLLs, and other components, and the ease with which they can be added to a project makes it hard to convince people that C++ is not such a great development tool.
> Another shock I am having to endure is the C++ tunnel vision of the MFC jocks > we do have on the project. So far, I can see no reason to do the main GUI in > MFC -- VB or Java would have been preferable and far more effective IMO, but > suggestions in that direction have met with enormous pushback. Oh well, once > you buy into a religion, objectivity goes out the door. Lisp religion is no > different, I guess, but it's too bad -- a good Windows-centric Lisp would save > light-years of work on this beast!
I prefer building user interfaces in VB to _any_ other tool, but there are also some good Java tools. I don't know about other C++ IDEs for Windows, but VC++'s "Developer Studio" isn't as good at interface building IMHO. Perhaps that's MFC complicating things, I dunno. VB keeps simple things easy. Not that I use VB...
Now, a Lisp compiler with a VB-like IDE would be heaven. While the platform independance of tools like CLIM, CAPI, Common Windows, etc are great when you're writing portable code, this approach is totally alien to the Windows style of building interfaces, where you want complete control over things that CLIM hides from you. Anyone who's not sure what I'm talking about should take a close look at VB and the way in which menus and dialogs are designed, the way that code is linked to events, and the setting of properties for components. -- <URL:http://www.wildcard.demon.co.uk/> You can never browse enough cybes for 4.5 years, now plain old mcr Please note: my email address is gubbish
m...@gubbishwildcard.demon.co.uk (Martin Rodgers) writes: > Thanks for ignoring all the technical issues. You're not even trying > to be helpful. You're just avoiding the issue, which you seem unable > to discuss.
No. The technical issues you are trying to push are totally irrelevant in this discussion. See my other posts for an explanation why. Unlike you, I will not repeat them here.
-- Hrvoje Niksic <hnik...@srce.hr> | Student at FER Zagreb, Croatia --------------------------------+-------------------------------- * Q: What is an experienced Emacs user? * A: A person who wishes that the terminal had pedals.
>>"MR" == Martin Rodgers schrieb am Wed, 2 Jul 1997 08:00:53 +0100:
MR> With a mighty <3076789076329...@naggum.no>, e...@naggum.no MR> uttered these wise words...
MR> Ooh, lovely. Another flame.
The old Martin-Rodgers Windows-and-Lisp flame-war, huh ?
MR> So you're saying that I'm using the wrong OS? What should I be MR> using, then? Will you pay me to use it and write code for it?
What he says is: if you need A and can't (or don't want) to write it yourself, pay for it. If you don't want that either, try looking for another possibility which might be to get a job that does not involve that W-word. These are your three possibilities, whining in this newsgroup to a lot of people (and thus wasting bandwith and people's time) is of no help. If you want to convince someone (useful, I might add), go and ask some vendor: we can't or don't want to write code for free so that only you have some benefit from it (as you seem to be the only one in this NG that is constantly longing for it). If you need it (e.g. DLLs production from Lisp) so urgently, go and write it, go and pay some professionals, etc. but please stop posting this stuff over and over again.
This does not mean that I think DLLs for Lisps under Windows are useless. In fact, I think that they are important. But discussing this issue here instead of with <your favourite lisp-vendor here> does not help anybody.
m...@gubbishwildcard.demon.co.uk (Martin Rodgers) writes: > Thanks for ignoring all the technical issues. You're not even trying > to be helpful. You're just avoiding the issue, which you seem unable > to discuss.
No. The technical issues you are trying to push are totally irrelevant in this discussion. See my other posts for an explanation why. Unlike you, I will not repeat it here.
-- Hrvoje Niksic <hnik...@srce.hr> | Student at FER Zagreb, Croatia --------------------------------+-------------------------------- * Q: What is an experienced Emacs user? * A: A person who wishes that the terminal had pedals.
In article <5peagt$mp...@newsie.cent.net> "Emergent Technologies Inc." <emerg...@eval-apply.com> writes:
From: "Emergent Technologies Inc." <emerg...@eval-apply.com> Newsgroups: comp.lang.lisp,comp.lang.scheme Date: Wed, 2 Jul 1997 15:35:11 -0400 Organization: CENTnet, Inc. Lines: 21 NNTP-Posting-Host: tsa-143.cape.com X-Newsreader: Microsoft Outlook Express 4.71.0544.0 X-MimeOLE: Produced By Microsoft MimeOLE Engine V4.71.0544.0 Xref: agate comp.lang.lisp:29048 comp.lang.scheme:22097
...
Actually, given the way that Microsoft's DCOM works (late binding, explicitly tagged arguments, reference count GC, structured exception handling, etc.) it looks like they'll reinvent Lisp at some point.
Has not this being clear since 1984? Most "new" programming language reinvent some Lisp feature sooner or later.
Cheers -- Marco Antoniotti =========================================================================== === California Path Program - UCB Richmond Field Station tel. +1 - 510 - 231 9472
m...@gubbishwildcard.demon.co.uk (Martin Rodgers) wrote: > something like this adds time to a project, which is, I suspect, where > the real objection will be.
If you could use Lisp as well as you claim, and it isn't merely a cute addition to your disk space, it should surely pay off to develop a useful tool which can then be used again and again. Just as one usually doesn't buy a new development platform and the related software for each small project, it would be silly to account only one such project for the development of a general tool. I see professional software development as investing some cleverness and effort now, to be more productive later (where "productive" does of course include the freedom to afford laziness). Maybe that's not the fashion in the "real world" of programming under Windows? Frightening.
> Also, many Windows components use MFC, so > this will require the creation of "proxy" classes to mimic the MFC > classes used in the components.
If you can't leave such "components" alone with using whatever classes they desire to use, and use whatever actually works for your stuff, I'd refuse to call it components, but a dangerous binary variant of patching, programming by wild cut-and-paste. Particularly if this Windows stuff is changing as frequently as people say it is (and as I can observe when yet another trivial mismatch between all those toys crashes applications), I'd do whatever I can to isolate me from such so-called "interfaces" which aren't even suffiently well-defined to deserve that name. I'll reserve the notion of "software components" to something which is carefully and intelligently designed to solve the problems which arise from the desire to let software from heterogenous and mutually unknown sources cooperate. Linking arbitrary unsafe code without clear, systematically developed and stable abstract interfaces together (and hoping that it won't damage too much whenever it crashes) not only isn't a move towards such a solution, but despite all marketing claims and the large volume of this crap, is a danger to the development of a sane technology and infrastructure solving the important problems.
> Sure, once you've spent the time (I've no idea how long this might > take), you could generalise it. You could write a utility that can > read C++ headers and generate C++ code (the proxies) and Lisp (the > Lisp side of the proxies).
Oops, I'm not talking about hacking together yet another FFI-generator attempting to shape all programs according to the concepts of C++. I'm talking about a high-level semantic specification of protocols, and generating the low-level interface code on both sides from this, with whatever consistency checking, documentation and debugging facilities one considers useful. For you own sanity, I recommend you not to think too much in terms of how C++ does something, trying to emulate C++ throughout your whole software. If that's what you want, learn to use C++ well and use it directly. (As Bjarne Stroustrup remarked, it doesn't usually help to work against the structure of the language, and one shouldn't try to use C++ as if it was e.g. Smalltalk. The same is also true the other way around.)
> All I know is that MS keep changing the API, the rules, the language > (VC++ acquires new featurses all the time, and not all of them will be > documented), MFC and anything else they want to. Any task like this > will be a race with MS.
I'm glad you've at least understood a tiny part of Erik's reasoning why too much support for Windows might not be in the well-understood interest of Lisp vendors. Working with clear specifications and abstractions isn't just something one will need to do for portability, but essential to cut down the superfluous complexity of software.
> Lisp vendors have good reasons to do this (Harlequin's DylanWorks is a > good example), while lone developers not paid to do this may find it > very hard work, and esp if only their own time is available.
If the vendors don't provide your desired Windows features so far, one might think there's some reason for it. As it's hardly a fundamental technical problem which they couldn't solve, or a lack of understanding the technical usefulness of these features (as you show clearly with the above example), what do you think is the reason, and why would you think you understand _their_ interests better than they do?
Besides, if the Windows market would be even half as component-oriented as all the marketing hype claims, instead of mostly throwing out lots of ill-defined dangerous toys, and if you'd be as happy and productive with Lisp as you seem to claim, why don't you and some fellow Windows programmers who want to use Lisp pay someone to develop such a tool as a component? If that isn't financially attractive, why do you think it would be more attractive for Lisp vendors to invest considerable effort for this market, and what keeps them from "seeing the light" as you do?
> Your entire arguement is based on a misconception about Windows. Why > work so hard to not use a feature that is vital to Windows software?
Fortunately, that's your misconception; I'd work hard not to use Windows whenever I can avoid doing so (at my job I have to use it, though only as terminal for Unix or for a mainframe; it's already bad enough for that). I don't care much which features a Lisp for Windows may or may not offer. It's _you_ telling us that your wish is to use Lisp for your Windows work, and that you supposedly cannot use it for technical reasons. I was only trying to give you a few hints how you may be able to use Lisp on Windows for the tasks you've mentioned.
It seems we agree by now that you indeed could use it - but somehow you prefer not to use a sub-optimal but workable solution, only lamenting for a superior solution which appearently just isn't on the market: the very market which leads you to label Windows as the "real world" in contrast to those areas where Lisp is actually used, right now. I'm certainly not saying that there wouldn't be room for improving Lisp, both as a language and as particular implementations, but the problem is far from being as severe as you make it appear, and I can understand why some readers find your articles annoying.
On Thu, 3 Jul 1997 09:06:51 +0100, m...@gubbishwildcard.demon.co.uk
(Martin Rodgers) wrote:
: With a mighty <33bf1a5d.84922796@siesta>, : sang...@inlink.com.remove.everything.after.dot.com uttered these wise : words... : : > You can have one EXE link to another EXE. Using LoadLibrary routines, : > you can map in modules exported by either a .dll or a .exe. And I : > suspect, pretty much any .<suffix> you want. : : You still need to check if the EXE is already running, run the EXE, : then link to it and use it, then remember to unlink it afterward.
Huh?!? LoadLibrary does not require you to have the exe running to link to it. It treats the exe as if it was another dll which just happen to include some program loading stuff which you don't care about.
I routinely link into both dlls and exes from my own code without any concern regarding whether the exe is running or not. If it's running, NT will simply map the exported routines into my process's space and increment an internal counter. When I FreeLibrary or terminate my process gracefully, NT will decrement the counter. The only difference I would notice is that if the exe isn't already running (and consequently already in memory), it will take just a tad longer to initialize the entry points from my code. But programmatically, it would be completely transparant.
: ...Would you do this for every OLE, OCX, or DLL that you wish to : write in Lisp?
OLE/COM/OCX are treated differently. You wouldn't even bother with LoadLibrary. You simply use the underlying COM mechanism to grab the dispatch pointer to the routine you want to use. You can specifically tell your code to either attempt to grab the active dispatch (ie., grab the instance of the object currently running if any), if it can find one or create an instance of the object on the fly. Infact, using COM, you can do some very late binding on your library routines. Yes, do you have to worry about decrementing the ref count to the object, but using OLE/COM libraries and/or your own classes, this can be done automatically when your dispatch goes out of scope.
m...@gubbishwildcard.demon.co.uk (Martin Rodgers) writes: > I'll make it clear for you. Windows people make a big distinction > (...)
Now, is it my imagination, or have I heard this somewhere before?
-- Hrvoje Niksic <hnik...@srce.hr> | Student at FER Zagreb, Croatia --------------------------------+-------------------------------- Contrary to popular belief, Unix is user friendly. It just happens to be selective about who it makes friends with.
With a mighty <5ph22e$3r...@trumpet.uni-mannheim.de>, m...@ipx2.rz.uni-mannheim.de uttered these wise words...
> If you could use Lisp as well as you claim, and it isn't merely a cute > addition to your disk space, it should surely pay off to develop a useful > tool which can then be used again and again.
I agree. However, if you're talking about _my_ time, that's already committed. In my spare time, I'm writing a Lisp to C++ compiler, while I'm being paid to use C++ and Java. If you'd like to convince my boss that I should be using Lisp, you're very welcome to try.
Not that I expect to be able to compete with Franz and Harlequin at adding support to their Lisps. Good grief, no. -- <URL:http://www.wildcard.demon.co.uk/> You can never browse enough Please note: my email address is gubbish Will write Lisp code for food
With a mighty <64pvt0bjn4....@gmd.de>, Holger.Scha...@gmd.de uttered these wise words...
> This does not mean that I think DLLs for Lisps under Windows are > useless. In fact, I think that they are important. But discussing this > issue here instead of with <your favourite lisp-vendor here> does not > help anybody.
I _have_ discussed it with a number of Lisp vendors. I was hoping to also discuss it with a few Lisp programmers, but I guess that's not possible. Apparently, no Lisp programmers should want to write code for Windows. Well, there are probably a few Windows people who agree (I know of a few of them).
Has the market decided? I don't know. Perhaps the Lisp vendors I've queried have only been humouring me. Perhaps the Windows support that Harlequin claim will be in DylanWorks is just vapourware or hype? Their tether technology is something that neither VC++ nor VB have, but if it works as Harlequin describe, then I can imagine hords or Windows programmers _begging_ to use it.
Does the market even know what's possible? I don't know. Without any public discussion, we only have the word of Lisp vendors. And perhaps people like Erik Naggum? He may even be right (note that I've not denied any of his anti-Windows anti-MS comments), in which case it may be that most people have got it horribly wrong. Including a couple of Lisp vendors! Good grief.
Life is too short. I've added Erik to my "bozo" filter. I'll miss his more constructive posts, but I have no time for his negativity. Not until somebody pays me to use something other than Windows, anyway. I was hoping for a constructive discussion, but Erik is making that impossible. In spite of enouraging email from people (thanks to all of you, you know who you are), I have a Lisp compiler to write, so I'd like to follow the advise of someone who disagrees with me, and spend more time working on it.
Any offers of Lisp work will be gratefully received.
Followups adjusted. -- <URL:http://www.wildcard.demon.co.uk/> You can never browse enough cybes for 4.5 years, now plain old mcr Please note: my email address is gubbish
With a mighty <33c35afb.167000156@siesta>, sang...@inlink.com.remove.everything.after.dot.com uttered these wise words...
> OLE/COM/OCX are treated differently. You wouldn't even bother with > LoadLibrary. You simply use the underlying COM mechanism to grab the > dispatch pointer to the routine you want to use. You can specifically > tell your code to either attempt to grab the active dispatch (ie., > grab the instance of the object currently running if any), if it can > find one or create an instance of the object on the fly. Infact, > using COM, you can do some very late binding on your library routines. > Yes, do you have to worry about decrementing the ref count to the > object, but using OLE/COM libraries and/or your own classes, this can > be done automatically when your dispatch goes out of scope.
Do you have any idea how to create an OLE server in ACL/PC or LWW, or are you talking about write OLE/COM/OCX components in C++?
Thanks. -- <URL:http://www.wildcard.demon.co.uk/> You can never browse enough Please note: my email address is gubbish Will write Lisp code for food
With a mighty <kigiuyspksv....@jagor.srce.hr>, hnik...@srce.hr uttered these wise words...
> No. The technical issues you are trying to push are totally > irrelevant in this discussion. See my other posts for an explanation > why. Unlike you, I will not repeat it here.
OLE is irrelevant? Try telling that to Franz and Harlequin. -- <URL:http://www.wildcard.demon.co.uk/> You can never browse enough Please note: my email address is gubbish Will write Lisp code for food