Тут все зависит от назначения. В первом объект
tags гарантированно содержит по одному языку (ключу). Это, можно сказать безопаснее, но если нужно, несколько таких ключей (языков), то 2й вариант лучше. Однако 2й вариант сложнее будет обработать (если вам нужно знать выбранный ключ(язык)). Вот так будет лучше (для 2го варианта):
{
"date": "2012-05-14",
"tags": [
{"id": "Python", "value": 1},
{"id": "Java", "value": 3},
{"id": "Linux", "value": 8}
],
"status": 0
}