<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>atc &#187; python</title>
	<atom:link href="http://blog.beplacid.net/tag/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.beplacid.net</link>
	<description>Musings of technology, sport, life et al</description>
	<lastBuildDate>Thu, 10 Jun 2010 10:24:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Google Wave Extensions Python API &#8211; Annotation Documentation</title>
		<link>http://blog.beplacid.net/2009/10/19/google-wave-extensions-python-api-annotation-documentation/</link>
		<comments>http://blog.beplacid.net/2009/10/19/google-wave-extensions-python-api-annotation-documentation/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 06:57:53 +0000</pubDate>
		<dc:creator>atc</dc:creator>
				<category><![CDATA[Google Wave]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Quick post]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.beplacid.net/?p=93</guid>
		<description><![CDATA[Quick post documenting the much-sought-after structure of the Python API&#8217;s Annotation name/value pairing. If you want to annotate a blip&#8217;s content, you&#8217;ll need to utilise the values below:

conv/title
 lang = en
 style/fontWeight = bold
 style/fontStyle = italic
 style/textDecoration = underline
 style/textDecoration = line-through
 style/fontSize = 2em
 style/color =r gb(229, 51, 51)
 style/backgroundColor = rgb(51, 127, [...]]]></description>
			<content:encoded><![CDATA[<p>Quick post documenting the much-sought-after structure of the Python API&#8217;s Annotation name/value pairing. If you want to annotate a blip&#8217;s content, you&#8217;ll need to utilise the values below:</p>
<ul>
<li>conv/title</li>
<li> lang = en</li>
<li> style/fontWeight = bold</li>
<li> style/fontStyle = italic</li>
<li> style/textDecoration = underline</li>
<li> style/textDecoration = line-through</li>
<li> style/fontSize = 2em</li>
<li> style/color =r gb(229, 51, 51)</li>
<li> style/backgroundColor = rgb(51, 127, 229)</li>
<li> link/manual = <a rel="nofollow" href="http://example.com/" target="_blank">http://example.com/</a></li>
</ul>
<p>A Python example of using the above:</p>
<p><code><br />
msg = "This is a message for you"<br />
doc = wavelet.GetDocument()<br />
doc.SetText(msg)<br />
doc.SetAnnotation(Range(msg[-4:], len(msg) - 1), "style/fontStyle", "italic")</code></p>
<p>The above should italicise the word &#8220;you&#8221; in the variable &#8220;msg&#8221;.</p>
<p><a href="http://groups.google.com/group/google-wave-api/browse_thread/thread/e313db4ff118907a" target="_blank">According to Google employee</a> &#8216;Pamela&#8217;, this isn&#8217;t set in stone &#8220;as we aren&#8217;t  confident in their stability&#8221;. Thanks to Dave of the same Google Group thread for documenting and posting the styling annotation name and value pairs.</p>
<p>Hope that helps someone ;)</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.beplacid.net%2F2009%2F10%2F19%2Fgoogle-wave-extensions-python-api-annotation-documentation%2F';
  addthis_title  = 'Google+Wave+Extensions+Python+API+%26%238211%3B+Annotation+Documentation';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.beplacid.net/2009/10/19/google-wave-extensions-python-api-annotation-documentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Wave Python API and Annotations</title>
		<link>http://blog.beplacid.net/2009/10/19/google-wave-python-api-and-annotations/</link>
		<comments>http://blog.beplacid.net/2009/10/19/google-wave-python-api-and-annotations/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 01:08:53 +0000</pubDate>
		<dc:creator>atc</dc:creator>
				<category><![CDATA[Google Wave]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Quick post]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.beplacid.net/?p=90</guid>
		<description><![CDATA[I spent a considerable amount of time this weekend hacking away at my Google Wave robot, Wave Toolkit. It&#8217;s a lot of fun and I&#8217;ve managed to write something that allows for quick implementation of &#8216;commands&#8217; from initial idea to &#8216;live&#8217;.
One of the frustrating things about developing Google Wave extensions is the poor documentation. It [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a considerable amount of time this weekend hacking away at my Google Wave robot, <a title="Wave Toolkit" href="http://wave-toolkit.appspot.com/" target="_blank">Wave Toolkit</a>. It&#8217;s a lot of fun and I&#8217;ve managed to write something that allows for quick implementation of &#8216;commands&#8217; from initial idea to &#8216;live&#8217;.</p>
<p>One of the frustrating things about developing Google Wave extensions is the poor documentation. It starts out great: lovely overview documentation and tutorial, with plenty of insight and step-by-step instructions; and then nothing. It stops there. Apart from reading the API documentation which can be cumbersome, you&#8217;re left alone in the dark, weeping like a sad puppy after meeting its new owners.</p>
<p>An example of this is using Annotations within Google Wave; formatting text for bold or italics,  providing nicely worded hyperlinks or embedding images is governed by inserting annotations that &#8216;explain&#8217; how the text should look. If you try to find out <em>how</em> to use these objects within the Python API you&#8217;ll see it&#8217;s nearly impossible. I got my answer only from guessing and scouring the Google Group and reading and example in Java, then posting when that didn&#8217;t work and finally getting some helpful advice. Please Google, document this protocol more!</p>
<p>So, to save an further frustration, <strong>here&#8217;s how to use Annotations in the Google Wave python API for robots</strong>:<br />
<code> doc = wavelet.CreateBlip().GetDocument()<br />
doc.SetText("THIS IS ANNOTATED TEXT")<br />
doc.SetAnnotation(Range(2, 12), "link/manual", "http://www.google.com")</code></p>
<p>I hope to hell that helps someone and saves the pain I underwent to work it out! Buggered if I know how to bold text though&#8230;Happy hacking!</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.beplacid.net%2F2009%2F10%2F19%2Fgoogle-wave-python-api-and-annotations%2F';
  addthis_title  = 'Google+Wave+Python+API+and+Annotations';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.beplacid.net/2009/10/19/google-wave-python-api-and-annotations/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Wave Extensions &#8211; Wave Toolkit</title>
		<link>http://blog.beplacid.net/2009/10/17/wave-toolkit-google-wave-extensions/</link>
		<comments>http://blog.beplacid.net/2009/10/17/wave-toolkit-google-wave-extensions/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 22:38:36 +0000</pubDate>
		<dc:creator>atc</dc:creator>
				<category><![CDATA[Google Wave]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Quick post]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.beplacid.net/?p=82</guid>
		<description><![CDATA[Update: You might find my latest posts on Google Wave helpful.
So I managed to join the select elite bandwagon that is the Google Wave preview, which entitled me to early access to Google&#8217;s new masterpiece and 8 invites to bribe friends with (although I only have a few, so the whole eight might not stretch [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> You might find my <a href="http://blog.beplacid.net/tag/google-wave/" target="_blank">latest posts on Google Wave</a> helpful.</p>
<p>So I managed to join the select elite bandwagon that is the<strong> Google Wave preview</strong>, which entitled me to early access to Google&#8217;s new masterpiece and 8 invites to bribe friends with (although I only have a few, so the whole eight might not stretch too far&#8230;). I have to admit, I&#8217;m not sure what the fuss is about. It&#8217;s clever, really clever; but there&#8217;s <em>not much to it yet</em>. It is, for all intents and purposes, a well-marketed collaboration tool, or put simply: a clever chatroom. Time will tell though. Perhaps its usefulness is yet to be seen.</p>
<p>Being a devout geek, and a sucker for anything Google, I was led to explore the programming possibilities behind Wave. Rather brilliantly Google have created an API that will allow you to do one of two things: create a &#8216;Robot&#8217; &#8211; an automated participant programmed by you &#8211; or embed your own &#8216;gadget&#8217; in a wave (think a Google map, but your content). The API is rich, if its documentation can be a bit light in some respects (where the hell are the CreateBlip() and such methods documented?! All you get in the API docs are &#8216;Get*&#8217; methods&#8230;pointless!).</p>
<h2>Introducing Wave Toolkit</h2>
<p>Having programmed plenty of bots for IRC and Eternal Lands over the years I had the experience and ideas behind creating an automated character that can be used to aid users, or simply provide a bit of light entertainment. So after plenty of reading and hacking, I managed to come up with <strong><a title="Wave Toolkit" href="http://wave-toolkit.appspot.com/" target="_blank">Wave Toolkit</a></strong>; a simple Python robot for wave that provides <a title="Wave Toolkit Help" href="http://wave-toolkit.appspot.com/help" target="_blank">features</a> that are either lacking or a little tool that might aid your chatroom&#8230;err I mean collaborative-blue-sky-thinking&#8230;yeah.</p>
<p>To get a bot running you do need a Google App Engine account, which allowed me to explore this little world offered by Google. It&#8217;s cleverly done and nicely polished. Still think it&#8217;s just cleverly managed free-hosting though ;)</p>
<p>The capabilities of robots within the Google Wave extension API are pretty much exactly what a human participant can do: edit, post, delete and edit &#8216;<strong>blips</strong>&#8216;, create waves, see who&#8217;s participating and apparently manipulate playback. It&#8217;s very fun writing something that can do all this too; that wonderful satisfying feeling of achievement when you spam &#8220;hello world&#8221; to a wave&#8230;</p>
<p><strong>Wave Toolkit</strong>&#8217;s in constant development so it might be a little ropey, but please <strong>feel free to add wave-toolkit@appspot.com as a contact and invite it to a wave</strong>, and feel free to suggest new things, report bugs or even tell me you love it. ;)</p>
<p>So back to coding more lovely Python, and perhaps writing something useful for all the wavers out there. Right? ;)</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.beplacid.net%2F2009%2F10%2F17%2Fwave-toolkit-google-wave-extensions%2F';
  addthis_title  = 'Google+Wave+Extensions+%26%238211%3B+Wave+Toolkit';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.beplacid.net/2009/10/17/wave-toolkit-google-wave-extensions/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Pyela &#8211; Python Eternal Lands APIs</title>
		<link>http://blog.beplacid.net/2008/07/27/pyela-python-eternal-lands-apis/</link>
		<comments>http://blog.beplacid.net/2008/07/27/pyela-python-eternal-lands-apis/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 10:55:33 +0000</pubDate>
		<dc:creator>atc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[eternal lands]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.beplacid.net/2008/07/27/pyela-python-eternal-lands-apis/</guid>
		<description><![CDATA[Some time ago, I began hacking away at a simple API (Application Programming Interface) for Eternal Lands written in Python. I intended to write something that was quick and concise, and that would be easy to reuse. Using a typical OO approach, I finally came up with &#8216;Pyela &#8211; Python Eternal Lands API&#8217;.
Pyela is an [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago, I began hacking away at a simple API (Application Programming Interface) for Eternal Lands written in Python. I intended to write something that was quick and concise, and that would be easy to reuse. Using a typical OO approach, I finally came up with &#8216;<a href="http://pyela.googlecode.com" title="Pyela - Python Eternal Lands API" target="_blank">Pyela</a> &#8211; Python Eternal Lands API&#8217;.</p>
<p>Pyela is an object oriented (OO) API for communicating with an Eternal Lands server. It aims to be a simple wrapper for socket operations and messages that pertain to the undocumented Eternal Lands Network Protocol. A demonstration of the API is easy to see in the Pyela &#8211; GUI application, which is a Eternal Lands chat client written using Pyela. You can download that <a href="http://pyela.googlecode.com/files/pyela-gui-0.4.tar" title="Download Pyela chat client" target="_blank">here</a>.</p>
<p>Pyela is released under the GPL3 and is open to patches and any suggestions you may have and is hosted by Google code &#8211; <a href="http://pyela.googlecode.com" title="Pyela Homepage" target="_blank">pyela.googlecode.com</a>.</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.beplacid.net%2F2008%2F07%2F27%2Fpyela-python-eternal-lands-apis%2F';
  addthis_title  = 'Pyela+%26%238211%3B+Python+Eternal+Lands+APIs';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.beplacid.net/2008/07/27/pyela-python-eternal-lands-apis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python and Java comparison</title>
		<link>http://blog.beplacid.net/2007/09/03/python-and-java-comparison/</link>
		<comments>http://blog.beplacid.net/2007/09/03/python-and-java-comparison/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 15:42:25 +0000</pubDate>
		<dc:creator>atc</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[comparison]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[provocative]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.beplacid.net/2007/09/03/why-java-is-obsolete/</guid>
		<description><![CDATA[I&#8217;ve been a professional programmer for over three years now. I have worked on projects both large and small, ranging from Java Web Services to Perl-CGI,  J2EE web sites and JavaScript prototyping. I can say that i&#8217;m experienced enough to know how to approach most aspects of the programming-industry and work related issues. This [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a professional programmer for over three years now. I have worked on projects both large and small, ranging from Java Web Services to Perl-CGI,  J2EE web sites and JavaScript prototyping. I can say that i&#8217;m experienced enough to know how to approach most aspects of the programming-industry and work related issues. This said, I am going to explain why I think the Java programming language is now obsolete, in an industry ripe with languages new and old, useful and <a href="http://www.lolcode.com" title="The stupid 'LOLCode' language, website." target="_blank">stupid</a>.</p>
<p><strong>Background</strong></p>
<p>Before I start, I want to explain my programming background with Java and other languages, so this post isn&#8217;t regarded as Just Another Flame ™.</p>
<p>I am a Sun Certified Java Programmer, and have been contracting for 3 years here in the UK. I have worked for two large companies (no names) that have given me excellent experience with the Java programming language and its use in the Enterprise tier. As well as Java, I have been required to develop in SQL (both Oracle and MySQL, as well as MS-SQL), Perl (CGI and scripting), BaSH and the usual web design/development languages HTML, Javascript and CSS. I have recently taken to learning Python, the high-level dynamic object oriented programming language, and doing so has prompted me to post this article.</p>
<p><strong>Common Misconceptions</strong></p>
<p>A lot of the Java doubters out there tend to blow the same trumpet; sing the same tune; fuel the same fire &#8211; that is, they all say &#8216;Java sux!!11&#8242;. The problem with this, is that Java is all of three things: a programming language, compiler, and virtual machine/interpreter. This means that those blabbering on about how &#8216;Java sux&#8217; don&#8217;t direct their comments at what particular part they dislike; that is whether they hate the language itself, the compiler or the interpretor. Not only is this an inaccurate flame, but it&#8217;s usually bellowed by those who have very little to no experience with the programming language or its uses. At best, they&#8217;ve tried to run a Java program and due to their own lack of understanding or misconfiguration, it hasn&#8217;t worked. However, some people who flame it do know the language and its software components and therefore have an educated opinion. I prefer, and indeed regard myself as, the latter.</p>
<p>One of the other wondrous clauses that Java-haters tout, is that it is slow.  Well,  they&#8217;re <strong>mostly</strong> right. Again there&#8217;s more to it than just speed. The first releases of Java were very slow. Fact. However, the latest releases (Java 5 &amp; 6) have added language features that speed up the run-time execution of Java code &#8211; namely parameterisation of types,  auto boxing/unboxing of primitives to objects &#8211; by forcing compile-time checks as opposed to run-time checks of types (the old object cast when adding/retrieving to/from collections is now unnecessary). Whilst these features do speed things up, Java is still relatively slow.</p>
<p>Now, on to the flame&#8230;errr, constructive criticism.</p>
<p><strong>Java&#8217;s too Strict<br />
</strong></p>
<p>Java has prided itself on two things &#8211; strict object orientated design (OO) and &#8216;Write Once, Run Anywhere&#8217; multi-platform availability &#8211; and has been both accepted and rejected on the merits/pitfalls of these features. I don&#8217;t actually see anything wrong with OO design. In fact, it&#8217;s my preferred software development approach. The issue with Java&#8217;s strict OO design, is that it&#8217;s very difficult to program otherwise. You&#8217;re forced to stick to OO practices whether you&#8217;re writing a quick hack, or a fully-fledged framework, and this forces its usefulness to be restricted. This isn&#8217;t the case with Python. It&#8217;s so dynamic and productive to write, that it can be used to write a quick backup script or large back-end services.</p>
<p>Java is also a strict-typed language. This means that at instantiation, objects are given a type (or &#8216;class&#8217;) and the compiler enforces this. If an object needs to change type, it must do so through the &#8216;Polymorphism&#8217; object oriented design approach. This is enforced by Java at runtime. It&#8217;s another extension of Java not allowing you to make the decision over what software design approach you&#8217;re going to take &#8211; procedural or object oriented &#8211; so you&#8217;re stuck from day one. Languages like Python and Ruby are not strict-type. This means the programmer has more flexibility (but has the overhead of ensuring specific types at runtime, and checking thus) over how specific aspects of a program treat information.</p>
<p><strong>Java&#8217;s too &#8216;wordy&#8217; &#8211; a.k.a Verbose Syntax</strong></p>
<p>The nature of OO design means that more code is written to define objects and their relative connections. Java does this well, with a nice object hierarchy, but it&#8217;s a victim of its own design and conventions &#8211; accessors/mutators (&#8216;getters&#8217; and &#8217;setters&#8217;) mainly &#8211; whereas in languages such as python, the convention isn&#8217;t to use this approach, but to expose an object&#8217;s properties either by direct dot notation, or to define it as a dict. You can still do this in Java, but obj['val'] is much easier to write than &#8216;obj.getValue()&#8217;. You might see this as a moot point, something that&#8217;s purely implementation specific, but in reality anyone that knows how to write Java, will stick to the strict convention that objects should hide their underlying implementation. This is definitely a good approach to software design, but in practice it becomes too much of a burden on a programmer to write and use such design aspects. Not to mention it doesn&#8217;t bode well with the 80 character per line rule&#8230;</p>
<p>Another example of Java&#8217;s &#8216;wordy&#8217; syntax is the Collections API. Once touted as its glorious achievement, the Java Collections API was an outstanding set of objects aimed at providing  objects &#8211; an extension to the typical array &#8211; that provide easy, OO and fast access to a collection of objects. With the emergence of other languages however, the Java Collections API has become rather stagnant due to the language&#8217;s lack of dynamic syntax. Below are two examples, one of defining and iterating over a list in Java 1.5 and the other iterating over a list in Python 2.5:</p>
<p><code><br />
List&lt;String&gt; list = new List&lt;String&gt;();// define a List that contains only String objects<br />
list.add("Herro");<br />
list.add("Moo");<br />
list.addAll(myOtherList);<br />
for (String str : list)<br />
System.out.printf("Item: %s\n",str);<br />
</code></p>
<p>And the exact same operations in Python 2.5:</p>
<p><code><br />
list = ['herro','moo']<br />
list.extend(my_other_list)<br />
for item in list:<br />
print "Item: %s\n" % item<br />
</code></p>
<p>4 lines of code, or 6? Stretch that out over a large application (what application these days wouldn&#8217;t use lists or maps?), you can see that code written in Java would become quite large, purely because of the language&#8217;s syntax. Programmers like to program, they don&#8217;t like having to write more than they need to. Python allows you do write exactly what&#8217;s needed, and without having to write 100 words to do so.</p>
<p><strong>&#8216;Write once, debug anywhere&#8217;</strong></p>
<p>The ability to run an application on any operating system without the need to recompile is a nice idea. Java&#8217;s main selling point is that it has this ability. Initially this was a useful and much desired feature of the language because not only did it work, but it was at an age where the Web was booming (pre-2000) and new technologies were on the uptake. Nowadays, the platform is the Web. This means you don&#8217;t necessarily need inter-platform abilities from a language and compiler/interpreter. You just need a working web browser, and an internet connection. Indeed, with the rapid adoption of AJAX (Asynchronous Javascript and XML), web sites are now replacing the desktop application. Software As A Service (SAAS) is now the forefront of software development and business aims, and the need for desktop applications becomes ever smaller as more and more websites offer an abundance of features from the web browser &#8211; just checkout <a href="http://gmail.com" title="Google Mail" target="_blank">GMail</a>, <a href="http://eyeos.info" title="EyeOS - Ajax Operating System" target="_blank">EyeOS</a> or <a href="http://maps.google.com" title="Google Maps" target="_blank">Google Maps</a> &#8211; and you&#8217;ll experience feature rich applications, all in the comfort of your web browser.</p>
<p><strong>What&#8217;s next?</strong></p>
<p>Undoubtedly Java will remain a large part of the industry for the next few years. Sun are a large and powerful company, and are good at keeping things alive. Not only that, but they&#8217;ve recently <a href="http://www.sun.com/2006-1113/feature/" title="Sun releases Java under GPL" target="_blank">released Java under the GPL </a>, so it&#8217;ll be around for a while yet. Some might say that this was part of a clever marketing campaign to get people back in to using Java. Either way, I can really only see its demise as more dynamic, open source, reliable technologies take the driving seat.</p>
<p>Java still has a large place in the enterprise market. According to <a href="http://www.tiobe.com/index.htm?tiobe_index" title="Programming languages Usage Statistics" target="_blank">this site</a>, it&#8217;s the number one language (in terms of job opportunities, third-party vendors and courses); but as with all statistics, i&#8217;d take that with a pinch of salt.</p>
<p><strong>Summary</strong></p>
<p>I&#8217;m not a Java-hater. It&#8217;s paid my bills for the past few years, so I owe it some credit. Due to my recent adventures with Python though, I immediately saw the flaws in Java. Python makes things quick to write. It&#8217;s powerful, ever maturing and more to the point &#8211; it&#8217;s open source. I think Java will stick around for the foreseeable future, but its original merits are no longer going to keep it alive&#8230;</p>
<script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fblog.beplacid.net%2F2007%2F09%2F03%2Fpython-and-java-comparison%2F';
  addthis_title  = 'Python+and+Java+comparison';
  addthis_pub    = '';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script>
]]></content:encoded>
			<wfw:commentRss>http://blog.beplacid.net/2007/09/03/python-and-java-comparison/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
