Thimble – An online code editor
thimble.mozilla.org
thimble.mozilla.org
This “do EVERYTHING in your browser” fad has gone far enough. We have the most powerful desktop gear ever but every blinking of the cursor has to be done by a remote service?
This makes a TON of sense for those groups where someone doesn't spend half of their class time walking people through installing and configuring apps, dealing with whatever weird system customizations they've made, etc. Every time I've helped at a tutorial, that's been a big problem with some people never getting fully up and running in time.
Instead, it's “click this link” and you're actually in the class, with the ability to have pre-canned examples and starting points ready to go without also having to cover things like version control first.
Granted, plnkr.co probably would have worked just as well, but giving everybody a consistent (and persistent, and reasonably performant) dev environment in an educational setting makes a huge difference.
When I first starting programming a lot of my difficulty and frustration was trying to get my free copy of Borland Turbo C++ running. Once I got a bit older and started to learn Linux and more fundamental things about operating systems, programming became a much easier because the additional tooling steps were much easier.
EDIT: It's certainly possible tooling will soon become a thing of the past, but judging by the trends and past experience, I do start to wonder if it's time to expect it as a necessary evil and start to handle if head on as opposed to trying to avoid it.
If you are struggling with getting your environment setup you need to take so and so class. There should be a class for just getting an environment setup and doing basic sys admin tasks.
Maybe we should be working to improve the dev environments in the "real world" so that programmers can focus on programming?
What I'd really like to see is a strong focus on making the the default experience decent so many people can avoid needing to tinker but having some obvious directions to look in when you realize that you've outgrown the defaults.
A small example I'd use is the way the Python infrastructure around the package installer (pip) has improved over the last couple of years. Experienced developers used to have a ~/.pip.conf to set defaults like caching, timeouts, failover, etc. but it was a perennial hassle for newcomers. Since then, a lot of time has gone into removing the needs for that config (e.g. adding a CDN, making caching better and enabling it by default, etc.) which saves time for newcomers and means that experienced developers can stop maintaining another dotfile.
I am an educator and a volunteer contributor to Mozilla Learning. I can honestly say that everything I have learned about HTML/CSS is due to using Thimble in my teaching for the last year and a half.
For my students, who are not in digital arts, computer science, or web design programs Thimble is a wonderful scaffold. This new version is even better.
If they get to the level where they are editing locally my students will now be able to download projects.
It is right on the front page: "Thimble is an online code editor that makes it easy to create and publish your own web pages while learning HTML, CSS & JavaScript."
The “while learning” bit is a nice nod in that direction but it's in de-emphasized text at the end of a block (the only other text that small is the login link in the upper corner). Given the number of people who didn't get why the project exists at first, I would suggest that it should be more prominent. This could be as simple as changing the highlighted text “Write the Web On the Web” title to “Learn to Write the Web On the Web” so it doesn't give the impression that this is intended to be a general-purpose editor.
I use my browser to browse. And that's all. This allows the browser to be smaller, faster, less complex, and, if it matters, more secure.
Contrast that to just loading up a page on a browser.
well don't you need to write the app at first place ? there is a difference between loading an app and developing it.
It won't let me write node.js style code right now, but then they just completely rewrote this from a pretty simple jsbin-alike (single file, live preview, friendly error reporting, that was it) to a full blown Brackets with an in browser POSIX file system that automatically syncs on file changes. It's both insane and beautiful, and I'm already finding myself firing it up instead of jsbin or jsfiddle or codepen, and having far more fun because I have a full editor under my finger tips.
Reading through http://blog.humphd.org/thimble-and-bramble, which explains the whole thing in a level of detail that doesn't belong on the front page, is fascinating, and might make you acknowledge that there's definitely a place for this kind of thing on the web, and that there are plenty of people who would have loved to have something like this from day one.
I mean, come on: if this is their MVP launch, imagine what this thing can do in a few months or even a year.
You really can do almost everything in the browser there - the (remarkably solid) editor plugs into an actual terminal on a VM, with full build tools, deployment integrations, etc.
It helps them in this because they don't have to install and editor, they don't have to configure it and best of all the don't have to install and configure their development environment. All a user has to do is sign in, pick a language and start coding, it literally takes less then a minute.
Also the fact that they can collaborate in real time and get help from a friend, is not a small feature to have for them.
Although this may not sound appealing to you...their are many people where these features will make or break their initiative to start coding.
Disclaimer: I am the founder of the Cloud IDE - Codeanywhere.com
- Move lines up/down with ctrl+shift+up/down
- Cut an entire line (ctrl+x)
- Multiple cursors (ctrl+alt+up/down)
- Comment the current line/selection (ctrl+'/')
- Delete the current line (shift+delete)
- Indent/dedent the current line/selection (ctrl+'['/']')
Still looking for the bindings to jump to matching braces/parens and to select the innermost block, but I'm sold. I'll be using this- Work laptop (Dell workstation)
- Home Windows laptop (Primarily for gaming)
- Chromebook Pixel (Chrome OS / Ubuntu)
And of course, each one has its own editor that I use while I'm on them due to the varying OS's--Notepad++ on the Windows laptops, Caret when I'm in ChromeOS, SublimeText when I'm on the Ubuntu partition.
Assuming I just want to work on some small educational projects that don't involve committing to my Github, being able to simply pull up an IDE in the browser and just start coding away could be useful, particularly while I'm at work. Work usually seems to be where I get most of my sudden cravings to start learning new things anyway (probably because my day job is so repetitive).
1) Lag. I hate it when I type and I see any kind of lag. After decades of quick response on typing anything out of a few ms makes me think something is wrong with my computer.
2) Work flow change. Can't use git and I do like my text editor of choice.
3) I can't write a script to do things to files like I can locally. I love scripting dumb task and use whatever language I use.
4) My language isn't supported normally. I love syntax highlighting personally.
1) there is none. It's about as fast as PostMessage can pump data into an iframe, so it's _much_ faster than something like live-server, and because it watches file changes faster than something like webpack, it even seems a touch faster than webpack-hotreload (although their MVP can't do hotswapping of individual files yet)
2) fair point! I've found this great for PoC and article work. Just creatively write some code, polish it a little until it's good enough to treat as a first push for a new repo, and then export the filesystem as a zip so I can push it up to git later. That said, I _have_ already made some things of which I thought I was going to put it on git, but then just kept working on in Thimble instead because there wasn't actually any reason to put it on git: The code's already accessible because everyone can hit "remix" and I don't need to deal with gh-pages branches because the project's autohosted for free =)
3) not sure this one applies, since it's explicitly for building web content. It's an MVP atm so base html, css, javascript, fonts, etc. all work, and things like coffee script or JSX just require you to add a transformer library the way you'd do if you weren't bundling code. No complaints on that so far (might change, but I'm pretty cool with what it does right now)
4) which one? http://blog.humphd.org/thimble-and-bramble explains that this is literally just the Brackets code editor, running in the browser, and pretty much any Brackets extension will work with it, so if you can find your favourite syntax highlighter and file an issue against https://github.com/humphd/brackets to have it added to the default set, problem solved!
I'm also excited to use it for doing technical interviews with front-end devs. Curious to see how it stacks up with Codepen, JSFiddle, etc.
Compare this to just logging into a website.
{"statusCode":400,"error":"Bad Request","message":"\"uid\" is not allowed","validation":{"source":"query","keys":["uid"]}}
e.g. https://id.webmaker.org/login?client_id=wm_id_wMvw9BSwq2A480...
If you try to login just from https://id.webmaker.org/login you will get the error you saw.
One thing that I find interesting is that Mozilla has decided that browsers have moved forward far enough that hosting the preview via `blob:` urls. I've experimented with a similar approach but had issues where different 3rd party libraries die unexpectedly when they are not dealing with http / https.
Otherwise the editor seems to work very nicely.
* highlight to copy is broken (I assume because the source is not first-class text and they manipulate the clipboard with JS)
* failing to close the last list item in a ul causes the preview window to stop updating and highlights the next line in the editor but doesn't provide any indication of what is wrong
This is definitely not going to be sufficient for professional programming or web development but it looks and performs far better than similar projects I've seen in the past.
The second one sounds like a pretty genuine bug, maybe worth filing over on https://github.com/mozilla/thimble.webmaker.org/issues ?
Agreed that it won't be the tool that professional devs will use to "do their job", but I'm a professional dev, and I've been using it for a while now for my "just for fun" stuff, and loving it. It takes almost no time at all to do even really funky "what the hell are you even doing??" stuff like this: https://d157rqmxrxj6ey.cloudfront.net/mopaxian/817/
> [Brackets Filesystem] Unknown I/O error Object { name: "EFILESYSTEMERROR", code: "EFILESYSTEMERROR", errno: 1001, message: "unknown error", stack: "e@https://mozillathimblelivepreview…" }
But HN is not really Thimble's support forum though. That would be something like: https://support.mozilla.org/en-US/questions/new
In particular, I saw 'EFILESYSTEMERROR' and thought maybe I set some Firefox preference too strict, and some of you could be familiar with the error.
But you are right, the best way to get this fixed/understood is probably by contacting the devs/support for the product.
It just sometimes bugs me though that posts about some new product/lib etc are often sidetracked with bug reports, and oftentimes for some obscure setup ("doesn't work for me on IE6", "I have Chrome Canary and it blows", 'doesn't run in NetBSD", "doesn't work with NoScript" etc).
(Then there's the evergreen: "I cannot see past the first slide of this presentation, clicking does nothing etc." ("have you tried pressing the keyboard arrows?").
I'm not sure it's intended for actual development.
[0] https://teach.mozilla.org/
EDIT: forgot the link
> Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
and some frame related errors.