<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-6374583985636407395.post2032358522153283058..comments</id><updated>2009-10-02T13:00:30.775-07:00</updated><title type='text'>Comments on Scala Blog: Scala the statically typed dynamic language</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.scala-blogs.org/feeds/2032358522153283058/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html'/><author><name>Steve Jenson</name><uri>http://www.blogger.com/profile/09686593839106107926</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-8878986347898288379</id><published>2009-10-02T13:00:30.978-07:00</published><updated>2009-10-02T13:00:30.978-07:00</updated><title type='text'>As of 10/2009, I don't see any follow-up postings ...</title><content type='html'>As of 10/2009, I don&amp;#39;t see any follow-up postings that cover method_missing, open classes, or other features that I tend to expect in dynamic languages.  Wassup?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/8878986347898288379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/8878986347898288379'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1254513630978#c8878986347898288379' title=''/><author><name>rich_morin</name><uri>http://www.blogger.com/profile/03488860474611750323</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-2126234436333596626</id><published>2009-02-18T14:23:39.370-08:00</published><updated>2009-02-18T14:23:39.370-08:00</updated><title type='text'>Just wondering when that next post about method_mi...</title><content type='html'>Just wondering when that next post about method_missing and open classes (like in Ruby) will be ??&lt;BR/&gt;&lt;BR/&gt;I am holding my breath to see that magic in scala ...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/2126234436333596626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/2126234436333596626'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1234995819370#c2126234436333596626' title=''/><author><name>Daya Sharma</name><uri>http://www.blogger.com/profile/13764052635350377910</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-8233344881983601119</id><published>2009-01-24T09:33:27.722-08:00</published><updated>2009-01-24T09:33:27.722-08:00</updated><title type='text'>I thought I had a handle on Scala, having read my ...</title><content type='html'>I thought I had a handle on Scala, having read my way through most of the online tutorial, but this post made my eyes pop out — I did not realize that Scala's static typing was this flexible.&lt;BR/&gt;&lt;BR/&gt;Currently my favorite/primary language is Objective-C 2, with some straying into Ruby and Python, but Scala increasingly looks like it'll give me the best of both worlds.&lt;BR/&gt;&lt;BR/&gt;I just got the big fat Artima book in the mail yesterday, so it's time to practice my Scala this weekend! Thanks again for writing this.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/8233344881983601119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/8233344881983601119'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1232818407722#c8233344881983601119' title=''/><author><name>sneJ</name><uri>http://www.blogger.com/profile/16216066893297831727</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-6052428365121202153</id><published>2008-03-24T10:55:31.580-07:00</published><updated>2008-03-24T10:55:31.580-07:00</updated><title type='text'>Nag nag! ;)</title><content type='html'>Nag nag! ;)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/6052428365121202153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/6052428365121202153'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1206381331580#c6052428365121202153' title=''/><author><name>binil</name><uri>http://binil.wordpress.com/</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-6865919487419009142</id><published>2008-01-31T22:56:15.153-08:00</published><updated>2008-01-31T22:56:15.153-08:00</updated><title type='text'>And I'm eagerly awaiting writing it, but I've been...</title><content type='html'>And I'm eagerly awaiting writing it, but I've been sidetracked by paying clients, new business development and a couple of very charming 3 year olds.  Maybe I'll get to something this weekend. :-)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/6865919487419009142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/6865919487419009142'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1201848975153#c6865919487419009142' title=''/><author><name>David Pollak</name><uri>http://www.blogger.com/profile/16630520857988769066</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13947953224423533253'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-5616557693201044579</id><published>2008-01-31T22:44:18.544-08:00</published><updated>2008-01-31T22:44:18.544-08:00</updated><title type='text'>David, eagerly looking forward to the next post in...</title><content type='html'>David, eagerly looking forward to the next post in this series.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/5616557693201044579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/5616557693201044579'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1201848258544#c5616557693201044579' title=''/><author><name>binil</name><uri>http://binil.wordpress.com/</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-4394583935068742738</id><published>2008-01-02T12:18:52.628-08:00</published><updated>2008-01-02T12:18:52.628-08:00</updated><title type='text'>Paddy,The advantage of view bounds is that they wo...</title><content type='html'>Paddy,&lt;BR/&gt;&lt;BR/&gt;The advantage of view bounds is that they work for any type A for which there is an implicit function from A -&gt; B in scope (where B is the required type). The function that requires a B doesn't need to be changed to add a case for each different type A.&lt;BR/&gt;&lt;BR/&gt;Thus there is no need for handling exceptions or if-then-else'ing.&lt;BR/&gt;&lt;BR/&gt;Jeremy</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/4394583935068742738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/4394583935068742738'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199305132628#c4394583935068742738' title=''/><author><name>Jeremy</name><uri>http://www.blogger.com/profile/14265015716597110506</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-6962001756641876851</id><published>2008-01-02T11:19:29.101-08:00</published><updated>2008-01-02T11:19:29.101-08:00</updated><title type='text'>If you compare your definition of duck typing:"So,...</title><content type='html'>If you compare your definition of duck typing:&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;"So, one of the places that dynamic languages shine is the ability to pass an object (or a collection of objects) to a method and as long as the objects implement particular methods (e.g., name and age), the method will execute just fine."&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;With that from the &lt;A HREF="http://en.wikipedia.org/wiki/Duck_typing" REL="nofollow"&gt; &lt;BR/&gt;Wikipedia article&lt;/A&gt;, specifically the "Comparison with other type systems", you would find that Ruby and Python, being dynamic, don't have to rely on a statically determined interface, or method signature as Scala does.&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;If you take a look at &lt;A HREF="http://en.wikipedia.org/wiki/Talk:Duck_typing#Confusing_template_sentence-.3E.28no.29_Static_vs_Dynamic_typing" REL="nofollow"&gt;&lt;BR/&gt;this example&lt;/A&gt; You will see some of the extra flexibility you get.&lt;BR/&gt;&lt;BR/&gt;&lt;BR/&gt;-&lt;BR/&gt;&lt;BR/&gt;On the Scala "non-uniform naming scheme handling feature" then you are rigth in that Python does not do it that way. The Python developers haven't yet seen the need to explicitely support this kind of thing in the language, (maybe they haven't been introduced to Scala); but the normal way of handling this would be to try and call the first method - catch the exception due to the method not being present and in the exception handler, try the alternative.&lt;BR/&gt;&lt;BR/&gt;- Paddy.&lt;BR/&gt;--&lt;BR/&gt;P.S. My tone is meant to be informative, supportive of Python, and certainly not denigrating.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/6962001756641876851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/6962001756641876851'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199301569101#c6962001756641876851' title=''/><author><name>Paddy3118</name><uri>http://www.blogger.com/profile/06899509753521482267</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-8940583053209060479</id><published>2007-12-31T07:40:18.645-08:00</published><updated>2007-12-31T07:40:18.645-08:00</updated><title type='text'>Well, I thought I'd have to wait till es4 to play ...</title><content type='html'>Well, I thought I'd have to wait till es4 to play with static verification/structural typing in a live project — and it turns out I can already have it in Scala. Very cool.&lt;BR/&gt;&lt;BR/&gt;Looking forward dynamic dispatch!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/8940583053209060479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/8940583053209060479'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199115618645#c8940583053209060479' title=''/><author><name>Graven</name><uri>http://graven.igni.ru/</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-2131303516617521492</id><published>2007-12-30T22:22:36.898-08:00</published><updated>2007-12-30T22:22:36.898-08:00</updated><title type='text'>You said: "Over the next few postings, I'm going t...</title><content type='html'>You said: "Over the next few postings, I'm going to demonstrate that most of the safe (taking input off the wire and doing method lookup on that input is not safe) constructs that dynamically typed languages have are available in Scala."&lt;BR/&gt;&lt;BR/&gt;David: do you mean "safe" in a programming language sense or a security sense? Because the security of taking input off the wire and doing method lookup depends on a host of factors outside of the language. (firewalls, for a start) If we were to conflate type safety and security-safety then we'd have to discard relational databases as "unsafe" because SQL is more or less "dynamic method lookup."&lt;BR/&gt;&lt;BR/&gt;Along the same lines: Java has some tools that allow you to circumvent type safety and do dynamic method lookup and calling when appropriate (e.g. when Java code is being called by a dynamic language). Does  Scala have equivalents? And in particular, will you discuss dynamic loading of Scala and/or Java code?&lt;BR/&gt;&lt;BR/&gt;Even strongly Java-centric systems like Eclipse and Tomcat rely on dynamic code modules which may throw type exceptions at (dynamic) link time.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/2131303516617521492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/2131303516617521492'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199082156898#c2131303516617521492' title=''/><author><name>Paul Prescod</name><uri>http://www.blogger.com/profile/15412258048017521995</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-7039012947315117822</id><published>2007-12-30T22:04:43.015-08:00</published><updated>2007-12-30T22:04:43.015-08:00</updated><title type='text'>Ben and Reginald - you'll get method_missing and "...</title><content type='html'>Ben and Reginald - you'll get method_missing and "open classes" (changing the dispatch table) in my next post.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/7039012947315117822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/7039012947315117822'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199081083015#c7039012947315117822' title=''/><author><name>David Pollak</name><uri>http://www.blogger.com/profile/16630520857988769066</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13947953224423533253'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-3767353227554444956</id><published>2007-12-30T20:39:17.692-08:00</published><updated>2007-12-30T20:39:17.692-08:00</updated><title type='text'>David,I agree with Reginald.  I think the point yo...</title><content type='html'>David,&lt;BR/&gt;&lt;BR/&gt;I agree with Reginald.  I think the point your making is a good one, and I like Scala, but I was confused by the use of the word dynamic.  I'm a Squeak hacker at the moment, and I was waiting for something like method_missing or open classes.  &lt;BR/&gt;&lt;BR/&gt;Still, I like the post.&lt;BR/&gt;&lt;BR/&gt;Ben</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/3767353227554444956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/3767353227554444956'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199075957692#c3767353227554444956' title=''/><author><name>Ben</name><uri>http://www.blogger.com/profile/13772596093936381420</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-4444123486291278369</id><published>2007-12-30T20:13:17.483-08:00</published><updated>2007-12-30T20:13:17.483-08:00</updated><title type='text'>David:I like the post, but the title left me a lit...</title><content type='html'>David:&lt;BR/&gt;&lt;BR/&gt;I like the post, but the title left me a little confused. You seem to be describing how Scala provides the benefits of latent or implicit typing while also guaranteeing type safety.&lt;BR/&gt;&lt;BR/&gt;I like that.&lt;BR/&gt;&lt;BR/&gt;When I think of "Dynamic" typing, I think of actual run-time changes to type, such as method_mising handling, singleton classes, and the oft-maligned open classes.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/4444123486291278369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/4444123486291278369'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199074397483#c4444123486291278369' title=''/><author><name>Reginald Braithwaite</name><uri>http://www.blogger.com/profile/13132345822387028437</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-1560962771746140828</id><published>2007-12-30T20:09:18.881-08:00</published><updated>2007-12-30T20:09:18.881-08:00</updated><title type='text'>As David pointed out, the problem with interfaces ...</title><content type='html'>As David pointed out, the problem with interfaces (or virtual base classes, or anything else along the same lines) is that you have to declare each class as implementing the interface.&lt;BR/&gt;&lt;BR/&gt;This quickly creates a thicket of interfaces for each class. besides the verbosity, they do not add much value to the class declaration, as David points out it's the &lt;I&gt;method&lt;/I&gt; you want to document.&lt;BR/&gt;&lt;BR/&gt;IMO, interfaces associated with concrete classes should be semantically significant. I don't think "ICanHazNameAndAge" adds any value since you can already see that in the declaration :-)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/1560962771746140828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/1560962771746140828'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199074158881#c1560962771746140828' title=''/><author><name>Reginald Braithwaite</name><uri>http://www.blogger.com/profile/13132345822387028437</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-5541062875125827393</id><published>2007-12-30T19:31:14.766-08:00</published><updated>2007-12-30T19:31:14.766-08:00</updated><title type='text'>Alex,I avoided List(a,b) just because the type of ...</title><content type='html'>Alex,&lt;BR/&gt;&lt;BR/&gt;I avoided List(a,b) just because the type of the collection is immaterial to the discussion and I didn't want to sidetrack on Array vs. List vs. ???.&lt;BR/&gt;&lt;BR/&gt;One can do this with Interfaces, but it starts getting really messy and it's one of the, IMHO, solid points that dynamic languages have going for them.  You don't have to add the INamePrice interface or have an interface for every field and have some wacky ICost with IName nonsense that COM devolved into.&lt;BR/&gt;&lt;BR/&gt;Put another way, Scala is statically typed with optional duck typing... the opposite of Objective-C et. al. with their duck typing with optional static typing.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/5541062875125827393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/5541062875125827393'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199071874766#c5541062875125827393' title=''/><author><name>David Pollak</name><uri>http://www.blogger.com/profile/16630520857988769066</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13947953224423533253'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-3312074334727753483</id><published>2007-12-30T18:29:02.786-08:00</published><updated>2007-12-30T18:29:02.786-08:00</updated><title type='text'>Although I know that ... :: ... :: Nil is creating...</title><content type='html'>Although I know that ... :: ... :: Nil is creating a list, I'm betting most of the people having done a few hours of a Ruby class won't. &lt;BR/&gt;&lt;BR/&gt;Why not use the equivalent but slightly less punctual List(a,b) instead?&lt;BR/&gt;&lt;BR/&gt;Also, whilst you can do this in Scala, arguably one could do the same in Java with interfaces, right?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/3312074334727753483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/3312074334727753483'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199068142786#c3312074334727753483' title=''/><author><name>AlBlue</name><uri>http://www.blogger.com/profile/06362201865553416948</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-177875878859579428</id><published>2007-12-30T17:02:29.358-08:00</published><updated>2007-12-30T17:02:29.358-08:00</updated><title type='text'>If your view is on a structural subtype, you can r...</title><content type='html'>If your view is on a structural subtype, you can replace the case class with an anonymous class:&lt;BR/&gt;&lt;BR/&gt;implicit def priceToCost(in: {def price: Int}) = new { def cost = price }</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/177875878859579428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/177875878859579428'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199062949358#c177875878859579428' title=''/><author><name>Jorge Ortiz</name><uri>http://www.blogger.com/profile/14454965475839432618</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03752041380462415133'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-6374583985636407395.post-4655820320243743247</id><published>2007-12-30T16:49:47.775-08:00</published><updated>2007-12-30T16:49:47.775-08:00</updated><title type='text'>Good stuff Dave!And I think it's great you left th...</title><content type='html'>Good stuff Dave!&lt;BR/&gt;&lt;BR/&gt;And I think it's great you left the term "Structural subtyping" out of the post! :)&lt;BR/&gt;&lt;BR/&gt;Cheers,&lt;BR/&gt;&lt;BR/&gt;Viktor</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/4655820320243743247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6374583985636407395/2032358522153283058/comments/default/4655820320243743247'/><link rel='alternate' type='text/html' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html?showComment=1199062187775#c4655820320243743247' title=''/><author><name>Viktor</name><uri>http://www.blogger.com/profile/03102746463606533061</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html' ref='tag:blogger.com,1999:blog-6374583985636407395.post-2032358522153283058' source='http://www.blogger.com/feeds/6374583985636407395/posts/default/2032358522153283058' type='text/html'/></entry></feed>