LINUX.ORG.RU

Bun v1.1.30

 bun, , , ,

Bun v1.1.30

0

3

Тихо и незаметно была опубликована новая стабильная версия Bun – 1.1.30.

Bun – это среда выполнения ECMAScript / JavaScript, по многим параметрам аналогичная nodejs. В основе Bun используется JavaScriptCore от Apple, но сам Bun как и многие его модули написан на языке zig. Bun старается быть максимально совместимым с nodejs по опциям командной строки, поддерживает модули ECMAScript (ESM) и CommonJS. Управление пакетами npm и поддержка typescript встроены прямо в приложение как нативный код, и программы на typescript могут исполняться напрямую интерпретатором без предварительной конфигурации.

Однако Bun не является лишь «копией» nodejs по своим возможностям. Помимо более быстрой работы в ряде сценариев (начиная прямо с запуска приложения) и почти полной поддержки доступного в nodejs API, Bun предоставляет широкие возможности для приложений на сервере – от работы с файлами до трансформации HTML-дерева (HTMLRewriter), модулем транспиляции typescript (Bun.Transpiler), встроенной работе с базами данных sqlite, модулей для взаимодействия с нативными библиотеками платформы через API яызка Си – ffi, встроенный инструментарий тестирования и множество других возможностей.

Кроме того, в экспериментальном режиме Bun поддерживает интеграцию с кодом на Си через прозрачный вызов tcc:

hello.c:

	int hello()
	{
	  return 42;
	}

hello.js:

	import { cc } from "bun:ffi";
	import source from "./hello.c" with { type: "file" };

	const {
	  symbols: { hello },
	} = cc({
	  source,
	  symbols: {
	    hello: {
	      args: [],
	      returns: "int",
	    },
	  },
	});

	console.log("What is the answer to the universe?", hello());


$ bun hello.js
What is the answer to the universe? 42

В этом релизе среди прочего был добавлен парсер CSS на основе LightningCSS который специально для этого был переписан с таких legacy-технологий как rust на zig, что позволило прозрачно интегрировать css и typescript, и теперь можно импортировать css-файл напрямую в модуль typescript:

index.ts:
	import "./style.css";
	import Component from "./MyComponent.tsx";

	// ... rest of your app

style.css:
	/* результат сборки: */
	/* style.css */
	.hello {
	  background: red;
	}

	/* MyComponent.css */
	.MyComponent {
	  color: green;
	}

Bun позволяет собрать всё приложение со всеми ресурсами в единый исполняемый файл.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: unfo (всего исправлений: 5)

Ответ на: комментарий от goingUp

Пока слишком сыро, ну нафиг. Если переходить — то на что-то совсем другое. Go, например.

InterVi ★★★★★
()
Ответ на: комментарий от cocucka_B_TECTE

зато он наш, попенсорсный!

Will Hare support Windows or macOS?

Hare does not and will not officially support proprietary operating systems upstream. However, Hare is a standardized language and third-parties may build and maintain forks or compatible implementations of Hare targeting these systems.

Is a language server available?

Not yet, but maybe you’ll write one? Ask about it in the community spaces.

Can I use multithreading in Hare?

Probably not.

Why doesn’t Hare have generics?

Omitting generics (and similar features) in Hare is a deliberate design choice which simplifies the language considerably and is more aligned with its design roots in C.

всё как любит местный люд

InterVi ★★★★★
()
Последнее исправление: InterVi (всего исправлений: 1)

У них есть кнопочка «Ask AI», я спросил, почему же такое имя:

I wasn’t able to find a direct answer to your question. The information sources provided don’t contain any specific explanation for why Bun was named as such. For the most accurate and up-to-date information about Bun, including any details about its naming, you may want to check the official Bun documentation or reach out to the Bun community directly.

dataman ★★★★★
()
Ответ на: комментарий от Clayman

Этот народ думает, что ЖС это такие скриптики в браузере

Нет, ЖС это такой рак, который не следит за

1+"1"="11"
и ещё ест мозг начинающих разрабов, отчего такой код повсеместно + вызовы конструкторов вместо функций у нубов.

«нет времени объяснять, программирувай!»

TS, конечно, всё сильно улучшил, но вызвал ответ - «а нафига оно надо?»

Shadow ★★★★★
()
Ответ на: комментарий от InterVi

Ну ок, аффтар, которого в другом треде обозвали Дювалем, перелицевал сишечку, обосрал всех вокруг и сидит довольный. Типичный опенсорс.

cocucka_B_TECTE
()
Последнее исправление: cocucka_B_TECTE (всего исправлений: 1)

Ладно, если без шуток, хоть кто-то видел этот Бунд или Дину в продакшне? Больше похоже на бессмысленный фофан от совсем изнывающих от безделья буржуинов. Теперь ещё зигу какую-то притащили, совсем уже куку.

bread
()
Ответ на: комментарий от goingUp

Что скажут лоровцы по поводу node vs deno vs bun? Имеет ли смысл переходить с ноды?

На Bun нет, потому что он оптимизирован исключительно под макось, и именно там они рисуют свои красивые циферки, А deno это то чем должна быть нода без легаси. Но использовать всё равно нужно ноду, потому что большинство использует ноду, а используя чёт другое есть неплохие риски прогореть и иметь знания по ненужной технологии. Стоит изучать только ради интереса, но упор делать на ноду.

sbu_shpigun
()
Ответ на: комментарий от Shadow

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

sbu_shpigun
()
Ответ на: комментарий от vbr

У меня есть небольшой проект на deno, я задолбался его переписывать каждые полгода, постоянно что-то ломают. Нода просто решает все задачи.

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

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

Ну и впринципе и то, и то сделано одним человеком.

sbu_shpigun
()
Ответ на: комментарий от dataman

Перед тем как писать вам я проскролил Language Reference, ничего из ряда вон нового я не нашел. За исключением defer и async, но их вряд ли можно назвать чем-то революционно новым.

lbvf50txt
()
Ответ на: комментарий от lbvf50txt

Там «бесцветный» async/await.

Еще про comptime любопытная история.

Мне кажется, что революционного ждать от языка с надписью «a simple language» аршинными буквами на страничке не следует. Надо смотреть, удачно ли выбран набор.

akho
()
Ответ на: комментарий от InterVi

зато он наш, попенсорсный!

всё как любит местный люд

На заглавной странице написано, что Hare это микроязык.

Hare fits on a 3½" floppy disc — these will be available for purchase when Hare 1.0 is released!

Второй абзац faq:

Hare may be the language you need; otherwise, it’s not. Hare is not a “kitchen sink” language: Hare does not attempt to solve every problem, but it does strive to solve the problems we’re interested in well.

Но @InterVi надо прийти и начать возмущаться, что на велосипеде нет 100 сильного двигателя.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 3)
Ответ на: комментарий от th3m3

То было давно. Сейчас рулят веб-апликухи, смузи-приложухи и говнокодзащекуберухи. Не знаю, плохо это или хорошо, но эта штука неплохая замена NodeJS, на которой, как известно, написано куча всего вокруг (нетфликсы, линкедины, трелло, пейпалы, уберы и прочие уюберы). Оно реально быстрее и гибче (гибучее) Ноды. На счет банков то был пример для затравки, там сейчас Нода в основном для клиент-банков. Просто разрабы еще не осознали всю прелесть сабжа.

Gonzo ★★★★★
()
Ответ на: комментарий от Gonzo

Просто разрабы еще не осознали всю прелесть сабжа.

Может и осознали. Но там же кровавый интерпайз, будут долго тянуть легаси.

th3m3 ★★★★★
()
Ответ на: комментарий от Shadow

Если тебе так уж хочется испачкать руки в Си или плюсах, то зачем тебе веб, иди пиши прошивки для микроволновок.

sbu_shpigun
()
Ответ на: комментарий от I-Love-Microsoft

Мне показалось лук репчатый без зелени. Но логотип прекрасный

Пожалуй я не буду говорить о моих ассоциациях. Людей много... Ну и ничего прекрасного я не увидел :)

Rodegast ★★★★★
()
Ответ на: комментарий от vbr

Если ты профессионал, ты пишешь на C++

Зачем нужен zig - для меня загадка

Ещё один подъехал, мнение имеет, а знаний - не имеет.

Нода просто решает все задачи, которые стоят перед серверным жаваскриптом

Сказал, аки Боженька!

Eulenspiegel
()

Хм, почему название проги так гейско звучит?… А, это для жаваскриптовых! И сразу стало понятно

somemong
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.