Wiele osób próbuje mnie przekonać, że programowanie w Javie jest lepsze i łatwiejsze. Tak mnie naszło napisać przykadowe funkcje w obu tych językach. Obie sprawdzają czy podany wyraz jest palindromem. Oto kod w C++:
bool isPalindrome( string text )
{
string rev;
string::reverse_iterator strIter;
for ( strIter = text.rbegin(); strIter != text.rend(); strIter++ )
rev.push_back( *strIter );
return rev == text;
}
oraz kod w Javie:
public boolean isPalindrom( String text ){
StringBuilder str = new StringBuilder( text );
StringBuilder rev = new StringBuilder( text );
rev.reverse();
// cast StringBuilder objects to String and then compare
if ( (str.toString()).equals( rev.toString() ) ) return true;
return false;
}
Jakoś dla mnie kod w C++ jest dużo przyjemniejszy do czytania i do pisania ( przynajmniej w tym wypadku ). W Javie musiałem jakieś rzutowania wykonywać z typu StringBuilder na String. Nieco niezrozumiałe dla mnie. Wogóle nie rozumiem dlaczego klasa String jest w Javie stała.
Co do szybkości to testów nie robiłem ( i nie mam zamiaru ). Ciągle się słyszy, że Java jest wolna, chociaż z tego co wiem to nie jest już aż tak wolna jak wszyscy pieją. Przy tak małym programiku jest to zdecydowanie do pominięcia. Chciałem porownać tylko wygodę pisania :)
Pewnie by mi ktoś zarzucił, że jeden język jest lepszy do pewnych rzeczy, drugi do innych. Ale póki co wolę jednak C++ :)