Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
long fibonacci(int n) {
if (n < 2)
return 1;
else
{
return fibonacci(n-2) + fibonacci(n-1);
}
}
int main() {
fibonacci(40);
}
<?php
$i = 0;
function fibonacci($n) {
global $i;
if ($n < 2)
return 1;
else { $i += 2;
return fibonacci($n-2) + fibonacci($n-1);
}
}
echo fibonacci(40);
echo $i;
?>
Время ответа — 5 секунд.
Тед посчитал время запуска программы curl, её работы и завершения. Типичная ошибка разных тестировщиков скорости.
Node.js — это опухоль на программистском сообществе
Возможно, худшее, что можно сделать с серверным фреймворком, — написать его на JavaScript.
Node.js — неприятное ПО
Между «меньше-чем-эксперты» и «серьезные деньги» — пропасть.
Не говоря уже о том, что благодаря EC2 и Azure можно начинать экспериментировать с масштабируемостью и без особых денег и/или знаний.
Step( function readSelf() { fs.readFile(__filename, this); }, function capitalize(err, text) { if (err) throw err; return text.toUpperCase(); }, function showIt(err, newText) { if (err) throw err; console.log(newText); } );
{ok, Data} = file:read_file(Filename), Text = string:to_upper(binary_to_list(Data)), error_logger:info_msg("~s", [Text]).
Другое дело, что Node не предназначен для писания CMS, а менее-чем-эксперты, которых своею политикой притянул Райан, пытаются совать его куда ни попадя, не задумываясь, ведь им же сказали, что это идеальное решение.
На сайтe Node.js сказано:
В Node практически нет функций, напрямую выполняющих операции ввода-вывода, так что процесс никогда не блокируется. Из-за того, что ничего не блокируется, менее-чем-эксперты могут разрабатывать быстрые системы.
<code>function fib_loop(n) { fib = [ 1, 1 ]; for( i = 2; i <= n; i++ ) fib[i] = fib[i-1] + fib[i-2]; return fib[n]; }</code>
process.on('uncaughtException', function (e) {
try {
sys.puts('Caught exception: ' + e + ' ' + (typeof(e) === 'object' ? e.stack : ''));
} catch(e0) {}
});
var app = require('express').createServer();
var fibonacci = function(n, callback) {
var inner = function(n1, n2, i) {
if (i > n) {
callback(null, n2);
return;
}
var func = (i % 100) ? inner : inner_tick;
func(n2, n1 + n2, i + 1);
}
var inner_tick = function(n1, n2, i) {
process.nextTick(function() { inner(n1, n2, i); });
}
if (n == 1 || n == 2) {
callback(null, 1);
} else {
inner(1, 1, 3);
}
}
app.get('/:n', function(req, res) {
fibonacci(req.params.n, function(err, number) {
res.send(''+number);
});
});
app.listen(3000);
// SYNC
function read() {
var f = fs.readFileSync('/tmp/bigfile.txt');
return f;
}
// ASYNC
function read(done){
var f = fs.readFile('/tmp/bigfile.txt')
.then((result) => {done(result)});
} // я знаю, что с ошибками написал, неважно
Забавно читать это из 2021-го :)
Node.js — раковая опухоль