Min åsikt är att högnivåspråk är alldeles OK... OM man VET vad som händer "under".
Har man klart för sig vad som händer när man ställer register osv och kan leta upp informationen om HUR man ska göra är t.ex. C helt OK.
Men sitter man fast i att man måste använda de "färdiga" rutiner för att t.ex. använda ett LCD, inte kan köra interrupt för att man inte förstår mekaniken och funktionen osv. är högnivåspråk direkt förstörande!
Man börjar då t.ex. att använda delay-funktioner istället för att ha en timer-interrupt och hela programstrukturen blir allvarligt lidande. Detta betyder att OM man skulle ta steget vidare och faktisk förstå hur det hela fungerar kan man mycket väl har lärt sig "fel tänk" i programmeringen och att komma därifrån är mycket besvärligt.
Därför har jag MYCKET emot de färdiga rutiner som t.ex. MikroC erbjuder för att interface med LCD, 1-Wire osv, hade källkoden varit med hade det varit en helt annan sak men som det är finns de bara som en "black box" utan insyn.