URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 83113
[ Назад ]

Исходное сообщение
"Представлена начальная реализация версии фреймворка node.js ..."

Отправлено opennews , 19-Фев-12 00:11 
Программист из Северной Кореи Дэниель Канг (Daniel Kang) представил (https://github.com/d5/node.native) первую экспериментальную реализацию фреймворка node.js (http://nodejs.org) для языка C++, позволяющую создавать высокопроизводительные приложения в стиле оригинального node.js, но ориентированный на выполнение скомпилированного кода на языке С++, без использования JavaScript.


Node.native представляет собой асинхронный I/O-фреймворк, архитектурно и идейно сходный с фреймворком node.js. Однако, в отличие от последнего он не использует JavaScript-движок V8 и предназначен исключительно для программирования на языке C++11, возможности параллельного программирования которого и вдохновили автора на создание проекта. Как и оригинальная реализация, node.native перекладывает работу по обслуживанию запросов ввода-вывода на отдельные потоки, благодаря чему удается достичь высокого уровня производительности приложений.

В данный момент проект находится в начальной стадии разработки и п...

URL: http://www.theregister.co.uk/2012/02/17/node_js_native_c_plu.../
Новость: http://www.opennet.me/opennews/art.shtml?num=33130


Содержание

Сообщения в этом обсуждении
"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено XVilka , 19-Фев-12 00:11 
хорошая новость.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 03:38 
Зачетненько. И ведь как компактно, а? :)

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Ptomaine , 19-Фев-12 07:41 
да не только в компактности дело то. посмотрел я код сего поделия и надо признать, что достаточно грамматно написано. правда, проект зависит ещё от двух других: libuv и http-parser. но они малы по объёму и легко вписываются в данный проект. более  того, я думаю, что от них, позже, можно будет избавиться, переписав код также на С++11. ну, что добавить? Хорошая тенденция - Viva C++11.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 10:39 
> да не только в компактности дело то. посмотрел я код сего поделия
> и надо признать, что достаточно грамматно написано.

Грамотно. Весь код в *.h файлах. *facepalm*
> правда, проект зависит ещё
> от двух других: libuv и http-parser.

Зависит? Этот "проект" просто биндинги к libuv и все. *doble facepalm*
>но они малы по объёму

libuv это, внезапно, движок node.js



"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Пожалуйста , 19-Фев-12 11:52 
> Грамотно. Весь код в *.h файлах. *facepalm*

В С++ в библиотеках применяющие templates это естественный метод (по-другому будет сильно извращенно). Минус - это то что код библиотеки всегда компилируется. Плюсы: сгенерированный код всегда получается максимально эффективным для предоставленного типа через шаблоны.
Среди библиотек (что вспомнил) которые от 90% до 100% в *.h файлах: STL, boost, OTL, agg


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено mine , 19-Фев-12 11:56 
> по-другому будет сильно извращенно

По другому нельзя. Код шаблона должен быть виден компилятору в момент использования. Иначе он не сможет сгенерировать для него код.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Пожалуйста , 19-Фев-12 12:12 
>> по-другому будет сильно извращенно
> По другому нельзя. Код шаблона должен быть виден компилятору в момент использования.
> Иначе он не сможет сгенерировать для него код.

Если компилятор не поддерживает extern templates (а таких большинство), то вот пример:

template<typename T> class MyClass {
     class MyClassImplementation *impl; //заметьте не шаблонный класс
  public:
     MyClass() : impl(new MyClassImplementation(sizeof(T))) {}
   // ну и т.д.
}

Одни задачи достаточно комфортно разрываются на реализацию и шаблонный-интерфейс, для других проще (но не-невозможно) оставить все в *.h-файле

  


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Ptomaine , 19-Фев-12 17:30 
>  Минус - это то что код библиотеки всегда компилируется.

это филосовский и религиозный вопрос. возможно это будет откровением для Вас, но код на JavaScript, тоже компилируется, правда, в байт код.

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

"все в светлое будущее квантовых технологий!" )))


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Ptomaine , 19-Фев-12 17:20 
> Грамотно. Весь код в *.h файлах. *facepalm*

))) я сказал про сам код. какая разница в какой логической единице он содержиться: cpp или h?

> Зависит? Этот "проект" просто биндинги к libuv и все. *doble facepalm*

))) простите, а биндинги на сторонние проекты, это разве не зависимость от них? )))

> libuv это, внезапно, движок node.js

))) неужели? а мужики то незнают. цитата: "libuv is a new platform layer for Node. Its purpose is to abstract IOCP on Windows and libev on Unix systems. We intend to eventually contain all platform differences in this library."


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 22:43 
> ))) я сказал про сам код. какая разница в какой логической единице
> он содержиться: cpp или h?

А какая разница между хорошо структурированным читаемым кодом и кашей?
> ))) простите, а биндинги на сторонние проекты, это разве не зависимость от
> них? )))

Тогда следуя вашей логике:
>Голова зависит ещё от мозга. Но он малы по объёму и легко вписываются в данный проект. более  того, я думаю, что от него, позже, можно будет избавиться.
> ))) неужели? а мужики то незнают.

Чего не знают мужики, английского?


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Ptomaine , 20-Фев-12 00:58 
> А какая разница между хорошо структурированным читаемым кодом и кашей?

Не придумывайте того, чего нет. где Вы там кашу усмотрели?
Понимание кода напрямую зависит от образованности читаемого его.
Если Вы чего-то там усмотрели, не понимаете или не знаете, то это не каша, а RTFM.

> Тогда следуя вашей логике:

Вы не правильно провели аналогию. Не голова и мозг одного человека, а МОЯ голова и ЧУЖОЙ мозг. Или более реальная ассоциация: мой друг может взламывать только внешнюю защиту сетей, а я могу взламывать только компьютеры в самой сети. В один прекрасный день мой друг погиб. Я не смогу больше взламывать компьютеры без него, потому что не могу проникнуть через внешний файервол.

Проследуйте моей логике: уберите из Node.native, например, сторонний проект libuv и Вы не сможите скомпилировать Node.native. А убрать проект можно запросто - ОН ЧУЖОЙ, ОН СТОРОННИЙ.

> Чего не знают мужики, английского?

Хорошо, я пререведу: "libuv это новая платформенная прослойка для Node. Её задача остагировать IOCP на Windows и libev на Unix системах. Мы хотим со временем реализовать все платформенные различия в этой библиотеке."

Я больше не хочу с Вами общаться Df232z на эту тему. Разговор получается пустой.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Orofarne , 20-Фев-12 14:29 
А зачем избавляться и переписывать? они хорошо написаны и хорошо поддерживаются.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Вереск , 19-Фев-12 00:17 
Я так понимаю, наконец-то начнут клепать сайты на нормальном Си, а не на интерпретируемых языках? Или что-то путаю?
Drupal на C++...

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 00:20 
А что общего между событийно-ориентированным вреймворком и CMS?

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 00:49 
> Я так понимаю, наконец-то начнут клепать сайты на нормальном Си, а не на интерпретируемых языках? Или что-то путаю?

Есть мнение, что вы слабо представляете себе, что такое node.js и зачем он нужен.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено ProfX , 19-Фев-12 10:19 
>Я так понимаю, наконец-то начнут клепать сайты на нормальном Си, а не на интерпретируемых языках? Или что-то путаю?
>Drupal на C++...

По идее сайты, уже давно можно клепать на С++ посредством Wt: http://www.webtoolkit.eu/wt, только не пойму почему этот тулкит пока так и не стал популярен.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 10:35 
Внезапно сайты можно уже лет 15 клепать на с++ и cgi.
Точно также как можно огород вскапывать вилкой.
Только почему то этот метод не популярен.
Наверное потому что есть более подходящие инструменты?


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено ProfX , 19-Фев-12 17:08 
>Внезапно сайты можно уже лет 15 клепать на с++ и cgi.
>Точно также как можно огород вскапывать вилкой.
>Только почему то этот метод не популярен.
>Наверное потому что есть более подходящие инструменты?

В том то и дело что Wt - достаточно удобный фреймворк, очень похож на Qt.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 05:29 
> Внезапно сайты можно уже лет 15 клепать на с++ и cgi.

Только вот скорость работы CGI получается как-то не вкусной и не имеющей ничего общего с event-driven конструкциями. Небольшая разница.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено anonymous , 19-Фев-12 13:13 
>     только не пойму почему этот тулкит пока так и не стал популярен.

Потому что GPL.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 05:29 
> Потому что GPL.

На серваке это вообще до фени если это не AGPL... ;)


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено бедный буратино , 19-Фев-12 13:17 
А что мешало раньше?

http://www.koanlogic.com/klone/


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 00:49 
Хорошая вещь - иногда нужно прикрутить к приложению встроенный веб-сервер.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено develop7 , 19-Фев-12 01:25 
libsoup не?

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено anonymous , 19-Фев-12 01:52 
а также http://code.google.com/p/mongoose/

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 02:51 
>Хорошая вещь - иногда нужно прикрутить к приложению встроенный веб-сервер.

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


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено анон , 19-Фев-12 04:47 
Не стоят эти "на 80%" того, чтобы связываться с С++

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено ананим , 19-Фев-12 06:04 
Ещё как стоят.
Не говоря уже об экономии памяти.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено анон , 19-Фев-12 08:47 
Память нынче дешевая. Ей то как раз можно жертвовать ради производительности

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено saNdro , 19-Фев-12 11:24 
http://h10010.www1.hp.com/wwpc/ru/ru/sm/WF25a/15351-15351-42...
Сервачёк вполне себе симпатичненький, но 128Гб оперативки в него не войдут, да и ядер всего два...

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 12:17 
> Память нынче дешевая. Ей то как раз можно жертвовать ради производительности

Разработчики ZFS тоже так думали. И теперь для нормальной работы продакшен-стореджа порой требуется столько памяти, что не влезает в стандартный сервак.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 14:16 
Не трынди. Внезапно - на Соляре есть лимиты, позволяющие ограничить ARC - Это раз. Два - систему можно и нужно адекватно тюнить под задачу. И три - в стандартный сервак одноюнитовый можно запихнуть 64 Гб рамы. Если тебе этого мало - значит, у тебя не все в порядке с головой.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 05:30 
> Не стоят эти "на 80%" того, чтобы связываться с С++

Кроме случая когда вам надо из своего профита вычесть ценник в 2 раза большего парка серверов и подзатянуть пояса...


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено grep , 19-Фев-12 08:47 
А ведь плюсам заметно полегчало после выхода С++11, вполне современный язык получился. Жаль, концепты зарезали

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 10:42 
Ждем Сборщика мусора и удаление указателей. До этого момента использовать смысла нет.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено saNdro , 19-Фев-12 11:28 
> Ждем Сборщика мусора и удаление указателей. До этого момента использовать смысла нет.

Не ждём. На ваши запросы полно других языков. Не знаете для чего применять язык программирования "среднего" уровня - юзайте исключительно "высокие".



"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 12:24 
> Не ждём. На ваши запросы полно других языков. Не знаете для чего
> применять язык программирования "среднего" уровня - юзайте исключительно "высокие".

Плохому танцору всегда что-то мешает. У таких IT-таджиков проблемы с любыми языками. Но дело всегда в языке, конечно же.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 13:16 
> Плохому танцору всегда что-то мешает. У таких IT-таджиков проблемы с любыми языками.
> Но дело всегда в языке, конечно же.

Тоже самое говорили любители ассемблера пока не исчезли.
Время динозавров прошло. Это эволюция.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено x0r , 19-Фев-12 13:50 
> Тоже самое говорили любители ассемблера пока не исчезли.
> Время динозавров прошло. Это эволюция.

Вы извините, но мы никуда не исчезли)


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 13:57 
А динозавры исчезли не единомоментно. Они просто стали проигрывать конкурентную борьбу, не смогли приспособится к изменившимся условиям и вымерли.
Совсем как программисты на с++.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено noname , 19-Фев-12 14:38 
Простите, а на каком языке вы будете командовать процессору "переслать содержимое регистра А в регистр В"? На Java? На C#?
Как быть со встраиваемыми системами, где у одного МК 8Кб памяти? Что вы туда прикрутите?
Net Framework 2.0SP1?

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 18:07 
Вы хорошую предметную область привели для демонстрации применения C/C++, но обсуждается совсем другое - веб-фреймворки. Про пользу высокоуровневых языков хорошо написал Пол Грэм ("Lisp - побеждая посредственность"). Увеличение производительности на 10% бессмысленно, если для этого надо написать в 4 раза больше кода и в 10 раз дольше искать в нем баги, разыменования NULL и утечки памяти. А сэкономленного времени хватит, чтобы оптимизировать алгоритм в целом и добиться производительности на уровне, близком к C

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено тоже Аноним , 19-Фев-12 21:40 
Увеличение производительности имеет смысл, если это увеличение необходимо. Если язык не позволяет увеличить производительность - значит, необходимо применять язык более низкого уровня. Сильная сторона низкоуровневых языков - в оптимальном решении задач, которые более высокоуровневые языки решают неоптимально.
О чем, собственно, спор? О случаях, когда производительность не играет роли? Для таких случаев вполне подходят любые языки. Но если создатель веб-фреймворка не заморачивается производительностью - результат вполне предсказуем...

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 10:58 
Увеличить производительность помогает оптимизация главного алгоритма, а не оптимизация на мелочах. На худой конец, это может быть переписывание проблемного участка на C или ассемблере, но не всей программы целиком. Смена языка всей программы на более низкоуровневый - это именно оптимизация в мелочах. Почему сайты не пишут на ассемблере? Ассемблерные программы занимают восхитительно мало памяти и работают как из пушки, так в чем дело?

> О случаях, когда производительность не играет роли? Для таких случаев вполне подходят любые языки

Иногда есть кое-что, играющее роль большую, нежели производительность программы - это производительность труда программиста. Если вы пишете код вчетверо быстрее (цифра не с потолка - программы на Эрланге приблизительно настолько компактней аналогов на C++), у вас будет куча свободного времени на выражение своих мыслей (вместо попыток запихать их в ограниченные термины низкоуровневого языка), и на оптимизацию тоже хватит.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено тоже Аноним , 20-Фев-12 13:55 
> Иногда есть кое-что, играющее роль большую, нежели производительность программы - это производительность труда программиста

Иногда - да, но веб-сервер, как мне кажется, не относится к таким случаям. Он, однажды написанный, потом работает - возможно, в весьма нагруженном режиме. И производительность кода оказывается куда важнее, чем лишние пара дней, потраченные на разработку. С++ имеет достаточно готового кода в виде библиотек, чтобы по трудоемкости приближаться к более высокоуровневым языкам. Просто не нужно страдать велосипедизмом.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено noname , 20-Фев-12 01:01 
Это был вопрос к комментатору о ненужности ассемблера.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 20-Фев-12 02:46 
А зачем он нужен в 2012 году?

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 05:40 
> А зачем он нужен в 2012 году?

Посмотри сырцы x264, VP8, ... погоняй бенчи чисто севой версии и версии с асм-вставками и осознай зачем. Вот гуглу например - нужно, внезапно, в 2012 году. Коммитят, понимаешь, оптом и в розницу асмовые вставки в VP8 и тебя забыли спросить. Лучше скажи честно: ты деревяшка и не знаешь как работает компьютер. Поэтому тебе не судьба изобрести ни 1 эффективного алгоритма и даже просто понять что будет фактически сделано компьютером в ответ на то что ты накорябал в своей поделке и насколько сие (не)оптимально.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 11:01 
Эффективность *алгоритма* не зависит от языка - она зависит от самого алгоритма. Пузырьковая сортировка на достаточно больших массивах всегда медленнее быстрой сортировки независимо от языка реализации.
А эффективные алгоритмы таки существуют и на языках очень высокого уровня

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Crazy Alex , 20-Фев-12 21:21 
Угу. Сложность - ага, не зависит от языка. Только кроме сложности есть ещё и константа. И константа эта может даже не в разы, а на порядки отличаться, а данные, знаете ли, могут иметь и предсказуемый объём. Это не говоря о том, что компилятор, забывший оптимизировать какой-то кусок в высокоуровневом языке и запихнувший копирование данных куда не надо запросто делает из O(N) O (N^2).

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено anonymous , 21-Фев-12 12:15 
>Эффективность *алгоритма* не зависит от языка

Алгоритм может предполагать оперирование регистрами процессора. Для алгоритма вполне нормальна привязка к особенностям языка.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено jklsuopiew , 20-Фев-12 11:16 
Друг, не оптимизируй ассемблером. Лучше вообще не оптимизируй. Иди плитку ложить, "программист"

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено ананим , 20-Фев-12 12:04 
Нет слова "ложить", есть слово "класть".

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 14:21 
> не оптимизируй ассемблером

Заблуждение, крайне распространенное среди специалистов, не работавших близко к микроархитектуре мощного не распределенного железа. (геймдев-кун)


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено vle , 24-Фев-12 12:50 
> А зачем он нужен в 2012 году?

Компиляторы с языков С и С++ не умеют максимально эффективно использовать
аппаратные возможности процессоров, например, векторные команды.
Да и сами языки не позволяют "намекнуть" компилятору, чтоб использовал
такие и сякие команды. С и С++ сами по себе -- принципиально SISD.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Андрей , 20-Фев-12 04:53 
> Вы хорошую предметную область привели для демонстрации применения C/C++, но обсуждается совсем другое - веб-фреймворки.

Так в том то и дело: хотелось бы веб-фреймворк и в ардуино тоже иметь.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено jklsuopiew , 20-Фев-12 11:14 
А вы встраиваемые системы на Java не видели? :))) От вы темный, а! Идет на сайт Атмела и начинаем просвящаться

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 05:41 
> Совсем как программисты на с++.

Ну я надеюсь что у тебя операционка то на правильном ЯП написана, да? :)


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 20-Фев-12 08:13 
К сожалению нет. Поэтому память течет, приложения крошатся, и эксплоиты лопатой выгребаю.
Но движение в правильном направлении идет.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 10:42 
> Но движение в правильном направлении идет.

Ась? Ты уже написал кернель на чем-то правильном? Нет? Тогда срочно за дело. А то что-то медленно движение идет. Уж лет 40 как. Скока еще ждать то пока ты кернел на чем-то другом накорябаешь??? Я конечно не рисукну пользовать систему с кернелом от скриптокида но поржать было бы интересно.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 11:03 
Есть верифицированные микроядра, корректность которых доказана математически. Они конечно мало что умеют, но дело движется в правильном направлении :). Как вы понимаете, их пишут отнюдь не на сях

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232s , 20-Фев-12 11:20 
> Ась? Ты уже написал кернель на чем-то правильном? Нет? Тогда срочно за
> дело. А то что-то медленно движение идет. Уж лет 40 как.

К вашему сведению linix  ведет свою историю с сентября 1991 года, так что срок в 40 лет указан неверно.

> Скока еще ждать то пока ты кернел на чем-то другом накорябаешь???
> Я конечно не рисукну пользовать систему с кернелом от скриптокида но
> поржать было бы интересно.

А почему необходимо сначала переписывать ядро? Логичнее постепенно переносить сначала пользовательское окружение потом все остальное. И тут работа ведется очень интенсивно.
Например Qt5 имеет javascript  в качестве основного языка, а с++ рекомендуется использовать только для низкоуровневых задач. GTK 3+ поддерживает программы на javascript, но так же позволяет рендерить интерфейс в html. Windows 8 позволяет создавать нативный приложения используя js и html.
Так же показали свою эффективность системы в которых весь интерфейс использует html и js.
Не говоря о том что веб сервисы вытесняют настольные приложения. Так аудитория Gmail превосходит количество пользователей thunderbird в разы.



"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 14:44 
наверное имелся в виду Unix, который был первый на Си написан

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Crazy Alex , 20-Фев-12 21:23 
А, так еще и виндузятник, что ли? Всё сходится - и эксплоиты выгребает, и "движение в правильном направлении" - дотнет, полагаю.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено фтыш , 21-Фев-12 01:39 
ололо
попробуй напиши сложное приложение под iOS без плюсовых либ

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 05:44 
> Тоже самое говорили любители ассемблера пока не исчезли.

Они так исчезли, что в 2012 году ВНЕЗАПНО крайне люто комитят в репу кодека VP8. То что они не занимаются гoвнокодингом энтерпрайзных поделок - ну так правильно, для этого есть тупые и дешевые наемные боты типа тебя. Для телег с ломом и лошадей используют, простите, ломовых.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено jklsuopiew , 20-Фев-12 11:12 
Ананим, а ананим, по твоей логике выходит у всех руки кривые, а языки плохими быть не могут, так? Прапорщик такой прапорщик

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 12:19 
> Ждем Сборщика мусора и удаление указателей. До этого момента использовать смысла нет.

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


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено ананим , 19-Фев-12 14:21 
Хм. В соседней новости http://www.opennet.me/opennews/art.shtml?num=33097

Зыж
Нда. Чукча (даже со сборщиком мусора) не читатель.
Да и писатель не важнецкий.
Большинство ПО как разрабатывалось на С/С++, так и разрабатывается.
Видимо большинство написанного быдлокодерами сразу уничтожается в gc.
А если всё же выживает, то радует пользователей своими не повторимыми тормозами, глюками и мрсианским интерфейсом.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 13:04 
Сборщиков мусора под C++ полно разных на любой вкус. Но ты об этом не знаешь, поскольку ни строчки кода на нем не написал

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 13:17 
Назовите пять работающих.



"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 10:43 
> Назовите пять работающих.

1. JavaScript. Или в нем не работает? Или движок не на си не написан? Ню-ню :)


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено justreader , 19-Фев-12 11:01 
Чем оно лучше boost.asio?

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 11:21 
Ничем. На asio тоже можно заниматься кодосокоращательством, а еще он стабильнее.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено klalafuda , 19-Фев-12 14:21 
> Чем оно лучше boost.asio?

Ну это как бы несколько разного уровня проекты и сравнивать их некорректно. Чем wget лучше netcat-а? С другой стороны, было бы логично иметь asio на бакенде. Не знаю, что они там заюзали под это.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 14:45 
Опять теплое с мягким, э?

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено mma , 19-Фев-12 16:51 
отлично, лишь бы тут с "лапшой" не переборщили как в node.js.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено develop7 , 19-Фев-12 22:11 
> У node нет проблем с лапшой. Есть проблемы с программистами с java и с++ головного мозга, которые не могут асинхронный код.

Ага. Мы просто назовём лапшу callbackов "The Node Way", а критиков («тяжело разбираться, т.к. нужно держать в уме все вложенные контексты», «мешает отловить утечку памяти» и пр.) — жалкими неасиляторами с C++ головного мозга. Потому как по сути возразить-то и нечего.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 22:34 
Лапша где? Приведите примеры.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено develop7 , 19-Фев-12 23:15 
> Лапша где? Приведите примеры.

на первой же страничке https://github.com/languages/JavaScript/most_watched: &...раскрутите-ка https://github.com/isaacs/npm/blob/master/lib/init.js#L81
страшно подумать, какой ад локалхоста творится в проприетарных проектах на nodejs, которые по очевидным причинам поддерживаются менее опытными (не квалифицированными, разработка под nodejs не имеет ничего общего с квалификацией) разработчиками, чем те, которые ведут популярные проекты на гитхабе.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 19-Фев-12 23:33 
> на первой же страничке https://github.com/languages/JavaScript/most_watched: &...раскрутите-ка
> https://github.com/isaacs/npm/blob/master/lib/init.js#L81
> страшно подумать, какой ад локалхоста творится в проприетарных проектах на nodejs, которые
> по очевидным причинам поддерживаются менее опытными (не квалифицированными, разработка
> под nodejs не имеет ничего общего с квалификацией) разработчиками, чем те,
> которые ведут популярные проекты на гитхабе.

Да не объясняйте вы ему ничего, человек явно упорот до безобразия, коли предлагает выпилить из С++ работу с указателями и кидается во всех какашками из-за мифических утечек (ну не знает он про RAII, бывает такое). У таких, как он, память и в языке "без указателей и с GC" течь будет :)


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 23:46 
Мифических? 17 февраля 2017 в Thunderbird закрыто 12 дырок. Это в одной программе.
А 30 страниц утечек, переполнений, форматной строки, не инициализированных указателей и прочих особенностей с/с++, не хотите? И это только с начала года.
Я думаю за использование этих языков, давно пора наказывать, как за распространение вредоносного кода.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено develop7 , 20-Фев-12 00:30 
> Мифических? 17 февраля 2017 в Thunderbird закрыто 12 дырок. Это в одной программе.
> А 30 страниц утечек, переполнений, форматной строки, не инициализированных указателей и прочих особенностей с/с++, не хотите? И это только с начала года.
> Я думаю за использование этих языков, давно пора наказывать, как за распространение вредоносного кода.

Thunderbird? Mozilla Thunderbird? В которой вообще вся бизнес-логика писана на Javascript, а на сишечке/плюсцах только интерпретатор этого самого JS + зависимости вроде libxml?


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 20-Фев-12 02:29 
>Thunderbird? Mozilla Thunderbird? В которой вообще вся бизнес-логика писана на Javascript, а на сишечке/плюсцах только интерпретатор этого самого JS + зависимости вроде libxml?

Вот именно! Вся логика на js, а все дырки на с++.
Смотрите сами, вышеупомянутые дырки:
CVE-2011-3659
incorrect AttributeChildRemoved notifications
CVE-2012-0442
memory corruption and application crash
CVE-2012-0443
memory corruption and application crash
CVE-2012-0444
memory corruption and application crash
CVE-2012-0447
do not properly initialize data for image/vnd.microsoft.icon
Продолжать?


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено а.н.а.н.и.м , 20-Фев-12 03:19 
вот так и имеют таких спецов во все щели, а он этого даже и не знает.
а если и узнает, то ждёт пока ему более умные заплатку вставят.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 20-Фев-12 08:05 
Именно поэтому не стоит использовать некачественное программное обеспечение.
Под некачественным, я понимаю, написанное на с/с++.



"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено тоже Аноним , 20-Фев-12 08:41 
Ну что ж, вам осталось только выйти из браузера и ждать, пока его напишут на более правильном языке.
А потом еще подождать, когда таким браузером можно будет пользоваться.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 01:53 
Про то, что в продуктах Mozilla практически всё написано на JS (да-да, XUL, etc.) тебе уже сказали. Про то, что в продуктах Mozilla (по крайней мере в Firefox), используется так любимый тобой сборщик мусора ты решил скромно промолчать? И, о сенсация, если статистику расхода памяти посмотреть, то частенько текут именно JS объекты в сайтовых скриптах.

Почему же сборщик мусора не помогает-то, а? Может, прежде чем на "высокоуровневом" языке писать, надо всё-таки понимать, что память таки под капотом выделяется где угодно, что циклические ссылки будут создавать утечку и при наличии GC? Кодовая база Firefox кстати тянется со времен Netscape. Ты не поверишь, но за это время в С++ произошли достаточно серьезные изменения, и то, что наблюдается в Firefox, не совсем правильно экстраполировать на новые проекты.

И еще одно, болезный. Как-бы ты тут не распинался, но JS - язык с динамической типизацией. Для "fire and forget" скриптов это хорошо, но есть одно большое но. Попробуй как-нибудь написать на этом node.js несколько десятков а то и сотен тысяч строк асинхронной лапши, да развивай свой проект лет 5-7. Ты потом в психушку попадешь, так как рефакторить код на динамически типизированных языках - это лютое зло, рефакторить же тонну асинхронного динамически типизированного кода - еще большее зло. У тебя юнит тестов будет написано больше, чем кода твоего приложения.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Crazy Alex , 20-Фев-12 04:42 
Да он совершенно оголтелый фанат JS,уже в нескольких тредах замечено. И всё убеждал,что статическая типизация не нужна.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 06:59 
> Да он совершенно оголтелый фанат JS,уже в нескольких тредах замечено. И всё
> убеждал,что статическая типизация не нужна.

Пусть LZMA сначала на JS портанет, тогда поговорим.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 20-Фев-12 07:49 
http://lmgtfy.com/?q=LZMA+js

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 10:51 
> http://lmgtfy.com/?q=LZMA+js

О, натурально есть. Правда код этой штуки выглядит довольно жутковато - половина кода вышло борьбой с искусственными трудностями, любезно предоставленными JS. Кстати как, не хочешь побенчить скорость работы относительно нативной версии и вместе поржать над тем что получится? :)


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232s , 20-Фев-12 11:38 
>побенчить

Пожалейте русский язык.
Если вы хотите сравнить скорость работы реализаций то пожалуйста, только сравнивать нужно в равных условиях. А так как реализация на js по умолчанию безопасна, а реализация на с/с++ нет, то запускать "нативную" реализацию необходимо, хотя бы в контейнере Рутковской. Мы ведь не хотим дарить свой компьютер первому попавшемуся?


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Crazy Alex , 20-Фев-12 21:28 
"Первый попавшийся" - это код из веба. В отличие от софта из репозиториев, от разработчиков с многолетней репутацией. Поэтому для первого приходится городить параноидальную матрешку из песочниц, а второй моно просто запустить в своей системе. Впрочем, если месье не понимает, что всегда есть tradeoff между удобством/дешевизной (куда и скорость включена, конечно) и безопасностью - то что тут сказать. А в номре надежность линукс-систем вполне достаточна.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 23:36 
Так где лапша?

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 19-Фев-12 23:56 
или стандартная конструкция
promice()
(...)
(...)
(...)
Показалась лапшой?
Лапша это большое количество вложенных конструкций. Например как тут
https://github.com/torvalds/linux/blob/master/kernel/irq/aut...


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Crazy Alex , 20-Фев-12 04:46 
Лапша - это потеря линейности кода. Когда, взглянув на код, не видишь, в каком порядке он исполняется. А для вложенных конструкций - сюрприз! - этот порядок виден с первого взгляда, хотя бы за счёт отступов. Ну да что с вами спорить, если вы не понимаете, выгодно скоращать количество возможных ошибок в коде за счёт статической типизации.

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 20-Фев-12 08:01 
> Лапша - это потеря линейности кода. Когда, взглянув на код, не видишь,
> в каком порядке он исполняется. А для вложенных конструкций - сюрприз!
> - этот порядок виден с первого взгляда, хотя бы за счёт
> отступов. Ну да что с вами спорить, если вы не понимаете,
> выгодно скоращать количество возможных ошибок в коде за счёт статической типизации.

Не надо пытаться совершить подлог. Это старый устоявшийся термин, а совсем не то что вы нафантазировали.
http://lmgtfy.com/?q=Spaghetti+code&l=1


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Crazy Alex , 20-Фев-12 21:30 
Кхх. Ну вот оттуда цитата: "source code that has a complex and tangled control structure, especially one using many GOTOs, exceptions, threads, or other "unstructured" branching constructs. It is named such because program flow tends to look like a bowl of spaghetti, i.e. twisted and tangled". Это и относится к тому чуду, которое вы мне показали. Или хотите сказать, что там поток исполнения понятен и прозрачен?

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232z , 21-Фев-12 01:32 
Вам, похоже, требуется перевод?

"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Crazy Alex , 21-Фев-12 14:23 
Могу и сам перевести: Исходный код, имеющий сложную и запутаннуюю структуру, особенно использующий много GOTO, исключений, потоков или других "неструктурированных" конструкций ветвления. Он так назван потому что поток управления имеет склонность выглядеть как куча спагетти, т.е. переплетенным и иискривленным.

напомню, речь идет вот об этом: https://github.com/isaacs/npm/blob/master/lib/init.js#L81

Окей, если не понимаете, что там не так - объясняю.

Маоло того, что функцию надо бы разбить на куски просто из соображений размера, так еще и набор странно отформатированных коллбеков там, где хватило бы линейного кода, управляющего последовательностью запросов. Асинхронность (и, соотвественно, promice) там не нужна вообще - это утилита, в данной точке control flow в принципе не способная ничего сделать, пока не получит весь ввод от пользователя.

А еще лучше было бы не просто заменить promiseChain на последовательность циклов ввода, а выделить каждую функцию проверки отдельно (можно внутри основной) и дать ей имя, сделать явный массив со структурами "приглашение + функция проверки", а в основной функции просто сделать цикл по нему. И вместо этого "кто на ком стоял" была бы абсолютно самодокументированная конструкция, понятная с первого взгляда на первой секунде.

Вообще дурацкая джаваскриптовая традиция кучу всего объявлять in place (да еще неименованным) сильно мешает читабельности. Я еще (кое-как) понимаю, когда это делается для браузера с целью уменьшения размера кода, но на сервере такое применять - идиотизм.


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Аноним , 20-Фев-12 10:21 
> и с++ головного мозга, которые не могут асинхронный код.

То-то все кернелы сплошь забиты машинами состояний и асинхронщиной которая на одном проце который физически выполняет 1 поток инструкций умудряется реализовывать иллюзию многозадачности и уж конечно все воспринимают как данность что через сетевку висит 50 соединений хотя проц - один. Ты там кого лечить вздумал, клоун?


"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Df232s , 20-Фев-12 10:57 
>с++
>кернелы

Я совершенно не знаю, что вы называете "кернелами", но подразумевая, что это ядро линукс, хочу отметить что с++ кода в нем нет, вообще нет.
>которая на одном проце который физически выполняет 1 поток инструкций умудряется реализовывать иллюзию многозадачности

Таненбаум молодец, кто спорит. Жаль что дальше пошла деградация.



"Представлена начальная реализация версии фреймворка node.js ..."
Отправлено Crazy Alex , 20-Фев-12 21:35 
Плюсов - нет. А  асинхронности - причём вменяемой - вагон.
А Танненбаума вы вообще непонятно к чему приплели. Многозадачные операционки появились лет на 15 раньше того же миникса.