LINUX.ORG.RU

Человеческая замена C для своих задач

 ,


0

6

Хочется найти простой кроссплатформенный компилируемый язык для программирования всякой мелочи для себя. Отправной точкой можно назвать C, но хочется поменьше рутины, возможностей на ровном месте выстрелить в ногу и наличия удобных базовых структур, вроде строк, динамических массивов и прочих списков. В кандидатурах сейчас пока C++ (не хочется лезть в дебри именно плюсов, с другой стороны писать в духе C с классами кажется как-то не комильфо), Pascal (начинал с Delphi когда-то, но уже почти не помню), Vala (тыкал немного, напрягает, что надо тянуть Glib и с поддержкой + кроссплатформой не очень), Go, D (на первый взгляд тоже ситуация с поддержкой и библиотеками не радует), Rust (какой-то инопланетный, но идея с управлением памятью интересна).


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

С — говно, ему нужна альтернатива.

К тебе пришли злые нацисты и под прицелом MG42 заставляют тебя писать на C? Если нет, то в чем дело?

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

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

Crystal.

bread
()

А за задачи? Какое требование к быстродействию? Какое требование к кроссплатформенности?

dicos ★★
()

программирования всякой мелочи для себя

А что там У ТЕБЯ? Бери питон и не выеживайся, для ВСЯКОЙ МЕЛОЧИ ДЛЯ СЕБЯ ничего лучше все равно нет.

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

К тебе пришли злые нацисты и под прицелом MG42 заставляют тебя писать на C? Если нет, то в чем дело?

Миликантсы. Со своими М16.

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

Те кто мнят себя «осиляторами Си» потом пишут говно работающее только на одной платформе и одной архитектуре и то когда Луна в определенной фазе.

(Привет любителям кастить указатели одного типа к другому)

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

Программисты его очень хорошо представляют

Ключевое слово — программисты. К питономакакам это не относится.

no-such-file ★★★★★
()

компилируемый

наличия удобных базовых структур, вроде строк, динамических массивов и прочих списков

Go, Haskell, Red.

rebforce
()

На python я и так пишу, я же говорил, что ищу нечто, чтобы нативно, относительно быстро и без таскания за собой всего рантайма с интерпретатором. Если на онтопике и даже маках он, как правило, есть из коробки, хоть и второй, то на оффтопике нужно тянуть интерпретатор и собирать (или брать у gohlke) некоторые модули. Хотя сейчас ещё вспомнил про Cython'овский диалект с возможностью типизации и компиляции в бинарник.

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

чего-то близкого по функциональности к скриптам, но за которым не надо будет носить интерпретатор

Cython? Пиши на питоне@компилируй в бинарник

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

Я же говорю, что хочу Си, но с удобными структурами/контейнерами, менее хлопотным выделением памяти и (из того, что есть в C++) параметрическим полиморфизмом, например. А писать именно идеоматично на C++ как-то нет желания, как и на Objective-C, правда в этом случае уже из-за странноватого синтаксиса, унаследованного от Smalltalk.

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

Я же говорю, что хочу Си, но с удобными структурами/контейнерами, менее хлопотным выделением памяти и (из того, что есть в C++) параметрическим полиморфизмом, например.

Тогда D.

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

Посмотри на код lm_sensors. ЕМНИП, они пишут на плюсах именно в таком стиле

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

Это как оно транслируется? Не нагуглил ничего.

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

Джулию еще не советовали? Правда малость сыровата, маловато батареек... Но мне в своё время понравилась

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

Вместо программирования? Говорят с компом проще. Я конечно не пробовал.

anonymous
()

Пиши на чем удобнно. Я до сих пор иногда на бейсике пишу и не вижу в этом ничего зазорного.

zvezdochiot

anonymous
()

C#, без троллинга, имхо, лучший мейнстрим язык из ныне существующих. Если не брезгуешь поделиями мелкомягких, стоит взять его.

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

По сути из перечисленного у тебя только 2 варианта: lazarus и rust. Всё остальное использует GC, а это значит что взаимодействие с Си-миром через жопу.

no-such-file ★★★★★
()

Если не связано с графикой, то Go.

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

«Наш человек».
Мне и Алгол-60 «по душе», Фортран, go, PHP, APL, ... - да все.
Но «всему должна быть мера».

PS: На форумах к сожалению наблюдаем как «остроконечники» сражаются с «тупоконечниками».

Владимир

anonymous
()
Ответ на: комментарий от no-such-file

GC, а это значит что взаимодействие с Си-миром через жопу.

Наличие GC не связано с тем, как будет взаимодействие с Си.

Например, в Go есть GC, но при этом реализовано взаимодействие с Си на уровне 10/10.

В Rust GC нет, но проблем взаимодействия с Си больше.

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

найти что-то удобное для создания чего-то близкого по функциональности к скриптам
простой компилируемый язык

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

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

Вот именно. Иначе вопрос - из категории «хочется странного».

seiken ★★★★★
()

FreeBASIC, FreePascal, Fortran, Delphi

anonymous
()

Там QuickJs выкатили. ES2018 + можно !! перегружать операторы !! и еще кое-что. Собирается в самодостаточный бинарник, легко и просто линкуется с сишным кодом.

crutch_master ★★★★★
()
https://bellard.org/quickjs/                               QuickJS is a small and embeddable Javascript engine. It supports the ES2019 specification including modules, asynchronous generators and proxies.
                                                           It optionally supports mathematical extensions such as big integers (BigInt), big floating point numbers (BigFloat) and operator overloading.

https://bellard.org/quickjs/quickjs.html                   doc QuickJS Javascript Engine
                                                           https://bellard.org/quickjs/jsbignum.pdf

                                                           http://www.opennet.ru/opennews/art.shtml?num=51079  Основатель QEMU и FFmpeg опубликовал JavaScript-движок QuickJS
                                                           Французский математик Фабрис Беллар (Fabrice Bellard), основавший в свое время проекты QEMU и FFmpeg, а также создавший самую быструю формулу вычисления числа Пи и 
                                                           разработавший формат изображений BPG, опубликовал первый выпуск нового JavaScript-движка QuickJS.
                                                           Движок отличается компактностью и ориентирован на встраивание в другие системы.
                                                           Код проекта написан на языке Си и распространяется под лицензией MIT.
                                                           Также доступна сборка движка, скомпилированная в WebAssembly при помощи Emscripten и пригодная для выполнения в браузерах.
                                                           Реализация JavaScript поддерживает спецификацию ES2019, включая модули, асинхронные генераторы и прокси.
                                                           Опционально поддерживаются нестандартные математические расширения для JavaScript, такие как типы BigInt и BigFloat, а также перезагрузка операторов.
                                                           По производительности QuickJS существенно превосходит имеющиеся аналоги, например, в тесте bench-v8 опережает движок XS на 35%, DukTape более чем в два раза,
                                                           JerryScript в три раза, а MuJS в семь раз.

Владимир

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

Странные, противоположные требования, т.к. скриптовость как раз подразумевает отсутствие фазы компиляции

Не обязательно. В D есть rdmd, специально для таких вещей: https://dlang.org/rdmd.html

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

Javascript - ХОРОШ! /очень хорош/
У меня возникает необходимость лишь в разработке API /libraries/, которые
затем использую в 1С, ...
Не знаю даже что ответить.
Ну пожалуй так - «Считаете нужным? Используйте и ни кого не слушайте».

Владимир

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

Ну пожалуй так - «Считаете нужным? Используйте и ни кого не слушайте».

Кто-то и уринотерапию считает нужным использовать.

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

Кто то и Metaprog разрабатывает ...

Владимир

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

в Go есть GC, но при этом реализовано взаимодействие с Си на уровне 10/10

ЛОЛ, как раз таки в голанге помимо GC ещё и горутины и интероп дико тормозит. Я уж не говорю про то, что сущности из Си никак не впихуются в эти горутины (пашут в отдельном треде) и нативные типы (которые под GC).

no-such-file ★★★★★
()

C + QuakeC разумеется. Или ANSI C. Все эти новомодные языки всё равно яйца выеденного не стоят.

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

Так он собирается в бинарник. Ну там вместе с движком, но всё же его можно просто перетащить и запустить.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от rebforce

Беллар вообще молодец

Откуда у него силы и время делать столько крутых и нужных вещей.

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

В Rust GC нет, но проблем взаимодействия с Си больше.

Две проблемы - текстовые сишные макросы, использующиеся как нетипизированные inline функции, и запуск bindgen для построения биндингов при кросскомпиляции.

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

FITS == flexible image transporting system

Обычные изображения.

Eddy_Em ☆☆☆☆☆
()

Смотрю тут многие Котлин предлагают в качестве замены. У него та же проблема что и у жабы — писать без IDE на нем крайне сложно.

urxvt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.