<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Draconian Overlord - Latest Comments in JavaFX Decompiled</title><link>http://draconianoverlord.disqus.com/</link><description></description><atom:link href="https://draconianoverlord.disqus.com/javafx_decompiled_88/latest.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Tue, 17 Mar 2009 02:25:46 -0000</lastBuildDate><item><title>Re: JavaFX Decompiled</title><link>http://www.draconianoverlord.com/2009/01/18/javafx-decompiled.html#comment-7279924</link><description>&lt;p&gt;You can't avoid 'int wrappers' in a language/VM where ints are not objects. They are going to be wrapped.&lt;/p&gt;&lt;p&gt;What they built here is a JavaFX to Java translator and compiler. This has been done many times before with other languages, like Ada ( to C ) and Smalltalk/X ( to C ).&lt;/p&gt;&lt;p&gt;Doesn't mean it is 'wrong', it is a very powerful way to develop a language, and also provides compatability with the host language pretty easily.&lt;/p&gt;&lt;p&gt;Saying it is somehow 'cheating' is wrong. C was concieved as a portable assembly, and Java is the "C" of the JVM. Sure, it lacks in expressive power, but so does C.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dan</dc:creator><pubDate>Tue, 17 Mar 2009 02:25:46 -0000</pubDate></item><item><title>Re: JavaFX Decompiled</title><link>http://www.draconianoverlord.com/2009/01/18/javafx-decompiled.html#comment-6704028</link><description>&lt;p&gt;Thanks for the reply, Det.&lt;/p&gt;&lt;p&gt;&amp;gt; also functional abstraction in the large.&lt;/p&gt;&lt;p&gt;This is an interesting assertion--I disagree, in general, but will keep it in mind and see if my opinion changes.&lt;/p&gt;&lt;p&gt;&amp;gt; If you can't imagine an average programmer to deal with traits, you&lt;br&gt;&amp;gt; should see some of my colleagues which are struggling hard with&lt;br&gt;&amp;gt; the bunch of interface, implementation, delegation chaos they&lt;br&gt;&amp;gt; created when trying to achieve the same goal.&lt;/p&gt;&lt;p&gt;I can appreciate most Java systems are done wrong--however, my observation has been that most of it is self-generated complexity from architects thinking they must have an "enterprise" system that is all the current hotness of "DI", "decoupled", "patterns", etc. On my last gig I saw this--a whole bunch of interfaces, tied together with Spring, etc., etc., that was a nightmare. But none of it was really needed to build the system--the programmers just thought "this is the way you do J2EE".&lt;/p&gt;&lt;p&gt;&amp;gt; Only a simple example: Open a file, iterate through all its lines and&lt;br&gt;&amp;gt; print it to standard out, if the line matches a given regex pattern.&lt;/p&gt;&lt;p&gt;Straight Java:&lt;/p&gt;&lt;p&gt;for (String line : FileUtils.readLinesThatMatch(path, regex)) {&lt;br&gt;    System.out.println(line)&lt;br&gt;}&lt;/p&gt;&lt;p&gt;Okay, it is up to me to build the "FileUtils" abstraction, but that is easy if done once. The Java File API being bad/incomplete shouldn't reflect on Java the language.&lt;/p&gt;&lt;p&gt;Granted, Give me C#-style static extension methods and it gets better. Give me closures and it gets better. Both of which are incremental/syntactic "Java++" improvements and not a dynamic typing system (Groovy) or a different typing system (Scala).&lt;/p&gt;&lt;p&gt;I think the problem with J2EE today is that most architects would have solved the "print lines in a file" problem with an interface IFileOpener, another IFileLineMatcher, added just 1 implementation of each, and then injected them with Spring.&lt;/p&gt;&lt;p&gt;&amp;gt; (And btw: There are so much tools around J2EE that add such hidden&lt;br&gt;&amp;gt; extra stuff all the way only to get things done for enterprises, I would really&lt;br&gt;&amp;gt; like to have a concise and high level language to express such things&lt;/p&gt;&lt;p&gt;I agree, most tooling sucks.&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">shaberman</dc:creator><pubDate>Fri, 27 Feb 2009 12:17:23 -0000</pubDate></item><item><title>Re: JavaFX Decompiled</title><link>http://www.draconianoverlord.com/2009/01/18/javafx-decompiled.html#comment-6698509</link><description>&lt;p&gt;&amp;gt; My current rule of thumb: if you can decompile a “Java++” contender’s code into the regular &lt;br&gt;&amp;gt; Java syntax, and have it look pretty darn close to what you’d type out by hand, then you’ve &lt;br&gt;&amp;gt; found your true “Java++” language.&lt;/p&gt;&lt;p&gt;Then I would say, I don't want a Java++ language (means: Java++ is not better than C++ over C).  I indeed need the abstraction level that not only provides syntactic sugar in the small (type inference reduces one line of 80 chars to 20 chars.)  but also functional abstraction in the large.&lt;/p&gt;&lt;p&gt;If you can't imagine an average programmer to deal with traits, you should see some of my colleagues which are struggling hard with the bunch of interface, implementation, delegation chaos they created when trying to achieve the same goal.&lt;/p&gt;&lt;p&gt;I have colleagues in our necessarily big size enterprise development who struggle hard with the complexity they introduced into their hand written code to get the results they would otherwise get in some clear readable lines in other languages.&lt;/p&gt;&lt;p&gt;The simplicity of the Java language made them write so much technical stuff to get the domain requirements implemented, the code became hard to maintain, as the "implementation details" always are in the way in understanding what the previously intended meaning is.&lt;/p&gt;&lt;p&gt;In Java, the domain purpose is always behind the implementation. In other languages the implementation is mostly behind the domain description.&lt;/p&gt;&lt;p&gt;Only a simple example:  Open a file, iterate through all its lines and print it to standard out, if the line matches a given regex pattern.&lt;/p&gt;&lt;p&gt;Do this in Java and do this in Groovy (or Scala, for all I care).&lt;/p&gt;&lt;p&gt;And then extrapolate this experience to an 80 developer times 8 year enterprise project.&lt;/p&gt;&lt;p&gt;(And btw: There are so much tools around J2EE that add such hidden extra stuff all the way only to get things done for enterprises, I would really like to have a concise and high level language to express such things in a coherent syntax instead of switching between all this different add-on-compilers, configuration files and stuff...). &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Det</dc:creator><pubDate>Fri, 27 Feb 2009 08:07:01 -0000</pubDate></item><item><title>Re: JavaFX Decompiled</title><link>http://www.draconianoverlord.com/2009/01/18/javafx-decompiled.html#comment-6119654</link><description>&lt;p&gt;The benefit is less typing.&lt;/p&gt;&lt;p&gt;I want the decompiled output to look like regular Java, not the "Java++" source language. The source "Java++" should have all the type inference, closure, extension method, etc., goodness of something like C# or boo.&lt;/p&gt;&lt;p&gt;The benefit being I get a nice/succinct syntax (which is, IMHO, mostly why "dynamic" languages are so popular these days--its the syntax, not the dynamic typing), but without introducing lots of "not Java"/complex semantics like the current "Java++" contenders do (e.g. Groovy, Scala, JRuby all add complex semantics on top of basic Java that I don't see the need for).&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">shaberman</dc:creator><pubDate>Mon, 09 Feb 2009 14:09:03 -0000</pubDate></item><item><title>Re: JavaFX Decompiled</title><link>http://www.draconianoverlord.com/2009/01/18/javafx-decompiled.html#comment-6118281</link><description>&lt;p&gt;&amp;gt;&amp;gt;My current rule of thumb: if you can decompile a “Java++” contender’s code into the regular Java syntax, and have it look pretty darn close to what you’d type out by hand, then you’ve found your true “Java++” language.&lt;/p&gt;&lt;p&gt;Riiiggghhtttt..... then you have.... Java?&lt;/p&gt;&lt;p&gt;And the benefit is?&lt;/p&gt;&lt;p&gt;:P&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Mark</dc:creator><pubDate>Mon, 09 Feb 2009 13:05:32 -0000</pubDate></item></channel></rss>