At 02:26 PM 2009-12-01, [hidden email]
wrote:
At least on *nix type systems, completely headless images work just fine now. That's why there are separate VMs with and without a suffix "gui", although those without will dynamically link the required gui libraries if not running headless. I'm not sure if that works on Windows and MacOSX or if those have other couplings to the gui libraries. --
Alan Knight [|], Engineering Manager, Cincom Smalltalk
_______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by thomas.hawker
On Dec 1, 2009, at 10:26 AM, [hidden email] wrote: > Travis, > > While I’m all for more frequent releases, especially for bug fixes > and incremental improvements and additions to the technology base, I > don’t see that it will be practical to limit backward > compatibility. The problem with your approach is that, in order to > avoid major migration hassles, you have to move your code base every > new release, at worst every other release. Our enterprise client is > still running VW5i! We’re planning on moving it to VW7.7 next year, > but the project is formidable. (We’ve already put more than a > couple of man-years on it and haven’t yet gotten to a reliable, > testable code base.) With VW7.7 I have to rewrite all of my Store > extensions from VW7.6 because of the switchover to Glorp. > > Some level of backward compatibility is a must. We might not need > that much at the VM level, but we can’t afford to do major platform > (hardware or software) upgrades more than once every three years. > The kind of effort involved requires significant scheduling and > planning – typically on the order of 9 months or so. If you had VW > releases every 6-9 months, we’d be 3+ releases behind every time we > scheduled a migration. Extensive BWC support would be essential! I think I didn't communicate the jst of this idea well enough. Using integral releases, I wouldn't see us doing much different from what we have from a BWC point of view. From release to release, we change stuff at the Smalltalk level, that requires changes in customer applications, or at least encourages it. We try to limit it where we can. What the integral version number buys us, is the freedom to break, or rather, change, the interface between image and VM. Currently, the goal is that if it's a 7.x VM, it should be able to run an image of the same version or previous 7.x vintage. Doing a series of integral releases would allow us to evolve the VM<->Image interface easier. I wouldn't expect it calling it 8,9,10 to be much different at the class library level, that 7.8, 7.9, 7.10 would be. And I reiterate it's just a zany idea. -- Travis Griggs Objologist "It had better be a pretty good meeting, to be better than no meeting at all" - Boyd K Packer _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Paul Baumann
OK, Paul, that makes a lot of sense. I like the analogy, too. That wasn’t exactly the way I perceived what happened, but that’s certainly a reasonable description of the result.
Now, while that explains what happened to one solution to improve the GUI, let’s address the thread. Is there a feasible, coordinated approach that covers all of the desired goals: improving Wrapper, better GUI capabilities (alpha, anti-aliasing, fonts), improved tools, and so on? You indicated you like submitting fixes and seeing them added; my luck with that seems more limited.
Since we all seem to want to complain, and we all know Cincom’s resources are tight, perhaps we should ask the question differently: What could be changed to helps us contribute solutions (and get them included) to move things along? What is Cincom willing to do to support that?
Cheers!
From: Paul Baumann
[mailto:[hidden email]]
In simple terms...
It is infeasible by common approach.
The way to eat an elephant is...one bite at a time. The Widgetry elephant couldn't be swallowed in one sitting even with several years of preparation. The problem wasn't that Sames needed more time or encouragement, but that increasingly Cincom's customers were expected to swallow really-really hard and Cincom finally came to realize that they wouldn't. End result was that Cincom practically starved itself figuring out how to consume that damn elephant in one sitting and decided to find something else to eat instead.
In general...
Focus on finding solutions to the small problems at hand; the bigger problems work themselves out over time and opportunities become easier to exploit. In an environment of Liberty, you don't need to risk for grand ambitions because you have the daily satisfaction of having taken one step closer in a direction that was demonstrably correct and practical.
Furthermore...
I want to see Cincom developers anxious to fix problems and incorporate solutions instead of being stressed by a list of scheduled requirements. The best code often comes from a useful but complicated body of code that incrementally evolved into a work of art--to a form not originally anticipated. Bad code comes from replacing one complicated mass of code with another with some new forced twist--and then needing to support both. Bad code happens from a legacy of resisting refinements to "working" code.
When I send a fix to Cincom, I want it released in product to customers within a month or two (this is why open-source works; not because it is "free"). There is a cost involved in sending code to Cincom instead of just hacking a workaround into place. It is cheaper to just fix the problem here and hope Cincom never changes code in a way that breaks a workaround. For several years now, that has unfortunately been the most effective approach. Fix it and forget about wasting time sharing or even communicating the fix. I'd encourage a system that makes it more practical for me to share fixes with more than an excuse in return.
Cincom doesn't need to eat the entire elephant, but they do have to encourage others to join them at the table and offer them a carving knife and a fork.
Paul Baumann
From:
[hidden email] [mailto:[hidden email]] On Behalf Of [hidden email] I’ve spent the past couple of days reading through this entire list. In terms of GUI upgrades, especially for native widgets, could someone please explain why that is really so infeasible? I must be dense, so could you use small words? J While it may take a release or two to get there, it seems that we have all of the pieces [or thought experiments] in place to do it:
I think one objective is to be able to do this polymorphically: native and emulated widgets on the same window. It can’t be such a hard thing, since an emulated widget is really nothing more than a direct draw capability to the underlying window canvas. All the drawing primitives ultimately do that, so the adjustments should come naturally simply by moving behavior into the image. Where we have “LookPolicy” we’d add “NativeUIPolicy” or something.
I’m not denying that this wouldn’t take some significant work, but at this stage it could at least be planned or prototyped.
Cheers!
This message may contain confidential information and is intended for specific recipients unless explicitly noted otherwise. If you have reason to believe you are not an intended recipient of this message, please delete it and notify the sender. This message may not represent the opinion of IntercontinentalExchange, Inc. (ICE), its subsidiaries or affiliates, and does not constitute a contract or guarantee. Unencrypted electronic mail is not secure and the recipient of this message is expected to provide safeguards from viruses and pursue alternate means of communication where privacy or a binding message is desired.
_______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Travis Griggs-3
Travis,
Thanks for the clarifications. I think the major/minor number and relation to VM<->VI compatibility got lost from previous messages. I'm a lot more comfortable with your idea, now. I don't think it's zany at all, but merely requires adequate "expectation management." Cheers! Tom Hawker -------------------------- Senior Framework Developer -------------------------- Home +1 (408) 274-4128 Office +1 (408) 576-6591 Mobile +1 (408) 835-3643 -----Original Message----- From: [hidden email] [mailto:[hidden email]] On Behalf Of Travis Griggs Sent: Tuesday, December 01, 2009 3:16 PM To: VWNC List Subject: Re: [vwnc] Platform priorities On Dec 1, 2009, at 10:26 AM, [hidden email] wrote: > Travis, > > While I'm all for more frequent releases, especially for bug fixes > and incremental improvements and additions to the technology base, I > don't see that it will be practical to limit backward > compatibility. The problem with your approach is that, in order to > avoid major migration hassles, you have to move your code base every > new release, at worst every other release. Our enterprise client is > still running VW5i! We're planning on moving it to VW7.7 next year, > but the project is formidable. (We've already put more than a > couple of man-years on it and haven't yet gotten to a reliable, > testable code base.) With VW7.7 I have to rewrite all of my Store > extensions from VW7.6 because of the switchover to Glorp. > > Some level of backward compatibility is a must. We might not need > that much at the VM level, but we can't afford to do major platform > (hardware or software) upgrades more than once every three years. > The kind of effort involved requires significant scheduling and > planning - typically on the order of 9 months or so. If you had VW > releases every 6-9 months, we'd be 3+ releases behind every time we > scheduled a migration. Extensive BWC support would be essential! I think I didn't communicate the jst of this idea well enough. Using integral releases, I wouldn't see us doing much different from what we have from a BWC point of view. From release to release, we change stuff at the Smalltalk level, that requires changes in customer applications, or at least encourages it. We try to limit it where we can. What the integral version number buys us, is the freedom to break, or rather, change, the interface between image and VM. Currently, the goal is that if it's a 7.x VM, it should be able to run an image of the same version or previous 7.x vintage. Doing a series of integral releases would allow us to evolve the VM<->Image interface easier. I wouldn't expect it calling it 8,9,10 to be much different at the class library level, that 7.8, 7.9, 7.10 would be. And I reiterate it's just a zany idea. -- Travis Griggs Objologist "It had better be a pretty good meeting, to be better than no meeting at all" - Boyd K Packer _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc IMPORTANT NOTICE Email from OOCL is confidential and may be legally privileged. If it is not intended for you, please delete it immediately unread. The internet cannot guarantee that this communication is free of viruses, interception or interference and anyone who communicates with us by email is taken to accept the risks in doing so. Without limitation, OOCL and its affiliates accept no liability whatsoever and howsoever arising in connection with the use of this email. Under no circumstances shall this email constitute a binding agreement to carry or for provision of carriage services by OOCL, which is subject to the availability of carrier's equipment and vessels and the terms and conditions of OOCL's standard bill of lading which is also available at http://www.oocl.com. _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Travis Griggs-3
Am 02.12.09 00:16 schrieb Travis Griggs:
> Currently, the goal is that if it's a 7.x VM, it should be able to run > an image of the same version or previous 7.x vintage. Doing a series > of integral releases would allow us to evolve the VM<->Image interface > easier. I wouldn't expect it calling it 8,9,10 to be much different at > the class library level, that 7.8, 7.9, 7.10 would be. IMHO, that would be okay. The interface between applications and VW is at the class library level with only very few exceptions. When we migrate an app to a new VW version, we usually exchange VM and image in synch, except when there is a VM bug which forces us to temporarily use a newer VM with an older image - but that's an exceptional case. Add to Travis' idea what Paul suggested - a more open and faster process for integrating community contributions and bug fixes - and VisualWorks could evolve quite a bit faster. Like Paul, I have the impression that third-party bug fixes often aren't integrated, and also that many useful contributions sit in the public repository for years without getting noticed. They may be announced once on vwnc, but a few weeks later nobody remembers, and they never get a chance of being considered for inclusion in the base. Does anybody remember the Chimera Look & Feel, or RBBlueMagic, or the two implementations for highlighting matching brackets in source code? They and many others would be good candidates for being included in the base product. There are lots of packages like these in the public repository. Yes, there are copyright and ownership issues, but those can be solved. AFAICT, most of the contrib authors would be glad to give up their copyright and ownership if their code were integrated. That said, I also have to add that the Cincom engineers pick up many, many bug reports from the vwnc and vw-dev lists, and when I look at the fixed AR list of VW 7.7, it's quite impressive. But still, there are all those issues which slip through, or don't get fixed for years even when the bug report contains a patch. BTW: Why can't an NC user submit bug reports and patches in some online tool where it can't get lost? There is such a tool for paying customers, but not for "the community". There is a need for a defined, simple, and fast process for submitting patches and enhancements, and for selecting the ones which are to be integrated into the base. > Cincom doesn't need to eat the entire elephant, but they do have to encourage > others to join them at the table and offer them a carving knife and a fork. Yes, indeed, and I have the impression that Cincom's commercial customers would participate, including some who don't post messages on vwnc. Joachim Geidel _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
In reply to this post by Steven Kelly
I’ve recently had a few days’ coding session where I
had to resort to adding rather ugly hacks and duplication to get something
complicated working. Followed by a second session where I refactored the
published working code to get rid of the hacks and duplication, and all the
ugliness disappeared and left something that worked and was understandable. That really brought home to me how true is the old adage “make
it work, make it right, make it fast”. I think that would also apply in
this situation. There’s a mass of existing VW graphics code, some within
Cincom but most outside, so there’s no real possibility for starting from
a clean slate. As Paul says, this is an elephant that must be eaten one bite at
a time – but I truly believe it MUST be eaten. We can’t put this
off because we know that what we will have in VW 8, 9 etc. is a bit messy and
incomplete – (a half-eaten elephant lying around). I think both Cincom’s
customers (us) and our customers are so hungry, we’ll be happier eating a
messy elephant than dreaming of a perfect one. Steve From:
[hidden email] [mailto:[hidden email]] On Behalf Of Paul
Baumann In simple terms... It is infeasible by common approach. The way to eat an elephant is...one bite at a time. The Widgetry
elephant couldn't be swallowed in one sitting even with several years of
preparation. The problem wasn't that Sames needed more time or
encouragement, but that increasingly Cincom's customers were expected to
swallow really-really hard and Cincom finally came to realize that
they wouldn't. End result was that Cincom practically starved itself figuring
out how to consume that damn elephant in one sitting and decided to find
something else to eat instead. In general... Focus on finding solutions to the small problems at hand; the
bigger problems work themselves out over time and opportunities
become easier to exploit. In an environment of Liberty, you don't need to risk
for grand ambitions because you have the daily satisfaction of having
taken one step closer in a direction that was demonstrably correct and
practical. Furthermore... I want to see Cincom developers anxious to fix problems and
incorporate solutions instead of being stressed by a list of scheduled
requirements. The best code often comes from a useful but complicated body
of code that incrementally evolved into a work of art--to a form not
originally anticipated. Bad code comes from replacing one complicated mass of
code with another with some new forced twist--and then needing to support both.
Bad code happens from a legacy of resisting refinements to "working"
code. When I send a fix to Cincom, I want it released in product to
customers within a month or two (this is why open-source works; not because it
is "free"). There is a cost involved in sending code to Cincom
instead of just hacking a workaround into place. It is cheaper to just fix the
problem here and hope Cincom never changes code in a way that breaks
a workaround. For several years now, that has unfortunately been the most
effective approach. Fix it and forget about wasting time sharing or even
communicating the fix. I'd encourage a system that makes it more practical
for me to share fixes with more than an excuse in return. Cincom doesn't need to eat the entire elephant, but they do have to
encourage others to join them at the table and offer them a carving knife and a
fork. Paul Baumann From: [hidden email]
[mailto:[hidden email]] On Behalf Of [hidden email] I’ve spent the past couple of days reading through this
entire list. In terms of GUI upgrades, especially for native widgets,
could someone please explain why that is really so infeasible? I must be
dense, so could you use small words? J While it may take a
release or two to get there, it seems that we have all of the pieces [or
thought experiments] in place to do it:
I think one objective is to be able to do this
polymorphically: native and emulated widgets on the same window. It
can’t be such a hard thing, since an emulated widget is really nothing
more than a direct draw capability to the underlying window canvas. All
the drawing primitives ultimately do that, so the adjustments should come
naturally simply by moving behavior into the image. Where we have
“LookPolicy” we’d add “NativeUIPolicy” or
something. I’m not denying that this wouldn’t take some
significant work, but at this stage it could at least be planned or prototyped.
Cheers!
This message may contain confidential information and is intended
for specific recipients unless explicitly noted otherwise. If you have reason
to believe you are not an intended recipient of this message, please delete it
and notify the sender. This message may not represent the opinion of
IntercontinentalExchange, Inc. (ICE), its subsidiaries or affiliates, and does
not constitute a contract or guarantee. Unencrypted electronic mail is not
secure and the recipient of this message is expected to provide safeguards from
viruses and pursue alternate means of communication where privacy or a binding
message is desired. _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Free forum by Nabble | Edit this page |