Выбор средства для создания системной утилиты
От: frontsquat  
Дата: 29.09.13 14:35
Оценка:
Здравствуйте.

Если бы перед вами стоял выбор средства для создания системной утилиты со следующими требованиями:
— кроссплатформенность (Linux/Windows/Mac OS)
— простое развертывание в виде единого исполняемого файла без лишних зависимостей
— легкая многопоточность
— встроенный веб-сервер (для UI)
— достаточный набор библиотек и хорошая интеграция с C

...чтобы вы выбрали? Утилита работает с сокетами и последовательными портами. Для таких задач должен хорошо подойти Go. Может быть еще Haskell (не уверен, можно ли там все слинковать статически) и C + Lua. Будут ли еще какие мнения?
Re: Выбор средства для создания системной утилиты
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 29.09.13 16:04
Оценка: 1 (1)
Здравствуйте, frontsquat, Вы писали:

F>Будут ли еще какие мнения?


D. См. например
http://vibed.org/
Re[2]: Выбор средства для создания системной утилиты
От: frontsquat  
Дата: 29.09.13 18:08
Оценка:
Здравствуйте, D. Mon, Вы писали:

F>>Будут ли еще какие мнения?


DM>D. См. например

DM>http://vibed.org/

Спасибо, буду смотреть. Есть положительный опыт использования D?
Re: Выбор средства для создания системной утилиты
От: Sharov Россия  
Дата: 29.09.13 18:25
Оценка:
Здравствуйте, frontsquat, Вы писали:

c++, python
Кодом людям нужно помогать!
Re: Выбор средства для создания системной утилиты
От: vsb Казахстан  
Дата: 29.09.13 18:48
Оценка:
C
Re[3]: Выбор средства для создания системной утилиты
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 30.09.13 04:38
Оценка: 8 (1)
Здравствуйте, frontsquat, Вы писали:

DM>>D. См. например

DM>>http://vibed.org/

F>Спасибо, буду смотреть. Есть положительный опыт использования D?


Да, на vibe.d я делал сайт для одного соревнования, разрабатывал под виндой, результат крутился на линуксе, все получилось быстро и работало хорошо.
Еще делал несколько GUI-ных программ под винду, тоже понравилось (по ощущениям — как C#, только не требует дотнета и запускается мгновенно).
Re[4]: Выбор средства для создания системной утилиты
От: frontsquat  
Дата: 30.09.13 07:46
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>>>D. См. например

DM>>>http://vibed.org/

F>>Спасибо, буду смотреть. Есть положительный опыт использования D?


DM>Да, на vibe.d я делал сайт для одного соревнования, разрабатывал под виндой, результат крутился на линуксе, все получилось быстро и работало хорошо.

DM>Еще делал несколько GUI-ных программ под винду, тоже понравилось (по ощущениям — как C#, только не требует дотнета и запускается мгновенно).

Тогда может дадите совет по выбору IDE (или будет достаточно Vim). Что использовали для GUI? Есть ли возможность все слинковать в один бинарник, без использования динамических библиотек? Может быть еще какие-то моменты, о которых хорошо бы знать начинающему освоение D. Так понимаю, что закладывать разработку на D не более рисковано, чем на Go (в плане развития и поддержки языка).
Re[5]: Выбор средства для создания системной утилиты
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 30.09.13 09:22
Оценка: 3 (1) +1
Здравствуйте, frontsquat, Вы писали:

F>Тогда может дадите совет по выбору IDE (или будет достаточно Vim). Что использовали для GUI? Есть ли возможность все слинковать в один бинарник, без использования динамических библиотек? Может быть еще какие-то моменты, о которых хорошо бы знать начинающему освоение D. Так понимаю, что закладывать разработку на D не более рисковано, чем на Go (в плане развития и поддержки языка).


Я пользуюсь VisualD — это плагин к Visual Studio, довольно неплохой.
Для GUI использовал DFL ( https://github.com/Rayerd/dfl ), это чисто виндовая штука. Линкуется статически, получается exe-шник около 1 МБ безо всяких зависимостей от каких-либо дополнительных DLL-ок. Если хочется GUIя под другие платформы, стоит сразу брать что-то другое, тот же GtkD или DWT.
В целом надо понимать, что язык существенно мощнее Go, но реализация менее отлаженная, местами все еще можно напороться на баги компилятора, хоть последнее время все реже это бывает. Еще GC там медленный и частично консервативный, потому лучше его сильно не нагружать.
На сайте описание языка какое-то обрывочное. Есть очень хорошая книжка про D у Александреску (продается), и есть вот такая бесплатная:
http://ddili.org/ders/d.en/
Re[6]: Выбор средства для создания системной утилиты
От: frontsquat  
Дата: 30.09.13 10:50
Оценка:
Здравствуйте, D. Mon, Вы писали:

F>>Тогда может дадите совет по выбору IDE (или будет достаточно Vim). Что использовали для GUI? Есть ли возможность все слинковать в один бинарник, без использования динамических библиотек? Может быть еще какие-то моменты, о которых хорошо бы знать начинающему освоение D. Так понимаю, что закладывать разработку на D не более рисковано, чем на Go (в плане развития и поддержки языка).


DM>Я пользуюсь VisualD — это плагин к Visual Studio, довольно неплохой.

DM>Для GUI использовал DFL ( https://github.com/Rayerd/dfl ), это чисто виндовая штука. Линкуется статически, получается exe-шник около 1 МБ безо всяких зависимостей от каких-либо дополнительных DLL-ок. Если хочется GUIя под другие платформы, стоит сразу брать что-то другое, тот же GtkD или DWT.
DM>В целом надо понимать, что язык существенно мощнее Go, но реализация менее отлаженная, местами все еще можно напороться на баги компилятора, хоть последнее время все реже это бывает. Еще GC там медленный и частично консервативный, потому лучше его сильно не нагружать.
DM>На сайте описание языка какое-то обрывочное. Есть очень хорошая книжка про D у Александреску (продается), и есть вот такая бесплатная:
DM>http://ddili.org/ders/d.en/

Спасибо за исчерпывающий ответ.
Re[7]: Выбор средства для создания системной утилиты
От: nau  
Дата: 30.09.13 14:42
Оценка: 3 (1) +1
Здравствуйте, frontsquat, Вы писали:

F>Спасибо за исчерпывающий ответ.


Тут принято нажимать Спасибо
Автор: D. Mon
Дата: 30.09.13
или Супер
Автор: D. Mon
Дата: 30.09.13
за исчерпывающий ответ
В теории практика не отличается от теории, но на практике — отличается
Re: Выбор средства для создания системной утилиты
От: Sorc17 Россия  
Дата: 30.09.13 16:29
Оценка:
Здравствуйте, frontsquat, Вы писали:

F>Здравствуйте.


F>Если бы перед вами стоял выбор средства для создания системной утилиты со следующими требованиями:

F>- кроссплатформенность (Linux/Windows/Mac OS)
F>- простое развертывание в виде единого исполняемого файла без лишних зависимостей
F>- легкая многопоточность
F>- встроенный веб-сервер (для UI)
F>- достаточный набор библиотек и хорошая интеграция с C

F>...чтобы вы выбрали? Утилита работает с сокетами и последовательными портами. Для таких задач должен хорошо подойти Go. Может быть еще Haskell (не уверен, можно ли там все слинковать статически) и C + Lua. Будут ли еще какие мнения?


В моём понимании, системные утилиты пишут только под конкретную ОС и на языке этой ОС. Остальное можно смело считать прикладными программами. ls — системная утилита, а Total Commander — прикладная программа, не смотря на то, что она тоже позволяет пользователю совершать действия с файловой системой.
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re[2]: Выбор средства для создания системной утилиты
От: frontsquat  
Дата: 30.09.13 18:22
Оценка:
Здравствуйте, Sorc17, Вы писали:

F>>Если бы перед вами стоял выбор средства для создания системной утилиты со следующими требованиями:

F>>- кроссплатформенность (Linux/Windows/Mac OS)
F>>- простое развертывание в виде единого исполняемого файла без лишних зависимостей
F>>- легкая многопоточность
F>>- встроенный веб-сервер (для UI)
F>>- достаточный набор библиотек и хорошая интеграция с C

F>>...чтобы вы выбрали? Утилита работает с сокетами и последовательными портами. Для таких задач должен хорошо подойти Go. Может быть еще Haskell (не уверен, можно ли там все слинковать статически) и C + Lua. Будут ли еще какие мнения?


S>В моём понимании, системные утилиты пишут только под конкретную ОС и на языке этой ОС. Остальное можно смело считать прикладными программами. ls — системная утилита, а Total Commander — прикладная программа, не смотря на то, что она тоже позволяет пользователю совершать действия с файловой системой.


Хоть горшком назови... Может быть это системная утилита для работы с каким-то внешним устройством. Дело не в названии. Мне удалось получить ответы на интересующие вопросы.
Re: Выбор средства для создания системной утилиты
От: SkyDance Земля  
Дата: 01.10.13 01:42
Оценка:
F>...чтобы вы выбрали?

Если это единоразовый проект не очень большого разммера — то, с чем больше всего опыта работы.
Re[2]: Выбор средства для создания системной утилиты
От: Философ Ад http://vk.com/id10256428
Дата: 04.10.13 21:58
Оценка:
Здравствуйте, Sorc17, Вы писали:

S>В моём понимании, системные утилиты пишут только под конкретную ОС и на языке этой ОС. Остальное можно смело считать прикладными программами. ls — системная утилита, а Total Commander — прикладная программа, не смотря на то, что она тоже позволяет пользователю совершать действия с файловой системой.


под какую конкретную ось написан ls?
(под виндой она тоже есть, ибо posix)

а на каком языке должен быть написан Total Commander, чтобы стать системной утилитой?
Всё сказанное выше — личное мнение, если не указано обратное.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.