Developers are always looking for  and sometimes making  the next tool that will simplify or eliminate steps in building an application Abstractions are necessary for eliminating tedious and time consuming tasks