«Более портативный», вероятно, не лучший вопрос.Что вам нужно сделать, это определить платформы, которые вам, возможно, целесообразно поддерживать, и выяснить, доступны ли для них C и / или Java.Если оба доступны, то переносимость не проблема для вас.Тот факт, что C доступен на большем количестве платформ (которые, вероятно, есть), многие из которых могут быть очень неясными, не имеет значения.
Если это просто абстрактная дискуссия, то уместным ответом будет «кого это волнует»?
РЕДАКТИРОВАТЬ: В ответ на комментарии.
Это не просто "выкуп продукта на этой неделе".Если вы ориентируетесь на рабочий стол, то Windows, Mac и Linux покрывают около 99,99999999% всех установок (дайте или возьмите несколько девяток), и все они имеют Java.
Если вы нацеливаетесь на мобильные устройства, то вы можете посмотреть, у кого есть Java, но вам все равно придется проделать работу по переносу между ними, и использование C вам не поможет.
Какие еще платформы вы рассматривали для таргетинга?IBM 370?Дек VAX?OS9?Если вы не можете придумать платформу, на которую вы хотите нацелиться, но не относящуюся к одному из вышеперечисленных, то дополнительная мобильность тратит ваше собственное время.И помните, что при прочих равных C разработка будет медленнее, чем Java.Если вы собираетесь тратить свое драгоценное время на написание на C, вам лучше получить от него что-то, что вам, вероятно, понадобится.
Если вы хотите создать «универсальный инструментарий», который вы можете использовать в различныхпроекты в течение следующих десяти лет, тогда «один язык» не поможет.Если вы работаете над Java-проектом, включение кода на C достаточно сложно, так что, вероятно, оно того не стоит, даже если это позволят соображения безопасности.Вероятно, вам понадобится отдельный набор инструментов для каждого языка, на котором вы собираетесь работать - один для Java, один для C и т. Д. Набор C, вероятно, будет включать такие вещи, как расширяемые массивы и другие бесплатные компоненты Java.В любом случае: сначала выберите язык для каждого проекта, а затем извлеките соответствующий набор инструментов для этого языка.