А в чём принципиальная разница для МК между С# и Java? Если это однонишевые продукты с весьма схожим внутренним ( и внешним ) устройством ? Писал я и на Java и на С#, разницы между ними принципиальной не вижу. В любом случае рантайму и там и там потребуются гигагерцы тактовой и гигабайты ОЗУ для обслуживания языковых потрохов. Какие такие atmega8 ?
Если хочется C# для МК, то есть ARM весьма недорогие, цепляем к нему ОЗУ, флэш-память, прикручиваем Windows CE и под него пишем на .NET
Или ещё проще - берем разбитый какой-нибудь автомобильный навигатор с целым процессором, подпаиваемся к GPIO ( если это возможно ) прошиваем в него свою программу - и готов девайс для мигания светодиодами на C#
Нашествие C# и Java на embedded мир неизбежно, поскольку это позволяет привлечь широкий спектр индусопрограммеров для разработки ПО для встраиваемых систем. Но реально это 100% приведет к конкуренции между людьми, способными мигать светодиодами на Тини с людьми, мигающими ими же на ARM11 с гигабайтом ОЗУ с аппаратной JVM внутри, ибо это минимальные требования для фреймворка, которым они привыкли пользоваться. И последние в конце концов победят