6 Самих кумедних мов програмування, changellenge
Ми не сумніваємося, що ви за своє життя встигли дізнатися про безліч мов програмування: як мінімум про Assembler, Pascal, С ++, C # (як до-дієз, тільки сі-Шарп), Java, Python, Ruby, Haskell. У всіх них є віддані фанати і люті противники; різні мови можуть заточуватися під певну задачу або бути більш універсальними, однак в більшості своїй вони використовуються розумними бородатими (або безбородими) розробниками для вирішення професійних завдань.
Але коли програмістам надокучає серйозні мови програмування, вони починають розробляти нові, тільки не самі звичайні, а езотеричні. Створюються такі мови для дослідження меж можливостей розробки мов програмування, як твори програмного мистецтва, або, як найчастіше і трапляється, як жарт. При цьому багато хто з езотеричних мов потенційно нітрохи не гірше класичних, тобто теоретично їх можна використовувати і в справжніх проектах.
Езотеричні мови часто пародіюють «серйозні», а тексти програм на них зрозумілі лише присвяченим. У той час як розробники реально використовуваних мов намагаються зробити синтаксис максимально зрозумілим, а сам процес написання коду - зручним, творці езотеричних мов зазвичай ставлять перед собою протилежні завдання.
Shakespeare
Якщо ж ви не готуєте, ходите є в ресторани і вважаєте за краще духовну їжу, знайдеться
варіант і для вас. Shakespeare - езотеричний мову програмування, розроблений Джоном Аслаудом і Карлом Хассельстромом. Мова Shakespeare покликаний замаскувати вихідний код програми під п'єси Вільяма Шекспіра.
Перш ніж персонажі зможуть брати участь, вони повинні спочатку вийти на сцену. Щоб помістити персонажа на сцену, його необхідно викликати командою Enter. Одночасно на сцені можуть знаходитися тільки два персонажа. Інакше не ясно, з ким ведеться спілкування. Щоб персонаж покинув сцену, необхідно звернутися до нього командою Exit. Якщо акт закінчується, або необхідно просто прогнати декількох персонажів, то необхідно використовувати команду Exeunt.
В результаті виходить і п'єса, і програма: