AI in Programming: Challenges and Future Vision