4 ms·
"'What we need is not more programmers. What we need is to enable non-programmers to participate in the creation process, not just the ideation process,' says K
by albeec13 13y ago
"'What we need is not more programmers. What we need is to enable non-programmers to participate in the creation process, not just the ideation process,' says Kenneth Kan, CTO of a company called Pixbi and a recent convert to flow-based programming."
Could not disagree more. I'm so tired of these initiatives to "get everyone coding!" Everyone can't be a programmer, just like everyone can't be a doctor and everyone can't be a mechanic. There are certain skills, mindsets, and desires that drive people to do what they do.
- smokel 13y agoI agree that it is tiresome to see some of these initiatives, but you may consider the analogue that many people now can write, even though not everyone writes literature.
- albeec13 13y agoThe important distinction is that knowing how to read and write is a basic skill everyone needs in order to be an effective human being. Similarly, everyone needs to know math and problem solving skills (the major basis of programming) to be effective human beings. In other words, I fully support the push for STEM, but force-feeding programming into the agenda is both unnecessary (as those interested in math, problem solving and computers will tend to go into programming fields) and potentially counterproductive (having many unskilled "programmers" trying to touch important software could be catastrophic in many cases.) It's kind of like the groups of script-kiddies who consider themselves "hackers" but really aren't doing anything but utilizing tools real hackers have created. This is how NoFlo (from the article) strikes me.
- dragonwriter 13y ago> The important distinction is that knowing how to read and write is a basic skill everyone needs in order to be an effective human being. I don't think that's true. Its something people may need to be (or, at least, greatly benefit from in being) effective members of modern society, but all the people that weren't part of the literate minority when literacy was rare (or before writing existed) were not "ineffective human heings".
- meemoo 13y agoEveryone can't be a doctor, but everyone should have a basic grasp of how their body works in order to live well. Same with programming, if everybody had some base level of algorithmic literacy, they could at least have some idea if a mind-numbing repetitive task could be done with a simple script. IFTTT does a great job of making it easy to glue web services together. NoFlo could be a powerful step up from that.
- albeec13 13y agoAbsolutely agree with you. There are basic skills at the root of every industry that we should all be exposed to and taught in school. I'd argue that "algorithmic literacy" falls into the "math" category, and those who are interested in math will often pursue computer science. I just don't see why there should be huge initiatives to teach "everyone" programming, like the quoted portion of my post claimed. Regarding IFTTT, I have to say it's a wonderful service and does an amazing job dumbing down powerful APIs and interconnecting them. However, I would love to see a study of how many non-technical people utilize it, and/or how many recipes come from people who are otherwise uninterested or ignorant to programming and computer technologies. I'm willing to bet it's very low. It's easy to understand an IFTTT recipe in plain English, but it's a whole other ballgame trying to come up with them yourself.
- scj 13y agoI think what most people don't realize is that thedailywtf is cathartic to the modern programmer. We really need less modesty and admit "Programs can be fucked up, and some people shouldn't be allowed to write them." (Of course, I don't care if a random person is fiddling with code in their spare time. It is when they are writing code that will be used by multiple people for years that ability starts to matter. Especially in large code bases.) Anyway, back to the article... Consider that a user wants to transform an input (inp) with operation X. Does it matter to them if X(inp) is a program they would invoke normally, or a function within an existing language? The former is probably more user-friendly, but both are conceptually similar. If the tool is handed to a user they can probably beat either solution together without much effort (assuming the environment to run said code isn't too complex). But what if operation X is a unique problem that doesn't exist in a common library? The moment operation X needs to be written is where people need to become programmers (or have programmers do the work for them). If your business is large, pay professionals to do it, and let them get requirements and feedback from domain experts. I'm asserting that management is capable of finding competent programmers. Which can be difficult. But hiring based on a mix of portfolio and credentials will probably yield better results than trying to train a domain expert to write code. Getting back to the general point, there isn't a general solution for writing maintainable and scalable code. Being able to recognize good and bad code is a hard won skill. Being able to write and design it is even harder. This article asserts that FBP is not only a silver bullet for designing large code bases, but also one so simple that a non-programmer can use it. This isn't to say FBP is worthless. I think it could be used as a limited DSL in certain cases. For example, permitting an advanced user to describe a filter of data where conditional criteria for multiple fields.