The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз серверной JavaScript-платформы Node.js 0.8

26.06.2012 18:18

Увидел свет стабильный релиз платформы node.js 0.8, предназначенной для обеспечения выполнения высокопроизводительных сетевых приложений на языке JavaScript. Платформа может быть использована как для серверного сопровождения работы Web-приложений, так и для создания обычных клиентских и серверных сетевых программ. Для расширения функциональности приложений для Node.js подготовлена большая коллекция модулей, в которой можно найти модули с реализацией серверов и клиентов HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модули для интеграции с различными web-фреймворками, обработчики WebSocket и Ajax, коннекторы к СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонизаторы, CSS-движки, реализации криптоалгоритмов и систем авторизации (OAuth), XML-парсеры.

Для обеспечения обработки большого числа параллельных запросов node.js задействует асинхронную модель запуска кода, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. В качестве способов мультиплексирования соединений поддерживаются такие методы, как epoll, kqueue, /dev/poll и select. Для мультиплексирования соединений используется библиотека libuv, которая является надстройкой над libev в системах Unix и над IOCP в Windows. Для создания пула потоков (thread pool) задействована библиотека libeio, для выполнения DNS-запросов в неблокирующем режиме интегрирован c-ares. Все системные вызовы, вызывающие блокирование, выполняются внутри пула потоков и затем, как и обработчики сигналов, передают результат своей работы обратно через неименованный канал (pipe). Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8.

По своей сути node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine и Python Twisted, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере. При написании приложений для node.js необходимо учитывать специфику событийно-ориентированного программирования, например, вместо выполнения "var result = db.query("select..");" с ожиданием завершения работы и последующей обработкой результатов, в Node.js использует принцип асинхронного выполнения, т.е. код трансформируется в "db.query("select..", function (result) {обработка результата});", при котором управление мгновенно перейдёт к дальнейшему коду, а результат запроса будет обработан по мере поступления данных. Ни одна функция в Node.js не должна напрямую выполнять операции ввода/вывода - для получения данных с диска, от другого процесса или из сети требуется установка callback-обработчика.

Ключевые новшества Node.js 0.8:

  • Внесение нескольких ключевых улучшений в новые версии V8 и libuv привело к существенному увеличению пропускной способности при выполнении операций записи и чтения данных. Если сравнивать с версией 0.6.19, то для буфера 1024 скорость записи потока через io.js увеличилась с 19 до 61 Мб/сек, 4096 - c 59 до 109 Мб/сек, 16384 - c 83 до 182 Мб/сек, 65536 - c 97 до 181 Мб/сек. Скорость чтения при этом возросла в полтора - два раза. При тестировании производительности скорости обработки запросов производительность простейшего сетевого приложения увеличилась с 3317 до 3795 запросов в секунду при размере сообщения 123 байт и с 218 до 749 для больших сообщений, размером 123456 байт. Большое увеличение производительности также наблюдается при выполнении JavaScript кода новой версией движка V8 (3.11.10.10);
  • Осуществлён переход на новую систему сборки. Вместо написанной на языке Python системы сборки WAF теперь используется GYP, применяемый для сборки проекта Chrome/Chromium. Отличительной чертой GYP является генерация родных для каждой платформы сборочных сценариев (Makefiles для Unix, Visual Studio для Windows и XCode для Mac OS X). Кроме улучшения поддержки сборки для различных платформ GYP позволяет обеспечить интеграцию с процессом сборки движка V8 и улучшить управляемость проектом;
  • Переход от непосредственного использования библиотек libev и libeio к использованию прослойки libuv позволил унифицировать поддержку платформ Unix и Windows, но привёл к некоторому изменению API, специфичному для определённых платформ. Поэтому, при переходе на версию 0.8 возможно потребуется небольшая переработка кода. Например, прекращена поддержка прямого вызова ev_* и eio_*, объявлен устаревшим http.Client(), path.{exists,existsSync} заменены на fs.{exists,existsSync}, а tty.setRawMode(mode) на tty.ReadStream#setRawMode();
  • Возвращена поддержка работы с файловыми дескрипторами. В версии 0.6 была прекращена поддержка метода listenFD и массива customFds, так как они были признаны некроссплатформенными и специфичными для Unix. В итоге многие пользователи выразили своё возмущение и отказались от перехода на версию 0.6. В версии 0.8 разработчики признали свою ошибку и вернули функциональность прямой работы с файловыми дескрипторами - server.listen({ fd: number }), а также добавили в stdio возможность передачи открытых дескрипторов дочерним процессам через child_process.spawn();
  • Полностью переработан модуль cluster, предназначенный для организации работы кластера из нескольких процессов node.js. API в целом остался обратно совместимым, но внесены и некоторые нарушающие совместимость изменения.
  • Добавлен экспериментальный модуль domain, позволяющий связать несколько разных операций ввода/вывода и выполнить их обработку в виде единой группы.
  • Проведена чистка и рефакторинг модулей Repl, Readline и TTY с целью повышения удобства разработки;
  • В модуль fs добавлены методы fs.appendFile() и fs.appendFileSync(), а также поддержка режимов "wx", "wx+", "ax" и "ax+" для fs.open() и fs.openSync().


  1. Главная ссылка к новости (http://blog.nodejs.org/2012/06...)
  2. OpenNews: Представлена начальная реализация версии фреймворка node.js для языка C++
  3. OpenNews: Основатель Node.js ушёл с поста лидера проекта
  4. OpenNews: Компания Joyent, развивающая Node.js и SmartOS, получила 85 млн долларов инвестиций
  5. OpenNews: Релиз Nide 0.2, интегрированной среды разработки для Node.js
  6. OpenNews: Релиз серверной JavaScript-платформы node.js 0.4
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/34194-node.js
Ключевые слова: node.js, javascript, v8, event
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (85) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 18:46, 26/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Node.js - это hello world, зашедший слишком далеко.
     
     
  • 2.2, Аноним (-), 18:49, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Нет, это просто у вас разум дальше хеллоуворда не продвинулся.
     
     
  • 3.4, Аноним (-), 19:07, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это у авторов разум не продвинулся дальше JavaScript.
     
     
  • 4.5, Аноным (ok), 19:14, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Куда там до таких как ты, кто чтобы булку съесть хлебзавод покупает.
     
  • 4.10, Px (?), 19:43, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А чем именно плох JavaScript?
     
     
  • 5.12, Аноним (-), 19:48, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Тем, что он не задумывался как язык программирования общего назначения.
     
     
  • 6.14, ИванЧеловеков (?), 19:59, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Хм. Java, к примеру, тоже не задумывалась как язык программирования общего назначения.
     
  • 6.19, Аноним (-), 20:25, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Тем, что он не задумывался как язык программирования общего назначения.

    Не задумывался, но получился очень даже неплохим.
    В отличии от ПХП.

    А по вашему чем именно он не тянет на общего назначения?
    Что-то конкретное скажите, кроме пустых выкриков.

     
     
  • 7.23, Аноним (-), 20:35, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На данный момент главная притензия - нестабильный api. Причем не стабильный не изза объектмвных причин а из за самодурства разработчиков.
    За каким спрашивается, чертом взять и переместить функцию exists из модуля path в модуль fs, ломая сотни сторонних модулей? А до этого sys взяли переименовали в utils, зачем?


     
     
  • 8.34, Аноним (-), 21:35, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    В вашей прЕтензии - баг ... текст свёрнут, показать
     
     
  • 9.38, Аноним (-), 21:40, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы я был разработчиком node js, то вместе с исправлением этого бага я бы ... текст свёрнут, показать
     
  • 7.24, Аноним (-), 20:40, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вторая претензия - никакая библиотека.
    Ну как я на производственный сервер поставлю модуль sqlite авторства ВасиНогибатораПупкина из его github репозитория? [Брат|/usr] то и так еле жив.
    И когда они опять сломают api сколько мне ждать пока Вася протрезвеет и обновит модуль?
     
     
  • 8.26, Аноним (-), 20:56, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну вот вы и попались Что и следовало ожидать Вы просто не знаете чем отличаетс... большой текст свёрнут, показать
     
     
  • 9.30, Аноним (-), 21:15, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Первая претензия нестабильный апи включая с апи Вторая претензия слабая стан... большой текст свёрнут, показать
     
     
  • 10.33, Аноним (-), 21:31, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    получить... текст свёрнут, показать
     
  • 10.83, Аноним (-), 12:57, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Все правильно, потому что все претензии, которые вы высказываете не имеют отноше... большой текст свёрнут, показать
     
     
  • 11.85, Аноним (-), 13:25, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Мне пожалуйста, стандартную библиотеку Кстати почему вы считаете что стандартна... большой текст свёрнут, показать
     
     
  • 12.87, Аноним (-), 14:07, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Видимо вы считаете, что если библиотека стандартная, то это освобождает вас от н... большой текст свёрнут, показать
     
  • 6.32, Аноним (-), 21:24, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Тем, что он не задумывался как язык программирования общего назначения.

    Забавно, что в современных реалиях повсеместного переползания в сеть, он и есть вполне себе общего назначения.

     
     
  • 7.36, Аноним (-), 21:37, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    В этом переползании ничего нового нет.
    Перевоплощение концепции timesharing из 60-70х годов.

     
     
  • 8.41, Аноним (-), 21:54, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    в privacy sharing ... текст свёрнут, показать
     
     
  • 9.42, Аноним (-), 21:59, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Насильно никто не заставляет А где сушить трусы, на балконе или в кладовке - пу... текст свёрнут, показать
     
     
  • 10.77, Аноним (-), 12:15, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    пока есть балкон или кладовка ... текст свёрнут, показать
     
  • 5.17, Аноним (-), 20:22, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ecma .. is final final final.... final standard
     
     
  • 6.43, Аноним (-), 22:17, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Шутки шутками, а скрипты времен второго NN мой браузер 2012 года выпуска проигрывает.
    А как дело обстоит с python, ruby, perl ...?
    Вот чего чего а прямой и обратной совместимости у js не отнять.



    if(!String.prototype.trim) {
      String.prototype.trim = function () {
        return this.replace(/^\s+|\s+$/g,'');
      };
    }



    для питона в подобных ситуациях приходится все переписывать.
     
     
  • 7.44, Аноним (-), 22:18, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот чего чего а прямой и обратной совместимости у js не отнять.

    Только к node.js это не относится. Не слушают старика Крокфорда.

     
  • 7.46, Аноним (-), 00:50, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот уж к Perl-то какие претензии по части обратной совместимости?
     

  • 1.3, anon9 (?), 18:55, 26/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    domain - отличнейшая штука. Приятно, что разрабы постоянно запиливают именно то, что нужно
     
     
  • 2.21, Аноним (-), 20:29, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и синтаксис



    d.run(function() {
      process.nextTick(function() {
        setTimeout(function() { // simulating some various async stuff
          fs.open('non-existent file', 'r', function(er, fd) {
            if (er) throw er;
            // proceed...
          });
        }, 100);
      });
    });


    Узнаю javascript-



         }
        });
      }).listen(1337);
    });



    Вот поэтому и существует coffescript ,dart, ice, и еще много проектов которые компилятся в js. Читать такой код - пытка.

     
     
  • 3.28, Аноним (-), 21:01, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это проблема не js, а node.js, где всё завязано на callback.
     
     
  • 4.31, Аноним (-), 21:20, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Это проблема не js, а node.js, где всё завязано на callback.

    Единственное место где js активно используется кроме node.js - это браузеры.
    И ты не поверишь...

     
  • 3.54, хзкто (ok), 09:02, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Кто вас заставляет писать такой код? Выносите всё в отдельные методы, не допуская большой вложенности, и не будет никаких проблем. Это всё равно что написать, например, на питоне код с кучей вложеных конструкций и, показывая на него, говорить что питон - говно.
     
     
  • 4.55, Аноним (-), 09:21, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Меня никто не заставляет.
    Это эталонный код с сайта разработчиков
    http://nodejs.org/api/domain.html
    >Выносите всё в отдельные методы,

    Так не получится, так как теряется основное преимущество js - замыкания.


     
     
  • 5.57, хзкто (ok), 09:31, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Так не получится, так как теряется основное преимущество js - замыкания.

    вы сами писать пробовали? Методы отлично соседствуют с замыканиями и не приходится создавать многократную вложенность, всё в пределах разумного.
    Кроме методов, для упрощения можно создавать замыкания не в момент передачи ( 'foo(function() {})' ), а вынося их в переменную ( 'var bar = function() {}; foo(bar);' ), иногда это делает код более понятным.

     
     
  • 6.59, Аноним (-), 10:00, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    бла бла бла. Плавали знаем.
    Если не использовать замыкания - какой смысл в javascript?
    >Кроме методов, для упрощения

    это ваше "упрощение" из за явного связывания приводит к трудноуловимым багам.



    a = 10
    setTimeout ->
      console.log a
    ,1
    a = 100



    Результат 100



    a = 10
    func_maker = (x)->
      ->console.log x
    setTimeout func_maker(a),1
    a = 100



    Результат 10 - Приятной отладки сцукu.

     
     
  • 7.60, Аноним (-), 10:13, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Причем для полного счастья для ссылочных типов поведение кардинально отличается



    obj = {}
    obj.a = 10
    setTimeout ->
      console.log obj
    ,1
    jbj.a = 100



    Результат {a:100}



    obj = {}
    obj.a = 10
    func_maker = (x)->
      ->console.log x
    setTimeout func_maker(obj),1
    obj.a = 100



    результат (!)тоже {a:100}
    И нафига такой гемор? Только контекстно зависимых языков мне нехватало.
     
     
  • 8.64, хзкто (ok), 10:41, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    очевидно, чтобы использовать ссылки, нужно понимать, что такое ссылки Разве нет... текст свёрнут, показать
     
     
  • 9.68, Аноним (-), 10:55, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Что бы что то советовать нужно быть знакомым с предметом Вы не знакомы ... текст свёрнут, показать
     
  • 7.62, хзкто (ok), 10:36, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > a = 10
    > setTimeout ->
    >   console.log a
    > ,1
    > a = 100

    такие "трудноуловимые баги" есть везде, достаточно 1 раз наступить на эти грабли, понять как оно работает и больше таких детских ошибок не допускать

    > Результат 10 - Приятной отладки сцукu.

    казалось бы, причём тут нода и js вообще? Эта ошибка сродни if(a = 1), такая же глупая

     
     
  • 8.67, Аноним (-), 10:53, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Эти баги появились благодаря предложенному вами методу, якобы упрощающему напи... текст свёрнут, показать
     
     
  • 9.84, anon9 (?), 13:14, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    вообще это баги не благодаря коду, а от непонимания того, как работает замыкание... большой текст свёрнут, показать
     
  • 5.58, хзкто (ok), 09:37, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Меня никто не заставляет.
    > Это эталонный код с сайта разработчиков
    > http://nodejs.org/api/domain.html

    Это всего лишь пример, в который намеренно вставили много асинхронных операций. Код внутри не надо читать и поддерживать, он там только для демонстрации некоторой сложной асинхронной логики.

     

  • 1.6, Аноним (-), 19:24, 26/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Переход от непосредственного использования библиотек libev и libeio к использованию прослойки libuv позволил унифицировать поддержку платформ Unix и Windows, но привёл к некоторому изменению API,

    У меня один вопрос - ЗАЧЕМ? Зачем Windows?

     
     
  • 2.7, Аноним (-), 19:29, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем Node.js?
     
     
  • 3.8, o (?), 19:32, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А альтернативы?
     
     
  • 4.11, 1 (??), 19:48, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    python
     
     
  • 5.35, Аноним (-), 21:36, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > python

    Еще более стремное угребище.

     
     
  • 6.39, Аноним (-), 21:42, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Мешает вам жить? Вызывает кошмары?
     
  • 4.49, Сергей (??), 01:46, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Erlang?
     
     
  • 5.88, Челз (?), 09:58, 28/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Плохая работа со строками - тяжело в  вебе
     
  • 2.9, anon9 (?), 19:32, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    микрософт - один из спонсоров, и явно не из последних
     
     
  • 3.16, Аноним (-), 20:18, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Микрософт главный спонсор c++11 и что? Где истерика еще и по этому поводу?
     
     
  • 4.48, zzz (??), 01:00, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Микрософт главный спонсор c++11 и что? Где истерика еще и по этому поводу?

    так вот кто натащил столько мусору!(((((( ненависть!!!

     
  • 4.53, хзкто (ok), 08:58, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Микрософт главный спонсор c++11 и что? Где истерика еще и по этому
    > поводу?

    где это вы истерику увидели? Я просто ответил на вопрос. Сам я в совместимости с Windows вижу только хорошее, лишь бы не отражалось негативно на никсовой реализации

     
  • 2.37, Аноним (-), 21:39, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > У меня один вопрос - ЗАЧЕМ? Зачем Windows?

    MS наверное доплатил чтобы хоть какой-то нормальный фреймворк для вебни был под их систему в человеческом виде. Правда вот с такими перетрясками апи - на них все забьют, пожалуй.

    - (разработчики фреймворка) А теперь вам надо броить все и переделать код!
    - (разработчики программ) Да вы обуели?!
    - (прожектманагеры, доставая пистолет и целясь себе в висок) Ба-бах!
    - (админы, откупоривая порцию спиртного с горя) семь бед - один ответ!

     

  • 1.15, Аноним (-), 20:17, 26/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Для общего развития:
    - Что мешает Питону и Руби добится скорости V8?
    http://stackoverflow.com/questions/5168718/what-blocks-ruby-python-to-get-jav
    tl;dr - Мешает отсутсвие Ларса Бака, который 25 лет делает виртуальные машины для языков программирования.  

     
     
  • 2.25, Аноним (-), 20:44, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    http://speed.pypy.org/
     
     
  • 3.27, Аноним (-), 20:58, 26/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    "Циклюю полы.
    Дешево.
    Правда хреново"
    Гвидо высказался по поводу PyPy на последнем PyCon
    http://www.youtube.com/watch?v=EBRMq2Ioxsc&t=12m34s
    (факи правда не показывал)
    - "Так, а кто использует PyPy в продакшене поднимите руки. Что никто? Совсем никто? Ну и говорить не о чем."


     

  • 1.45, Аноним (-), 23:03, 26/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эти бы усилия да в нормальное русло. А то прямо как в поговорке: "сон разума рождает чудовищ"
     
     
  • 2.61, Аноним (-), 10:29, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Нормальное" - это одобренное вами? Ну ну.


     
     
  • 3.63, Аноним (-), 10:39, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    "Нормальное" - это
    Что б понять что разработчики движутся в сторону обратную здравому смыслу достаточно почитать мануал и попробовать что то написать под ноджс. Вот вы, например, пробовали это сделать?
     
     
  • 4.65, Аноним (-), 10:41, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > "Нормальное" - это одобренное здравым смыслом
    > Что б понять что разработчики движутся в сторону обратную здравому смыслу достаточно
    > почитать мануал и попробовать что то написать под ноджс. Вот вы,
    > например, пробовали это сделать?

    fixed

     
  • 4.70, Аноним (-), 11:04, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >обратную здравому смыслу

    Чьему здравому смыслу? Вашему? Здравый смысл, в отличие от логики не существует без субъекта которому он принадлежит.

     
     
  • 5.80, Аноним (-), 12:33, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >>обратную здравому смыслу
    > Чьему здравому смыслу? Вашему? Здравый смысл, в отличие от логики не существует
    > без субъекта которому он принадлежит.

    Печально то что он может не существовать даже при наличии субъекта которому может принадлежать

     
  • 4.72, Аноним (-), 11:10, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Вот вы, например, пробовали это сделать?

    Если вы попробовали и это вызвало у вас замешательство, растерянность и дискомфорт то так и пишите. Незачем наводить тень на плетень.

     
     
  • 5.79, Аноним (-), 12:32, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Мануал начинался с создания веб-сервера, я действительно оказался в замешательст... большой текст свёрнут, показать
     
     
  • 6.82, Аноним (-), 12:54, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >ИДЕ начинали сходить с ума на автокомплите

    О боже. Какой ужас. Как можно писать без аутокомплита?
    Это ведь придется, о страх господень, учить язык и, матерь божья, думать что ты пишешь, а не клацать без перерыва ctrl-space. Решительно невозможно заставлять разработчика так напрягаться. Общество Защиты Животных не позволит.


     
     
  • 7.86, Аноним (-), 13:56, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет это означает, что я не хочу помнить что мне нужно вызвать initFooBar(foo, bar) а не initBarFoo(bar, foo). Вы очевидно не писали ничего сложнее хелловорда если так презрительно отзываетесь об автокомплите, я, например, не обезьяна что б тратить своё время на подобную глупость.

    А то что я замечу эту ошибку только в рантайме (кстати не факт что замечу сразу) - просто приятный бонус.

     
     
  • 8.89, Аноним (-), 11:08, 28/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Положил клавиатуру на место Метлы в сарае Амеба Эта глупость называется прогр... текст свёрнут, показать
     
     
  • 9.90, Аноним (-), 16:20, 28/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Подобные вам вместо того, чтобы честно признаться в лени и нехватки ресурсов, от... текст свёрнут, показать
     
     
  • 10.91, Аноним (-), 19:50, 28/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    И медведя можно научить ездить на велосипеде, но будет ли ему от этого польза ил... текст свёрнут, показать
     
  • 9.92, Аноним (-), 20:02, 28/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вижу вменяемые аргументы у вас кончились Поразительно как упала культура общени... текст свёрнут, показать
     

  • 1.47, zzz (??), 00:54, 27/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    самая главная проблема ребята это однопоточость. причем даже не просто nodejs а самого языка JS - те оно и в будущем таким будет. вот это проблема так проблема...
     
     
  • 2.51, Аноним (-), 05:18, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вот-вот. Еще крайне не хватает sleep() и блокирующих вызовов. Осильте уже кластер.
     
  • 2.52, Аноним (-), 08:30, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не согласен. Считаю основной проблемой жопорукость архитекторов этого поделия (если они там были).
     
     
  • 3.56, Аноним (-), 09:23, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Считайте, кто вам мешает.
     
     
  • 4.76, Аноним (-), 12:05, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Никто, так же как и вам никто не мешает считать что я не прав.
     

  • 1.50, Аноним (-), 05:16, 27/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Осталось дождаться когда bignums.js заменят нативной реализацией.
     
  • 1.66, Аноним (-), 10:49, 27/06/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кому нужен nodejs если есть v8cgi?
     
     
  • 2.69, Аноним (-), 11:02, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Кому нужен аноним когда можно фейспалмить и так?
    Ну кто в своем уме будет использовать заброшенный не документированный проект?


     
     
  • 3.73, Аноним (-), 11:12, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Почему бы вместо велосипедов авторам не пилить в8цги? Или они нашли фатальный недостаток в веб-серверах?
     
     
  • 4.75, Аноним (-), 11:16, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошо, я им передам ваше предложение. Что то еще?

     
     
  • 5.78, Аноним (-), 12:22, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Что то еще?

    Розенталь.


     
     
  • 6.81, Аноним (-), 12:34, 27/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Василий. Очень, приятно.
     

  • 1.93, Аноним (93), 21:52, 13/09/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересное применение Node.js - http://lecaw.ru/index.php/jquery/item/293-sozdanie-prilozhenia-dlia-risovanii
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру