I think it's important to distinguish user groups. No solution is best for all of them.
For scientists or data analysts, jupyter notebooks are a great choice since they mirror the professional and research tools they'll use.
For web development, an in-browser IDE like Cloud9 would be my choice to get an arbitrary room of adults up to speed.
But for middle or high school audiences, or even adult beginners, solutions like the above are far too complex. It's easy to get a certain expert blindness, but a Jupyter notebook for instance can actually be a huge problem form someone trying to understand flow of control, since you can execute code blocks in an arbitrary order into the same runtime.
Tradeoffs between power and usability abound. Jupyter is a good blend. A full IDE is power. Skulpt prioritizes usability. Some group of users fits into each of these buckets.
So (surprise, surprise!) The meanings of 'best' and 'terrible' are highly dependent upon specific user needs.
I'm a co-founder of Trinket and thought I'd explain why we chose Skulpt.
Client-side execution lets you do visual things that would be slow and complicated (maybe practically impossible) if you ran them server side. Visual results are one of the most important motivators for students learning to code.
Take our Sense HAT emulator, made in partnership with Raspberry Pi:
This uses 3D CSS and SVG to make a virtual Raspberry Pi that you can rotate around. The Sense HAT has a gyroscope, accelerometer, etc that kids can actually program to respond to these movements.
The alternative to this emulator was the Raspberry Pi Foundation sending boxes of computers to classrooms (which they still do). But the emulator makes this scalable while also synergizing with the computers: kids can download their code and run it on the real device if they want.
The next phase in the project is letting kids run their code in space. Mission Zero uses the emulator to let European kids get their code run on one of the Raspberry Pis in orbit on the International Space Station:
Why not Brython or RapydScript? Theoretically, either could do most of this.
Skulpt is designed for the needs of teachers and learners. Those projects have slightly different goals (making Python a web scripting language and providing a Pythonic way to write JS, respectively) which may make them a better fit for your project but we've found Skulpt to meet our users' needs the best. Our users are teachers and students in middle and high school, and some undergrads, who want to write, run, and share programs and websites as quickly and easily as possible. They need reasonable speed, fidelity to Python and lots of fun visuals. Turtle, Matplotlib, and now the Sense HAT emulator provide the visuals.
Skulpt isn't perfect but it's got a great community and is getting better all the time. I think it's the clear best choice if your users are teaching or learning. And projects like Anvil (anvil.works) show how the project can work outside of education as well, in that case for non-specialist business analysts/ops people who would otherwise be stringing together spreadsheets.
I can second this sentiment. Meredydd and Albert Jan have made a good deal of Skulpt's most technically interesting features (which in turn enable a more seamless user experience). I'm a cofounder of Trinket and we knew early on that this project was something we would use heavily and wanted to support. We support more languages now (including server side Python, Java, and with R coming soon) but our skulpt-based free Python trinket remains our most popular one.
Our users have benefitted hugely from contributions by Meredydd, Albert Jan, Michael Ebert, Marie Chatfield, Scott Rixner, Brad Miller, and a whole bunch of other contributors. Go team!
I'm a big fan of datacamp. You should definitely give this a try. It would be great to expand the reach of your lessons without the infrastructure overhead of every user hitting your server with their code. Hit up the skulpt dev listserve if you want some help. Or I'm at [email protected].
Plug: you could easily prototype this with Trinket embeds. Add #!/bin/python3 to the top of our Python (Skulpt) trinkets to get strict Py3 mode. Add data files via the + button (no directory support, so treat them as all in the local directory). Use the Share menu to get embed code. Paste. You've got your first interactive lesson. If your users like it, you can then decide whether and how to build skulpt in to the site.
I second pretty much everything in here.In my meeting we were essentially working together grooming a github issue- I could imagine that issue being addable as a tab behind or instead of the notepad.
I'm happy to wade into that debate, because I think it's relevant. When this article first came out there were comments near the top questioning the relevance of this type of inquiry as, roughly, unscientific. I wanted to show how it fits into a scientific framework just fine.
You're likely right that an apology with less commitment could have been effective as well.
Interesting to think of Mead as the analog, and perhaps a more apt one. Thanks. Personally I'm much more familiar with biology and with Goodall. But, from my perspective cultural anthropology is a science whether or not it wants to be. The AAAs rejection of 'science' may be more indicative of science's rejection of inductive logic than anything.
Startups, and startup founders as a whole are rare phenomena. Don't read anything more into the analogies than that. Thanks, though, for the word of caution.
Interesting that you've found language study techniques useful. I also believe we should teach code like we teach other languages: http://blog.trinket.io/code-and-language/
I believe they're roughly synonymous, yes. The processes of aging and aculturation both involve an ossification of our ideas and concepts that make learning new ones comparatively difficult. Vinod Khosla has talked extensively about how he has to fight these processes in himself to bring a 'beginners mind' to bear on new startup ideas. The median effort required to do this is lower in younger people.
By the way, older people who share the characteristics of being only lightly acculturated (i.e. eccentric) share the relevant characteristics with children and may be able to learn things like languages with childlike speed. Hence, I believe, PG's observation that startup founders of any age tend to be weird, quirky, or poorly socialized in various ways.
Agreed. A focus on gender is warranted, but not to the exclusion of other demographics. There are likely a great many large startups waiting to be built in each under-represented demographic. These startups aren't yet built because not enough domain experts have the technical ability and startup knowledge they need to build them. Which, I believe, is YC and 500's business rationale for encouraging diversity.
Interesting take, and I think I see your point with that clarification of your view of stages of thought. I don't share that concept of the progression of ideas, nor do I feel the need to make the distinction between science and pre science.
I do think that much of what humans do is ascientific. But Jessica's examination of founders, esp via a structured interview, is not in this category.
I'd say human language is the superset of artificial language and natural language. Though the artifical/natural labels are a poor fit.
Experience is a big factor, but I think there's a limit to the amount of language learning most 50 year olds can undergo, even in a decade. But luckily for us we agree young exposure to code is a good thing :)