12 ms·
We need to have a conversation about the possible paths to make programming more widely accessible. Chris saw the problem clearly and tried to fix it. Respect.
by jonathanedwards 9y ago
We need to have a conversation about the possible paths to make programming more widely accessible. Chris saw the problem clearly and tried to fix it. Respect. I am most impressed with the number of iterations he was able to crank in the context of a startup. But ultimately a startup may not be the best place to start, because low-end programming is not a short-term growth play. We have to play the long game.
- cmontella 9y ago> because low-end programming is not a short-term growth play. We have to play the long game. This is true, and one of the reasons we opted to look at the acquisition route rather than raising another round; with raising another round, a whole lot of expectations would be attached to that surrounding growth, while we were still operating heavily in a research capacity. Languages like Rust and Go that have nice corporate incubators are a great model, but these languages tend to serve their corporate benefactors in some direct way. It's hard to pitch a greenfield project like Eve, because there's no real great way to quantify the benefits of a language before it's been fully realized.
- thinkpad20 9y ago> It's hard to pitch a greenfield project like Eve, because there's no real great way to quantify the benefits of a language before it's been fully realized. Plenty of languages have been developed without major corporate backing (especially in the beginning). Off the top of my head, elm, elixir, Haskell, ML, ruby, python, coffeescript, purescript, Idris, Agda, pony and I’m sure many others were developed at least initially by hobbyists and/or academics. I honestly don’t know a whole lot about Eve. Maybe it was too large in scope to be a side project or fully volunteer-driven. But, even if that’s the case, that’s one of the main things academia is for; perhaps Chris should go for a PhD instead of a startup. I’m sure there are plenty of schools which would give him ample time and resources to work on it for research.
- ModernMech 9y agoEach of the languages you mention are very small deltas (relatively) from our current state of the art (some more than others). It's not hard to convince one of the benefits of such languages, because they are already anchored. e.g. X language is like Y but with Types. Or, W language is like Z but with pure functions. etc. Eve was very different from any language in widespread adoption, to the point where using it didn't even feel like programming at times. Therefore, it was difficult to quantify the benefits to others (especially companies) who have not experienced them first hand. With Eve, we didn't even know the full scope of supposed benefits until we started actually using the system we imagined in our heads.
- WalterBright 9y agoYes, there's no doubt that developing a new programming language is the long game :-)
- steelmanning 9y agoSqueak and its offshoot Pharo have been trying this for years. In fact, MIT Scratch was originally based on Squeak.
- steelmanning 9y agoWhy was this downvoted? Squeak and Pharo are both pretty obviously prior art for Eve. For example, the bouncing balls demo someone linked to elsewhere in this thread looks very similar to Squeak + EToys, albeit with a dark theme. Squeak and Pharo could both use more developers, BTW: http://www.squeak.org http://www.squeak.org http://www.pharo.org http://www.pharo.org
- j4ship 9y agono we dont ... people became good programmers with the tools we have ... actually people become good programers inspite of the tools (they build the tools with the languages and ide's they have) Im not trying to lower the bar ... I want something better than these hacker rank games challenge site that distinguish the good from the bad if you can become good with what we have now, you are not good, you need to spend time and practice if you need a tool to become good , then what do you call the guys that are good anyways? Programming is not ment to be easy its a very deep and very broad profession Medicine is not easy , and you need certs I go the opposite route , we need more certs in programming , im not worried about the script kiddies who cant hold more than 2 states in their mind. I want to make it harder to enter programming so I dont have to reteach people cs ideas when they graduate from hacker rank. I want quality , not quantity from my programmers. Its not flipping burgers ... but thats exactly what these 6 week courses are touting Its because the bay area needs a cheeper work force , it cant afford the college grads any more.
- golemotron 9y agoWhat if programming is just hard?
- rntz 9y agoBuilding bridges is hard. But it's a lot easier now than it was five hundred years ago. There's no general reason to think hard things can't get easier.
- tenken 9y agoSure there is, that's why mastering a concept is hard and takes thousands of repatitions or hours to become masterful. Similarly not simply building the same old bridge, because who the hell wants bridge 1.0 I want warp-bridge 20.0 now, requires I have a mastery of basic Bridges and additional pioneering topics currently of interest of which few individuals are experts.
- indubitable 9y agoI think this is a really great point. Many people always dreamed of making games and now a days there are make-a-game kits that enable people to do just that with almost no programming knowledge necessary. But now the sort of games capable of being made by such things are relics of the past. By the time you create tools capable of enabling anybody to do 'average' tasks at one time, those tasks end up being relegated to triviality with the net effect that you're basically treading water. And similarly the explosive growth of the products of these make-a-game kits renders the skill almost entirely worthless. What would have been a very viable publishable product 25 years ago, is now considered shovelware. I think the only way this would end is if we somehow reached a skill cap in development (you've officially made the best bridge that's at all possible!), but if such a thing may exist we're certainly nowhere even remotely close to getting there.
- Nomentatus 9y agoI might argue that building a bridge is harder now taking the whole process into account (just the metallurgy is vastly more complex); but they don't fall down as often. Which they often did in early railroad days thanks to hidden cracks in the metal that were both frequent and undetectable back then. But ordering a bridge to be built might be easier, now. Specifying routines completely disambiguously will always be hard, but I do think techniques will come along to provide the equivalent of railings and safety nets while you do this; such as AI to query you about what you really want to happen, and to draw your attention to edge cases and unusual combinations of circumstances that you need to make a clear decision about.
- flukus 9y ago> We need to have a conversation about the possible paths to make programming more widely accessible. We've been doing this for as long as computers have existed and have made virtually no progress (pun intended) since 3GL languages. No other industry has ever tried as hard as ours has to make itself redundant. Programming is about as simple now as it will be for the foreseeable future, any simplification sacrifices the versatility. If you want to make programming more accessible then you need to work on peoples abstract reasoning skills.
- erikpukinskis 9y agoUltron, Hawkeye, and Iron Man are fictional characters. It’s easy to imagine an omnipotent programming AI, but we have no reason to believe any such thing could exist.
- seanmcdirmid 9y agoIt is only a matter of when, like practical nuclear fusion. We know it is possible in theory. Regardless, that programming is so unaugmented while other expert engineering fields are much better is shameful to the entire profession.
- erikpukinskis 9y agoNo, we don’t. Nuclear fusion is a theory, there is evidence it is possible. We can observe it by looking at the stars. Omnipotent AI is not a theory. There’s no evidence it is possible. I have yet to even see a a falsifiable hypothesis about how it could come about. The most advanced hypotheses are something along the lines of “they’re getting smarter do eventually they’ll be infinity smart” which is not a strong claim. Evidence suggests intelligence is niche specific. Humans are smart, but in the middle of the ocean a jellyfish is smarter. A better prediction about AI is they will surpass us in some ways and not others.
- seanmcdirmid 9y ago> Omnipotent AI is not a theory. That's not what was suggested. Human-level intelligence is sufficient to cause a singularity (because then they can start improving their own programs). > better prediction about AI is they will surpass us in some ways and not others. That isn't a better prediction at all. Regardless, it is uninteresting to my original point, which is we want to live in the Iron Man, not Ultron, phase now anyways.
- JumpCrisscross 9y agoI see an analogy in calculus. People learned it because Newton gave them a reason to. Consider finding a use case where the language lets you do something not otherwise possible. If your use case is successful, people will take note of its precursors. (If you can’t, explore your language as an academic might.)
- runevault 9y agoI think the right answer is intermediate tools that don't even necessarily create programs, but give people reasons to use a compiler and learn that type of problem solving related to their current day to day needs.
- linkmotif 9y agoI think the conversation we should have is why we make everything seem so hard. What a bunch of hooey. In 5th grade everyone talked about how Algebra was hard. When I got to Algebra, it was pretty easy. I was very surprised! Of course my dad had to explain it to me, because my teacher was incapable of explaining it. 10th grade, same thing with calculus. Thank god my dad knew calculus and was patient. Because my teacher did not. And so on and so on. One thing I’ve noticed is that nothing humans have invented or discovered is hard. Learning things requires curiosity, a lot of patience, and someone showing you how to get from A to B in small steps. Overwhelmingly, the inventors and discoverers are the people at the bleeding edge of those small steps who find a next step. Programming is no different. We need to stop infantalizing people. Most humans are incredibly capable. We don’t need programming languages for children. A child can learn Python or JavaScript. You just have to show them that it’s cool. But instead most adults show kids that sports, video games and Netflix are cool. So, c’est la vie. Today unfortunately we have a culture of “you can’t, it’s hard, it’s not for you, other people do that.” People always refer to “they” when they’re taking about people inventing something. This is good for the rich and easy for the poor. Who is “they”? What if instead of “they” it was “we”?
- root_axis 9y agoWell, not everyone has the benefits of an educated parent who takes time out of their day to tutor their kids through calculus. Maybe "everything seem so hard" to people without those kinds of advantages.
- enigma31401 9y agoTruuue that. Not comp sci but ended up taught myself math, coding, and some philosophy.
- Tom4hawk 9y agoI think this is much bigger problem: > because my teacher was incapable of explaining it
- 9y ago
- indubitable 9y agoI'm unsure programming can be made accessible, and there's a very specific reason for this. Simplifying the medium of something (in other words making it so somebody could genuinely learn a programming language, from nothing, in 5 minutes) does not necessarily make task implementation any easier. Consider writing. It's something that anybody of mean intelligence is more than capable of. And writing a novel requires nothing technically more than just writing, yet somehow there is this entirely different skill set there that is not really learned and one that many people for whatever reason seem incapable of developing. Even if I could get 24/7 attention from Dostoyevsky, Stephen King, and George R.R. Martin for years on end - I'm not going to be a strong novelist. This could be genetic issues, but even if we want to discount that (which is not really a reasonable thing to do) - my potential would certainly be killed off my by my interest. I simply don't get pleasure from writing. Programming is very much the same thing. Even if you make the 'human interface' to programming as trivial as possible, you've barely scratched the surface of actually creating desirable things. And unless you get pleasure from this creation and have this sort of 'feel' for doing as such, it's going to be a low involvement grind with a mediocre final product. I think the thing we're fooled by is the confounding issue that programming languages are not easy. And so it's easy to think that if we just make the languages easy, that programming would thus be easy. But I see absolutely no reason to think that this is where the 'real' barrier to entry is. Making a tool easy, does not make the task that tool is used for easy.
- TuringTest 9y ago> Simplifying the medium of does not necessarily make task implementation any easier. Except when it does. Programming in an IDE with code completion, IntelliSense, on-line help and an attached debugger is easier than going all macho developer and programming exclusively in raw text with the pico editor, using println traces as debug. Sometimes, merely reducing the cycles that the human brain wastes on interacting with the medium makes the whole task simpler. If you don't force the user to think about building a program, they are freed to think about solving a problem.
- TeMPOraL 9y agoThat's comparing writing longhand to using Microsoft Word. The latter helps, but doesn't make writing novels fundamentally easier; in the same way, an IDE doesn't make programming fundamentally easier.
- gbarcher 9y agoWhy should programming be more accessible? There are too many programmers already. The only persons benefiting from it are the ones in the huge teaching/conference/consulting industry.
- simias 9y ago>We need to have a conversation about the possible paths to make programming more widely accessible I assume that means you think that programming is not accessible enough as it is? Why do you think that? As far as engineering disciplines are concerned I consider software engineering one of the most accessible to complete newcomers. All you need is a computer, something that's not very hard to procure these days (at least in wealthy countries). Then you have endless tutorials online, from learning to code websites to video games to raytracers to databases to physical simulations to neural networks. As a self-taught programmer (who started coding in BASIC at around 15) I never found programming particularly hard to approach.
- oldandtired 9y agoAs a self taught programmer, my question to you is "Can you solve the problem space problem?" Do you understand the difference between problem space and solution space? I know of many excellent programmers, yet they have problems solving problem space problems. They write great code, but the code is not solving a real world problem. Many of the available programming languages (especially in the highly popular languages, like C, C++, Python, C#, etc) have too many "gotchas". Any language which has "undefined behaviour" or "implementation defined behaviour" makes itself a language for the "elites" and instead of being an adequate tool for solving problems, becomes instead a tool for elitism. Programming languages should be a tool for specifying a solution to a problem that communicates to those who follow in the support roles (including the original author) as well as fully defining the behaviour that a senseless machine will follow. The complexity of a solution should be predicated on the complexity of the problem and not on the "features" of the programming language involved. This is one of the reasons that I enjoy programming in Icon/Unicon, Failure is an option and allows simpler ways of saying things. The language is in no way perfect, but I find it so much better for solving the problem at hand than having to fight another language because of its "gotchas" that end up getting in the road of solving my actual problem.
- _pmf_ 9y ago> We need to have a conversation about the possible paths to make programming more widely accessible. Why? There's no shortage of programmers. People who want to do data mangling and don't want to use "real programming" use Excel or Matlab.
- baldfat 9y agoProblem with Math: Moving people in class forward before mastery. I guarantee you that 95% of the problems with math is students don't have one or two concepts mastered and then they are forever unsure. My strategy is I use Khan Academies Math assessment with kids all the way through their parents. https://www.khanacademy.org/math https://www.khanacademy.org/math My two youngest have been doing for a few years. My 1st grader has almost completed 3rd grade right now. I know he has accomplished all the steps previously. My 6th grader she is in per-algerbra and every time she brings in homework I know she doesn't understand what she was taught. It can take 20 minutes for her to get her head around the concept but then she is fine. I have found that if I use Khan Academy after the drama level is lower and I have found her telling me she watched the Khan Academy videos and she is fine. I'll watch her do two problems and if she nailed it we move on. Math requires as much intervention in 4th to 6th grade as reading did from K-3rd grade form me. In the UK they have started trials of Mathematics mastery. You can't move on till you have mastered the previous step. They did it one year and saw a slight increase in scores. This has to be started from Kindergarten till 5th grade to really see a difference. https://en.wikipedia.org/wiki/Mathematics_mastery https://en.wikipedia.org/wiki/Mathematics_mastery
- dragonwriter 9y ago> We need to have a conversation about the possible paths to make programming more widely accessible. You say that like it isn't a robust conversation that a significant segment of the community has not only been having but trying out solutions to for decades.
- mpweiher 9y agoA couple of points: 1. Making programming accessible probably means making software more accessible. I remember a study of what mental capacity was most correlated with being able to learn foreign language. It was empathy. So a large part is wanting to communicate. If you want to communicate, you will find a way, and I think we see the same thing in programming. So called "non-programmers" learn the most absurd programming languages and systems if they are motivated. Also see Minecraft. And amazing/horrifying Excel spreadsheets. One of the issues I see with "novice environments" is that they tend to be very separate from everything else on the machine. I would find that very demotivating. What I would love to see is "open source as if we meant it", meaning programs that do something we want to do, that we would use, written in such a way (probably also: in such a language) that tinkering/adapting is a reasonable proposition. Yes, that means I don't think that currently is the case: except for the core-dev team, is it a reasonable proposition for people who want to adapt GNUmeric to download the source code and start tinkering? For novices? 2. I am not convinced by the low-end vs. high-end distinction I think a lot of the same things that make programming awful for beginners also make it awful for advanced programmers. We have just gotten used to the pain and accept it, though I am not sure why. 3. I am not convinced by starting over from scratch There are reasons why we have what we have, and not all of them are bad. 4. I am not convinced by not starting over from scratch Of the reasons why we have what we have, a lot of them are bad. A lot needs to be reexamined and rethought. Resolving that contradiction (thesis, antithesis?) is difficult, it requires looking at what we have in a lot of detail, including the history of how we got here, where we need apply tweaks and where we can interact properly with the rich computing tapestry we have. Just extending what we have is probably not a solution, because one of the problems is too much cruft, but just starting over from scratch is likely to lead to cool but ultimately superficial projects.