6 ms·
Not just young people. As in other creative arts, if the tooling is over-complex or high-friction it can simply kill the creative flow. We should aim to make th
by dTal 7y ago
Not just young people. As in other creative arts, if the tooling is over-complex or high-friction it can simply kill the creative flow. We should aim to make things pleasant to use for experts as well as beginners. There is a great deal of philosophical resistance to this idea hiding just under the surface, driven perhaps by a sense that difficult interfaces are a test of worthiness. Consider the barrier to entry to create a 'hello world' mobile app - it seems awesomely, perversely difficult compared to the intrinsic simplicity of the task. I would argue that this is deliberate gatekeeping - if ordinary people could create content, this would threaten an awful lot of business models, including and especially the business models of people who run app stores and take a cut of the profits. Can't have the techno-serfs programming, can we?
- blueboo 7y agoah yes, the famous "intrinsic simplicity" of writing, compiling, and deploying an app to an embedded device... ...perhaps you mean the countless drag-and-drop code-free frameworks that enable people to create apps without writing code? Or that a basic Swift tutorial to do just that takes about 15 minutes, including downloading Xcode? I just can't understand this confused nostalgia.
- buboard 7y ago> the famous "intrinsic simplicity" of writing, compiling, and deploying an app to an embedded device. 90% of apps can be replicated as web pages, which are far, far easier to program and deploy. Frameworks do add a lot needless of complexity for little benefit. The reason is not a "test of worthiness" though - the purpose is developer lock-in and make it as much difficult as possible to switch to the competing platform. The only way to win this game is not to play
- Osiris 7y agoMy company has been using expo for mobile development because you can build a React app and expo does all the work to make it work on Android and iOS. It's not perfect but since we're doing React for the web app, it's allowed web devs to become mobile devs with almost no additional training.
- thrower123 7y agoWhy designing most mobile apps should be harder than slamming together VB6 form applications is something that is not entirely clear to me. Although when people start arguing that programming a web page is easy, it really brings home how awful modern programming is, and how long it has been since there was widespread usage of really decent and simple RAD tooling.
- pjmlp 7y agoIt gets close enough if one just focus on one platform. Or if one shells out to Delphi, RemObjects, Xamarin, Qt.
- dTal 7y agoEmbedded device? It's a handheld unix computer. Ironically, actual embedded devices are far easier to program, with Arduino. You type your code in a window (with all boilerplate and build system abstracted away) and click a button, and boom it's compiled and uploaded and running. This is because it was designed to be easy to use - ostensibly to teach young people, but in practice it means lots of hackers use it too.
- detaro 7y agoIt's not the default, but you can have that kind of experience with various toolkits for mobile devices too. I've seen workshops which kids left after an afternoon with their own simple "game" deployed to their phones.
- heavyset_go 7y agoThere is a lot of legacy from the age of "the hardware can barely run it, but we're sticking a Unix with a graphics system on it anyway"
- blueboo 7y agoAnd every Arduino-like platform there are dozen Processing, Scratch, myriad drag-and-drop app builders... Yep, it's never been easier
- bpye 7y agoIn my experience Flutter does make getting a simple mobile app running quickly easy. It's not a drag and drop experience but the programming model is such that it doesn't take much code to get something interesting.
- svaha1728 7y agoAs an older programmer, Flutter is the closest thing I’ve felt to programming as a kid. It’s given me some hope that the JavaScript era will fade as a dark night of the programming soul. Kudos to the development team that put Flutter together.
- heavyset_go 7y agoOf all of the areas where there is legitimate gatekeeping, like with the AMA and residency limits, software is one of the worst examples you could have picked. Software is one of those spaces where there is an incredible amount of capital invested in making things easy for the lowest common denominator. There are so many resources for people of any age and background to learn practical skills in this field. There are summer camps where 7 year old kids learn to program.
- big_chungus 7y agoNot exactly. Such camps certainly exist, but they're not for everyone. I was tinkering with Linux at 7, but only because I had a technical parent who put it on the family computer. I'd say the important part here was that I wasn't given a coding bootcamp course to go through, I just got to play. Eventually, I figured out how to use single-user to re-set the root password and play as much supertux as I wanted. This probably shaped my passion for technology and "solving puzzles" of a technical nature more than anything else. I'd say if you really want youth interested in technology, you basically need a "montessori model" for computers. I don't believe that's likely to happen in school; you need funding, which requires measurable results. There's also too much bad stuff on the internet for schools to run that risk at that scale. There are two rough classes into which I would break "tech guys". The first is the sort who enjoys it for what it is. Shaves yaks configuring his system, tries out new languages for the heck of it, that sort. The second has a perfectly respectable career in software, and enjoys other things when he comes home at five p.m. I'm not saying one is better or worse, but at seven years of age, you'll only have the few of the first type _really_ interested. Type two will often switch to a different toy once frustrated (i.e. upon a serious bug). You can't expect everyone to derive the same level of marginal benefit from just playing with tech. Type twos necessarily better or worse, but we don't put kids into "plumbing boot-camp" at seven expecting them to develop life-long passions. Maybe a few will, but not many. To put it another way, you'll get a lot more kids into architecture letting them play with legos free-form than handing them a kit and saying, "Build this model by following the instructions."
- watwut 7y ago
- strken 7y agoI don't think it's gatekeeping. I think it's because experts need different tools to beginners, and have louder voices when a tool doesn't meet their needs. Consider Ruby on Rails. It was the most beginner-friendly way to create a web app when it was popular, but the very things that made it that way - opinionated design, sacrificing speed/correctness/scale by using Ruby, "batteries included", and a cultish fanbase that drew new users to it - made it the target of justified criticism from experts who wanted flexibility, type safety, speed, lightweight design, fewer CVEs, and fewer annoying fanboys. Flash came under fire for similar things: performance issues, poor UX when used in the wrong place, constant security vulnerabilities, being a proprietary standard. These are actually good criticisms! There's no shadowy cabal who arranged feigned outrage over flash vulnerabilities, people were genuinely upset that a proprietary piece of software was turning their browser security into a sieve and stopping screenreaders from working. The criticisms just failed to ask why it was so popular with beginners anyway.
- cknoxrun 7y agoI agree with much of what you say, but I disagree that RoR was "beginner friendly". It had/has a steep learning curve. From personal experience, and from the (continuing) weekly HN "Hiring" posts that are looking for Rails devs, Rails is popular because it allows you to build an MVP for an entire product or company over a week. It gets rid of all the distractions when it comes to assembling the perfect stack and just works. It's not perfect by far, but, like Flash, it allows you to shortcut the technical work and get right to the creative work.
- tripzilch 7y agoActually, if you use Processing with Android mode, it's pretty easy to create a simple app. I made something with circles falling down the screen that you have to tap and they explode in a nice satisfying particle explosion (it was mainly to test and demonstrate the surprising addictiveness of even such a simple game feature). This took about an hour, starting from a clean Processing install, including having to select and install (checkbox + button) the Android mode and writing about 50 lines of code. In all fairness, I'm already quite familiar with graphics programming with Processing, but even that is super easy, I teach it to kids starting from age 10-11 (if they're clever and curious enough). But these kids, the clever and curious ones, they'll find this on their own too, and truly many more cool and free things to create stuff with online. A few years back, they were all over these free github student developer packs, especially the credits for a Digital Ocean droplet server, which they used to host sites, minecraft servers (IIRC) or Discord bots.