<?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>misto's blog &#187; eclipse</title>
	<atom:link href="http://blog.misto.ch/archives/tag/eclipse/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.misto.ch</link>
	<description>blog über mich und interessante dinge aus dem alltag. oft auch etwas aus der informatik</description>
	<lastBuildDate>Sun, 06 Sep 2009 14:01:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Eclipse Galileo, Yeah! Oder?</title>
		<link>http://blog.misto.ch/archives/1300</link>
		<comments>http://blog.misto.ch/archives/1300#comments</comments>
		<pubDate>Wed, 24 Jun 2009 16:48:10 +0000</pubDate>
		<dc:creator>misto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programmieren]]></category>

		<guid isPermaLink="false">http://blog.misto.ch/?p=1300</guid>
		<description><![CDATA[Man liest es überall, eine neue Eclipse Version wurde vor kurzem veröffentlicht! Die letzten Jahre immer ein Grund zur Freude, endlich kann man die diversen RCs wegschmeissen und Final installieren. Nur dieses Jahr hat mich das ganze eher kalt gelassen. Nicht weil ich Eclipse nicht benutze, als CDT-User (und ehemaliger Contributor) läuft es jeden Arbeitstag. [...]]]></description>
			<content:encoded><![CDATA[<p>Man liest es überall, eine <a href="http://eclipse.org/">neue Eclipse Version</a> wurde vor kurzem veröffentlicht! Die letzten Jahre immer ein Grund zur Freude, endlich kann man die diversen RCs wegschmeissen und Final installieren. Nur dieses Jahr hat mich das ganze eher kalt gelassen. Nicht weil ich Eclipse nicht benutze, als CDT-User (und ehemaliger Contributor) läuft es jeden Arbeitstag. Ist Eclipse Galileo also kein Grund zur Freude?</p>
<p>Wenn ich mir die sogenannte <a href="http://www.infoq.com/news/2009/06/eclipse-galileo-released">Top 10 Feature List</a> so anschaue, dann haut es mich nicht aus den Socken. </p>
<p>Nummer 1 ist also die <del datetime="2009-06-24T16:07:37+00:00">neue</del> bereits vorhandene Update- und Installations-Komponente P2. Ganz ehrlich, wenn das Number 1 Feature das neue Updatesystem sein soll, das ist doch ein Scherz?</p>
<p>OSGi Declarative Services, Improved target platform management, Eclipse Modeling Project refinements, etc. interessieren mich eigentlich auch nicht weiter. Allerdings dann, auf Platz 6, <a href="http://eclipsesource.com/blogs/2009/06/19/eclipse-galileo-feature-top-10-list-number-6/">Install into Self</a>! Als (zukünftig bald wieder) Plugin-Entwickler ist das ein Segen, nicht jedes Mal eine neue Eclipse-Instanz starten zu müssen, sondern ein Plugin einfach in die aktuelle Umgebung zu deployen. <strong>Das</strong> ist für mich ein Killer-Feature, wird aber alle Nicht-Plugin-Entwickler kalt lassen. </p>
<p>Also doch kein Grund zu Klagen? Eclipse Galileo scheint für diverse Anwendungsbereiche neue und interessante Features zu beinhalten, und dieses breite Spektrum zeigt doch auch sehr schön, wie weit und breit Eclipse inzwischen verbreitet ist und was für ein Erfolg es als Plattform hat.</p>
<h3>CDT</h3>
<p>Auch das CDT hat natürlich einige Neuerungen erfahren, allerdings muss man sich bewusst sein, dass die Version von 5 nach 6 nicht etwa wegen der vielen neuen Features geändert wurde, sondern wegen inkompatibler APIs. Nichtsdestotrotz, <a href="http://wiki.eclipse.org/CDT/User/NewIn60"> Neues hat Einzug gehalten</a>.</p>
<p>Nett ist sicherlich, dass nun auch Operatoren wie andere Funktionen behandelt werden was den Indexer anbelangt. Konkret bedeutet das, dass ein <em>Go To Declaration</em> auf einem Operatoren mich zu seiner Deklaration führt. Das ist sogar relativ oft nützlich, denn die Streaming-Operatoren sind häufig überladen.</p>
<p>Von der Refactoring-Front gibt es (leider) nicht sehr viel zu berichten. Ein <em>Extract Local Variable</em> wurde eingeführt, und es scheint in vielen Situationen zu funktionieren, wie meine Tests bisher ergeben haben. Aus besonders geheimen Quellen weiss ich, dass ein <em>Change Method Signature</em> Refactoring in Arbeit ist, wenn alles klappt werden wir das im nächsten Jahr zu sehen bekommen, wenn es heisst, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=271054">Helios</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.misto.ch/archives/1300/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Unerwartete Anforderungen an Software</title>
		<link>http://blog.misto.ch/archives/1097</link>
		<comments>http://blog.misto.ch/archives/1097#comments</comments>
		<pubDate>Wed, 18 Feb 2009 19:06:39 +0000</pubDate>
		<dc:creator>misto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[programmieren]]></category>

		<guid isPermaLink="false">http://blog.misto.ch/?p=1097</guid>
		<description><![CDATA[Ueber ein interessantes Beispiel an eine ziemlich unerwartete Anforderungen an eine Software bin ich heute gestolpert. Aber zuerst eine Frage: Soll ein SCM / VCS (wie auch immer) es erlauben, Code zu löschen? Und zwar auch aus der History, nicht ab einer bestimmten Revision. Ich denke, dafür ein einstimmiges «Nein» zu erhalten. «Blödsinn, muss man [...]]]></description>
			<content:encoded><![CDATA[<p>Ueber ein interessantes Beispiel an eine ziemlich unerwartete Anforderungen an eine Software bin ich heute gestolpert. Aber zuerst eine Frage: Soll ein SCM / VCS (wie auch immer) es erlauben, Code zu löschen? Und zwar auch aus der History, nicht ab einer bestimmten Revision. Ich denke, dafür ein einstimmiges «Nein» zu erhalten. «Blödsinn, muss man nicht können, ja soll man nicht mal können». Tja, anscheinend besteht dafür doch Bedarf, wie ich eben <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=257706">in diesem Eclipse Bug-Report gesehen habe</a>:</p>
<blockquote><p>We [the Eclipse Foundation, or parts of it, not sure] have a serious IP concern with DVCS&#8217;s in general. There have been several times in the past where our IP team has uncovered code in our repositories which had to be deleted. [..] How do you really really delete code across all instances in a DVCS?</p></blockquote>
<p>Tja, unerwartet, aber doch irgendwie einleuchtend. Wir sehen, auch auf den ersten Blick unsinnige Anforderungen können eine Berechtigung haben. Was lernen wir daraus? Wir Software-Entwickler haben einen harten Job <img src='http://blog.misto.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>(Ach ja, und natürlich geht das mit Git sehr wohl, allerdings ist es doch relativ hässlich. Naja, sollte es vielleicht auch sein.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.misto.ch/archives/1097/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Code Analysis and Refactoring with CDT</title>
		<link>http://blog.misto.ch/archives/912</link>
		<comments>http://blog.misto.ch/archives/912#comments</comments>
		<pubDate>Sat, 22 Nov 2008 00:41:46 +0000</pubDate>
		<dc:creator>misto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://blog.misto.ch/?p=912</guid>
		<description><![CDATA[Doug Schäfers Slides vom Eclipse Summit Europe sind nun online verfügbar. Für uns Insider natürlich nicht viel neues, aber es ist doch schön, wenn jemand unsere Arbeit präsentiert. Irgendwie cool   Ausserdem hats sogar Code von mir in der Präsentation:

Super, was? So, und nun &#8220;spread the word on what can be done and how&#8221;, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.slideshare.net/dschaefer/code-analysis-and-refactoring-with-cdt-presentation?type=powerpoint">Doug Schäfers Slides vom Eclipse Summit Europe</a> sind nun online verfügbar. Für uns Insider natürlich nicht viel neues, aber es ist doch schön, wenn jemand unsere Arbeit präsentiert. Irgendwie cool <img src='http://blog.misto.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Ausserdem hats sogar Code von mir in der Präsentation:</p>
<p><img src="/wp-content/cdt_code_von_mir.png" /></p>
<p>Super, was? So, und nun &#8220;spread the word on what can be done and how&#8221;, wie Doug auf der letzten Folie aufruft.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.misto.ch/archives/912/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Neues im Ganymede CDT</title>
		<link>http://blog.misto.ch/archives/608</link>
		<comments>http://blog.misto.ch/archives/608#comments</comments>
		<pubDate>Mon, 23 Jun 2008 10:26:47 +0000</pubDate>
		<dc:creator>misto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://blog.misto.ch/?p=608</guid>
		<description><![CDATA[Gibts bei Emanuel.
]]></description>
			<content:encoded><![CDATA[<p>Gibts bei <a href="http://www.emanuel.graf.name/snipsnap/space/start/2008-06-23/1#Eclipse_Ganymede:_Neues_im_CDT_5.0">Emanuel</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.misto.ch/archives/608/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neues in Eclipse 3.4 Ganymede</title>
		<link>http://blog.misto.ch/archives/588</link>
		<comments>http://blog.misto.ch/archives/588#comments</comments>
		<pubDate>Mon, 09 Jun 2008 12:12:05 +0000</pubDate>
		<dc:creator>misto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[neuigkeit]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[werbung]]></category>

		<guid isPermaLink="false">http://blog.misto.ch/?p=588</guid>
		<description><![CDATA[Es ist wieder mal so weit, Ende Juni wird die neuste und schönste Version von Eclipse im Zug des Ganymede Release-Trains veröffentlicht. Wie auch schon letztes Jahr möchte ich hier gerne einige der Neuerungen vorstellen.
Ich werde mich auf das JDT, also die Java Development Tools, PDE, sowie die Plattform beschränken; Emanuel wird dann hoffentlich über [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist wieder mal so weit, Ende Juni wird die neuste und schönste Version von Eclipse im Zug des Ganymede Release-Trains veröffentlicht. <a href="/archives/386">Wie auch schon letztes Jahr</a> möchte ich hier gerne einige der Neuerungen vorstellen.</p>
<p>Ich werde mich auf das JDT, also die Java Development Tools, PDE, sowie die Plattform beschränken; <a href="http://www.emanuel.graf.name/snipsnap/space/start">Emanuel</a> wird dann hoffentlich über die Neuigkeiten im CDT berichten.</p>
<h3>Extract Class Refactoring</h3>
<p>Starten wir mit meinem Lieblingsthema: Refactoring. Und zwar gibt es ein neues Refactoring, welches einem einfach erlaubt, Teile einer bestehenden Klasse in eine Neue auszulagern:</p>
<p><img src="http://blog.misto.ch/wp-content/extract_class_1.png" /></p>
<p>Das Resultat ist eine Klasse mit den selektierten Feldern, sowie delegierenden Methoden aus der Ursprungsklasse.</p>
<h3>Rearrange Content of Files Per Drag&#038;Drop</h3>
<p>Auch ganz nett ist, dass man Member innerhalb einer Klasse per Drag&#038;Drop verschieben kann:<br />
<img src="http://blog.misto.ch/wp-content/sort_members.png" /><br />
<em>(Den Cursor muss man sich vorstellen, er zieht das selektierte Element an die Position der schwarzen Linie.)<br />
</em></p>
<h3>Rename Field Renames Properties key</h3>
<p>Auch eine sehr nützliche Erweiterung ist beim Rename Field Refactoring hinzugekommen: Beim Umbenennen eines Feldes, welches als Message-String verwendet wird, wird auch automatisch der entsprechende Key im messages.properties-File umbenannt. So kleine Dinge sind es nämlich, welche einem das Arbeiten mit Eclipse so angenehm machen.</p>
<p><img src="http://blog.misto.ch/wp-content/rename_field_messages.png"  /></p>
<h3>New Quick Assist: MessageFormat</h3>
<p>Mit + zusammengesetzte Strings sind zum einen häufig nicht sehr leserlich und zum anderen nur sehr mühsam zu internationalisieren. Abhilfe schafft ein neuer Quick-Fix:</p>
<p><img src="http://blog.misto.ch/wp-content/message_format_quickfix.png" /></p>
<h3>Read and Write Occurrences</h3>
<p>Mark Occurences ist schon mindestens seit der vorlezten Version dabei, aber natürlich kann man auch dieses Feature noch verbessern, und zwar durch eine farbliche Unterscheidung von Lese- und Schreibzugriffen (das doofe Beispiel sei mir vergeben).</p>
<p><img src="http://blog.misto.ch/wp-content/mark_occurences.png" /></p>
<h3>JUnit View Shows Execution Time</h3>
<p>Hm ja, der Titel sagts wohl schon:</p>
<p><img src="http://blog.misto.ch/wp-content/junit_timings.png" /></p>
<h3>Plug-in Spy</h3>
<p>Endlich! Der Plug-in Spy ist Teil des PDE. Der Plug-in Spy ist sehr nützlich, wenn man sich beispielsweise fragt, welche Klasse die aktuelle View implementiert oder auch, wie der Identifier für die View lautet. Das hätte mir zu Beginn meiner Plug-in Entwickler-Karriere einiges an Zeit gespart.</p>
<p><img src="http://blog.misto.ch/wp-content/plugin_spy.png" /></p>
<p>Das waren wohl die für mich wichtigsten Neuerungen. Ich bin mir sicher, dass ich im Lauf des Jahres noch einige andere coole Dinge entdecken werde.</p>
<p><a href="http://www.eclipse.org/ganymede/"><img style="display: block; margin-left: auto; margin-right: auto" src="http://www.eclipse.org/ganymede/images/ganymedeFriend.jpg" border=0 alt="Ganymede is coming!" title="Ganymede is coming!" ></a></p>
<p>Viel Spass! Und wer immer noch nicht genug hat, findet in den <a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.4M7-200805020100/eclipse-news-M7.html">New and Noteworthy Seiten</a> noch ganz vieles mehr.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.misto.ch/archives/588/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Was ist eigentlich OSGi?</title>
		<link>http://blog.misto.ch/archives/587</link>
		<comments>http://blog.misto.ch/archives/587#comments</comments>
		<pubDate>Sat, 07 Jun 2008 08:39:32 +0000</pubDate>
		<dc:creator>misto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.misto.ch/?p=587</guid>
		<description><![CDATA[Alle die schon mal mit Eclipse gearbeitet haben sind schon in den Kontakt mit OSGi gekommen, vielleicht ohne das zu Wissen. Auch alle, die Eclipse Plug-ins schreiben haben definitiv auch mit OSGi gearbeitet. Was OSGi genau ist erklärt Neil Bartlett in seinem Blog sehr schön:
In a nutshell, OSGi is a module system for Java, but [...]]]></description>
			<content:encoded><![CDATA[<p>Alle die schon mal mit Eclipse gearbeitet haben sind schon in den Kontakt mit OSGi gekommen, vielleicht ohne das zu Wissen. Auch alle, die Eclipse Plug-ins schreiben haben definitiv auch mit OSGi gearbeitet. Was OSGi genau ist erklärt Neil Bartlett in seinem Blog sehr schön:</p>
<blockquote><p>In a nutshell, OSGi is a module system for Java, but what does that<br />
really mean?</p></blockquote>
<p>Etwas mehr und ausführlicher in <a href="http://neilbartlett.name/blog/2008/06/06/what-is-osgi-for/">Neil&#8217;s Blog</a>.</p>
<p>Und wer dann immer noch nicht genug hat, sollte sich das <a href="http://www.se-radio.net/podcast/2007-12/episode-80-osgi-peter-kriens-and-bj-hargrave">SE-Radio Interview mit Peter Kriens and BJ Hargrave</a> zum Thema OSGi anhören.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.misto.ch/archives/587/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CDT C++ Refactorings in Ganymede!</title>
		<link>http://blog.misto.ch/archives/578</link>
		<comments>http://blog.misto.ch/archives/578#comments</comments>
		<pubDate>Fri, 16 May 2008 13:44:12 +0000</pubDate>
		<dc:creator>misto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://blog.misto.ch/?p=578</guid>
		<description><![CDATA[Jawohl, es ist soweit, heute wurde unser letzter grosser Patch angenommen. Folgendes Menu wird also jedermann Ende Juni im neusten CDT-Release vorfinden:

Zudem haben die Committer-Abstimmungen für Emanuel Graf heute begonnen, 5 Stimmen hat er schon &#8212; ich denke man darf bereits gratulieren  
So, und wer jetzt glaubt reklamieren zu müssen, ja, Implement Method und [...]]]></description>
			<content:encoded><![CDATA[<p>Jawohl, es ist soweit, heute wurde unser letzter grosser Patch angenommen. Folgendes Menu wird also jedermann Ende Juni im neusten CDT-Release vorfinden:</p>
<p><img src="http://blog.misto.ch/wp-content/refactoring_menu.png" /></p>
<p>Zudem haben die Committer-Abstimmungen für Emanuel Graf heute begonnen, 5 Stimmen hat er schon &#8212; ich denke man darf bereits gratulieren <img src='http://blog.misto.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>So, und wer jetzt glaubt reklamieren zu müssen, ja, <em>Implement Method</em> und <em>Generate Getters and Setters</em> sind keine Refactorings, aber es lohnt sich (noch) nicht, für zwei Einträge ein Top-Level Source-Menu einzuführen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.misto.ch/archives/578/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>CDT C++ Refactoring Plug-In in Ganymede?</title>
		<link>http://blog.misto.ch/archives/540</link>
		<comments>http://blog.misto.ch/archives/540#comments</comments>
		<pubDate>Sun, 02 Mar 2008 02:12:56 +0000</pubDate>
		<dc:creator>misto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://blog.misto.ch/archives/540</guid>
		<description><![CDATA[Am letzten Mittwoch haben wir einen grossen Schritt getan und die notwendigen Patches für den C++ Refactoring-Support für CDT fertiggestellt.
Der Gesamtumfang der Patches beträgt knapp 24000 Zeilen, wobei schlussendlich nur ein einziges Refactoring (Extract Constant) inbegriffen ist, der Rest dient als Basis für weitere Refactorings, welche in nächster Zeit folgen werden, und umfasst Dinge wie [...]]]></description>
			<content:encoded><![CDATA[<p>Am letzten Mittwoch haben <a href="http://ifs.hsr.ch">wir</a> einen grossen Schritt getan und die notwendigen Patches für den C++ Refactoring-Support für CDT fertiggestellt.</p>
<p>Der Gesamtumfang der Patches beträgt knapp 24000 Zeilen, wobei schlussendlich nur ein einziges Refactoring (Extract Constant) inbegriffen ist, der Rest dient als Basis für weitere Refactorings, welche in nächster Zeit folgen werden, und umfasst Dinge wie <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=214334">Source-Transformationen</a>, Code re-writing, Kommentarbehandlung, und natürlich ganz viele Tests. Wir hoffen, damit (endlich) den Sprung zu schaffen und ein offizieller Teil des CDT zu werden. Langfristiges Ziel ist natürlich, selbst Committer zu werden, allerdings ist das nicht so einfach wie man meinen könnte (in dieser Hinsicht unterscheidet sich Eclipse von den meisten anderen Open-Source Projekten die ich kenne). Jetzt können wir nur noch hoffen, dass wir möglichst rasch durch das <a href="http://www.eclipse.org/projects/dev_process/ip-process-in-cartoons.php">IP-Review</a> kommen und unser Code schnell im CVS landet (das Arbeiten mit gepatchten Quellen auf die man nicht committen kann ist nicht besonders spassig :/ ).</p>
<p>Wer das ganze genauer mitverfolgen will, sollte sich bei <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=181493">den</a> <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=214605">beiden</a> relevanten Bug-Reports anhängen, oder gleich <a href="http://r2.ifs.hsr.ch/cdtrefactoring">bei unserem Trac</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.misto.ch/archives/540/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Verwirrung um StringBuilder und StringBuffer bei Eclipse</title>
		<link>http://blog.misto.ch/archives/491</link>
		<comments>http://blog.misto.ch/archives/491#comments</comments>
		<pubDate>Tue, 18 Dec 2007 10:00:43 +0000</pubDate>
		<dc:creator>misto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.misto.ch/archives/491</guid>
		<description><![CDATA[Im News and Noteworthy des Eclipse 3.4M4 habe ich heute morgen etwas ziemlich komisches gesehen, und zwar gibts es einen neuen Quickfix:

Was durch folgenden Code ersetzt wird:

Ok, was fällt auf? StringBuffer! Dabei sollte man grundsätzlich immer StringBuilder verwenden, welcher im Gegensatz zum StringBuffer nicht synchronisiert ist. Um Thomas, unseren Parall- und Netzwerkprogrammierexperten, zu zitieren, ist [...]]]></description>
			<content:encoded><![CDATA[<p>Im <a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.4M4-200712131700/eclipse-news-M4.html">News and Noteworthy des Eclipse 3.4M4</a> habe ich heute morgen etwas ziemlich komisches gesehen, und zwar gibts es einen neuen Quickfix:</p>
<p><img src='http://blog.misto.ch/wp-content/convert-to-sb.png' alt='convert-to-sb.png' /></p>
<p>Was durch folgenden Code ersetzt wird:</p>
<p><img src='http://blog.misto.ch/wp-content/convert-to-sb2.png' alt='convert-to-sb2.png' /></p>
<p>Ok, was fällt auf? String<strong>Buffer</strong>! Dabei sollte man grundsätzlich <strong>immer</strong> StringBuilder verwenden, welcher im Gegensatz zum StringBuffer nicht synchronisiert ist. Um Thomas, unseren Parall- und Netzwerkprogrammierexperten, zu zitieren, ist der StringBuffer &#8220;unglaublich schweinisch sauteuer&#8221;.</p>
<p>Nehmen wir an, es würde anstelle des Buffers ein Builder verwendet, dann wäre der QuickFix trotzdem ziemlich unsinnig, denn der Compiler (zumindest Sun&#8217;s) ersetzt manuelle String-Konkatenationen sowieso durch StringBuilder-Aufrufe. Aus:<br />
<code>int offset = 3, line = 5;<br />
String s = "Offset " + offset + " is at line " + line;</code>entsteht also folgender ByteCode:</p>
<pre><code>0  iconst_3
1  istore_1 [offset]
2  iconst_5
3  istore_2 [line]
4  new java.lang.StringBuilder [16]
7  dup
8  ldc <String "Offset "> [18]
10  invokespecial java.lang.StringBuilder(java.lang.String) [20]
13  iload_1 [offset]
14  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [23]
17  ldc <String " is at line "> [27]
19  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [29]
22  iload_2 [line]
23  invokevirtual java.lang.StringBuilder.append(int) : java.lang.StringBuilder [23]
26  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [32]
29  astore_3 [s]
30  return</code></pre>
<p>Interessanterweise wurde der QuickFix auch schon an <a href="http://www.lunar-ocean.com/blog/nls-and-stringbuffer/">anderer Stelle</a> kritisiert, allerdings nicht das Kernproblem:</p>
<blockquote><p>I know using StringBuffers is better for performance.</p></blockquote>
<p>Tsts&#8230;</p>
<p>Ich überlege mir, einen Patch einzureichen, der den QuickFix wieder löscht <img src='http://blog.misto.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.misto.ch/archives/491/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>IDE-Verbot für Anfänger?</title>
		<link>http://blog.misto.ch/archives/487</link>
		<comments>http://blog.misto.ch/archives/487#comments</comments>
		<pubDate>Thu, 13 Dec 2007 23:42:53 +0000</pubDate>
		<dc:creator>misto</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[HSR]]></category>
		<category><![CDATA[programmieren]]></category>

		<guid isPermaLink="false">http://blog.misto.ch/archives/487</guid>
		<description><![CDATA[Ich überlege mir gerade ernsthaft, ob es nicht sinnvoll wäre, den Erstsemestrigen, also den Programmieren 1 Besuchern, den Einsatz einer IDE zu verbieten. &#8220;Du Unmensch&#8221;, höre ich euch schon rufen, &#8220;es ist doch Java!&#8221;. Ich weiss, aber was soll ich sagen, wenn Studenten (so wie ich das heute in der Pause mitanhören musste) keine Ahnung [...]]]></description>
			<content:encoded><![CDATA[<p>Ich überlege mir gerade ernsthaft, ob es nicht sinnvoll wäre, den Erstsemestrigen, also den Programmieren 1 Besuchern, den Einsatz einer IDE zu verbieten. &#8220;Du Unmensch&#8221;, höre ich euch schon rufen, &#8220;es ist doch Java!&#8221;. Ich weiss, aber was soll ich sagen, wenn Studenten (so wie ich das heute in der Pause mitanhören musste) keine Ahnung von Packages haben, aber sich darauf verlassen, dass Eclipse ein rotes Kreuzchen macht, das man nur anklicken muss und alles korrigiert wird. Ähnliche Probleme gibt es beim Unterschied zwischen Instanz- und Klassenmethoden, sowie deren Sichtbarkeit.</p>
<p>Die Gefahr ist halt gross, dass man einfach mal etwas &#8220;drauf los programmiert&#8221; und danach das Gehirn einschaltet und die rot unterkringelten Statements noch mal genauer anschaut. Das ist vielleicht auch ein Grund dafür, dass, um den neumodischen Begriff zu verwenden, &#8220;dynamische Programmiersprachen&#8221; von vielen verschmäht werden, da man nicht die (trügerische) &#8220;Sicherheit&#8221; einer IDE hat.</p>
<p>Um wieder zurück zur Schule zu kommen: Sich auf die IDE zu verlassen ist auch in Hinsicht auf die bevorstehenden Prüfungen vielleicht nicht die beste Idee.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.misto.ch/archives/487/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
