<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Simon Horwith&apos;s Blog - Java</title>
			<link>http://www.horwith.com/index.cfm</link>
			<description>Editorials, technical papers, and fleeting thoughts from a web development dinosaur turned IT Executive.</description>
			<language>en-us</language>
			<pubDate>Mon, 06 Sep 2010 07:45:00 -0400</pubDate>
			<lastBuildDate>Tue, 11 May 2010 17:40:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>simon@horwith.com</managingEditor>
			<webMaster>simon@horwith.com</webMaster>
			
			
			
			
			
			<item>
				<title>A Few Thoughts About Various Programming Languages</title>
				<link>http://www.horwith.com/index.cfm/2010/5/11/a-few-thoughts-about-various-programming-languages</link>
				<description>
				
				In my role leading development shops, I am constantly having to learn and evaluate new programming languages and tools in order to keep us current as well as in order to discover better ways to accomplish goals. As a developer, I am also constantly learning simply because I want to get better at what I do, I love what I do, and learning new languages is a fun and rewarding undertaking. From time to time, someone writes a blog entry or gives a conference presentation about the importance of knowing more than one language... of not being a &apos;one trick pony&apos;. I was reading Sean Corfield&apos;s recent blog post about Clojure and realized that I&apos;ve never written about my recommendations or opinions of various languages that I&apos;ve used or evaluated... until now. In no particular order, here are several of the technologies that I know and my thoughts about them:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Python
&lt;ul&gt;&lt;li&gt;I&apos;ve recently been spending a decent amount of time learning and using Python - it&apos;s very fast and powerful, and is syntactically one of the most concise and elegant languages I&apos;ve ever seen... it&apos;s VERY readable and the more I use it, the more I like it. Python is definitely one of my favorite languages.
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;Java
&lt;ul&gt;&lt;li&gt;I&apos;ve used Java off and on since 1995, and somehow keep ending-up having to use it on projects from time to time. The language has gotten larger, faster, and for the most part, better over the past decade and a half - I found the language improvements in Java 5 particularly useful in that they clearly tried to make it easier to do what you want in your code. That said, I don&apos;t find Java programming particularly clever or challenging and on many projects I see, deployment is a terribly painful process. Java applications tend to have ridiculous file/directory structures and I&apos;m not a huge fan of how strict it is. Java is everywhere and does have a huge job market, so it&apos;s worth knowing for those reasons... but it would never be my first choice of languages to use based on any merits other than the large talent pool and number of open source projects.
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;PowerShell
&lt;ul&gt;&lt;li&gt;Powershell is probably the coolest new thing I&apos;ve seen in a long time. For those of you unfamiliar with it - it&apos;s a fully OO scripting environment for Windows (runs on .NET) and is free from Microsoft. The syntax is slick and simple, and the power you can pack into a single line of code makes it a no-brainer for anyone who needs or wants to administer a Windows network or machine. With powershell, windows finally has a shell that&apos;s better and more powerful than those available on nix systems. Bottom line: if you use Windows you REALLY should learn Powershell.
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;PHP
&lt;ul&gt;&lt;li&gt;PHP is yet another free technology - we use PHP and CF for most of our projects, and I like PHP a lot. A long time ago, some people called PHP &quot;poor man&apos;s ColdFusion&quot;... well, I think it&apos;s more true today than it was back then. It&apos;s simple, lightweight, and fast... and development times really aren&apos;t much longer than with CFML provided you&apos;re not trying to do something that CF does out of the box that there&apos;s no PHP module to do. I don&apos;t see it having many advantages over CF aside from price, the huge talent pool, and the number of open source projects. There&apos;s a good job market for PHP but those jobs don&apos;t typically pay as well, so I&apos;d learn it because of it&apos;s popularity but I wouldn&apos;t choose a career focused exclusively on it. 
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;Flex/ActionScript
&lt;ul&gt;&lt;li&gt;I&apos;ve used Flex since beta 1, and I enjoy seeing how it evolves with each new release. I don&apos;t particularly like programming with ActionScript for the same reasons I don&apos;t like Java - but unlike Java, I do love the end result you get with Flex... enough to want to do it. No technology to date that&apos;s tried to compete with Flash has been compelling enough to use in lieu. There&apos;s also a great job market for Flex - especially here in New York City, and it&apos;s one of the top 3 or 4 technologies I&apos;d recommend learning to anyone who wants a successful web development career right now.  
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;ColdFusion
&lt;ul&gt;&lt;li&gt;I&apos;ve used CF since the beginning and continue to use it heavily. It&apos;s not the best performing technology available but it performs well enough for most needs. No, it&apos;s not free, but development/debugging time is rapid enough to easily justify the cost. These days, CF&apos;s closed architecture and code base is a real turn-off for me personally, but it&apos;s the lack of talent (and the poor quality of most &quot;talent&quot;) that is it&apos;s only solid turn-off from a business perspective. The native support for Flex is probably its most compelling unique feature... that, and it&apos;s rapid development nature. It&apos;s a good choice when you want a very robust user-friendly platform in a turn-key solution. 
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;LISP
&lt;ul&gt;&lt;li&gt;LISP is, hands down, personally my favorite language. Five or six years ago I set-out to spend 6 months of my free time teaching myself LISP, and I enjoyed it so much that I just never stopped. The syntax took a little getting used to, and emacs takes even longer to get used to - which is probably the most annoying part of learning LISP (I haven&apos;t found a better free IDE for LISP yet). LISP is beautiful in the simplicity of its design - most notably in the interchangeable nature of code and data. It is definitely the most expressive and flexible language I&apos;ve used - as well as the most powerful. Be warned; it takes a while to un-train yourself and learn how to really harness the power of LISP (particularly of macros and, if you&apos;re new to it, thinking in functional terms). I also, surprisingly, find the implementation of OOP in LISP (CLOS) much nicer and cleaner than that of any other language. I strongly recommend learning LISP. Not because there&apos;s a huge job market for it (there isn&apos;t) but because it puts other languages into perspective and because it WILL make you a better developer (I&apos;ve learned more from &apos;tinkering&apos; with LISP than any other language). 
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

So, those are the main languages I&apos;ve played with and developed feelings for recently (within the past 2 years). It&apos;s worth noting that there are other languages I left off for brevity. I&apos;ve also been getting back into JavaScript these days - I have a new appreciation for it&apos;s functional nature and closures, and I think JQuery is pretty slick. I&apos;ve taken a pretty good look at Objective C - it&apos;s a decent language but not worth learning unless you want to do a lot of Apple development. I&apos;ve also played around with Clojure - which is essentially a pseudo-LISP implementation for the JVM - I liked it, but prefer to use &apos;pure&apos; LISP... though it&apos;s attractive being able to write LISPy code that I can run on a JVM, since Java is everywhere. There are a few other languages I haven&apos;t had time to take a good enough look at yet but hope to very soon. Specifically, I&apos;m interested in looking at Scala and Caml... and I&apos;ve begun learning some Haskell and hope to dig into that a little deeper.
				
				</description>
				
				<category>Flex</category>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<category>PHP</category>
				
				<category>LISP</category>
				
				<pubDate>Tue, 11 May 2010 17:40:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm/2010/5/11/a-few-thoughts-about-various-programming-languages</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>My New Business Venture!</title>
				<link>http://www.horwith.com/index.cfm/2007/9/11/my-new-business-venture</link>
				<description>
				
				The big news that I alluded to in my last entry is that I have resigned from my position as CIO of AboutWeb in order to go into business for myself. I am currently in discussions with several entities regarding funding and partnerships, and hope to have a more detailed announcement in the VERY near future.&lt;br /&gt;&lt;br /&gt;
Though still an authority and evangelist of ColdFusion, I have also been focusing very heavily on LiveCycle, AJAX, AS3, Flex and AIR (formerly known as Apollo) for quite some time. I expect and hope that my focus will continue to grow with these technologies (always keeping myself grounded with CF - a technology I have long had a love affair with).&lt;br /&gt;&lt;br /&gt;
I am available to discuss opportunities to consult and engage new clients, so feel free to email me at &lt;a href=&quot;mailto:simon@horwith.com&quot;&gt;simon@horwith.com&lt;/a&gt; to find out more about how I can assist with your software development and/or training needs. I am also on the lookout for strong talent. More specifically, I am looking for developers with strong experience with one or more of the following technologies: Java, ColdFusion, Flex, ActionScript, LiveCycle, AIR, .NET, and AJAX. More detailed information for more specific needs will be available soon, but if or someone you know fits the bill, send their resume my way. I am also looking for a strong sales/business development person: if you know someone, please let me know.&lt;br /&gt;&lt;br /&gt;
More information on my new venture coming soon...
				
				</description>
				
				<category>Flex</category>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<category>AIR</category>
				
				<pubDate>Tue, 11 Sep 2007 10:36:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm/2007/9/11/my-new-business-venture</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>No New JRun</title>
				<link>http://www.horwith.com/index.cfm/2007/8/6/no-new-jrun</link>
				<description>
				
				Damon Cooper just blogged about the fact that Adobe will do no new feature development for JRun - but the CF server team will continue to enhance the product as need-be in order to suit their needs.  You can read the details on his blog at &lt;a href=&quot;http://www.dcooper.org/blog/client/index.cfm?mode=entry&amp;entry=3172B2FB-4E22-1671-5C9B536E5233786E&quot;&gt;http://www.dcooper.org/blog/client/index.cfm?mode=entry&amp;entry=3172B2FB-4E22-1671-5C9B536E5233786E&lt;/a&gt;
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<pubDate>Mon, 06 Aug 2007 19:22:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm/2007/8/6/no-new-jrun</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Verizon Wireless Wrecks JRun Admin</title>
				<link>http://www.horwith.com/index.cfm/2007/7/31/verizon-wrecks-jrun-admin</link>
				<description>
				
				I recently had to grab a buddy&apos;s Verizon Wireless card while my Cingular (sorry, &quot;New ATT&quot;) card was on the fritz. A week later I discovered I could no longer access my JRun administrator. Here&apos;s the deal:&lt;br /&gt;&lt;br /&gt;
The Verizon wireless software (created by Venturi) uses port 8000 - the same port that the JRun Admin uses by default. If you want to get around this by changing your JRun Admin port, that&apos;s an option. If you want to remove the software - good luck. I had already removed the venturi software from my system using &quot;Add/Remove Programs&quot; but it left a file called &quot;VentC.exe&quot; on my system and it still runs at start-up. This file should be able to be safely deleted, but it&apos;s a known bug (that the uninstaller doesn&apos;t do a full uninstall) so I suggest first going to the venturi site and downloading the &quot;full uninstaller&quot; at &lt;a href=&quot;http://venturi.he.net/~venturi/rmventuriall_1_0.exe&quot;&gt;http://venturi.he.net/~venturi/rmventuriall_1_0.exe&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;
If you don&apos;t know your way around DOS, I highly recommend learning it if you&apos;re going to use Windows. The way I diagnosed the problem was as follows:&lt;br /&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;I tried starting JRun admin server from a command prompt (&quot;jrun -start admin&quot; from the JRun bin directory) - I saw in the console that the server wasn&apos;t starting because port 8000 was already in use&lt;/li&gt;
&lt;li&gt;From a (new) command prompt I typed &quot;netstat -ano | findstr :8000&quot; - this tells me a few bits of information about what applications are using TCP sockets on my machine - the last bit of information it spits out is the process ID. I pipe it to a findstring to only show me the process using port 8000&lt;/li&gt;
&lt;li&gt;I then type: tasklist /fi &quot;PID eq 3016&quot; - this tells me some bits of information about the application that is running as a specific process number - in this case process 3016, which was the ID returned in my netstat. Among other information, the console told me that VentC.exe is the executable process I&apos;m looking for&lt;/li&gt;
&lt;/ol&gt;
Here&apos;s what the commands looked like in my console window when trying to determine what&apos;s using port 8000:&lt;br /&gt;
&lt;img src=&quot;http://www.horwith.com/images/whatusingport.jpg&quot; /&gt;
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<pubDate>Tue, 31 Jul 2007 09:50:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm/2007/7/31/verizon-wrecks-jrun-admin</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Adobe Strengthens Commitment to Flex/AJAX Interoperability</title>
				<link>http://www.horwith.com/index.cfm/2007/1/30/new-adobe-labs-flex-ajax-interop</link>
				<description>
				
				Adobe just released 2 important labs releases that further their commitment to interoperability between Flex and AJAX:&lt;br /&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Ajax Data Services library&lt;/strong&gt;&lt;br /&gt;A new JavaScript library that lets Ajax developers access the powerful messaging and data management capabilities of the Flex Data Services product directly from JavaScript.&lt;br /&gt;
With this library, companies can integrate application clients built using Ajax technologies with the same back-end data services used by Flex application clients. This means that data from Flex applications can now be automatically synchronized with other Ajax applications, ensuring that both users see the most current, accurate information.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flex Ajax Bridge (FABridge) update&lt;/strong&gt;&lt;br /&gt;Adobe already provides FABridge to allow JavaScript-enabled components to interoperate with Flex-enabled components embedded in the same web page. But as of today, significant updates have been made to FABridge, enabling better interoperability on
the client. With the introduction of Ajax Data Services, combined with FABridge, developers can now leverage the full benefits of both the Flex 2 SDK programming model and the powerful Flex Data Services providing full interoperability with existing or new Ajax applications.&lt;/li&gt;
&lt;/ol&gt;
The new releases are online at:&lt;br /&gt;
Ajax Data Services library&lt;br /&gt;
&lt;a href=&quot;http://labs.adobe.com/wiki/index.php/Ajax_Data_Services&quot;&gt;http://labs.adobe.com/wiki/index.php/Ajax_Data_Services&lt;/a&gt; &lt;br /&gt;
Flex Ajax Bridge (FABridge) update&lt;br /&gt;
&lt;a href=&quot;http://labs.adobe.com/wiki/index.php/Flex-Ajax_Bridge&quot;&gt;http://labs.adobe.com/wiki/index.php/Flex-Ajax_Bridge&lt;/a&gt;
				
				</description>
				
				<category>Flex</category>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<category>Downloads</category>
				
				<pubDate>Tue, 30 Jan 2007 20:17:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm/2007/1/30/new-adobe-labs-flex-ajax-interop</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>So You Know ColdFusion - What Next?</title>
				<link>http://www.horwith.com/index.cfm/2007/1/30/after-coldfusion-whats-next</link>
				<description>
				
				For the past couple of years when asked what skill to learn AFTER mastering ColdFusion in order to be more marketable, most CF developers wouldn&apos;t hesitate to say &apos;Java&apos;.&lt;br /&gt;
I&apos;m proud to say that for the past 3+ years I&apos;ve always answered &apos;Flex&apos;. Many readers of CFDJ were unhappy about my trying to add more Flex and Web 2.0 content in the magazine, so I&apos;ve stopped pushing the issue... but I&apos;ve got to say, I still think it&apos;s a terrible injustice to not discuss Flex more in CFDJ.&lt;br /&gt;&lt;br /&gt;
One of the greatest current uses of Flex is for development of Web 2.0 applications. Whether you&apos;re into Flex or not, you have to admit that Web 2.0 apps are cool - and I have noticed a growing demand not only for Flex developers but for Web 2.0 developers in general.&lt;br /&gt;
The reason I&apos;m writing about this is that ZDNet just released an interesting article about how several of the largest IT companies are about to make major investments in Web 2.0 and about the fact that it&apos;s hitting mainstream. The article is available at &lt;a href=&quot;http://blogs.zdnet.com/Hinchcliffe/?p=79&quot;&gt;http://blogs.zdnet.com/Hinchcliffe/?p=79&lt;/a&gt;. If you don&apos;t believe that the demand for Web 2.0 developers is growing then I strongly suggest reading this article.
&lt;br /&gt;&lt;br /&gt;To everyone who thought I was crazy for thinking folks should learn Flex several years ago - a big &apos;I told you so&apos; goes out to you. I&apos;m just teasing, of course... but I&apos;m dead serious about the fact that Web 2.0 will make you more marketable.
				
				</description>
				
				<category>Flex</category>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<pubDate>Tue, 30 Jan 2007 00:19:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm/2007/1/30/after-coldfusion-whats-next</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Online Diagramming</title>
				<link>http://www.horwith.com/index.cfm/2007/1/15/online-diagramming</link>
				<description>
				
				I&apos;ve used a lot of different desktop software packages for diagramming software - some I like, some I don&apos;t, but most of them are relatively the same. Unfortunately, I&apos;ve never found a web-based diagramming tool I like... until now.&lt;br /&gt;&lt;br /&gt;
A coworker recently introduced me to gliffy (&lt;a href=&quot;http://www.gliffy.com/&quot;&gt;http://www.gliffy.com/&lt;/a&gt;) - a Flash based online diagramming application that&apos;s very simple to use but is pretty robust. Oh, and it&apos;s free, too.
				
				</description>
				
				<category>Flex</category>
				
				<category>ColdFusion</category>
				
				<category>Writing and Presenting</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<pubDate>Mon, 15 Jan 2007 09:26:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm/2007/1/15/online-diagramming</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>AboutWeb and LiveCycle</title>
				<link>http://www.horwith.com/index.cfm/2006/12/2/livecycle-portal-released</link>
				<description>
				
				About a year ago (right around acquisition time) I began taking a look at LiveCycle. Once you&apos;ve succesfully deployed it on your network and configured everything the way you need to, LiveCycle is a great product.  I&apos;ve also been extremely busy with a ton of client work, so I had two of our sharpest guys - Nic Tunney (&lt;a href=&quot;http://www.nictunney.com/&quot;&gt;http://www.nictunney.com/&lt;/a&gt;)  and Chris Turner (&lt;a href=&quot;http://www.cturnerweb.com/&quot;&gt;http://www.cturnerweb.com/&lt;/a&gt;) spend a few days with Adobe&apos;s experts and spend a lot of their time in the office getting up to speed with the product.&lt;br /&gt;&lt;br /&gt;
Since then, &lt;a href=&quot;http://www.aboutweb.com&quot;&gt;AboutWeb&lt;/a&gt; has launched the LiveCycle portal (&lt;a href=&quot;http://www.livecycleportal.org/&quot;)http://www.livecycleportal.org/&lt;/a&gt; - a resource I highly recommend for anyone trying to learn more about LiveCycle (developers and decision makers). We&apos;ve also had several succesful LiveCycle consulting/solutions engagements and are continuing to build a great list of satisfied LiveCycle customers to accompany our lists of satisfied CF and Flex customers.
				
				</description>
				
				<category>Flex</category>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<pubDate>Sat, 02 Dec 2006 01:00:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm/2006/12/2/livecycle-portal-released</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>AboutWeb Just Awarded Another Federal Contract!</title>
				<link>http://www.horwith.com/index.cfm?mode=entry&amp;entry=EE4D3C87-FF3E-29B5-55C408EF64E83F44</link>
				<description>
				
				AboutWeb has just been awarded yet another long term contract with a federal agency here in the Washington, DC area.  Everyone knows that DC is like the Garden of Eden for ColdFusion Developers, but I truly am amazed by how fast we are growing.
&lt;br /&gt;&lt;br /&gt;
I&apos;m currently looking to hire 15 ColdFusion developers.  Skill level is anywhere from mid to senior level and the positions will be located in Rockville, MD (Metro accessible just outside Washington, DC). These are full time positions working with myself and my esteemed colleagues at AboutWeb. In addition to working with the cream of the crop on several interesting, Enterprise applications, and all the &quot;typical&quot; employment benefits, other benefits at AboutWeb include the opportunity to attend AboutWeb training classes (we&apos;re an Adobe Certified Training Partner) including hands-on classes on Flex 2, software architecture with ColdFusion, and Advanced ColdFusion.
&lt;br /&gt;&lt;br /&gt;
Interested candidates should email their resumes immediately to my colleague, Michael Perlstein, at &lt;a href=&quot;mailto:mperlstein@aboutweb.com&quot;&gt;mperlstein@aboutweb.com&lt;/a&gt;. Please put &quot;CF Opening&quot; in the subject line of the email for immediate attention.
&lt;br /&gt;&lt;br /&gt;
If you or anyone you know is competent with Java/J2EE, I&apos;m also looking for a handful of J2EE developers (put &quot;J2EE Opening&quot; in the subject line).
				
				</description>
				
				<category>Flex</category>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<pubDate>Tue, 08 Aug 2006 09:59:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm?mode=entry&amp;entry=EE4D3C87-FF3E-29B5-55C408EF64E83F44</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Thoughts On Making ColdFusion More Object Oriented</title>
				<link>http://www.horwith.com/index.cfm?mode=entry&amp;entry=A3754A0F-E081-0478-47D692F676C9586B</link>
				<description>
				
				Several folks (Sean Corfield, Ben Forta, Brian Kotek, and Vince Bonfanti to name a few) have been commenting, both here and on their own blogs, about my desire to see  constructors, interfaces, and method overloading with CFCs. I thought I&apos;d elaborate a little on each, as well as on the apparently controversial topic of CF being made &apos;more like Java&apos;. First, to address my reason for each individual feature request:&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Constructors&lt;/strong&gt;&lt;br /&gt;
There is one thing that the architect of an application implemented with CF could do if constructors were supported that they cannot do now: enforce that a method, including a parameterized method, is always executed before the object is available for use. I do not think that having a constructor should be required and with method overloading (see below) you could have more than one. However, I&apos;d say that 90% of the development I do is pure CFCs... and every single application I can recall working on (since MX was released) included not one but several CFCs that required that their init() method was run prior to use. Being able to enforce this would make my life easier... and I hazard to guess it&apos;d make a lot of other developers&apos; lives easier as well.
&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Interfaces&lt;/strong&gt;&lt;br /&gt;
Being able to enforce an object definition - to define a specific method signature(s), is a valuable tool in ColdFusion development for two reasons. First and foremost, I find interfaces to be a very valuable tool when you are the application architect and must be able to hand bare essential template definitions/stubs to the development team. Knocking out the interfaces and handing them over to a team of developers that also understand the domain gives the team a great head start and helps to ensure that objects meet the original architectural plan. I don&apos;t feel that ColdFusion really requires multiple inheritance, which is the benefit often cited for using interfaces in other languages, so I&apos;m not particularly interested in seeing the ability to implement multiple interfaces added to CFML. However, I feel that with a single level of implementation and a single level of inheritance, CFCs will be more useful for developers in that they can define the interface for a very generic &apos;super class&apos;, and create child objects (which may or may not have &apos;subchild&apos; objects) as well as other objects (CFCs) that don&apos;t inherit from the base class but also implement the &apos;super class&apos; interface. In other words, when two objects aren&apos;t general-specific (i.e. they&apos;re both &apos;general&apos;, don&apos;t inherit from each other, have some things in common but the existence of a parent class is unnecessary, interfaces give you a way to enforce some commonality. Even as I write this, I feel as though I&apos;ve not gotten my point across very well, but I&apos;ll move on for the sake of brevity.
&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Method Overloading&lt;/strong&gt;&lt;br /&gt;
Method overloading is a feature I see less need for than the other two features, and I would caution developers to use it cautiously. That said, there are times when a method could go &apos;one way or the other&apos; based on the arguments passed, and to have an argument with type &apos;any&apos; or &apos;string&apos; and then perform conditional logic is anything but elegant. If nothing else, I could see wanting 2 constructors - one for objects that need to load data when they&apos;re instantiated (that has constructor arguments) and one for objects that are &apos;empty&apos; and require no arguments in order to be constructed. Another scenario might be when you need support more than one external data source schema - argument datatypes may be different depending on which schema is in use.
&lt;br /&gt;&lt;br /&gt;
OK, so that&apos;s a bit on the features themselves - now to talk a little about CF being &apos;more like Java&apos; as others are stating.&lt;br /&gt;
First, I don&apos;t think CF should be more like Java, and I never said that... but I do think that its support for Object Oriented features should be strengthened. Why? The minute that the CF Server Team released CFMX and gave us CFCs, they introduced the ability to write code in an object oriented manner. They gave us objects, metadata, and inheritance. They gave us the ability to do instance based programming with CFML (without using external COM, CORBA, or Java objects) and they gave us the ability to encapsulate functionality and data in much the same manner that classes allow the same in other (OO) languages. Basically, it already supports doing things in a very Object Oriented manner, so why not support a more full subset of OO features? Writing CFML in an OO manner is already above the heads of the majority of the CF developers out there, and I don&apos;t personally believe that introducing overloading, constructors, or interfaces will complicate matters any more than they already are - especially not given the fact that none of these 3 features need be implemented if a developer chooses not to, including when they&apos;re using CFCs for &apos;OO&apos; development exactly as they can do now.&lt;br /&gt;&lt;br /&gt;
I&apos;m looking forward to seeing the comments on this one...
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<pubDate>Mon, 24 Jul 2006 21:11:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm?mode=entry&amp;entry=A3754A0F-E081-0478-47D692F676C9586B</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Flex 2, Flash 8.5, and More!</title>
				<link>http://www.horwith.com/index.cfm?mode=entry&amp;entry=C5C2F6BA-E081-0478-47B92F431ADD72DF</link>
				<description>
				
				Macromedia just announced Flex 2, Flash Player 8.5, Flex Builder 2, Flex Enterprise Services 2, and Flex Charting Components 2. Hurah, ActionScript 3 is on its way!&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Flash Player 8.5&lt;/strong&gt; ? the latest high-performance client runtime for rich Internet applications &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flex Framework 2&lt;/strong&gt; ? the core programming model and component library for Flex&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flex Builder 2&lt;/strong&gt; ? an all new Eclipse-based environment fordeveloping rich Internet applications with the Flex Framework. Flex Builder 2, previously code-named Zorn, can incorporate rich media content from the recently released Macromedia Flash Professional 8, the leading authoring tool for creating rich interactive content.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flex Enterprise Services 2&lt;/strong&gt; ? essential data services, automated testing support, and an open adapter architecture for delivering data-intensive rich Internet applications and deeply integrating with enterprise service-oriented infrastructure&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flex Charting Components 2&lt;/strong&gt; ? extensible components for advanced data visualization&lt;/li&gt;
&lt;/ul&gt;
The official press release is at: &lt;a href=&quot;http://www.macromedia.com/macromedia/proom/pr/2005/announcing_flex2.html&quot;&gt;http://www.macromedia.com/macromedia/proom/pr/2005/announcing_flex2.html&lt;/a&gt;&lt;br /&gt;
This is a very exciting new platform and, in my opinion, one of the coolest things Macromedia&apos;s ever released. No doubt - it is the realization of many of Macromedia&apos;s dreams and promises for delivering amazing RIA experiences.
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<pubDate>Thu, 06 Oct 2005 06:41:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm?mode=entry&amp;entry=C5C2F6BA-E081-0478-47B92F431ADD72DF</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Poconos, Reading, and Writing</title>
				<link>http://www.horwith.com/index.cfm?mode=entry&amp;entry=ABD88415-E081-0478-4716A59CF9BC5B27</link>
				<description>
				
				I&apos;ll be camping in the poconos his weekend and I just can&apos;t wait to get away from my laptop for a change! I hear it&apos;s rattlesnake season up there right now, so if you don&apos;t see me blogging again in the near future, assume the worst. I was planning to bring the fusebox book I mentioned in my last blog post, but I&apos;m in the middle of preparing to do some hardcore java development soon, and really need to finish looking over some of that. Fusebox will just have to wait a couple weeks. I should mention that I am still working on the book I&apos;ve mentioned from time to time - I&apos;ve just been very busy lately. I don&apos;t have an ETA on it just yet, but good things come to those who wait. I refuse to write it on too tight a timeline or at the whim of anyone else&apos;s schedule... not if it sacrifices quality. All I promise is that when it&apos;s complete, it&apos;ll be good :)
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>Writing and Presenting</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<pubDate>Fri, 12 Aug 2005 12:53:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm?mode=entry&amp;entry=ABD88415-E081-0478-4716A59CF9BC5B27</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Got Flex?</title>
				<link>http://www.horwith.com/index.cfm?mode=entry&amp;entry=65AC41AE-E081-0478-47ABCD5BA2975BB4</link>
				<description>
				
				OK, there&apos;s no excuse not to be running CFMX 7 as a J2EE app. - especially not on a development box. There&apos;s also no excuse not to be running Flex on that same J2EE server - Flex rocks. There are three ways to run Flex and CF on one J2EE Server. Here they are in order from my least favorite to my prefered method:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Run CF on one server instance and Flex on another server instance&lt;/li&gt;
&lt;li&gt;Deploy Flex and CF as seperate web applications (.war files) on one server instance - this means setting-up different context roots for the two&lt;/li&gt;
&lt;li&gt;Merge the Flex .war with an existing CF .war on a single instance (same context root)&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
Why do I like option 3 most? Primarily because I find it easier to be able to do everything in one place... but there&apos;s some really slick stuff you can do in a CF page when you also have Flex available.&lt;br /&gt; For those of you who don&apos;t follow, when you&apos;ve merged Flex and CF into one .war, that server can serve MXML and CFM files... but wait, there&apos;s more. You can also write flex code inside your CFM files! In order to do this, you have to import the flex tag library using CFIMPORT. I&apos;ll show this in a seperate post. First, for those of you wondering just how to merge Flex and CF I&apos;ve made it really easy for myself and thought I&apos;d share. Download the zip file at &lt;a href=&quot;http://www.horwith.com/downloads/flex15oncfmx7.zip&quot;&gt;http://www.horwith.com/downloads/flex15oncfmx7.zip&lt;/a&gt;. In it is a read me that describes how to take an existing CFMX 7 install (J2EE only) and merge Flex with it. It&apos;s worth noting that the web.xml I supply is from CF running on Windows and JRun, though it shouldn&apos;t matter what platform you&apos;re on  in theory. Obviously back up your existing web.xml before replacing it with mine, and for goodness sake do remember that I take no responsibility for what happens when you try this. That said, I have deployed Flex into CF many a time without problem. Using my zip means downloading a 10.8 Meg file and following 4 steps as opposed to downloading the 100+ Meg Flex installer just to extract the EAR and WAR and then figure things out on your own.
				
				</description>
				
				<category>Flex</category>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<category>Downloads</category>
				
				<pubDate>Fri, 29 Jul 2005 21:42:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm?mode=entry&amp;entry=65AC41AE-E081-0478-47ABCD5BA2975BB4</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Looking for a Flash Developer that knows OOP?</title>
				<link>http://www.horwith.com/index.cfm?mode=entry&amp;entry=E61D40D4-E081-0478-47B20F4B31192F4D</link>
				<description>
				
				A friend of mine that specializes in Object Oriented Flash development (he was a Java Software Engineer prior to being turned on to Flash) is looking for remote or contract work (he&apos;s based near Lancaster, PA). If anyone out there needs someone with an exceptional Object Oriented software development background to do some Flash development, please contact me at &lt;a href=&quot;mailto:simon@horwith.com&quot;&gt;simon@horwith.com&lt;/a&gt; and I&apos;ll put you in touch with him.&lt;br&gt;I can personally vouche for the quality of his work (Java, Flash, and VB actually), having worked wih him myself on many different projects over the past 10 years.
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<pubDate>Mon, 16 May 2005 10:21:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm?mode=entry&amp;entry=E61D40D4-E081-0478-47B20F4B31192F4D</guid>
				
			</item>
			
		 	
			
			
			<item>
				<title>Services Snapshot Manager</title>
				<link>http://www.horwith.com/index.cfm?mode=entry&amp;entry=C7EF495B-E081-0478-47192F24D2629572</link>
				<description>
				
				I had a conversation with Shlomy Gantz a while back about my prefered methods of administering my dev environment.  At the end of that conversation, Shlomy said he was going to find a better way. Of course, I just thought &quot;OK, Shlomy. Whatever you say&quot; and thought I&apos;d heard the end of it. Well, I was wrong. Shlomy has released a (FREE) little application called the Service Snapshot Manager.  It allows you to save and switch between snapshots of running services.  Basically, say good-bye to using batch files to turn on and off your server instances, databases, etc. His little utility does it all.  You can read more and download the app from his blog entry at &lt;a href=&quot;http://www.shlomygantz.com/blog/index.cfm?mode=entry&amp;entry=C7D6FEE1-40CA-7F8D-8E76EF91F5737896&quot;&gt;http://www.shlomygantz.com/blog/index.cfm?mode=entry&amp;entry=C7D6FEE1-40CA-7F8D-8E76EF91F5737896&lt;/a&gt;. &lt;br&gt;Rock on, Shlomy!
				
				</description>
				
				<category>ColdFusion</category>
				
				<category>Writing and Presenting</category>
				
				<category>Java</category>
				
				<category>Misc</category>
				
				<category>Downloads</category>
				
				<pubDate>Tue, 10 May 2005 13:42:00 -0400</pubDate>
				<guid>http://www.horwith.com/index.cfm?mode=entry&amp;entry=C7EF495B-E081-0478-47192F24D2629572</guid>
				
			</item>
			
		 	
			</channel></rss>