Кіріспе

DWIM (Do What I Mean) компьютерлік жүйелері пайдаланушылардың не істеуге ниеттенгенін болжауға тырысады, пайдаланушылардың нақты, бірақ қате болуы мүмкін нұсқауларын сліптей орындаудың орнына, шамалы қателерді автоматты түрде түзетеді.

Бағдарламалық жасақтама

Термин 1966 жылға дейін Уоррен Тейтельманның BBN Lisp үшін жасаған DWIM пакетінде, оның PILOT жүйесінің бір бөлігі ретінде пайда болды.

Emacs

DWIM тұжырымдамасы кеңейтілген нысанда GNU Emacs мәтіндік редакторының аясында, Emacs Lisp функцияларының немесе командаларының дизайн философиясын сипаттау үшін қабылданды, олар контекстке байланысты "дұрыс нәрсені" ақылмен жасауға тырысады. Emacs вики екі dired буфері бар бөлінген терезе конфигурациясынан мақсатты жолды анықтай алатын файл көшіру командасының мысалын келтіреді, олардың бірі бастапқы жолды көрсетеді; бұл мінез-құлық аргумент ретінде екі каталог жолын қабылдайтын көптеген қолданылатын dired әрекеттеріне де қатысты. DWIM мінез-құлқы қолжетімді болған жағдайда, команда атында жиі айтылады; мысалы, GNU Emacs-те таңдалған аймаққа егер комментарий болмаса, комментарий қосатын немесе егер комментарий болса, оны алып тастатын dwim функциясы бар, сонымен қатар бағдарламалау тілінің ортасына және ағымдағы контекстке сәйкес комментарий белгілерін және кіріспелерді пайдаланады. DWIM-нің осы түрі көбінесе пайдаланушының қатесін түзетумен тікелей байланысты емес, керісінше қолжетімді контекстен пайдаланушының ниетін болжауға бағытталған. Мысалы, Emacs Magit пакеті осы дизайн философиясын тұрақты түрде көрсетеді. Оның көптеген diff командаларының ішінде magit diff dwim командасы бар, ол пайдаланушыдан қосымша ақпарат сұрамайды, тек курсордың орналасқан жеріне сүйене отырып, пайдаланушы нені талдағысы келетінін болжайды. Magit пайдаланушы нұсқаулығында magit diff dwim мінез-құлқы былай сипатталған: "Нүктенің өзгеруін көрсету", мұндағы "нүкте" – Emacs терминінде курсор.