Swift programmers frequently encounter programming problems that require writing lots of code. Writing code is hard and boring. From a pedagogical perspective, teaching people how to write lots of code takes up time that could be spent bikeshedding the syntax of an important new language concept, finishing that novel you always wanted to get around to, or feeding your carnivorous plants.
I propose a new keyword spelled
dowhatiwant. Many proposals have been written over the years to make Swift easier and more powerful. The problem is that they only tackle one feature at a time. The
dowhatiwant keyword subsumes all of these features, presenting a much simpler and more comprehensive solution that drastically reduces the amount of code written as well as making the language much easier to understand. With less code, the chances of introducing bugs are greatly reduced, and with so little to complain about, even Siracusa might be sort of happy with it.
Writing in code-maker make head hurt. Internet not help. But
dowhatiwant do it for me.
By writing the following code:
/* Copyright 2019 my 90s Quake handle ^_sKuL_kULLeCtOr_^ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ dowhatiwant
At this point, the compiler generates the necessary code.
The details of the implementation are an implementation detail. Describing those details would violate the spirit of this pitch. Therefore, they are necessarily left up to the compiler team. They can update the implementation details whenever they want to take advantage of sick new technologies, leading to the illest apps. Your friends will be all, "How did you write this app?" and you'll give them a knowing wink, and they won't know why you did, but you will.
I thought about this a little bit in the shower where I got my last five great ideas, and I couldn't think of anything that would break, so it's totes an additive feature.
The classic Currency Converter sample application can be replaced with the following:
Teachers will love the ease of grading assignments from students, which will typically take the form:
With this feature, responding to the hard problem of consciousness is no problem for the Swift compiler:
Errors are handled as follows:
dowhatiwant dowhatiwant ^--------------- Error: I already did that.
Teaching programmers about algorithms, program design, and, what's that term called, first principles
This solution carries with it an enormous degree of time and energy overhead. Besides, a comprehensive playground that teaches these concepts, grades them, and charges the appropriate fees can be written as follows:
The credit card processing service can be written similarly.
A cursory survey of developers resulted in 5,472 alternate spellings, including but not limited to:
doitforme doitnow insertcodehere makemycode finishcopland feedmeseymore besuretohitsubscribeandSMASHthatlikebutton
followed by 5,465 comedy emoji spellings.
Effect on Swift itself
Naturally, with so little Swift code being written, the next step will be to deprecate the entirety of the language and encourage users to adopt the new keyword going forward, providing a migration step in Xcode to ease the transition. Future updates to the compiler can take advantage of the new language feature as follows: