The Future of Software: Vibe Coding and Beyond