Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Олдскульные программисты, к коим я отношу себя, не ленятся описать чуть побольше «на входе», чтобы получить «на выходе» значительно большую производительность.Вам важна скорость работы, другим — скорость разработки. В вебе часто важнее последнее. Зарплата программиста выше стоимости сервера, так что проще купить железку, чем нанять программиста.
BTW, у меня не поворачивается язык назвать экспериментом проект, под который уже выпущен GCC-компилятор :) GCCGO вполне можно использовать именно как стабильную ветвь, тем более, что GCC компилирует значительно эффективнее.А у меня не повернётся язык назвать «Гоу» стабильным.
Зарплата программиста выше стоимости сервера, так что проще купить железку, чем нанять программиста.
Вам важна скорость работы, другим — скорость разработки. В вебе часто важнее последнее.
Во-первых, с выходом новой версии частенько приходится что-то менять.
А у меня не повернётся язык назвать «Гоу» стабильным.
99% задач веб-программирования уже давно имеют готовые решения. Я проверял — скорость копипаста одинакова для Python и Go :)Мой опыт не столь однозначен, правда я использовал другие пары — Гоу и ПХП, в основном.
Давайте говорить откровенно — почти все задачи веб-программирования сводятся к примитивным CRUD-операциям и работе с темплетами.Вы как-то сильно всё упрощаете. Вы ещё скажите, что всё равно везде используется два числа — ноль и единица, посмотрите как всё просто.
А что заставляет вас постоянно обновлять версию?Постоянно ничего не заставляет, я три версии пропустил. Обновляться же иногда требуется. В языке появляются новые модули, в старых — новые возможности, сторонние модули так же обновляются. Не обновляться нельзя — исправляются баги, упрощаются некоторые вещи.
Значит в Google работают инженеры и программисты менее квалифицированные, чем вы :) У них язык поворачивается.Есть такая поговорка «всяк кулик своё болото хвалит».
Вы как-то сильно всё упрощаете. Вы ещё скажите, что всё равно везде используется два числа — ноль и единица, посмотрите как всё просто.
Он очень производительный, правда, но статический, уровень абстракции, следовательно, ниже.
Это, мягко говоря, спорное замечание. Я лично очень слабо себе представляю, как динамическая типизация может существенно уменьшить скорость разработки.
LLVM позволяет компилировать программы написанные на языках Си, C++, Objective-C, Fortran, Ada, Haskell, Java, Python, Ruby, JavaScript, GLSL или любом другом, для которого реализован front-end
Никакой проблемы с RTTI прототипов нет.
Насчет типизирования — мышки кололись, но продолжали писать JsDoc
Что за наглая неправда. Расскажите мне, какой процессор умеет выполнять байт-код явы? Никакой. Потому в реальности перед вызовом самого метода тратится куча инструкций на чтение и разбор байткода, проверку типа объекта, поиск адреса метода.
Более того, если мне не изменяет память, кривокодеры из сан в модуле хранят названия методов и классов из других модулей *текстом* а не каким-то идентификатором, так что там еще дополнительные расходы идут на их преобразование в id метода.
Например, в Яве крайне неэффективный метод загрузки классов — они загружаются по одному (вдумайтесь!) по мере использования, причем из zip-архивов. Причем для работы даже простой программы нужна куча клакссов из rt.jar. На практике это означает огромное число random access обращений к диску.
Remember that node.js served us well for the past 8 months serving millions of comet notifications each day.
function(res){
res.setEncoding('utf-8');
var data = '';
res.on('data', function (chunk) {
data += chunk;
});
res.on('end', function() { /* Обработка ответа /* }
}(defun sum (n f) (loop for i below n summing (* i f)))function sum(n, f) { var s = 0; for (var i = 0; i < n; i++) s += i * f; return s; }sum посмотреть, то там оказывается все четко: 310 3bc2 cmp eax,edx 312 0f8d1d000000 jnl 347 318 3b2538b8c008 cmp esp,[0x8c0b838] ;; stack check 324 0f82fe000000 jc 584 ;; 330 f20f2ad8 cvtsi2sd xmm3,eax 334 f20f59d9 mulsd xmm3,xmm1 338 f20f58d3 addsd xmm2,xmm3 342 83c001 add eax,0x1 345 ebdb jmp 310 (0x25124036)
for( var name in object )
if( object.hasOwnProperty( name ) )
{
var current = object[ name ];
...
}
}foreach( $object as $name => &$current ) { ... }",,," == Array((null,'cool',false,NaN,4));Обоснование просто — шанс положить в базу что-то кривое в результате ошибки никак не больше шанса положить это самое кривое из одной перееменной в другую — без всякой базы.
undefined = 'My cool value';#define TRUE FALSE //счастливой отладки, суки...bolk@dhcp-174 ~ $ python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> True,False=False,True
>>> True
False
с костылями в виде prototype
Почему я не верю в Dart