Да! И именно!
Корни JavaScript были заложены ещё раньше. Даже не в прямых предшественниках вроде Simula. Работы по проектированию вокрыг подобных ЯП велись намного раньше, просто было взято то, что быстро подходило под проект.
Версия событий от автора языка и редактора стандарта: zenodo.org/record/3710954#.Xq6zO3Vfhzm
Не знаю, мне всё равно, лишь бы автор прочёл.
Но, всё же, может быть потому, что не верят :)
Хотя, что правда, то правда, на LLVM ничего не собирал, и на С~C++ не пишу.
Да, конечно, тут перегнул с сожалениями :)
Цепляет, в том то и дело, что цепляет настолько, что хочется посмотреть описание и структуру, а приходится сразу лезть в исходники. Может быть, конечно, это такой хитрый план, тогда автору ещё большее уважение, т.к. время как будто бы не тратил, а социальную инженерию тоже как-то почувствовал, несмотря на такую вот «всю эту» историю. Поправил. Спасибо :)
Taetricus
Саша, мне понравилась история мучений с языком, спасибо, было прикольно, хоть кино снимай. Напугало, что «история» появилась раньше описания языка. Искренне считал, что уже лет 10 так никто не делает, потому, что вроде бы как теперь читать истории — дорого.
Поэтому решил всё же посмотреть исходники, где, как и предполагал, убедился, что идиосинкразии они не вызывают: значит уже хорошо!
Вопрос: можешь ли ты переписать свой Transpiler так, чтобы его можно было исполнять в VM в JavaScript (Node.js или Браузер — не суть), или же, что может быть намного лучше — для TypeScript?
Видишь ли, Deno уже на подходе, а значит VM на Rust очень скоро поедет у кого-нибудь в Prod…
С~C++ — это сложная и многоликая аудитория, они могут всё, и даже больше чем хотят. Пока ты учил компиляторы, многие остальные люди учили «популярность», «маркетинг» и прочие странные нам, инженерам, вещи.
В мире много языков программирования, и ещё один язык общего назначения нужен мало кому. В мире JavaScript народ попроще будет, да и народа намного больше. Банальнальная статистика подсказывает, что вероятность, что кому-нибудь понравится твоё видение прекрасного, увы, намного выше, чем то, как оно может быть использовано сейчас. Заодно профессию получишь, востребованную, сразу, сходу. Не знаю, стал ли бы я на твоём месте «играться», в эту подмену «чистого искусства» на бытовые радости, и стоит ли эта игра свеч в принципе, но почему бы не попробовать? Умение добиваться поставленных целей, ответственность и собственный взгляд на искусство программирования могли бы быть приятным дополнением к, например, такой строке в резюме: «написал свой транспайлер в TypeScript т.к. мне хотелось писать на мной созданном языке» — это сразу покажет людям уровень твоей квалификации. И хоть скорее всего это не будет не так сложно и возвышенно, как создание собственного компилятора, но, по крайней мере людям будет понятно с кем они имеют дело, и почему он уверен, что заслуживает внимания и прочее, тому подобное, коммуникабельное и измеримое.
Обоснуй.
Выглядит как «глубже — выше — сильнее», мы это уже проходили. Нужна практическая ценность. Если ты, например, хочешь «до»-сказать, что-то вроде «время не монотонно», то это был бы интересный повод для обсуждения. Но пока создаётся иное ощущение. Или, например что-нибудь этакое: «Да-да, забыл упомянуть, вот тут это самое нужно потому, что для понимания многомерных пространств, как ни странно, хорошо подходит Helix».
Критика нужна, особенно конструктивная.
Очевидно очень талантливый парень в глуши сидел, мира не видел, ни с кем толком не общался, писал «гениальную идею» много лет. Он или начнёт воспринимать нас всерьёз или уйдёт ещё больше в изоляцию. Первое, вроде бы как, — предпочтительней, — мы же тут, как бы, человеколюбивые, и всё такое… А ты бы хотел на его месте, чтобы тебя троллили, а ты только потом когда-нибудь понял, что это был такой «тонкий троллинг»?
«Специалисту» покажись? циник… ;^)
Все, кто сюда дочитал, обратите внимание ещё на такую вещь.
И cls-hooked и вообще всё, что основано на async_hooks имеет одну существенную проблему.
Проблема НЕ в асинхронной части. Она большей степени покрыта. Проблема в том, что синхронный контекст можно разделить. Например:
Исходя из этого наивное применение подобных пакетов чревато потерей контекста.
Посему все нормальные пакеты рекомендуют делать обёртки в тех местах, которые не могут быть покрыты асинхронным контекстом автоматически. Поэтому «биндить» только req и res — мало. Надо биндить ещё и кучу всего остального, например общение с БД. Посмотреть можно, например, тут, самый конец файла: Cloud Tracing Mongoose Sync Split Wrapper:
Не то, чтобы прям серьёзного, но да, для отладки, очень упрощает жизнь если разработка ведётся не на локальной железке, а на удалённом сервере. Это может быть необходимо по совершенно разным причинам, но в целом — это удобно, если там есть REPL.
Минус в том, что нормально запустить отладчик бывает очень долго. Просто долго стартует, в особенности если node.js стар, и нужно использовать node-inspector. В этом случае REPL — панацея, и пульт от многих нюансов, т.к. это мгновенное подключение прямо в работающий процесс, да, тот самый, который Вы сейчас пишете. И, если, например, есть ещё Server Modules HMR без перезагрузки, то совсем красота, т.к. для коннекта обычно используются файловые сокеты, а они обрываются, если процесс перезагружать.
Даже есть немного кода, не в NPM, т.к. подозреваю, что там такого добра полно: например.
Нет, он не органичивает. Не знаю в чём разница, в обоих доступных governor'ах в idle режиме проц работает где-то на 600 MHz. Верхние потолки частот можно ограничить в TLP, если нужно.
Да, всё именно так и есть, просто включил профиль :)
Вроде бы я описал, что когда я убрал все обёртки работать было можно, а профилем я управлял через апплет.
Эмм… да вот как-то так. Он может выдать полную производительность, это 2.9 GHz, но только если его постоянно остужать, иначе он сам будет «остывать». И это не зависит от Governor'а. В обычном Powersave режиме он крутится где-то около 600 MHz. Причём от системы это не зависит, просто этих частот хватает. Да, и, насчёт пересборки мира. Вы можете включить профиль Perfomance, но у меня это тоже совершенно ничего не меняет, как показывало 600 MHz, так и показывает. Думаю, что всё же процессор просто будет быстрей переходить в задачи с повышением частоты, как-то так, наверное. Но я не уверен.
Пытася разобраться, никак не осилил. Нужно было очень много времени, и я стал искать ещё. К тому же основная проблема была всё же «загрузиться», а не «работать дальше». С перегревом можно жить, у меня есть старый-престарый Acer с процессором AMD C-60, так он ниже 70 градусов в принципе не работает, ни на чём, ни на Windows ни на Linux, но он совершенно адекватный, при этом, до сих пор.
Хотел бы почитать такую статью, если бы она была, возможно не стал бы TLP даже искать. Там действительно заявлены все те же саме возможности, но как-то очень сложно XML-конфиг без GUI.
Далеко не вся, и в конкретных ситуациях надо смотреть.
Здесь, всё же суть именно в нештатной ситуации использования.
Под Windows в целом было всё нормально.
Cогласен, негатива было бы меньше, +1.
Но, Вы сами когда-нибудь пробовали дистрибутивы для домохозяек, хотя бы в Virtual Box, просто потыкать?
Не буду дальше спорить, по каждой позиции мы можем препираться очень долго.
Считайте лучше, что мне проще хаять Windows, так как большинство его пользователей хаят Linux.
Мир жесток и не справедлив, и вообще, жизнь такая сложная штука.
Сегодня хаят Linux, завтра будут хаять Windows, только MacOS всегда будет оставаться необхаяной :)
И, да, я подумывал купить Mac Air и поставить на него Ubuntu, только он клавиатурой не вышел, а заказать с нормальной ANSI и надеятся, что он приедет, как-то очень страшно.
Плюсую, у жены всегда остаётся мой старый ноут. После того, как я первый раз поставил ей Linux я каждый раз спрашиваю, что ей оставить. Она в 100% случаев выбирает Linux, а не Windows. Работает быстрей, всё, что ей нужно — есть. Никаких проблем нет, и я всегда, если что, могу помочь, в отличие от Windows.
У Дедушки с Бабушкой тоже Linux, на неттопе. Им кроме «шариков» (lines) и Google Chrome ничего не нужно. Мама тоже на Linux перешла, т.к. покупать новый компьютер «дорого», и, аналогично, нет необходимости. Отец, правда, до сих пор на Windows, но он это мотивирует тем, что не нужно тратить время пока всё работает. И, у него действительно работает, потому, что он его использует в основном как записную книжку.
Корни JavaScript были заложены ещё раньше. Даже не в прямых предшественниках вроде Simula. Работы по проектированию вокрыг подобных ЯП велись намного раньше, просто было взято то, что быстро подходило под проект.
Версия событий от автора языка и редактора стандарта:
zenodo.org/record/3710954#.Xq6zO3Vfhzm
Но, всё же, может быть потому, что не верят :)
Хотя, что правда, то правда, на LLVM ничего не собирал, и на С~C++ не пишу.
Цепляет, в том то и дело, что цепляет настолько, что хочется посмотреть описание и структуру, а приходится сразу лезть в исходники. Может быть, конечно, это такой хитрый план, тогда автору ещё большее уважение, т.к. время как будто бы не тратил, а социальную инженерию тоже как-то почувствовал, несмотря на такую вот «всю эту» историю. Поправил. Спасибо :)
Саша, мне понравилась история мучений с языком, спасибо, было прикольно, хоть кино снимай. Напугало, что «история» появилась раньше описания языка. Искренне считал, что уже лет 10 так никто не делает, потому, что вроде бы как теперь читать истории — дорого.
Поэтому решил всё же посмотреть исходники, где, как и предполагал, убедился, что идиосинкразии они не вызывают: значит уже хорошо!
Вопрос: можешь ли ты переписать свой Transpiler так, чтобы его можно было исполнять в VM в JavaScript (Node.js или Браузер — не суть), или же, что может быть намного лучше — для TypeScript?
Видишь ли, Deno уже на подходе, а значит VM на Rust очень скоро поедет у кого-нибудь в Prod…
С~C++ — это сложная и многоликая аудитория, они могут всё, и даже больше чем хотят. Пока ты учил компиляторы, многие остальные люди учили «популярность», «маркетинг» и прочие странные нам, инженерам, вещи.
В мире много языков программирования, и ещё один язык общего назначения нужен мало кому. В мире JavaScript народ попроще будет, да и народа намного больше. Банальнальная статистика подсказывает, что вероятность, что кому-нибудь понравится твоё видение прекрасного, увы, намного выше, чем то, как оно может быть использовано сейчас. Заодно профессию получишь, востребованную, сразу, сходу. Не знаю, стал ли бы я на твоём месте «играться», в эту подмену «чистого искусства» на бытовые радости, и стоит ли эта игра свеч в принципе, но почему бы не попробовать? Умение добиваться поставленных целей, ответственность и собственный взгляд на искусство программирования могли бы быть приятным дополнением к, например, такой строке в резюме: «написал свой транспайлер в TypeScript т.к. мне хотелось писать на мной созданном языке» — это сразу покажет людям уровень твоей квалификации. И хоть скорее всего это не будет не так сложно и возвышенно, как создание собственного компилятора, но, по крайней мере людям будет понятно с кем они имеют дело, и почему он уверен, что заслуживает внимания и прочее, тому подобное, коммуникабельное и измеримое.
Выглядит как «глубже — выше — сильнее», мы это уже проходили. Нужна практическая ценность. Если ты, например, хочешь «до»-сказать, что-то вроде «время не монотонно», то это был бы интересный повод для обсуждения. Но пока создаётся иное ощущение. Или, например что-нибудь этакое: «Да-да, забыл упомянуть, вот тут это самое нужно потому, что для понимания многомерных пространств, как ни странно, хорошо подходит Helix».
Очевидно очень талантливый парень в глуши сидел, мира не видел, ни с кем толком не общался, писал «гениальную идею» много лет. Он или начнёт воспринимать нас всерьёз или уйдёт ещё больше в изоляцию. Первое, вроде бы как, — предпочтительней, — мы же тут, как бы, человеколюбивые, и всё такое… А ты бы хотел на его месте, чтобы тебя троллили, а ты только потом когда-нибудь понял, что это был такой «тонкий троллинг»?
«Специалисту» покажись? циник… ;^)
Челюсть в пол… Спасибо за статью!
С нетерпением жду следующих статей и надеюсь когда-нибудь увидеть исходнички :)
И cls-hooked и вообще всё, что основано на async_hooks имеет одну существенную проблему.
Проблема НЕ в асинхронной части. Она большей степени покрыта. Проблема в том, что синхронный контекст можно разделить. Например:
issues/59
issues/249
Пример для Front-End
Исходя из этого наивное применение подобных пакетов чревато потерей контекста.
Посему все нормальные пакеты рекомендуют делать обёртки в тех местах, которые не могут быть покрыты асинхронным контекстом автоматически. Поэтому «биндить» только req и res — мало. Надо биндить ещё и кучу всего остального, например общение с БД. Посмотреть можно, например, тут, самый конец файла: Cloud Tracing Mongoose Sync Split Wrapper:
Минус в том, что нормально запустить отладчик бывает очень долго. Просто долго стартует, в особенности если node.js стар, и нужно использовать node-inspector. В этом случае REPL — панацея, и пульт от многих нюансов, т.к. это мгновенное подключение прямо в работающий процесс, да, тот самый, который Вы сейчас пишете. И, если, например, есть ещё Server Modules HMR без перезагрузки, то совсем красота, т.к. для коннекта обычно используются файловые сокеты, а они обрываются, если процесс перезагружать.
Даже есть немного кода, не в NPM, т.к. подозреваю, что там такого добра полно: например.
Вроде бы я описал, что когда я убрал все обёртки работать было можно, а профилем я управлял через апплет.
Эмм… да вот как-то так. Он может выдать полную производительность, это 2.9 GHz, но только если его постоянно остужать, иначе он сам будет «остывать». И это не зависит от Governor'а. В обычном Powersave режиме он крутится где-то около 600 MHz. Причём от системы это не зависит, просто этих частот хватает. Да, и, насчёт пересборки мира. Вы можете включить профиль Perfomance, но у меня это тоже совершенно ничего не меняет, как показывало 600 MHz, так и показывает. Думаю, что всё же процессор просто будет быстрей переходить в задачи с повышением частоты, как-то так, наверное. Но я не уверен.
Хотел бы почитать такую статью, если бы она была, возможно не стал бы TLP даже искать. Там действительно заявлены все те же саме возможности, но как-то очень сложно XML-конфиг без GUI.
Здесь, всё же суть именно в нештатной ситуации использования.
Под Windows в целом было всё нормально.
Но, Вы сами когда-нибудь пробовали дистрибутивы для домохозяек, хотя бы в Virtual Box, просто потыкать?
Не буду дальше спорить, по каждой позиции мы можем препираться очень долго.
Считайте лучше, что мне проще хаять Windows, так как большинство его пользователей хаят Linux.
Мир жесток и не справедлив, и вообще, жизнь такая сложная штука.
Сегодня хаят Linux, завтра будут хаять Windows, только MacOS всегда будет оставаться необхаяной :)
И, да, я подумывал купить Mac Air и поставить на него Ubuntu, только он клавиатурой не вышел, а заказать с нормальной ANSI и надеятся, что он приедет, как-то очень страшно.
У Дедушки с Бабушкой тоже Linux, на неттопе. Им кроме «шариков» (lines) и Google Chrome ничего не нужно. Мама тоже на Linux перешла, т.к. покупать новый компьютер «дорого», и, аналогично, нет необходимости. Отец, правда, до сих пор на Windows, но он это мотивирует тем, что не нужно тратить время пока всё работает. И, у него действительно работает, потому, что он его использует в основном как записную книжку.