<br><br><div><span class="gmail_quote">On 4/17/07, <b class="gmail_sendername">Philippe Marschall</b> &lt;<a href="mailto:philippe.marschall@gmail.com">philippe.marschall@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
You said:<br>&gt; 5) Chalten is based on a arithmetic model that allows you to represent time measurements easily (like 3 days, 5 months, etc)<br><br>So I assumed you meant we could write<br>5 months<br>just the same way we could write
<br>100 dollars<br>like the examples in the paper show.</blockquote><div><br>No &quot;5 months&quot; but &quot;5 * months&quot; or &quot;moth with: 5&quot;. Same for &quot;dollars&quot;, &quot;euros&quot;, &quot;meters&quot;, &quot;liters&quot;, &quot;A&quot;, &quot;B&quot;, etc.
<br>That is why I think that measure was not a good word to define this objects... 5*A is not a measure.. what we implemented is really an algebra, maybe a limited one, but an algebra at the end.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt; &gt; And there is still the question where year comes from<br>&gt; &gt; (please no shared pool).<br>&gt;<br>&gt; I did not see that question, but the answer is No.&nbsp;&nbsp;The variable &quot;year&quot; is<br>&gt; global. The same as month, day, January, February, Monday, etc. Maybe you
<br>&gt; will not like it,<br><br>Global state sucks, no matter how well intended. I haven&#39;t tested it<br>but I wouldn&#39;t be surprised if it causes problems with Monticello.</blockquote><div><br>Well, I do not agree... I used to think like that but I&#39;ve changed my mind... Object should be global if the entity they represent in real life is global... but I understand that you don&#39;t like them.
<br>From an Software Engineering point of view, global variables are not good... but if you think software development as a learning process and you see the Smalltalk image as the &quot;state&quot; of your knowledge about a specific domain(s), having global objects (well know objects) is not bad.... 
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt; but I think that the time domain is so important in<br>&gt; writing software as the arithmetic domain,
<br><br>I think time sucks as a domain. Days that don&#39;t have 24 hours, minutes<br>that don&#39;t have 60 seconds, years that don&#39;t have 365 days, different<br>calendars, timezones, points in time with timezones and without
<br>timezones, timezones with more than two DST changes, different week<br>start days, .... For every rule there&#39;s an exception and these can<br>change at basically any time. Seriously, how much worse can it get?</blockquote>
<div><br>I believe it is a really interesting domain!!&nbsp; because of the things you mention! because the exceptions it has makes it a very interesting and challenging problem to design.<br></div>&nbsp;<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt; so if numbers are global (1, 2,<br>&gt; 3, etc) why not the time objects? They are well know entities of the real<br>&gt; life....<br><br>Numbers are literals not global variables.</blockquote><div><br>Well... that&#39;s an implementation detail... at the end they are global. They are not &quot;global variables&quot; but &quot;global objects&quot; because the parser knows about them.... so, at the end, they are global. And I think it is ok for them to be global because it is almost impossible to think about a programming language without numbers.... when we get a programming language we are expecting to have at least the math to be model with it... (a programming language without numbers as primitives is a very challenging idea... I don&#39;t know if it is feasible...)
<br><br>Anyhow, I think that when your knowledge about a problem domain (Smalltalk image) is mature, you will end up with some global objects... We develop financial software and I have to tell you that having &quot;dollar&quot;, &quot;euro&quot;, etc. as global objects would help us a lot... for example no need to declare them on each unit test (of course we use test resources, but still), no need for the final user to define them (they expect dollar, euro, peso, etc. as part of the &quot;kit&quot;)...
<br><br>Bye,<br>Hernan.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Cheers<br>Philippe<br><br>&gt; Bye,<br>&gt; Hernan.<br>
&gt;<br>&gt;<br>&gt; &gt; Cheers<br>&gt; &gt; Philippe<br>&gt; &gt;<br>&gt; &gt; &gt;<br>&gt; <a href="http://portal.acm.org/citation.cfm?id=1094964&amp;coll=ACM&amp;dl=ACM&amp;CFID=20205775&amp;CFTOKEN=19800555">http://portal.acm.org/citation.cfm?id=1094964&amp;coll=ACM&amp;dl=ACM&amp;CFID=20205775&amp;CFTOKEN=19800555
</a><br>&gt; &gt; &gt; )<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Hope this help.<br>&gt; &gt; &gt; Hernan.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Cheers<br>&gt; &gt; &gt; &gt; Philippe<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; These objects are
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; polymorphic with numbers respect to the arithmetic messages such<br>&gt; as<br>&gt; &gt; &gt; +,<br>&gt; &gt; &gt; &gt; &gt; -, *,<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; etc., that means that you can use them in arithmetic formulas
<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; That&#39;s true to a certain extent in Chronos for example you can:<br>&gt; &gt; &gt; &gt; &gt; &gt; Timepoint now - (CalendarDuration months: 1)<br>&gt; &gt; &gt; &gt; &gt; &gt; (CalendarDuration months: 1) * 5
<br>&gt; &gt; &gt; &gt; &gt; &gt; but you can&#39;t:<br>&gt; &gt; &gt; &gt; &gt; &gt; 5 * (CalendarDuration months: 1)<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Ok, but it is not only the functionality what it is important for
<br>&gt; us...<br>&gt; &gt; &gt; for<br>&gt; &gt; &gt; &gt; &gt; us it is also important the way you &quot;write&quot; these things... for<br>&gt; example,<br>&gt; &gt; &gt; &gt; &gt; with Chalten/Aconcagua you can write:
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; 5 * month ---&gt; Equivalent to 5 * (CalendarDuration months: 1)<br>&gt; &gt; &gt; &gt; &gt; 5 * meter / (second * second) --&gt; A measure of acceleration if you<br>
&gt; &gt; &gt; create<br>&gt; &gt; &gt; &gt; &gt; meter as a unit using Aconcagua<br>&gt; &gt; &gt; &gt; &gt; 1/10 * year --&gt; Represents an interest rate of 10% yearly.<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; As you can see, time measure are not only related only to the time
<br>&gt; &gt; &gt; domain<br>&gt; &gt; &gt; &gt; &gt; but used in other domains... that is way for us it is important to<br>&gt; &gt; &gt; support<br>&gt; &gt; &gt; &gt; &gt; this type of behavior and in a DSL way...<br>&gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt; Bye,<br>&gt; &gt; &gt; &gt; &gt; Hernan.<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; 5) And of course, I like Chalten&#39;s model more that Chronos :-).<br>&gt; For<br>&gt; &gt; &gt; me
<br>&gt; &gt; &gt; &gt; &gt; it is<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; easier to use, but this is just a matter of taste...<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; There is a paper we wrote 2 years ago about the problems that
<br>&gt; the<br>&gt; &gt; &gt; &gt; &gt; Smalltalk<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; date classes have and the advantages of having a better model.<br>&gt; If<br>&gt; &gt; &gt; you<br>&gt; &gt; &gt; &gt; &gt; are<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; interested on having better date and time classes, I recommend
<br>&gt; you<br>&gt; &gt; &gt; to<br>&gt; &gt; &gt; &gt; &gt; read<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; the paper... you may not like it, but at least you will see<br>&gt; other<br>&gt; &gt; &gt; people<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; ideas...
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; We use that model (Chalten) in a production system and we<br>&gt; believe it<br>&gt; &gt; &gt; &gt; &gt; allowed<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; us to avoid many common mistakes related to financial
<br>&gt; systems....<br>&gt; &gt; &gt; but<br>&gt; &gt; &gt; &gt; &gt; hey,<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; that&#39;s just a feeling, nothing I can prove formally.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; I hope you can do something useful.
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; Bye,<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; Chronos is a bit ugly in Squeak because Squeak does not support<br>&gt; &gt; &gt; &gt; &gt; &gt; namespaces which means that classes that model the same concept as
<br>&gt; &gt; &gt; &gt; &gt; &gt; Squeak Chronology classes have different names (unless you mess<br>&gt; with<br>&gt; &gt; &gt; &gt; &gt; &gt; shared pools). Also loading it is a bit of a pain with Monticello<br>&gt; &gt; &gt; &gt; &gt; &gt; (this is the fault of Monticello and not Chronos).
<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; Cheers<br>&gt; &gt; &gt; &gt; &gt; &gt; Philippe<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; Hernan.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; On 4/16/07, J J &lt;<a href="mailto:azreal1977@hotmail.com">azreal1977@hotmail.com</a> &gt; wrote:<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I have looked at Cronos but it is really huge, and the classes
<br>&gt; &gt; &gt; that<br>&gt; &gt; &gt; &gt; &gt; come<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; with the image are already very close.&nbsp;&nbsp;I will have to look at<br>&gt; &gt; &gt; &gt; &gt; Chalten,<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; but
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; what is wrong with a few upgrades to the classes that come<br>&gt; with<br>&gt; &gt; &gt; &gt; &gt; Squeak?<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;From: &quot;Hernan Wilkinson&quot; &lt; 
<a href="mailto:hernan.wilkinson@gmail.com">hernan.wilkinson@gmail.com</a>&gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;Reply-To: The general-purpose Squeak developers<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;list&lt; 
<a href="mailto:squeak-dev@lists.squeakfoundation.org">squeak-dev@lists.squeakfoundation.org</a><br>&gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;To: &quot;The general-purpose Squeak developers<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;list&quot;&lt; 
<a href="mailto:squeak-dev@lists.squeakfoundation.org">squeak-dev@lists.squeakfoundation.org</a><br>&gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;Subject: Re: Date classes<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;Date: Mon, 16 Apr 2007 14:28:09 -0300
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;Before doing something with Date, I recommend you to take a<br>&gt; look<br>&gt; &gt; &gt; at<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&quot;Chalten&quot; or &quot;Cronos&quot;. Chalten is in SqueakSource.... I think
<br>&gt; &gt; &gt; Cronos<br>&gt; &gt; &gt; &gt; &gt; too.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;Hernan.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;On 4/16/07, J J &lt; 
<a href="mailto:azreal1977@hotmail.com">azreal1977@hotmail.com</a>&gt; wrote:<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;Hi all,<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;I am doing some stuff with dates and I noticed the date<br>&gt; classes<br>&gt; &gt; &gt; that<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; come<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;with the default Squeak image are very nice and very close
<br>&gt; to<br>&gt; &gt; &gt; having<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;everything I would want.&nbsp;&nbsp;But there are a few<br>&gt; inconsistencies<br>&gt; &gt; &gt; here<br>&gt; &gt; &gt; &gt; &gt; and<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;there, and things missing that would make things easier.
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;So what is the procedure to updating this?&nbsp;&nbsp;I think it&#39;s<br>&gt; part of<br>&gt; &gt; &gt; the<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; core
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;system so I probably can&#39;t just do a monicello package<br>&gt; update<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;somewhere?&nbsp;&nbsp;Do<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;I have to do it through mantis?
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;Thanks,<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;Jason<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt;&gt;_________________________________________________________________<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;Download Messenger. Join the i&#39;m Initiative. Help make a
<br>&gt; &gt; &gt; difference<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; today.<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt;&gt;<a href="http://im.live.com/messenger/im/home/?source=TAGHM_APR07">
http://im.live.com/messenger/im/home/?source=TAGHM_APR07</a><br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt;<br>&gt; _________________________________________________________________<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Get a FREE Web site, company branded e-mail and more from<br>&gt; &gt; &gt; Microsoft
<br>&gt; &gt; &gt; &gt; &gt; Office<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Live!<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; <a href="http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/">
http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/</a><br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br><br></blockquote></div><br>