Тук http://shootout.alioth.debian.org/ има интересни сравнения на това как се държат различните програмни езици, кои е по-бърз и кои използва по-малко памет и други такива.
4 поста в категория Python
Днес чистейки старите си bookmark-oве, попаднах на тази интересна статия от 09 Май 2008 (малко старичка):
http://www.infoq.com/news/2008/05/should-you-learn-languages
В нея се задава въпросът дали има смисъл и дали е добре да владеем повече програмни езици. Там попадам на следния цитат (няма да го превеждам, че да не се загуби смисъла):
The programming languages, or rather language types, you understand (not necessary is most fluent in), tends to steer your thinking. According to natural language researchers, if there is a word missing (or a category of words) from a language, people have a hard time thinking about the concepts that the missing words represents. Paul Graham states approximately the same thing about programming languages.
Това ми напомня че преди години ми разказваха една книга (която така и не можах да прочета
). В нея се разправяло за държава (или остров беше май), където хората, които го управлявали контролирали населението като махали думи от речниците. Основната идея е че като не знаеш нещо или по точно като не знаеш как се казва е много трудно (а за доста хора и невъзможно) да си помислиш за него. Като например ако не знам, че има дума за “сладолед”, как мога въобще да си помисля, че искам сладолед. Или във контекста на книгата, като не знаят какво е бунт и свобода как могат хората да си помислят за тях.
Ако се върнем в IT света. Знанията който придобих при работата с JavaScript или Ruby ми помогнаха страшно много с PHP, като прилагам (до колкото е възможно) част от семантиката в тези езици. Напоследък като се заглеждам по Python, гледам по малко по-различен начин на организацията на кода и други такива. А знанията от предишни езици страшно много ми помогнаха да оценя някои добри неща (да, даже и такива неща има) в Java. А и все пак всеки средно статистически developer му се налага да работи поне с 2-3 езика на куп (PHP/ASP.NET/JAVA/Ruby/Python , JavaScript, ActionScript 2/3, …).
И както чух от една лекция на Светлин Наков:
След 7-8 мия програмен език, останалите се учат за 1-2 дена
.
Днес случайно попаднах на това видео Web Software – A look at security vulnerabilities in web software, малко старичко от 13 април 2006(точно 2 години
), но пак e повече от актуално.
Не е лошо и това да се прегледа и Code University (AJAX, Python, C++, Java и други)
Наскоро почнах пак да разцъквам python. Доста интересен и чист език.
Та за играчка реших да напиша малка quicksort функция за сортиране на месив. Знам, че има вградено сортиране и че ще е с пъти по-бързо но…
Това можах да се сетя(сигурен съм че някой с повече опит ще го напише с доста по-добре).
def quicksort(inlist): less, equal, greater = [],[],[] if len(inlist) <= 1: return inlist pivot = inlist[-1] for i in inlist: if i < pivot: less.append(i) elif i > pivot: greater.append(i) elif i == pivot: equal.append(i) ret = quicksort(less) ret.extend(equal) ret.extend(quicksort(greater)) return ret
После реших да видя как ще изглежда това написано на php:
function qsort($array){
$less = $equal = $greater = array();
if (count($array) <= 1)
return $array;
$pivot = current($array);
foreach($array as $element)
if ($element < $pivot)
$less[] = $element;
else if ($elemnt > $pivot)
$greater[] = $element;
else if ($element == $pivot)
$equal[] = $element;
return array_merge(qsort($less), $equal, qsort($greater));
}
Както се вижда няма голяма разлика между двете функции.
