<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# sample_3col.php
	#
	# Author: 		Denis Roy
	# Date:			2005-11-07
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Awards and opinions";
	$pageKeywords	= "awards, opinions";
	$pageAuthor		= "Denis Roy";
	
	# End: page-specific settings
	#
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">
		<h1>$pageTitle</h1>

		<p>Eclipse has been honoured several times and we're proud to 
      present some of our awards here. We've also included various sites where 
      the community is voting, rating or otherwise expressing an opinion about 
      eclipse.</p>
      <p>We've also started a collection of kudos from the community on The Eclipse Project Wiki
		<a href="http://wiki.eclipse.org/index.php/Kudos" target="_blank">kudos page</a>.  </p>
      
		<p>Vote for, or rate Eclipse on these sites:</p> 
      <ul class="midlist">
        <li> 
          <a href="../org/foundation/eclipseawards/" target="_blank">Eclipse Community
			Awards</a> <br />Our own Eclipse Community Awards are one of the ways to recognize and thank 
			the individuals and technologies that make up the Eclipse community.
        </li>
        <li> 
          <a href="http://www.versiontracker.com/dyn/moreinfo/macosx/19084" target="_blank">Version 
            Tracker</a>
        </li>

        <li><a href="http://osdir.com/Downloads-req-viewdownloaddetails-lid-375-ttitle-Eclipse.html" target="_blank">O'Reilly 
          Open Source Directory</a></b> Here is the <a href="http://osdir.com/Downloads%2Bindex-req-viewdownloaddetails-lid-375-ttitle-Eclipse.phtml" target="_blank">
          link for rating eclipse</a>. 
          </li>
      </ul>
      
      <h2>Eclipse awards and honorable mentions</h2>
<table>
  <tr> 
    <td width="97%"> 
      <p><b>2005 LinuxQuestions.org Members Choice Awards</b><br>
      	IDE of the Year<br>
      	<a href="http://www.linuxquestions.org/questions/showthread.php?t=409026">http://www.linuxquestions.org/questions/showthread.php?t=409026</a></p>
      <p><b>2005 Java Developer&#146;s Journal Readers&#146; Choice Awards</b><br>
        Eclipse awarded <i>Best Java Application</i><br>
		Eclipse Rich Client Platform awarded <i>Best Rich Client Platform</i><br> 
		Eclipse IDE awarded <i>Best Team Development Tool</i><br>
		Eclipse IDE awarded <i>Most Innovative Java Product</i><br> 
		SWT awarded <i>Best Java Class Library</i><br> 
		Eclipse awarded <i>Best Java Debugging Tool</i><br> 
        <a href="http://jdj.sys-con.com/read/171303.htm" target="_blank">http://jdj.sys-con.com/read/171303.htm</a><br>
      </p> 
      <p><b>2005 SOA Web Services Journal Readers&#146; Choice Awards</b><br>
        Eclipse Awarded <i>Best GUI for SOA </i><br>
        <a href="http://jdj.sys-con.com/read/171303.htm" target="_blank">http://jdj.sys-con.com/read/171303.htm</a><br>
      </p>    
      <p><b>Software Development Magazine 2005 Readers&#146; Choice Awards</b><br>
        Eclipse Awarded <i>Best Open Source Tool </i><br>
        <a href="http://www.sdmagazine.com/pressroom/rc2005_winners.html" target="_blank">http://www.sdmagazine.com/pressroom/rc2005_winners.html</a><br>
      </p>

      <p><b>SD Times Top 100</b><br>
        Eclipse awarded best for <i>Tools and Environments</i> in SD Times Top 
        100<br>
        <a href="http://68.236.189.240/article/story-20050515-17.html" target="_blank">http://68.236.189.240/article/story-20050515-17.html</a> 
      </p>
      <p><b>2005 Jolt Awards</b><br>
        Eclipse awarded Jolt Product Excellence Award for <i>Languages and Development 
        Environments! </i> The Java Developer's Guide to Eclipse by D'Anjou et 
        al wins Productivity Award for <i>Technical Books!</i><br>

        <a href="http://www.sdmagazine.com/pressroom/jolt_winners_2005.pdf" target="_blank">http://www.sdmagazine.com/pressroom/jolt_winners_2005.pdf</a></p>
      <p><b>Developer.com Product of the Year 2005 Contest</b><br>
        Eclipse awarded <i>Development Tool of the Year</i><br>
        <a href="http://www.developer.com/net/article.php/3483116" target="_blank">http://www.developer.com/net/article.php/3483116</a> 
        <br>
        <a href="http://www.developer.com/java/other/article.php/3483706" target="_blank">Eclipse 
        Overshadows Other Development Tools</a> By Paul Kimmel </p>

      <p><b>JavaPro Readers' Choice Awards 2004</b> <br>
        Eclipse awarded <i>Best IDE</i> and <i>Best Java Development Suite</i> 
        in the 2004 JavaPro Readers' Choice Awards<br>
        <a href="http://www.fawcette.com/javapro/2004_11/magazine/features/readerschoice/default.aspx" target="_blank">http://www.fawcette.com/javapro/2004_11/magazine/features/readerschoice/default.aspx</a> 
      </p>

      <p><b>SD Readers' Choice Awards 2004</b><br>
        Eclipse awarded Best Value, Best Open Source Tool and Most Improved Tool 
        in the SD Readers' Choice Awards.<br>
        <a href="http://www.sdmagazine.com/documents/s=9352/sdmsde04e/sdmsde04e.htm?temp=OeLK%20" target="_blank">http://www.sdmagazine.com/documents/s=9352/sdmsde04e/sdmsde04e.htm?temp=OeLK 
        FL74Os</a> (registration required)</p>
      <p> <b>JDJ Editors' Choice Awards 2004</b><br>
        Eclipse and members of the Eclipse community receive honors in <i>JDJ 
        Editors' Choice Awards</i> for 2004! <br>

        <a href="http://www.sys-con.com/story/?storyid=45506&amp;de=1" target="_blank">http://www.sys-con.com/story/?storyid=45506&amp;de=1</a></p>
      <p> <b>SD Times 2004 Top 100</b><br>
        Eclipse receives honors in Tools and Environments and Influencers categories 
        in <i>The SD Times 2004 Top 100</i>! <br>
        <a href="http://www.sdtimes.com/news/102/special1.htm" target="_blank">http://www.sdtimes.com/news/102/special1.htm</a> 
      </p>

      <b>2004 Jolt Awards</b><br>
      Eclipse and Aspectj win Software Development 2004 <i>Jolt Product Excellence</i> 
      and <i>Productivity Awards for Languages and Development Environments</i>! 
      Check out the announcement for more winners from the eclipse community!<br>
      <a href="http://www.sdmagazine.com/pressroom/031804_jolt_winners.pdf" target="_blank">http://www.sdmagazine.com/pressroom/031804_jolt_winners.pdf</a><br>
      <br>
      <b>JDJ Readers' Choice 2003</b><br>

      Eclipse awarded <i>Best Java Component</i> for SWT by Java Developer's Journal 
      Readers' Choice Awards 2003 ! <br>
      <p><b>InfoWorld 2003 Technology of the Year</b><br>
        Eclipse awarded InfoWorld 2003 Technology of the Year for Best Application 
        Development Tool <a href="http://www.infoworld.com/article/03/12/31/01FEtoyawards_1.html?s=feature" target="_blank">http://www.infoworld.com/article/03/12/31/01FEtoyawards_1.html?s=feature</a></p>
      <p><b>O'Reilly OS Dir 2003 </b><br>
        Eclipse awarded O'Reilly OSDir 2003 Editor's Choice Award for Best Developement 
        Tool and Best Java application <a href="http://osdir.com/Article198.phtml" target="_blank">http://osdir.com/Article198.phtml</a></p>

      <p><b>JDJ 2003 Editors' Choice</b><br>
        Eclipse awarded <i>JDJ 2003 Editors' Choice Awards</i> by Jason Bell, 
        J2SE Editor and Glen Cordrey, J2ME Editor <br>
        Subscription link: <a href="http://www.sys-con.com/java/articleprint.cfm?id=2059" target="_blank">http://www.sys-con.com/java/articleprint.cfm?id=2059 
        </a> or read the <a href="../org/press-release/jun92003jdjadv.html">News 
        Advisory</a><br>
        <br>

        <b>JavaPro 2003 Readers' Choice</b><br>
        Eclipse places first in <i>Best Java Development Suite</i> and <i>Most 
        Valuable Java Development Product</i> in the Java Pro 2003 Readers' Choice 
        Awards <a href="http://www.fawcette.com/reports/javaone/2003/awards/" target="_blank"><br>
        http://www.fawcette.com/reports/javaone/2003/awards/</a> <br>
        <br>

        <b>JavaWorld 2002 Editors' Choice</b><br>
        AspectJ Project awarded <i>Most Innovative Java Product or Technology</i> 
        in the JavaWorld 2002 Editors' Choice Awards. <a href="http://www.javaworld.com/javaworld/jw-06-2003/jw-0609-eca_p.html" target="_blank">http://www.javaworld.com/javaworld/jw-06-2003/jw-0609-eca_p.html 
        </a><br>
        <b><br>
        SD Times 100 Innovators and Leaders 2003</b><br>
        First place in the 2003 <i>Standards Bodies and Consortia</i> category, 
        SD Times 100 Innovators And Leaders<br>

        <a href="http://www.sdtimes.com/news/079/special1.htm" target="_blank">http://www.sdtimes.com/news/079/special1.htm</a><br>
        <br>
        <b>JavaSpektrum and ObjektSpektrum Readers 2003</b><br>
        Best Java Product Award 2003 by the readers of JavaSpektrum and ObjektSpektrum 
        magazines<br>
        announced at OOP 2003, Munich, Germany, January 2003 <br>
        <br><br><br><br></p>
    </td>
  </tr>
  <tr> 
    <td>
If you have comments or suggestions for this page, email the <a href="mailto:news@eclipse.org">news 
editor. </a>
    </td>
  </tr>
</table>
</div>

EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
