<?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-24248206.post4730986768274766013..comments</id><updated>2011-11-10T19:14:24.571+01:00</updated><category term='parser generator'/><category term='case study'/><category term='DSLs'/><category term='helios'/><category term='slides'/><category term='left factoring'/><category term='javascript'/><category term='nordic coding'/><category term='domain-specific languages'/><category term='kotlin'/><category term='jdt'/><category term='autosar'/><category term='conference'/><category term='Java multi-line strings'/><category term='xpand'/><category term='scoping'/><category term='extension methods'/><category term='CG2011'/><category term='Galileo'/><category term='itemis'/><category term='UML modeling brumm brumm'/><category term='GSoC'/><category term='Languages'/><category term='git'/><category term='eclipse modeling itemis'/><category term='DSL'/><category term='DSL code generation eclipse xtext slides'/><category term='xtext'/><category term='eclipse'/><category term='Eclipse EclipseCon Modeling Xtext'/><category term='Guice'/><category term='code generation'/><category term='presentations'/><category term='language design'/><category term='builder API'/><category term='guicecon'/><category term='emf index'/><category term='JVM'/><category term='scala'/><category term='OSGi'/><category term='eclipsecon'/><category term='java'/><category term='democamps'/><category term='refactoring'/><category term='english'/><category term='webinar'/><category term='Java testing performance'/><category term='example'/><category term='protocol buffers'/><category term='left recursion'/><category term='jax 2010'/><category term='website'/><category term='lambda'/><category term='fowler'/><category term='api design'/><category term='packrat'/><category term='java.scala'/><category term='oaw eclipse xtext'/><category term='android'/><category term='expressions'/><category term='MDSD'/><category term='xtend'/><category term='groovy'/><category term='eclipse summit'/><category term='index'/><category term='xbase'/><category term='modeling'/><category term='kiel'/><category term='release'/><category term='automotive'/><category term='http://www.blogger.com/img/gl.link.gif'/><category term='xtend 2'/><category term='internal DSLs'/><category term='oAW'/><category term='codegeneration'/><category term='OpenJDK'/><title type='text'>Comments on Sven Efftinge's Blog: Dear Java killers,</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.efftinge.de/feeds/4730986768274766013/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default?start-index=26&amp;max-results=25'/><author><name>Sven Efftinge</name><uri>http://www.blogger.com/profile/11751196715155150517</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Ii_da0jTxAY/SNxsRY6r26I/AAAAAAAAABk/WzYcCAnzC9Q/S220/foto-openbc.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-24248206.post-6718928882039783122</id><published>2011-11-10T18:42:17.827+01:00</published><updated>2011-11-10T18:42:17.827+01:00</updated><title type='text'>Excellent points, most of them. I&amp;#39;d agree with...</title><content type='html'>Excellent points, most of them. I&amp;#39;d agree with Dusan about what you&amp;#39;re calling &amp;quot;obsolete&amp;quot; features, though.&lt;br /&gt;&lt;br /&gt;As a guy who worked on ANTLR, and other code-generators, constructs like break, continue, case-fallthru make code generation &lt;b&gt;much&lt;/b&gt; simpler.&lt;br /&gt;&lt;br /&gt;In day-to-day programming, I also regularly use break/continue to make loop processing much more clear, eliminating yet-another-boolean-flag-in-a-loop-condition growth.&lt;br /&gt;&lt;br /&gt;Keep up the good work on xtext! Awesome tool!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/6718928882039783122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/6718928882039783122'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1320946937827#c6718928882039783122' title=''/><author><name>Scott Stanchfield</name><uri>http://www.blogger.com/profile/09801069573915461900</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-864586371'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-4284055432602650804</id><published>2011-11-10T13:55:18.402+01:00</published><updated>2011-11-10T13:55:18.402+01:00</updated><title type='text'>I agree with most of your post, which is why I don...</title><content type='html'>I agree with most of your post, which is why I don&amp;#39;t understand the decision to add a &amp;quot;def&amp;quot; to function definitions in Xtend which only adds unnecessary verbosity.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/4284055432602650804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/4284055432602650804'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1320929718402#c4284055432602650804' title=''/><author><name>Daniel Serodio</name><uri>http://www.blogger.com/profile/04702510073994831969</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_CsQt8k8nq-0/SwbtahHR0iI/AAAAAAAAAG0/wR_QJcf-wO0/S220/avatar.JPG'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-398884762'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-1483097897436022804</id><published>2011-05-07T21:27:43.951+01:00</published><updated>2011-05-07T21:27:43.951+01:00</updated><title type='text'>Unreified generics get a bad rap, but maybe undese...</title><content type='html'>Unreified generics get a bad rap, but maybe undeservedly so. One thing that&amp;#39;s important to note is that the only widely-used languages that do reify generic are the .net languages and C++. Do ML, OCaml, or Haskell have reified generics? Nope. And, yet, they are often seen as ideal implementations of universal polymorphism. &lt;br /&gt;&lt;br /&gt;In my opinion the shortcomings of Java&amp;#39;s generics lie elsewhere: No coverage of primitive types, wildcards making life complicated for library users (as opposed to library designers), arrays sticking out like a sore thumb, to name just three. Neither of these problems is found in .net (nor, I should say, Scala), and that&amp;#39;s why .net and Scala generics are generally perceived to be superior.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/1483097897436022804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/1483097897436022804'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1304800063951#c1483097897436022804' title=''/><author><name>martin</name><uri>http://www.blogger.com/profile/05955349008001468964</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1939459225'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-3671549093633621223</id><published>2011-04-20T13:44:17.417+01:00</published><updated>2011-04-20T13:44:17.417+01:00</updated><title type='text'>Thanks for this great article
&lt;a href="http://extr...</title><content type='html'>Thanks for this great article&lt;br /&gt;&lt;a href="http://extreme-java.blogspot.com" rel="nofollow"&gt;Extreme Java&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/3671549093633621223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/3671549093633621223'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1303303457417#c3671549093633621223' title=''/><author><name>Sandeep</name><uri>http://www.blogger.com/profile/14459583259453333684</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-503983449'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-3527853637289245564</id><published>2011-04-19T20:44:37.353+01:00</published><updated>2011-04-19T20:44:37.353+01:00</updated><title type='text'>With Groovy, you can have the benefits of static c...</title><content type='html'>With Groovy, you can have the benefits of static checking with IDEA joint-compiler. It&amp;#39;s like bring the best of both worlds.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/3527853637289245564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/3527853637289245564'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1303242277353#c3527853637289245564' title=''/><author><name>Wanderson Santos</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-152972269'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-8044462691919173571</id><published>2011-04-18T18:31:32.055+01:00</published><updated>2011-04-18T18:31:32.055+01:00</updated><title type='text'>&amp;gt; closures

Java has closures since ... i don&amp;#...</title><content type='html'>&amp;gt; closures&lt;br /&gt;&lt;br /&gt;Java has closures since ... i don&amp;#39;t know when -- inner classes create closures. What it&amp;#39;s lacking is clean syntax for lambdas.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/8044462691919173571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/8044462691919173571'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1303147892055#c8044462691919173571' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1885548976'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-7467116366162487543</id><published>2011-04-18T16:41:54.050+01:00</published><updated>2011-04-18T16:41:54.050+01:00</updated><title type='text'>With respect to reified generics, the essential pr...</title><content type='html'>With respect to reified generics, the essential problem with them is that they encourage a style of programming that is not scalable: they encourage explicit type checks. One of the fundamentals of object-oriented programming is that it is necessary to separate interface from implementation to keep concerns properly decoupled, but as soon as you start doing explicit dispatch based upon concrete type, you couple whatever is doing the dispatching to the implementation of those types.&lt;br /&gt;&lt;br /&gt;There are, of course, situations (serialization being the prime example) where having the extra type information would be nice; here, Scala provides such a mechanism with implicit manifests. Local and optional reification can be useful, but I don&amp;#39;t believe that it should be the default, as most of the time it would cause more problems than it solves.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/7467116366162487543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/7467116366162487543'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1303141314050#c7467116366162487543' title=''/><author><name>Kris Nuttycombe</name><uri>http://www.blogger.com/profile/06347383351250086727</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://www.crags.net/images/climbing/joes/b03-5-25b.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-870478337'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-1300983548599619116</id><published>2011-04-18T11:28:45.090+01:00</published><updated>2011-04-18T11:28:45.090+01:00</updated><title type='text'>Mmm, I tried to post my comment some days ago (wou...</title><content type='html'>Mmm, I tried to post my comment some days ago (would have been the first one) but Blogger rejected it. Looks like it is the OpenID identification which is broken... [EDIT: Google account doesn&amp;#39;t work either. Will try just Name/URL...]&lt;br /&gt;&lt;br /&gt;I will just paste the comments below, even if some points have been already addressed by some comments above.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;quot;&lt;i&gt;Don&amp;#39;t make unimportant changes&lt;/i&gt;&amp;quot;&lt;br /&gt;I agree, I found that the search of originality in Ceylon was sounding strange. If Java was irregular, it was just a matter of making it more regular with existing vocabulary.&lt;br /&gt;&lt;br /&gt;&amp;quot;&lt;i&gt;Static typing&lt;/i&gt;&amp;quot;&lt;br /&gt;I won&amp;#39;t argue there! :-) But &amp;quot;&lt;i&gt;I wouldn&amp;#39;t try to come up with a new statically-typed Ruby, since that doesn&amp;#39;t make much sense.&lt;/i&gt;&amp;quot;: you don&amp;#39;t know Mirah programming language, don&amp;#39;t you? ;-)&lt;br /&gt;&lt;br /&gt;&amp;quot;&lt;i&gt;I don&amp;#39;t think that more than 1% of all Java developers have really understood generics.&lt;/i&gt; [...] &lt;i&gt;most Java developers think they know generics and feel quite comfortable with it&lt;/i&gt;&amp;quot;&lt;br /&gt;So there is a difference between self perception of knowledge and real knowledge? :-)&lt;br /&gt;&amp;quot;&lt;i&gt;After all generics in Java are rather sound&lt;/i&gt;&amp;quot;&lt;br /&gt;Indeed, they have been designed by the creator of Scala... :-) who has been frustrated by the limitations of the JVM.&lt;br /&gt;I think I disagree with your view about reified generics, but I am not competent enough to argue...&lt;br /&gt;&lt;br /&gt;&amp;quot;&lt;i&gt;Use Type Inference&lt;/i&gt;&amp;quot;&lt;br /&gt;Not arguing there! ^_^&amp;#39;&lt;br /&gt;&lt;br /&gt;&amp;quot;&lt;i&gt;Care about Tool Support&lt;/i&gt;&amp;quot;&lt;br /&gt;Idem, and the Scala community is aware of that as well. I just disagree with your analysis of the name proposal. Actually, I didn&amp;#39;t even know the feature existed, and I doubt I will use it... Yes, I like the varName: typeName syntax, I find it clearer/more regular than the Java syntax and that&amp;#39;s one point that annoys me in Ceylon.&lt;br /&gt;&lt;br /&gt;&amp;quot;&lt;i&gt;Closures&lt;/i&gt;&amp;quot;&lt;br /&gt;Yes, we need them.&lt;br /&gt;&lt;br /&gt;&amp;quot;&lt;i&gt;Get rid of old unused concepts&lt;/i&gt;&amp;quot;&lt;br /&gt;I agree, except we still do lot of bit shifting and masking, eg. in image processing, I don&amp;#39;t see them superfluous.&lt;br /&gt;OK, maybe we don&amp;#39;t need them at the syntax level, they can be hidden in a class, speed is rarely a concern there.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/1300983548599619116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/1300983548599619116'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1303122525090#c1300983548599619116' title=''/><author><name>PhiLho</name><uri>http://Phi.Lho.free.fr</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-507438458'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-3114621032911361144</id><published>2011-04-18T10:46:45.078+01:00</published><updated>2011-04-18T10:46:45.078+01:00</updated><title type='text'>Blogger clearly prefers to erase the types as well...</title><content type='html'>Blogger clearly prefers to erase the types as well while processing the entries :)&lt;br /&gt;&lt;br /&gt;c in last snippet is collection of animals.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/3114621032911361144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/3114621032911361144'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1303120005078#c3114621032911361144' title=''/><author><name>Dusan</name><uri>http://www.blogger.com/profile/12967117642395700307</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1021623731'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-2419328245065739350</id><published>2011-04-18T10:28:03.414+01:00</published><updated>2011-04-18T10:28:03.414+01:00</updated><title type='text'>Q1: In what ways? 

Logically, you should be able ...</title><content type='html'>Q1: In what ways? &lt;br /&gt;&lt;br /&gt;Logically, you should be able to do more with more information available; things like&lt;br /&gt;&lt;br /&gt;- do X based on incoming not erased type; X={routing, (un)marshalling, ...}&lt;br /&gt;- new T (generic argument injected from outside)&lt;br /&gt;- remove useless generic arguments and casting from codebases with stuff similar to this&lt;br /&gt;http://www.vshank77.com/2009/12/builder-pattern-abused.html&lt;br /&gt;- ...&lt;br /&gt;&lt;br /&gt;Q2: What are you doing there?&lt;br /&gt;&lt;br /&gt;With 100 mil. &amp;quot;advice&amp;quot; files I meant many files across enterprise projects in whole industry, not in my project :)&lt;br /&gt;&lt;br /&gt;Q3: Any examples?&lt;br /&gt;&lt;br /&gt;Let&amp;#39;s assume you have classes Animal, Dog &amp;amp; Cat...&lt;br /&gt;&lt;br /&gt;Would code bellow be a issue, or it is just a special case because of type erasure? &lt;br /&gt;&lt;br /&gt;  public void go(Collection c) {&lt;br /&gt;    c.add(new Cat());&lt;br /&gt;  }</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/2419328245065739350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/2419328245065739350'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1303118883414#c2419328245065739350' title=''/><author><name>Dusan</name><uri>http://www.blogger.com/profile/12967117642395700307</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1021623731'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-200744051113503416</id><published>2011-04-17T13:24:43.760+01:00</published><updated>2011-04-17T13:24:43.760+01:00</updated><title type='text'>Completely agree &amp;quot;timate thing for a develope...</title><content type='html'>Completely agree &amp;quot;timate thing for a developer to write programs in a language you&amp;#39;ve built your own&amp;quot;, on that situation you can&amp;#39;t blame other for any shortcomings of language though :)&lt;br /&gt;&lt;br /&gt;Javin&lt;br /&gt;&lt;a href="http://javarevisited.blogspot.com/2011/04/top-10-java-serialization-interview.html" rel="nofollow"&gt;Top 10 Java Serialization Interview Question &lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/200744051113503416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/200744051113503416'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1303043083760#c200744051113503416' title=''/><author><name>Javin  Paul</name><uri>http://www.blogger.com/profile/15028902221295732276</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-629892724'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-1422050768851008016</id><published>2011-04-16T22:48:35.485+01:00</published><updated>2011-04-16T22:48:35.485+01:00</updated><title type='text'>&amp;gt; Dusan said...
&amp;gt; Couple of things:
&amp;gt;
&amp;gt...</title><content type='html'>&amp;gt; Dusan said...&lt;br /&gt;&amp;gt; Couple of things:&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; 3) &lt;br /&gt;&amp;gt; Type erasure was the worst idea ever and as far I &lt;br /&gt;&amp;gt; know it was done as a compromise for &lt;br /&gt;&amp;gt; compatibility reasons. If this would be working, we &lt;br /&gt;&amp;gt; would be much more expressive&lt;br /&gt;&lt;br /&gt;In what ways? &lt;br /&gt;&lt;br /&gt;&amp;gt; + we would not &lt;br /&gt;&amp;gt; need to have 100 mil &amp;quot;advice&amp;quot; files spread across &lt;br /&gt;&amp;gt; enterprise projects (see projects like Dozer,...)&lt;br /&gt;&lt;br /&gt;What are you doing there?&lt;br /&gt;&lt;br /&gt;&amp;gt; &lt;br /&gt;&amp;gt; Type erasure also heavily contributed to all the &lt;br /&gt;&amp;gt; edge cases, exceptions and complexity of generics &lt;br /&gt;&amp;gt; in general.&lt;br /&gt;&lt;br /&gt;Any examples?&lt;br /&gt;&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;gt; 7) &lt;br /&gt;&amp;gt; Fundamentals like bit operations are required: &lt;br /&gt;&amp;gt; hashing, libraries that deal with binary and hi &lt;br /&gt;&amp;gt; performance stuff and others rely on this... &lt;br /&gt;&amp;gt; (unsigned data types are completely missing... &lt;br /&gt;&amp;gt; leading to inefficient hacks on java side)&lt;br /&gt;&amp;gt; &lt;br /&gt;&amp;gt; I would like to know the reaction of ANTLR guys to &lt;br /&gt;&amp;gt; fall trough switch removal proposals... :)&lt;br /&gt;&lt;br /&gt;My last point should have been:&lt;br /&gt;Don&amp;#39;t be everything to everyone. ;-)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/1422050768851008016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/1422050768851008016'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302990515485#c1422050768851008016' title=''/><author><name>Sven Efftinge</name><uri>http://www.blogger.com/profile/11751196715155150517</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Ii_da0jTxAY/SNxsRY6r26I/AAAAAAAAABk/WzYcCAnzC9Q/S220/foto-openbc.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1100628811'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-908187514731842930</id><published>2011-04-16T22:44:18.479+01:00</published><updated>2011-04-16T22:44:18.479+01:00</updated><title type='text'>&amp;gt; Anonymous said...
&amp;gt; moreover creating a ne...</title><content type='html'>&amp;gt; Anonymous said...&lt;br /&gt;&amp;gt; moreover creating a new language should be an&lt;br /&gt;&amp;gt;  community process at least to define feature set &lt;br /&gt;&amp;gt; (specs) and implementation. it should be developed &lt;br /&gt;&amp;gt; bit by bit.&lt;br /&gt;&amp;gt; &lt;br /&gt;&amp;gt; new language must not be developed in isolation &lt;br /&gt;&amp;gt; otherwise it will fail.&lt;br /&gt;&lt;br /&gt;A programming language needs to be concise and coherent. It needs to be scoped, and should have a certain flavor and *feel*. A lot of very good  languages have been initially designed by just one person (e.g. Scala, Java, Ruby, Python).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/908187514731842930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/908187514731842930'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302990258479#c908187514731842930' title=''/><author><name>Sven Efftinge</name><uri>http://www.blogger.com/profile/11751196715155150517</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Ii_da0jTxAY/SNxsRY6r26I/AAAAAAAAABk/WzYcCAnzC9Q/S220/foto-openbc.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1100628811'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-4567572190471240748</id><published>2011-04-16T22:41:10.214+01:00</published><updated>2011-04-16T22:41:10.214+01:00</updated><title type='text'>&amp;gt; Cay Horstmann said...
&amp;gt; Loved the article,...</title><content type='html'>&amp;gt; Cay Horstmann said...&lt;br /&gt;&amp;gt; Loved the article, but I was a little confused about &lt;br /&gt;&amp;gt; the point you are making with generics. It hasn&amp;#39;t &lt;br /&gt;&amp;gt; been my experience that all nine million Java &lt;br /&gt;&amp;gt; programmers have a solid understanding of &lt;br /&gt;&amp;gt; generics. Sure, anyone can deal with array lists of &lt;br /&gt;&amp;gt; Foo, but when it comes to wildcards or erasure, I &lt;br /&gt;&amp;gt; think most people just close their eyes and hope &lt;br /&gt;&amp;gt; that the moment will pass. Which it usually does-&lt;br /&gt;&lt;br /&gt;Yes, they are somehow used to it.&lt;br /&gt;&lt;br /&gt;&amp;gt; -except for library writers, of course, who will &lt;br /&gt;&amp;gt; need to knuckle under and master this stuff. So, to &lt;br /&gt;&amp;gt; get to my question, how is different from Scala?&lt;br /&gt;&lt;br /&gt;Even if Scala&amp;#39;s type system is maybe even better from a neutral point of view it is very different and that scare a lot of people off. Even though they don&amp;#39;t fully understand the type system they use (Java&amp;#39;s) they are used to it. &lt;br /&gt;&lt;br /&gt;I don&amp;#39;t think that there are library users and library writers. Every programmer is both. It&amp;#39;s just that some libraries are bad and some are good and some have few clients some have many.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/4567572190471240748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/4567572190471240748'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302990070214#c4567572190471240748' title=''/><author><name>Sven Efftinge</name><uri>http://www.blogger.com/profile/11751196715155150517</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Ii_da0jTxAY/SNxsRY6r26I/AAAAAAAAABk/WzYcCAnzC9Q/S220/foto-openbc.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1100628811'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-1501130699290330182</id><published>2011-04-16T22:32:50.063+01:00</published><updated>2011-04-16T22:32:50.063+01:00</updated><title type='text'>&amp;gt; Isn&amp;#39;t Xtext targeted for niche/business s...</title><content type='html'>&amp;gt; Isn&amp;#39;t Xtext targeted for niche/business specific DSL&amp;#39;s &lt;br /&gt;&amp;gt; and not so much for large codebases of a generic &lt;br /&gt;&amp;gt; language ?&lt;br /&gt;&lt;br /&gt;DSLs are small programming languages and Xtext is a framework for programming language development.&lt;br /&gt;&lt;br /&gt;It is mostly used for smaller languages but that is just because the market for general purpose languages is not that big. Xtext is used for grown-up language IDEs (also commercial ones). &lt;br /&gt;&lt;br /&gt;This one for instance is built with Xtext : &lt;a href="http://goo.gl/Hsz79" rel="nofollow"&gt;http://goo.gl/Hsz79&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/1501130699290330182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/1501130699290330182'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302989570063#c1501130699290330182' title=''/><author><name>Sven Efftinge</name><uri>http://www.blogger.com/profile/11751196715155150517</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Ii_da0jTxAY/SNxsRY6r26I/AAAAAAAAABk/WzYcCAnzC9Q/S220/foto-openbc.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1100628811'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-7749400555454001031</id><published>2011-04-16T22:25:10.812+01:00</published><updated>2011-04-16T22:25:10.812+01:00</updated><title type='text'>&amp;gt; Adam Rabung said...
&amp;gt; Great post. Can you ...</title><content type='html'>&amp;gt; Adam Rabung said...&lt;br /&gt;&amp;gt; Great post. Can you elaborate on why reified generics&lt;br /&gt;&amp;gt; are a bad idea (besides Java interop problems)&lt;br /&gt;&lt;br /&gt;It is mostly the interop problem. &lt;br /&gt;But they would also have a huge effect on a lot of other language concepts. You should for instance change the instanceof operator to allow generified types. And what about overloaded methods such as foo(List) {} foo(List) {} should that be allowed than?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/7749400555454001031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/7749400555454001031'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302989110812#c7749400555454001031' title=''/><author><name>Sven Efftinge</name><uri>http://www.blogger.com/profile/11751196715155150517</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Ii_da0jTxAY/SNxsRY6r26I/AAAAAAAAABk/WzYcCAnzC9Q/S220/foto-openbc.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1100628811'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-6811879654015953197</id><published>2011-04-16T22:06:24.310+01:00</published><updated>2011-04-16T22:06:24.310+01:00</updated><title type='text'>&amp;gt; Dennis Doubleday said...
&amp;gt; Java 7 does hav...</title><content type='html'>&amp;gt; Dennis Doubleday said...&lt;br /&gt;&amp;gt; Java 7 does have some movement toward type &lt;br /&gt;&amp;gt; inference in Project COIN.&lt;br /&gt;&lt;br /&gt;Yes, it&amp;#39;s slowly getting better. Very slowly.&lt;br /&gt;&lt;br /&gt;&amp;gt; &lt;br /&gt;&amp;gt; &amp;quot;There is no way your language can be successful &lt;br /&gt;&amp;gt; without closures.&amp;quot; Seems a bit extreme--after all, 9 &lt;br /&gt;&amp;gt; million Java developers disagree :-)&lt;br /&gt;&lt;br /&gt;I don&amp;#39;t think they disagree.&lt;br /&gt;They might be a huge percentage of developers who don&amp;#39;t know what closures are or at least don&amp;#39;t know why they are so important. &lt;br /&gt;&lt;br /&gt;The rest simply agrees with me :-)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/6811879654015953197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/6811879654015953197'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302987984310#c6811879654015953197' title=''/><author><name>Sven Efftinge</name><uri>http://www.blogger.com/profile/11751196715155150517</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Ii_da0jTxAY/SNxsRY6r26I/AAAAAAAAABk/WzYcCAnzC9Q/S220/foto-openbc.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1100628811'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-5266793791634896025</id><published>2011-04-16T21:58:25.320+01:00</published><updated>2011-04-16T21:58:25.320+01:00</updated><title type='text'>&amp;quot;Given that over nine million people are used...</title><content type='html'>&amp;quot;Given that over nine million people are used to it and absolutely understand the semantics, I&amp;#39;d consider this an unfortunate decision.&amp;quot;&lt;br /&gt;&lt;br /&gt;Just do as in C#, whether impl inheritance or interface inheritance, it&amp;#39;s the same keyword (or character).&lt;br /&gt;&lt;br /&gt;&amp;quot;I wouldn&amp;#39;t try to come up with a new statically-typed Ruby, since that doesn&amp;#39;t make much sense.&amp;quot;&lt;br /&gt;&lt;br /&gt;Well that&amp;#39;s what Mirah is though.&lt;br /&gt;&lt;br /&gt;&amp;quot;Also note that reified generics are a bad idea.&amp;quot; &lt;br /&gt;&lt;br /&gt;Beg to differ. Try to explain to a Java generics newbie, why he is not allowed to implement Comparable[T] and Comparable[K]. That&amp;#39;s a duality of the type-system we just don&amp;#39;t need.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/5266793791634896025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/5266793791634896025'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302987505320#c5266793791634896025' title=''/><author><name>Casper Bang</name><uri>http://www.blogger.com/profile/09493174484116672294</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_CauKCPUdin4/R82eRB-5k-I/AAAAAAAAAAk/ReXHrS3PQSs/S220/casper.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1080652446'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-2174496640832044074</id><published>2011-04-16T21:58:14.806+01:00</published><updated>2011-04-16T21:58:14.806+01:00</updated><title type='text'>Couple of things:

3) 
Type erasure was the worst ...</title><content type='html'>Couple of things:&lt;br /&gt;&lt;br /&gt;3) &lt;br /&gt;Type erasure was the worst idea ever and as far I know it was done as a compromise for compatibility reasons.  If this would be working, we would be much more expressive + we would not need to have 100 mil &amp;quot;advice&amp;quot; files spread across enterprise projects (see projects like Dozer,...)&lt;br /&gt;&lt;br /&gt;Type erasure also heavily contributed to all the edge cases, exceptions and complexity of generics in general.&lt;br /&gt;&lt;br /&gt;7) &lt;br /&gt;Fundamentals like bit operations are required: hashing, libraries that deal with binary and hi performance stuff and others rely on this... (unsigned data types are completely missing... leading to inefficient hacks on java side)&lt;br /&gt;&lt;br /&gt;I would like to know the reaction of ANTLR guys to fall trough switch removal proposals... :)&lt;br /&gt;&lt;br /&gt;Good post.&lt;br /&gt;&lt;br /&gt;Thanks</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/2174496640832044074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/2174496640832044074'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302987494806#c2174496640832044074' title=''/><author><name>Dusan</name><uri>http://www.blogger.com/profile/12967117642395700307</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1021623731'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-6790605771460301813</id><published>2011-04-16T21:56:42.436+01:00</published><updated>2011-04-16T21:56:42.436+01:00</updated><title type='text'>&amp;gt; Anonymous said...
&amp;gt; The example used for y...</title><content type='html'>&amp;gt; Anonymous said...&lt;br /&gt;&amp;gt; The example used for your fifth point is inconsistent &lt;br /&gt;&amp;gt; with your fourth. If you&amp;#39;re using type inference then &lt;br /&gt;&amp;gt; the IDE won&amp;#39;t know the type until your past the &lt;br /&gt;&amp;gt; assignment operator i.e. val myVal = ...&lt;br /&gt;&lt;br /&gt;That is only if you initialize the field.&lt;br /&gt;My example also works for function/method parameter declarations in Scala vs. Java.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/6790605771460301813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/6790605771460301813'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302987402436#c6790605771460301813' title=''/><author><name>Sven Efftinge</name><uri>http://www.blogger.com/profile/11751196715155150517</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Ii_da0jTxAY/SNxsRY6r26I/AAAAAAAAABk/WzYcCAnzC9Q/S220/foto-openbc.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1100628811'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-1409678537164849549</id><published>2011-04-16T21:54:29.266+01:00</published><updated>2011-04-16T21:54:29.266+01:00</updated><title type='text'>&amp;gt; Eric Parnell said...
&amp;gt;I would add that you...</title><content type='html'>&amp;gt; Eric Parnell said...&lt;br /&gt;&amp;gt;I would add that you need some level of functional &amp;gt;programming ability such as maps, folds, pattern &amp;gt;matching, currying, and functions as first-class objects.&lt;br /&gt;&lt;br /&gt;I have omitted libraries in my most just to make it shorter, but integrating with the JDK and at the same time being able to add features to existing types like collections is very important. The higher-order functions you mentioned should ideally be made available on java.lang.Iterable using a library approach.&lt;br /&gt;&lt;br /&gt;Pattern matching is nice but I think a type guarded switch statement is sufficient and much easier to understand (and to implement). &lt;br /&gt;&lt;br /&gt;Currying can be done via library and functions as objects IMHO isn&amp;#39;t a good idea since objects of types with just one method fits much better with the existing JVM concepts and libraries.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/1409678537164849549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/1409678537164849549'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302987269266#c1409678537164849549' title=''/><author><name>Sven Efftinge</name><uri>http://www.blogger.com/profile/11751196715155150517</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_Ii_da0jTxAY/SNxsRY6r26I/AAAAAAAAABk/WzYcCAnzC9Q/S220/foto-openbc.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1100628811'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-4045195844342513712</id><published>2011-04-16T19:20:41.443+01:00</published><updated>2011-04-16T19:20:41.443+01:00</updated><title type='text'>What is irregular about the concept of &amp;quot;exten...</title><content type='html'>What is irregular about the concept of &amp;quot;extending&amp;quot; the contract of an interface with a specialised interface, and &amp;quot;implementing&amp;quot; said contract with a class? Java is extremely regular in that respect.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/4045195844342513712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/4045195844342513712'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302978041443#c4045195844342513712' title=''/><author><name>Joheinz</name><uri>http://www.blogger.com/profile/14389695349610981562</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_6I1HBT0xJDg/ScuAo6Ta4cI/AAAAAAAAD0w/GqI_XP1q1mo/S220/joheinz.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-482617037'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-9156263421964231451</id><published>2011-04-16T18:52:11.396+01:00</published><updated>2011-04-16T18:52:11.396+01:00</updated><title type='text'>I&amp;#39;ve responded to this post wrt Gosu here:

ht...</title><content type='html'>I&amp;#39;ve responded to this post wrt Gosu here:&lt;br /&gt;&lt;br /&gt;http://guidewiredevelopment.wordpress.com/2011/04/16/re-dear-java-killers/&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Carson</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/9156263421964231451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/9156263421964231451'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302976331396#c9156263421964231451' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1068837485'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-6561498937656291222</id><published>2011-04-16T13:33:57.544+01:00</published><updated>2011-04-16T13:33:57.544+01:00</updated><title type='text'>thanks for write up
I would like to add that apart...</title><content type='html'>thanks for write up&lt;br /&gt;I would like to add that apart from ide/tools consideration the language shoul be easy to type also. for example i hate to type colon :&lt;br /&gt;&lt;br /&gt;moreover creating a new language should be an community process at least to define feature set (specs) and implementation. it should be developed bit by bit.&lt;br /&gt;&lt;br /&gt;new language must not be developed in isolation otherwise it will fail.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/6561498937656291222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/6561498937656291222'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302957237544#c6561498937656291222' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-666830626'/></entry><entry><id>tag:blogger.com,1999:blog-24248206.post-8067882755233408470</id><published>2011-04-16T09:51:07.530+01:00</published><updated>2011-04-16T09:51:07.530+01:00</updated><title type='text'>Enjoyed this blog post immensely (I disagree with ...</title><content type='html'>Enjoyed this blog post immensely (I disagree with a couple of the arguments made though)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/8067882755233408470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24248206/4730986768274766013/comments/default/8067882755233408470'/><link rel='alternate' type='text/html' href='http://blog.efftinge.de/2011/04/dear-java-killers.html?showComment=1302943867530#c8067882755233408470' title=''/><author><name>Angry Developer</name><uri>http://www.blogger.com/profile/04382540026757780798</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.efftinge.de/2011/04/dear-java-killers.html' ref='tag:blogger.com,1999:blog-24248206.post-4730986768274766013' source='http://www.blogger.com/feeds/24248206/posts/default/4730986768274766013' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1738982080'/></entry></feed>
