LINUX.ORG.RU

Нужен язык для Crypto, GUI, Web

 , ,


0

1

Есть желание реализовать опердень в которой будет использоваться криптография, сетевой сервис (в том числе, возможно, веб) и GUI к ней. Нужно, чтобы продукт был в виде статически слинкованного бинарника, с минимальным футпринтом по памяти и максимальным быстродействием. Хотелось бы ещё удобство разработки в виде всяких GC, модульности и прочего, но тут уже противоречия начинаются. Что посоветуете? C++ предлагать в последнюю очередь.

UPD: Немного добавлю из того, что смотрел:

- D2: давно его не трогал, насколько он там заматерел? Судя по количеству изменений в последней версии он все ещё игровая площадка для Александреску?

- Go: что там с GUI?

UPD2: И да, желательно кроссплатформенно, вместе с гуем.



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

Go по всем пунктам. Только с Gui могут возникнуть вопросы, но не очень сложные.

rymis ★★
()

Я бы смотрел в сторону OCaml с гуём на GTK или QtQuick.

Kakadu
()

CGI на сях с -lcrypt + веб-морда. Стильно, модно, молодежно.

Anon
()

опердень

Каждый день узнаешь что-нибудь новое.

orm-i-auga ★★★★★
()
Ответ на: комментарий от Anon

ну не надо
тут тебе и swt и gwt и java fx 2 вон запилена даже, это не считая мастодонтов swing и awt, которые уже моветон использовать

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

Мне веб-морды хватает. Правда, есть у меня один недоделанный динозавр на GTK. Если бы сейчас делал, то motif бы какой-нибудь использовал, а не эту угребищную библиотеку.

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

Кстати, я не глянул, что то сообщение являлось ответом на яву. Уж с Java у меня отношения простые: лучше сдохну.

Anon
()

криптография, сетевой сервис (в том числе, возможно, веб) и GUI к ней

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

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

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

После Swing, AWT я гуи жабовые не смотрел, если честно. Как там look-and-feel? Нативные контролы хотя бы по внешнему виду на платформах?

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

В общем суть в том, что оно должно работать как на сервере, так и на десктопе, то есть общая кодовая база, плюс пара вариаций: с GUI для декстопа и с веб-гуи для сервера, как то так.

metadeu5
() автор топика

Тебе три разных языка надо, а не один.

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

Пишешь на сях сетевой демон. Можешь даже без выделенного http-сервера обойтись (например, пиши на вебсокетах или реализуй самостоятельно простейший сервер в своем приложении).

В зависимости от запроса при подключении к открытому сокету этого демона ты выдаешь либо веб-страничку и/или AJAX, либо тупо данные (для клиента — не браузера).

Если так хочется иметь гуевый клиент — не браузер, можешь реализовать это коровье седло хоть на брейнфаке!

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

Java FX был моветоном, есть и остается при этом. Вы не думали что может быть что-то толще Swing? Тогда мы идем к вам

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

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

vertexua ★★★★★
()

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

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

ну, у меня пока не дошли до него руки, я только доками обмазываюсь, сам на swt десктопный гуй ваяю

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

Насколько все это в Хаскелле отлажено?

Сейчас рассматриваю 3 варианта: 1) Go. Вроде всё хорошо и удобно. Единственное, что не нравится — императивщина, дорос уже до функциональщины, а тут тебе опять указатель вместо монады Maybe. 2) Ocaml. Не пробовал, но выглядит как лучшее из двух миров, но насколько все это готово для реального применения (в части библиотек)? 3) Haskell. Только хардкор? Смущает ленивость. И я сходу не въехал в принципы модульности — как разруливать пересечение по именам функций для разных записей и т.п.? Неудобно же?

metadeu5
() автор топика

Ada - если GUI без экзотики, то проблем не будет. По остальным пунктам проходит идеально.

Tcl/Tk - кроме нормальной модульности и опять же экзотики в GUI, остальное проходит более менее.

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

Насколько все это в Хаскелле отлажено?

неплохо, судя по рассылкам в продакшене крутится.

3) Haskell. Только хардкор? Смущает ленивость.

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

(do let foo = i_will_throw_FooEexception
   return foo) `catches` (\(ex::FooException) -> ...)

тут исключение радостно выбросится все catch блока, ещё остаются thunk leaks, но это не так важно, на и бороться с ними просто. Тем более, что основная работа у тебя будет в отлаженных либах.

И я сходу не въехал в принципы модульности — как разруливать пересечение по именам функций для разных записей и т.п.?

лучше на конкретном примере, т.к. подойти с разных сторон, а так или:

import qualified Foo as Foo
import qualified Bar as Bar

Foo.foobar
Bar.foobar
или классом типов
class Buz where buz = ..
instance Buz Foo where buz = foo
instance Buz Bar where buz = bar

Неудобно же?

больших проблем не замечал, только если с использованием толпы разных векторов.

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