Два приложения ушло в продакшен:
раз,
два. Обе программы работают с девайсами через ком-порт. В первом случае в ноде-вебкит оболочку не паковал, а использовал локальный-веб сервер, где и размещалась основная логика и он динамически генерировал GUI на хтмл и там еще пара аякс-скриптов. Это связано с тем, что изначально все планировал в браузере сделать, а уже потом узнал про вебкит и его заюзал. Так сказать проба пера — имеет ли смысл переходить на веб-GUI.
Второй вариант пошел чуть другим путем: разделил логику программы и GUI, соответственно вся логика GUI на JS с менюшечками, драг энд дропом и другими плюшками, вся логика работы с девайсом в отдельном приложении с вебсокет-сервером.
Надо сказать, что вебсокеты довольно удобный механизм взаимодействия с браузером. GUI прицепил к экзешнику ноде-вебкит, защиту не применял пока, но планирую. Чтобы хоть что-то было, ибо оно все равно распаковывается в TEMP и там все лежит/остается лежать в открытом виде. В идеале хотелось бы сделать несколько иной механизм работы: чтобы не распаковывалось на диск, а сразу использовалось бы из памяти. Но все равно, кому надо — просто сделает дамп памяти процесса и вытащит все, что ему надо. Время задержки на локалхосте в среднем 1-2 мс, что очень даже хорошо. Единственная особенность: веб-сокет сервер надо делать с несколькими потоками для приема данных, иначе пакеты теряются при непрерывном потоке от браузера. Т.е в цикле с браузера идут мессаги на сервер, а в силу особенности данных все сообщения надо обрабатывать по-очереди в одном потоке: просто запись трех чисел в переменную(т.е. ресурсоемкости никакой), так все равно большая часть мессаг не доходит. Поэтому просто сделал очередь на JS и месагe о приеме от сервера.
В общем, на данный момент могу точно сказать, что опыт в целом положительный, GUI меняется и переделывается очень легко, независимо от сложности. Опять же, глюки/ошибки в GUI не приводят к крешу всего приложения и пользовательских данных.