Вопрос о теории простого программирования - PullRequest
2 голосов
/ 21 января 2010

Привет, ребята, кто-нибудь знает, почему язык программирования C ++ более широко используется в приложениях биометрической безопасности по сравнению с языком программирования Java? Ответы, которые я собрал до сих пор: 1) Виртуальные компиляторы 2) Библиотека OpenCV, предоставляемая C ++. Может кто-нибудь помочь с этим вопросом ??

Ответы [ 6 ]

6 голосов
/ 21 января 2010

Может быть, это аппаратная поддержка: я написал приложение, которое использует датчик отпечатков пальцев. Поддержка библиотеки для устройства - C ++, поэтому я написал приложение на C ++. Теперь у них версия .NET, поэтому мое следующее приложение будет C #.

2 голосов
/ 21 января 2010

Я не знаю конкретно о биометрических приложениях, но в целом, когда важна безопасность, Java может быть камнем преткновения. В зависимости от того, как написаны требования безопасности, они могут охватывать вещи, которые нужно делать вручную в C ++, но которые автоматически выполняются Java. Это создает проблему, поскольку необходимо продемонстрировать, что Java должным образом (и своевременно!) Удовлетворяет этому требованию. Гораздо проще показать, что эти требования выполняются в коде C ++, потому что код, отвечающий требованиям, является частью рассматриваемой программы.

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

1 голос
/ 21 января 2010

Реализация библиотеки на C ++ обеспечивает многое по сравнению с Java. После написания библиотека C ++ может работать практически на любой платформе (включая встроенные), и ее можно сделать доступной как собственный импорт для множества других языков с помощью таких инструментов, как SWIG . Java может работать только на чем-то с достаточной скоростью и памятью для запуска JVM, и только другие программы Java могут включать код в качестве встроенного импорта. Особенно для биометрических приложений я думаю, что работа на встроенных системах была бы большой проблемой, так как вы могли бы встроить это в маленький датчик.

Более откровенный ответ: никто не хочет ждать, пока ваш цикл сбора мусора запустит ракеты.

1 голос
/ 21 января 2010

Я готов вкладывать деньги по той простой причине, что API для доступа к оборудованию написаны на c ++. Большинство современных / высокоуровневых языков не будут легко взаимодействовать с аппаратным обеспечением, изначально представленным через API C / C ++.

В некотором родственном примечании Vala обладает всеми возможностями языков, которые ожидаются от современного языка \ высокого уровня (а затем и некоторых), но компилируется в двоичный и исходный языки C и может легко использовать любая библиотека, написанная на C (не уверен насчет c ++). Проверьте это, я часто использовал это, но это довольно круто.

0 голосов
/ 21 января 2010

Для некоторых биометрических приложений скорость выполнения имеет решающее значение.

Например, допустим, вы выполняете распознавание лиц для контрольной точки, а Java занимает вдвое больше времени для запуска алгоритма, чем такой компилируемый язык, как C ++. Это означает, что если вы используете Java, либо:

  • Строки контрольных точек будут в два раза длиннее,
  • Вам придется платить сотрудникам вдвое больше контрольно-пропускных пунктов, либо
  • Ваша система будет в два раза лучше распознавать лица

Ни один из этих обычно не приемлемых вариантов, что делает использование Java не стартером.

0 голосов
/ 21 января 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...