8 ms·
I don't understand why the article thinks it's reasonable for someone with literally 0 experience to develop an application with multiple features and integrati
by b3morales 5y ago
I don't understand why the article thinks it's reasonable for someone with literally 0 experience to develop an application with multiple features and integrations with other systems from scratch, on their own. The point about space age machines notwithstanding, this is inherently complex and skilled work.
We don't expect someone who's never touched a chisel to be able to fabricate and install a full set of kitchen cabinets, either. And there's no shame in that -- they just need to spend time learning. Or they can do the "google -> stack overflow -> copy/paste" thing by going down to their local home goods store and buying some prefab particle board units and watching a YouTube video on how to hang them. (And again, no shame -- online video can be an excellent source of craft information.)
- philipswood 5y agoAgreed. Skill comes with practice, but the on-ramp is steep today, and seemingly getting steeper. Even while todays tools can do so more, I remember my first 16k microcomputer with nostalgia. It booted immediately and into a simple known state. If you got onto trouble you could switch it on and off again. It booted into a REPL, a ROM-based BASIC. The language was simple, immediate, and with accompanying manuals discoverable. It could immediately let you program things that seemed to matter to you; text, simple sounds and graphics where all easy. The first way to use it, and the first entry point it gave was programming it. You could load programs from disk, but it was obvious that they were things that could be made - and taken sometimes taken apart (although some where understandable, some weren't. And that was a prompt to learn more). The hardware was easy to get to, even if it wasn't easy to understand, some of it was visible (like the memory mapped display). I help juniors without a lot of technical background today and there seems to be books of lore to digest before getting to something tangible.
- commandlinefan 5y agoIt makes me wonder if attempts to simplify programming have actually made it harder. I remember Visual Basic: you couldn't ask for simpler than that. Want a button? Drag a button onto your form. Want tabs? Drag tabs. Want a list that contained entries from a database? Drag the list and specify the database. VB made trivial projects trivially trivial. But whenever you tried to apply it to any real-world scenario, you'd get stuck trying to infer all of the "hidden state" that the too-simple interface was trying to shield you from. I had the misfortune of working with the original no-code too, Salesforce, for a couple of years - in spite of the name, it's not all that "sales" focused; it's actually more a "VB for web-based enterprise applications" with a sales instantiation implemented in it. It had the same problems as VB, too - it was too simple for any actual problems. Simplicity was obtained by hiding details... that turned out to be crucial for basic business functionality (and don't even think about performance).
- bsder 5y ago> Salesforce, for a couple of years - in spite of the name, it's not all that "sales" focused; it's actually more a "VB for web-based enterprise applications" with a sales instantiation implemented in it. You know, this is the first time anybody has ever been able to explain to me what Salesforce actually does.
- perl4ever 5y agoI wonder if you are confusing Visual Basic with something else. As far as I know, VBA, VBScript, and VB.Net are "regular" Turing complete programming languages that can access anything on a Windows machine and not some sort of visual programming as such. The VBA editor is not up to modern standards, but it's pretty nice from the perspective of someone who started out in the 1980s with various MS Basics. The various forms of the language are not simpler than old fashioned Basic, but have a fair amount added. What fits your description more, in my experience, is Microsoft Power Automate, which is a sort of low/no code environment that is only slightly better that Malbolge IMO. It makes it incredibly difficult bordering on impossible to reuse logic.
- sokoloff 5y agoI’m more in agreement with GP. Legacy Visual Basic had a substantial use case of visual editing of forms and form elements with a programming language behind it so you could attach actions to events. What they said resonated with my unfortunate experience working in VB for around 6 months back in the mid to late 90s.
- squeaky-clean 5y agoMy first programming class at a school was Visual Basic (Maybe 5 or 6.0?) and it was definitely very drag and drop GUI based. Drag buttons and text fields onto a panel, click them and edit their Metadata in the sidebar, doubleclick them and Visual Studio would open a file with an auto generated OnClick() handler with an empty body and a bunch of comments surrounding it saying something along the lines of "do not edit anything before/after this line." You'd run it by clicking the big green arrow button and I got an A in that class without ever knowing how to actually build and share an executable. I made a blackjack game and tried sharing it with some friends but it only ever ran on my machine (because only I had Visual Studio installed). A better teacher would have helped too, haha. Nothing against him, from what I understand he was the business class teacher and taught 1 period of intro to programming because the school couldn't find a replacement for the previous years' teacher.
- chrisco255 5y agoAs a kid the REPL was always intimidating to me. I never liked it and was always frustrated trying to get it to work whenever I was dropped into DOS. I loved GUIs and gravitated to them as a user. It wasn't until much later that I developed an appreciation for the terminal.
- majormajor 5y agoIn some ways programming should be easier than carpentry like that. In either case, you don't know what you don't know, and you have to learn what's possible, what's practical, and what tools to use for what. But in carpentry you also have to practice physical skills. "I know this router will let me do what I want but I'm not able to hold it steady enough," say. You have to translate "what I want to build" into "here are the discrete components, joints, cuts, etc" but also there's a physical skill and ability needed to perform the actions. In programming, though, turning what you want to happen into statements the language can compile is purely a problem of that translation phase. There is a lot we can do in the language and environment to make that easier - consider all the overhead of a map operation in Java (with `.stream()` and `.collect()` and restrictions like "lambdas can't throw checked exceptions") vs a list comprehension in Python. A newcomer is going to be able to pick up the latter much more quickly. I don't think that looks like "0 experience -> complex app in one day" but I think it could be a lot easier than it is today. It's already a lot easier than it was 20 years ago.
- dkersten 5y ago> But in carpentry you also have to practice physical skills In programming you have to practice mental skills. That is, abstract problem solving, logic, bigger-picture-how-things-fit-together. There's a reason many beginners struggle with concepts like pointers or recursion/recursive data types. These things become second nature with practice, just like the physical skills do, but to a beginner who has not practiced such things, they're equally difficult.
- Jtsummers 5y agoPointers are a great example of accidental complexity. Outside of very specific domains, most people writing software never need pointers. Introducing them to the end user who just wants a way to track project status is a great way to bar them from actively participating in developing their own solutions. Forcing them to be beholden to the IT department, rather than empowering them to accomplish their goals.
- 5y ago
- karmakaze 5y agoYeah I was following long with the End User story and went Wow to myself when I saw 'lein', really? We'd first have to tell them there's this thing called Terminal or Command Prompt.
- jamii 5y agoMost of the tasks in the article can now be solved by tools like airtable or notion with minimal training. Certainly much less training than would be required to do the same thing using traditional programming tools. So not only is the problem reasonable, we are actually making progress.
- civilized 5y agoWhat is airtable capable of these days? Last I checked, years ago, it was mainly an easy way to build and maintain a database. To be fair, though, a lot of apps are just a database with a CRUD UI
- jamii 5y agoA shared database with permissions and forms covers most of the task in the article. Airtable also now has an event/workflow system and a ton of integrations and plugins for doing stuff like sending email. https://www.airtable.com/product/views https://www.airtable.com/product/views https://www.airtable.com/product/automations https://www.airtable.com/product/automations https://www.airtable.com/integrations https://www.airtable.com/integrations It's getting to the point where it can handle most of the internal software needs of a small-medium company and also has a ton of javascript hooks for covering that last 20%.