Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Why we need the best tools on Chromebooks and Raspberry Pi (headmelted.com) similar stories update story
324 points by headmelted | karma 6221 | avg karma 5.65 2016-11-15 02:53:37 | hide | past | favorite | 183 comments



view as:

The BBC micro's legacy lives on in the BBC micro:bit, launched earlier this year: http://microbit.org. Some of the 'editors' (programs that handle writing code visually or textually, and transmit it to the bit) do run in the browser.

I had seen this at the time, and I'm actually very excited about it!

I didn't want to comment in the article as I haven't been able to get one myself, but I have some time off coming up and I'm hoping to check it out then.

In any case I think it's great that we again have access to inexpensive [coding/tinkering/making]-first devices.


If VS Code is written in HTML/CSS/JS wouldn't it be possible to use it without devmode on Chromebook?

Oh, I just found a issue for that: https://github.com/Microsoft/vscode/issues/1031


As someone who's never owned one, I think there is something called 'crouton' which makes a chromebook into sort of like a low-end ubuntu laptop. Given that I've run VS code on Ubuntu with 2gb ram, it seems like it should be doable.

This actually uses Crouton to create the Ubuntu environment that Code is installed into. ;-)

More details here: https://code.headmelted.com


ah yeah, I totally missed the 'without dev mode' part of his comment, so sorry for the snark

Btw - I totally just realized I have to teach my cousin (who only has a chromebook) python this week. So thanks for this! I might try it out.

You should also know about https://www.pythonanywhere.com/, which you can use completely remote.

Perfect, although I guess it was more of 'an easy language to get him started' than specifically python.

People keep saying this without realizing what is going on truely, there is two option: 1. Install crouton and use shell to Chroot to your distro (which makes most sense, became what is the reason to buy Chromebook in first place, since maybe you can buy laptop with better Linux support about same price, in this option you have your dev tools in your distro and simultaneously you enjoying your command line dev tools) But remember you are inside chrome OS so you dont have any way to access graphic stack and run Linux GUI app, I think with recent port of Android stack to chrome OS , makes Chromebook more valuable except if you want to run something like Java Swing oe eclipse( eclipse working on web UI , named Che)

2.Use croutin to install complete stack to run Linux GUI apps too.( Honestly I don't understand rational behind this, since you don't have for example Win key in Chromebook and many other issues.)


Judging from comments in this thread 'crouton' still has a several second splash screen on boot telling you to press space that when pressed wipes your entire drive.

Hacks like this which devs seem to be happy to endure are not a solution for helping these kids to code.


The point of a Chromebook is ChromeOS. If you're using Ubuntu you might as well be using a low-end PC. Nothing wrong with that, but it's not a Chromebook any more. Chromebooks are not about the hardware.

Yes and no.

There are a few options I've been looking at that could yield improvements in this area.

1) Install the play store, if your chromebook supports it. Then something akin to Gnuroot Debian, and set up the environment that way. Install the package, and then forward the X11 window to something like "XServer XSDL". Tricky to explain to people, and I couldn't get it working when I tried for a few different reasons.

2) Add a side-by-side node.js server inside VS Code. This would effectively serve up the HTML/CSS/Javascript inside the window and the user could just use the web browser. By launching on boot this would have the neatest integration with Chrome OS, as you could pin to shelf and then it's just a http://localhost:XXXX URL. Even if the web content could be forwarded in this way I think re-implementing the Electron calls for the web could be a lot of work, and it probably belongs as an alternative Electron implementation I would think. The upside is that you wouldn't need dev mode as this could also run under e.g. GNURoot.

These are a couple of ideas I've had. Would be eager to get someone from Microsoft's take on it though. :-)


I just took this screenshot on my Chromebook http://i.imgur.com/sPh0c6s.png

It shows my own homebrewed Desktop environment running in a browser window with a Monaco based editor open. So it's doable, but it would need quite a bit of work to beef it up to VS code abilities.


This is awesome! Any chance you would release this?

There's a somewhat dated version (pre-Monaco) at https://github.com/Lerc/notanos

Things are a bit broken right now(like file requesters don't return the file selected)

I work on it sporadically. Now that native promises are a thing I want to go through and tidy up some of the callback structure. The App API should ideally be all promise based.

It's an intimidating task though. Next big update I'll probably get it to a point where I ask assistance.


I'm still amazed that Google hasn't released their own IDE on ChromeOS and Android yet. Their Pixel series are lovely premium devices with a Unix underpinning that could become the default option for developers

They came in with Chrome-dev-editor and then dropped it again. https://www.infoq.com/news/2015/06/dart-github-chrome-dev-ed...

I use it on my Chromebook quite a bit. It makes for a reasonable on-the-go environment running Node on the Linux crouton side and editor, output on the ChromeOS side


Last time I tried to use a Chromebook for development (using crouton to have a proper unix environment), you had to enable developer mode. This presented a 30-second splash screen at boot saying 'press space', where pressing space would wipe your drive, resetting the machine. The machine also does this if the drive becomes too full. I can't go back until they sort these issues.

This may be a bit offtopic but relavant for anyone without a chromebook. A open-source recompiled Chromium OS is available for _third-party_ laptops/desktops - called cloudready OS. This is very good for older machines. https://www.neverware.com

I am not affiliated, just a happy user with 8GB RAM thinkpad!


How in the world 8GB RAM in a Thinkpad is not enough for proper operating system? On my x230 with 8GB I am successfully running Ubuntu Mate. I've spent couple days doing dev on it (usual LAMP/LEMP web stack + Sublime + browsers) and I was perfectly happy with that. Even my full time, desktop machine have 8GB RAM (but better CPU than thinkpad) and runs Ubuntu 16.10

Some of us prefer the simplicity of ChromeOS.

I use Ubuntu 16.10 on a 2011/2012 i3 desktop, which was average by then, not top of the bill. To me it seems like 16.04 is a lot slower than 14.04, and I regret upgrading. Same with a Lenovo Flex laptop - it has only 2GB RAM. Since 16.04 it has performance problems. Running Firefox with Javascript is too much, or two apps at the same time grinds it to a halt.

Install the zram-config package using apt. It turned my 2gb c720 chromebook from a stuttering mess into a great on the go machine.

Does it have an SSD or spinning rust?

Side note: I actually tested the Intel builds on an old HP laptop running ArnoldTheBat's chromium builds. Works very well actually!

Backups! Crouton makes those easy, but so does e.g. rsync.

Also, CTRL-D short-circuits the scary splash screen.


I know about the shortcut, but I couldn't lend the machine to anybody. Backups, yes, but it's still a massive faff reprovisioning the machine.

I agree, I don't know why they make it so easy to wipe everything. I was thinking of getting my son (8) a chromebook, install minecraft on it, basic Linux, etc., but that splash screen makes it a non-starter. It's almost guaranteed that a little brother will get his hands on it and wipe the drive within a week.

Likely because they never intended "developer mode" to be "develop on the device" mode, but more a "test the web app" mode.

ChromeOS is first and foremost a web terminal. That Google recently started introducing Android apps on there do not really change this, as most Android apps are just frontends for web services.


I just picked up an Acer Chromebook 11 for $60, have been using crouton with no problems (besides hardware limitations). Great little guy for on the go programming. Like someone else said, I just hit ctrl-d and I'm logged in within 30 seconds. IMO developer mode seems like a nice way to keep standard users fenced in.

> IMO developer mode seems like a nice way to keep standard users fenced in.

The whole reason why the BBC funded the original micro was to end the distinction between developer and standard user – everyone should at least understand it.


A notion that has gone 180 since then. Even the big FOSS projects seems to operate under the mentality that there are two groups, the developers (aka the people involved with the project) and the users (aka sheeple).

Everyone should understand it but most of the time that isn't the case. And I would argue that most "advanced" users (especially on Windows) are just following instructions from online posts and really have no idea what they're doing. If something doesn't work as expected, they either ask for next steps online with extreme vagueness, or take it upon themselves to start messing with system files and settings, digging their hole even deeper.

Giving users full control like that will only result in a greater need for customer support. We've all seen the stupidity of some of these "tales from tech support" customers. While I agree with you that everyone should at least understand the computer and OS that they're using, I also understand Google's move in creating a separation of users, especially during Chrome OS's infancy.


The problem isn't that I will wipe my machine, but that, say, my toddler will (she has twice), or a well-meaning spouse who sees a problem with a messages that says how to fix it.

Yes, I can keep the machine put away out of reach, etc, but that's not necessary with any other laptop I have. The user login on my Windows 10 machine is enough to prevent my 3-year-old from button-mashing her way to a wiped drive. Not so on a chromebook.


Yup. I had my mom over and while I was sleeping she was looking for a computer to use. She recognized the chrome book, because they have one at home.

She opened it, saw a screen saying "press spacebar" and she complied.

Was I angry at her? Yes. Very. But when I realized that even I could have easily made that mistake I stopped using the chrome book with crouton. Too high risk.


Ah, gotcha. Don't know much about those troubles as a single student!

As well as the aforementioned CTRL-D shortcut, you can change the amount of time the splash screen is displayed... although it does require opening up the Chromebook (to set a jumper) and then writing a modified BIOS to the Chromebook:

https://johnlewis.ie/neutering-the-developer-mode-screen-on-...

Not for the faint of heart, but at least you only need to do it once...


Do you mean it was wiped when switching to developer mode? Or is this screen and behavior presented after switching to developer mode?

After you've switched it on, it displays the splash screen at every boot, with a warning message and instructions to press space to make the warning go away:

http://blog.codestarter.org/content/images/2014/12/tumblr_in...


FFS Google.

That developers mode thingy is starting to look more and more like some kind of fig leaf towards the FOSS world.


The fact you can't turn this off at all is the problem. Even, as has been mentioned elsewhere, if you set jumpers to flash the BIOS, you can only reduce it down to two seconds!

Heh, seems like a "slight" improvement on their big name Chromebook that would revert back to "normal" mode if the battery ran out. This because there was no separate BIOS battery, so it would reset if the main battery zeroed out. This in turn locking people out of developer mode.

You can hide the dev mode screen, or disable the functionality completely, with a firmware update.

It's a very common (and safe) procedure. There's a good write up at https://wiki.galliumos.org/Firmware


What I would like to see, and they're effectively doing this already by allowing the Play Store on Chromebooks, is a sandbox INSIDE the encrypted area, but outside of the signed code.

Basically, an official container support in user space that once you enter developer mode allows you to keep the security features you have currently (signed boot-code checking, encryption), but also a restricted container that allows for native apps like this.

Then we could get rid of the Developer Mode splash screen, or at least allow it to be disabled by choice.


I like this idea. Official container support would be a game changer, especially for those unnerved by going off the beaten path.

I really want to see this on Android as well. Having user namespace support on carrier builds would go a long way for this.

I've been think about how this would work. Something like the Samsung ultra powersaving mode. A basic lock screen and dialer with 911 support, then the running environment could be swapped between full Android, Ubuntu or anything else.


Could have sworn that you already get apps that set up a Debian chroot, complete with a SDL based X11 desktop even.

The ChromeOS and Android APIs have very little of UNIX.

Google could replace the kernel with something else and only OEMs would notice.


It's a bit clunky, but you can pull up Chrome Developer Tools on a ChromeOS device, create a workspace in Downloads, and with a bit of fiddling persuade DevTools to map the files directly to disk. Now you can use DevTools as a pretty good HTML/JS/CSS IDE with debugger integration, editing the files directly in the DevTools window with proper syntax highlighting etc.

AFAIK there isn't any way to get VCS integration (but I have a faint memory that DevTools extensions are possible?), but it's a great deal better than nothing.

...and, of course, if you dev unlock the device, you can install Crotoun and get a full Debian system side-by-side with ChromeOS. Then you can do what you like.


I managed to get a setup going like that, with Caret and a mapped SFTP folder. Used it for a little while, but really wasn't a fun experience, and if I'm honest, neither was installing Linux. I'm guessing their vision is for a Cloud9 style future, but since we're not really there yet for most things, native development would be awesome.

Chrome Canary has improved workspace support, diffs, nodejs debugging and more editor improvements that make Dev Tools hard to beat as a HTML/JS/CSS IDE. See "Debugging The Web" session from the recent Dev Summit: https://www.youtube.com/watch?v=HF1luRD4Qmk

This is my go to dev environment right now, on Pixel 2. I rarely have to restart the machine, and I backup the linux chroot to the gigantic drive space they give you for free. So if anything ever did happen, I could reload like nothing. Also it's just fun.

I actually just asked my friend that works at Google about this the other day. It turns our they have an internal tool called CIDER that is exactly this. A great IDE for Chrome books that lots of people at Google use.

No surprise there. I have the impression that their Pixel line of products is first and foremost for dogfooding their staff. Because Google has long been one of Apple biggest customers, right up there with Facebook. This i suspect because most web dev courses got their start in media/art, not compsci. And you can sometimes tell with how even official Google apps on Android lag their iOS equivalent in features, or bring over iOS-isms.

Clojure Interactive Development Environment that Rocks?

https://github.com/clojure-emacs/cider


Ive almost bought the pixel chromebook a number of times but it sounds like a mess to get working for developers.

What does the performance on ARM look like?

On Chromebooks:

The only performance drawback I've encountered really comes from XIWI and the X11 forwarding introducing a slight lag sometimes, which is to be expected.

In honesty though, this isn't really an issue as the underlying performance isn't hurt (it's still running natively at full speed, it's just the forwarding that would lag in that scenario).

If you were in a drawing app, a game or in something like Blender, it could be more of an issue I guess!

On Raspberry Pi:

Solid. (At least I find it to be so.) :-)


Personally, I can hammer curl 25kgs

Not sure if you can do this on a Chromebook, but I set up samba shares on my Pi and connect to it using my desktop PC. This way I can use all my beloved programs and tools on my PC and then run it through my Pi.

I know he's talking about the cost and not necessarily being able to afford a full fledged PC, but this could work for some.


That's definitely an option, too!

At that point you might also look into connecting over a remote desktop/vnc/ssh session, which has surprisingly solid support on Chrome OS these days. I've heard from a lot of friends that this makes their Chromebook their road warrior of choice (connectivity allowing obviously).


Yeah, I do this every day: I treat my work laptop as a desktop, and just remote desktop into it from a Chromebook (or a Macbook, depending on where I am) whenever I want to work remote.

Which seems like it could work with a bit of effort for schools. That students could run thick/thin clients by connecting to school servers?

Fantastic article - as a dad of three I completely agree and this needs to be a thing that all families can access and do.

Finding the time is always tough so having schools that support it is important


Hear hear!

I realize it's a small contribution, that leverages the work of others, but I hope people find it useful. :-)

I really wasn't expecting to make the front page. It's really good to know that there are other people that can relate to the goal here.


It's actually "hear hear". Excuse the off topic.

I HEAR you. badum tisch

Edited, thanks. :-)


I know very little about the working of both Linux and Chrome OS. So here's a question:

On a Raspberry PI, one would typically use the command line, right? So does this VS Code install with a kind of GUI? Of do you need to install a window-manager-type-thing first?


The common Linux distributions targeting the RPi all come with a GUI environment, at least as an option.

Just tried it on a RPI2 + Ubuntu 16.04.1, a headless environment with X11 forwarding over SSH. There are missing package deps for GUI-like things (libasound2 and some OpenGL libs), and even with those deps manually installed, it crashes with "X IO error received (X server probably went away)" ... sooo, probably not a good choice if you don't have a local monitor & keyboard & mouse.

Also, there's an "Error: ENOENT: no such file or directory, open '/home/ivoras/.config/Code - OSS (headmelted)/storage.json" , don't know if it's important.


I got a Raspberry PI 3 to use as a web server a few months ago, and the Raspbian OS image I downloaded for it had a full blown GUI. It even had a version of Minecraft on it.

Unless you are accessing the Pi over SSH you will probably be using a GUI. VS Code will be running inside the window manager (LXDE). It's not something you run from a CLI.

The main version of NOOBS has X starting by default these days. Even the standard Raspbian image has a GUI, but you can use the lite version for headless servers (https://www.raspberrypi.org/downloads/raspbian/). This is similar to Ubuntu Server but different to NOOBS lite, which is just a small network installer.


Pretty much it'll use whatever desktop environment you have installed (if you have one installed).

Raspbian now ships with PIXEL, for example, but I tend to have a preference towards XFCE for my own use (very lightweight).

In any case it should "just run" after installing, but if anyone has any trouble please let me know!


the flaw with this logic (low income families access to pc is via Chromebooks) is that everyone already has an arm computer in their pockets with much more power than the rasppi or even Chromebooks.

i will always say that the next pc revolution will come in the form of the first open smartphone.


+1 but it's not a flaw, it's how it is. There is no easy way to develop on an iPhone or Android phone using the local CPU and storage. I stress "easy". You probably agree on this because you're advocating an open smartphone. I think we can do that with an Ubuntu phone. Not mainstream though.

The difference is that Chromebooks have a keyboard. Programming without a keyboard is still a significant UI challenge - there are experiments but how usable are they?

my phones have a keyboard, when i want.

> My own first experience of writing code was transcribing BASIC from one of these magazines to draw pyramids against a night sky.

What he's doing is great. But the premise that it'll help kids learn is flawed. People starting off don't need the best tools. Like the author, I started with BASIC. Nowadays, it'd be Python. It needs to be easy, not perfect (god knows BASIC, Pascal, etc have huge flaws). Visual Studio is complete overkill.


Visual Studio Code is "just" a fancy text editor, similar to Sublime or Atom, not a variant of Visual-Studio-the-giant-IDE. Having a good text editor they'll find in other environments as well is IMHO quite valuable for that goal.

My mistake, I was definitely thinking of the full VS. It does depend on how you define "best" then. I'd say this puts it in the "simple" category. I'll try it out and report back.

I sort of agree with you. I also started on BASIC on an Atari 800XL. What really got me hooked was the immediately result of it. It booted up into an environment where I can enter code directly, run it directly, debugging was a little painful and had to use prints. But the path to seeing something happen was pretty straight forward with very few obstacles.

In today's computer, I can't see any environment that would do that.

If my kids are presented with Visual Studio, I think they would spend the majority of their time clicking on the thousands of buttons on the ribbon, perhaps.


Just to clarify, this is Visual Studio _Code_, not Visual Studio classic.

I'm also not necessarily suggesting that VS Code is the best tool there is. It's just a tool that I know a lot of the community has rallied behind (and which I'm personally a big fan of).

The article is more to suggest that I'd love to see more vendors provide their best work to these devices even if there isn't necessarily a large profit incentive to do so.


I think today's equivalent to what I used to do (i.e. playing with an accidental ProDos prompt) is running the browser's developer console (which you most certainly can do on a chromebook) and perhaps running a shell on the RPi.

I don't really understand why a good editor is necessary in the sense of my old nostalgia or how I would try to streamline the learning/tinkering process today. While I see no specific value in anything in the gap between using whatever debugger/interaction the system offers to futz with the most visible levels and jumping to an online Python/processing/whatever notebook, I suppose starting anywhere that stokes one's curiosity is just as good as anywhere else.


BASIC was an excellent environment for beginner computing. It was transparent, not too simple, not too hard, free from unnecessary complications, and it had a simple upgrade path to bare metal assembler. It provided access to graphics, sound, and animation within a single environment.

UNIX - any variant - is an absolutely terrible environment for beginner computing. It's inconsistent and incoherent, the security model makes no sense on a single-user machine, there are all kinds of unnecessary gotchas and "No, that doesn't work", the basic editing tools are unfamiliar ("Why doesn't the mouse work in nano?") and the pay off is relatively small. Programming sound, graphics, and animation can be a nightmare, even for professionals.

How about Windows? Worse than UNIX. MacOS? Arguably a better OS, but Xcode is about as friendly as an ill-tempered shark with a hangover.

Which is why I think these "Pi = BBC Micro" projects completely miss the point. The Pi is nothing like a BBC Micro, or a Spectrum, or any other popular 8-bit machine. It's more like a cheap/slow PC clone, and it has none of the immediacy and instant gratification of the original 8-bit scene.

It's the difference between being given a tiny universe you can totally own, and a much bigger universe that's confusing and doesn't seem to have edges.

The latter can be hugely demotivating to many kids who would thrive in the former.


I started with QBASIC in a command prompt within Windows 3. Definitely was hooked by the same things you mentioned - such as how quickly you can watch the computer "do" what you told it. It gave me the bug and the rest is history.

Nowadays, the closest I can think of is the interactive interpreter of python...but it's still not the same. Perhaps because python has orders of magnitude more libraries/functionality/gotchas out of the box. I think I would have been overwhelmed as a young teenager with all of that. Simple(and constrained maybe?) isn't such a bad thing for getting people their first taste.


Also, how well would the full Visual Studio even run on a Chromebook? That thing needs some power.

In addition to deb and rpm packages, please consider providing an AppImage download. Thanks!

I hadn't seen this before, but it looks fantastic.

I have some time free next week, I'll definitely try to make this happen.

My ultimate goal here would be to convince Microsoft to add ARM support to their official version, although I realize after sending some DM's on twitter back-and-forth why (at least on Chromebooks) it's a road that would be tricky for them to go down.

I'd be pretty confident of getting Raspberry Pi support into the official channels at least though. Certainly this has made a bigger splash this morning than I expected, so they'll have seen it.


This post gets it close, but what we need is the best tools that can run in a web browser on a public library computer. Many don't even have a Chromebook or RPi.

And really what we need are the best tools that can run on the lowest end mobile phone. That way a lot more people could code: https://www.cta.tech/News/Blog/Articles/2015/July/How-Mobile... You could just give away free android phones- that'd be easier than trying to get everyone's clamshell phone to allow coding, and typing on a numeric keypad would be difficult. Also, even using Android- how will those people type? Hmm, maybe we just need to give them all computers or Facebook could set up computing centers. Actually, those luckily enough to get a ride into town and some money might afford 15 minutes in an internet cafe, so maybe if you wrote an app that could multifunction as a coding tutorial and universal web email client application at the same time maybe someone might use it. But definitely a low-end computer, so we're back again to serving some additional people realistically if we just have a webbased IDE that runs on a low-end computer. Should it support IE6 or IE7? Also, internet in many places is dog slow.

Still beyond that what is desperately needed is food, clean water, shelter, clothes, blankets, feminine hygiene products, medical assistance, infrastructure, the ability to grow food, doctors that live nearby with a constant supply of resources, and electricity. There are many parts of the world that don't have these things. Don't give them computers first. It would be intercepted before it gets to them or taken away from them or sold for necessary items. Many can't code, as they're struggling to survive.


Or maybe we need to get Chromebooks/RPis into public libraries instead? I admit RPis are probably a bit of a stretch - given the potential for malicious usage, but Chromebooks seem to be an ideal fit, for much the same reasons they're good for the education market.

(Note: fredley responded when my comment was just the first line about public libraries.)

I think this gets too expensive. Instead, I think you need to just serve the lowest denominator and help those that don't even have that with other resources.


I've actually been looking at this too.

I posted more detail on another comment, but it should be possible to write a nodejs server app inside the package that will serve up the electron HTML to the web app (i.e. with command flags like [--server --port $port]). You'd probably have to implement the keystroke handler and a renderer for the menus, but otherwise it _should_ work.

Of course, I have no idea how much work would really be involved (although I imagine quite a bit), and you'd end up with something that resembles Cloud 9 or Mozilla Che, albeit with VS Code's extension library.

It just feels like something that would be better built directly into Electron though, so it could work for e.g. Atom as well.


Some computers are too old and slow to run the JS in the client as the IDE. Either the browser is old and incompatible, or it would just waste precious internet cafe/library computer time for each action.

Either the JS needs to be fast and compliant with much older browsers, or you just do a webform with old HTML tables as structure and so everything server-side.

Then you have the opposite problem in that those with newer computers wouldn't want to use it. So you might have to provide multiple levels of support, similar to how Gmail and OWA have a light client and a heavy client.


>"Still beyond that what is desperately needed is food, clean water, shelter, clothes, blankets, feminine hygiene products, medical assistance, infrastructure, the ability to grow food, doctors that live nearby with a constant supply of resources, and electricity." //

I agree with the sentiment of that so much but it's not an either or thing in some situations.

Also, computers, in the form of feature phones mainly AFAIK, have helped some of the poorest people by enabling communications and information acquisition that can help with water, food, shelter, medical aid, etc..

If you RTF though you'll see it only addresses the disadvantaged in developed countries where the above are not widespread issues.


Having lived thru the era, admittedly in the USA not UK, the article clearly was not written by a gen-xer because "effectively cut children from lower-income households off from the computer revolution" is complete nonsense. If anything the tradition of constructing computers to operate for a decade was still in play while rapid technological advancement meant kids could have somewhat used computers pretty much free for the asking. This continued well into the 90s where it seems every linux install story began with "first obtain a free discarded computer" to install on. Now a days you have to spend $75 on a new pi and its required accessories, but in the "old days" you learned for free on a used machine.

I suppose no matter how bad it is for the environment, filling the worlds landfills with e-waste is at least good for the economy.


I agree with the sentiment. Do note that people said exactly the same about mobile phones in Africa - shouldn't be a priority. The article you link wouldn't have been written had we said "no, first give them water and blankets". Maybe the benefits turn out to be surprising even in deprived areas?

As for web-based vs native, I can see it going either way. If connectivity is too unreliable and/or expensive then native will win. Many people in the developing world spend a lot of time with no credit on their phones.

The biggest problem I see with teaching people computing these days, which is only partly addressed by cheaper computing devices and IDEs, is the sheer number of tools and abstractions to learn. What order do you teach in? What if there's no teacher? Version control, testing, frameworks etc. are all great things, and a certain proportion of people will need to learn them at some point. For others it's overwhelming, and for most it at least hinders the teaching process. Too much "ignore this for now" can be demotivating and confusing. Yet, it's also not enough to start with just a BASIC prompt any more. People have now seen all the cool modern things you can do and want to do it themselves, so moving an X across the screen is not motivating either. I have found completely dedicated environments like https://scratch.mit.edu to be great for younger kids, but not sure how the rest of the learning curve should be shaped.


> What order do you teach in?

Not the same for everyone... here's a weak attempt at answering:

Kids:

1. Visual 2D: https://scratch.mit.edu/

2. Visual 3D: https://minecraft.net/en/

3. Interacting with real world: https://www.lego.com/en-us/mindstorms

4. Machine learning (why? it's the future!): http://stats.stackexchange.com/questions/22504/what-can-one-...

Adults:

1. Take class(es) on using a computer or phone. Many don't have confidence for things we take for granted.

2. Online tutorials: http://javascript.info/ http://iwanttolearnruby.com/ https://wiki.python.org/moin/BeginnersGuide/Programmers https://netbeans.org/kb/articles/learn-java.html https://msdn.microsoft.com/en-us/library/aa288436(v=vs.71).a... or go to school.

3. Learn enough to contribute to an open source project.

4. Get a job coding or code at your existing job, if allowed. On the job experience is essential.


I think the gap between 1) and 2) for adults is gigantic, because of the issues I mentioned. I don't think you've really addressed the complexity of all the stuff surrounding programming.

I don't doubt there are long lists of links to starting programming, as there are for every conceivable subject (also "go to school" doesn't work for the disadvantaged/developing countries).

The point is keeping someone's enthusiasm alive and making good use of their time. In the "golden age" you would see, say, Space Invaders, and it would be within your ability (even as a teenager) to reproduce it, starting from the BASIC prompt and short manual that came with your computer. If you want someone to work efficiently now, on the things they want to work on (fun/visual/relevant to their life), they need to learn a lot more to get started. That's an improvement over the past in many ways, because it was simply not possible to work as efficiently then (e.g. no high-quality libraries, only basic line editing). In a way, people want more and can do more. But planning how to get there is harder.


By far the best, easiest on-ramp for these users is a good web-based development environment. It will run on a public computer, or an unmodified Chromebook (preserving those security properties), and they are useful for everything from first-steps learning to Real Programming.

Of course I'm biased, because I make one (https://anvil.works) - but there are loads of great platforms out there. You can learn and practice basic Python with Trinket (https://trinket.io), or command the full complexity of a Linux workstation system with Cloud 9 (https://c9.io). (With Anvil, we aim somewhere in the middle - useful, deployable, earn-or-save-money-with-them apps, without the full horror of the Web. But my point is that there are many good choices available.)


hola

> This post gets it close, but what we need is the best tools that can run in a web browser on a public library computer. Many don't even have a Chromebook or RPi.

This would further the centralization of the internet, which is a disaster waiting to happen. It's easier, it's cheaper, but it's also wrong.

We must teach people to take control of their computing power. This means giving them a personal computer they can control. They need enough computing power (low-end phones and the R-pi are more than enough), a decent I/O setup (screen and keyboard, mostly).

You also want to avoid proprietary software. I won't object too loudly about adults and companies using proprietary products, but when it comes to children, I have to go full RMS: proprietary software is wrong, teaching it is evil. In some cases (MS-Word vs LibreOffice), we really have no excuse.

(An ubiquitous counter-argument is, not knowing MS-Word makes it harder to find a job. This ultimately does not matter, because "proper" training will cause other* people to be unemployed. To reduce unemployment, we have to either create more jobs or share what we have (4 days work-weeks come to mind). Of course, since computing is mainly about destroying menial work, don't get your hopes up about job creation.)


Sadly most people don't want to, as they are mentally exhausted after pulling triple shifts and whatsnot to keep food on the table. They just want to vege out, with the web being the new cable TV.

Of course. Basic needs first. Let's start with a 4 days work-week, so people have time to breathe and think. (You can keep the same net salary, because if done in the whole country, this mechanically reduces unemployment and related insurances).

>> This post gets it close, but what we need is the best tools that can run in a web browser on a public library computer. Many don't even have a Chromebook or RPi.

> This would further the centralization of the internet, which is a disaster waiting to happen. It's easier, it's cheaper, but it's also wrong.

Sorry, honest question - I don't understand what you're saying here. Could you please explain?


Okay. The whole story is long and complicated, so I'm going to over-simply things.

At its core, the internet has no centre. It's just a network of computers, peers in the network, who can talk to any other computer in the network without restriction (besides bandwidth). There are complications, such as the distinction between an internet user and a full fledged operator, but as long as the operators give us a set of basic guarantees (no filtering, no snooping…) we mostly don't care.

Such a structure have far reaching consequences. The most obvious is the freedom of expression just got real. Anybody can publish most anything in the internet. This was not true before. Journals, TV, radio, all were controlled by a relatively low number of people. Just count how many people have ever published anything on paper, including research papers and letters to the editors. Compare that to the number of people who posted articles or comments on the web.

Basically, an a-centered internet fundamentally change the way we communicate. This necessarily changes the power structures. Historically, whoever had the power before such a change tended to resist, leading to lots of spilled blood. Just think how the printing press enabled the enlightenment, religious schisms, and revolution. Mostly for the better, but quite bloody still.

The first centre of the internet is the DNS system. To contact a computer, you need its IP address. It's like a phone number, only worse: it's longer, and you're going to talk to a lot of computers in practice. Hence DNS, to have memorable names. Thankfully, the DNS system is distributed into domain and sub-domains, so it's not so bad.

There are however other problems. See, to be a actual peer in the network, you need to be a client and a server. Publishing something on the internet mostly means giving it upon request, the way web servers do. You need a public IP address, and you need to be up all the time (modulo unavoidable downtimes). This was totally the case for university servers, but not home computers.

When the internet began to popularise in the 90's, home computers used to connect to the internet by making a phone call to the ISP. An actual phone call, that hold on the line and cost money (most phone companies charged by the minute and mileage). You couldn't be connected 24/7, it cost way too much. So, no web server for you, and no mail server either. You had to borrow someone else's.

To remedy this problem, internet providers also provided an e-mail address and a way of publishing stuff on the web. That was the first serious step towards centralization.

Later, the ADSL came up. A stands for "Asymmetric". This one doesn't monopolizes your phone line, because it uses higher frequencies. You can also connect all the time for a reasonable price. Alas, you still couldn't have your own server, because the upload rates were just not build for that.

They could have made it symmetric. They chose not to, I think for commercial reasons: they assumed (mostly rightly) that people are mostly consumers. They don't upload much, they mostly download. So let's sacrifice the upload for a better download. Makes total sense, right?

Not quite. One big application was significantly hurt by this choice: peer-to-peer file sharing, which needs both upload and download to work smoothly. Also, while people didn't in fact upload much, many did have an email address and their personal blog. They could easily be hosted at home, if the provider had their router host those instead of centralised servers.

In any case, it all went downhill from there. Gmail was such a big hit that now Google actively reads a scarily high proportion of all email worldwide. (They use algorithms instead of humans, which is worse, because it scales.) You distribute your videos with a handful of services such as YouTube, you talk to your friends through Facebook… And of course the ubiquitous search box, but that one has an excuse: we don't quite know how to decentralise that one yet.

This centralization is not neutral: there are terms of service you need to abide, DCMA takedowns, policies. This is a rather pervasive and direct attack on free speech. Privacy is hurt big time too: it's not exactly easy to secure a private chat connection these days. At the very least, you tend to make a request to some central server just to connect with your friend, such that even if the server doesn't log or record your conversation, it knows you attempted to connect.

This doesn't have to be. The truth is, if everyone had a private server (no bigger than an R-pi) at home, and a reasonably broad symmetric bandwidth, there would be no need for Gmail, YouTube, Facebook, or Medium. There's also a good chance there would be little need for centralised forums such as right here (moderation might be a problem, though). This would mean much harder mass surveillance, which we now know is not exactly a conspiracy theory, thank Snowden.

---

Programs decide what we can do, and how we can do it, all the time. Programmers write those programs, hereby influencing our lives. You really want control over the programs that affect you. This means Free Software, but this also means understanding the damn thing, and executing it on your own hardware whenever possible, not on some remote server. So, when teaching children the basics of computing, we must also demonstrate some good habits. The centralization of a web app is not a good habit.


Thanks a lot for this writeup, I think I understand this topic a little bit better now. I really appreciate you taking the time to do this :)

awesome

I'm a veteran of the UK's Golden Age of Computing too, teaching myself first BASIC and then rapidly advancing to assembler on the ZX Spectrum as a teenager. Without that experience I shudder to think what I might have ended up doing for a living.

And I too have been through the same dilemma with my kids. I haven't got far trying to enthuse them with the RPi - even when I got Minecraft running on it, they complained it was too slow...

There was also the huge problem of choice. We had no choice - you learned the language of the system you had. For a couple of years I struggled to choose a language to introduce my son to. A friend of mine even bought an old BBC Micro so he could teach his kids the Old Ways!

But perhaps I over-thought it. A year or so ago I made an arbitrary decision and showed my son how to run Python from the command line, and he picked it up pretty fast. But then he started complaining that he couldn't work on it when he was at school (such is their expectation of cloud ubiquity). Now he's just turned 14, and I've discovered he's developing a pretty ambitious text-based adventure game, still in Python, but using a cloud-based IDE (cannot recall the name).

So whilst I admire the project - the more the better - I think to a certain degree the tools are already there and as long as they're given the seed of interest the kids will go out and find them for themselves.


Haha, yeah, it's probably hard to get kids to "make" with tech these days instead of just "using" it.

Because much stuff is already there and back in the 90's, when I was in my teens, things looked a bit different.

But funny thing is, even in 2000 people in my school laughed at me for wanting to be a software developer.

"Why do you want to create new software? Everything is already created! I can play games, I can download videos/music and watch it, I can talk to other people online, what else do would you create that isn't already there?!"

What did we have since 2000? Facebook, Twitter, Smartphones, etc.


I think it's important to teach kids that achievement takes serious effort, and that making a blob move around the screen is so much more important than reaching the top of the leaderboard in Call of Duty - which according to my son, many kids just don't get.

I suppose it's a lack of imagination, combined with laziness, which has been reinforced by decades of "Make learning fun!" and "Science is easy!" slogans that the government education tzars love to produce.


well, there are people who make good money with gaming haha

but there are more who make good money with coding


>but there are more who make good money with coding

You should emphasize orders of magnitude more.

Of course, the other problem is that people who make "good money with gaming" aren't actually gaming - they're following a practice regimen that the average gamer wouldn't stick with for more than an hour - refining repetitive mechanical motions, analyzing gameplay to identify faults, fixing those faults through repetitive practice.

An amateur will ask "how do I get better at this game?" and, when you tell them, say "no thanks, I'd rather just play the game."


When people hear the term "pro gamer" they think, well these people just sat around all day playing games and suddendly they get paid mad bucks.

People think a similar thing about game developers, of course neither is true.

People mock professional athletes the same way.

You're forgetting youtubers.

Why CLI and not IDE for Python? I'm using PyCharm with a console pane.

Could/does he use github and an online REPL from school?

Interested as I've been learning Python to use with my slightly younger kids.


Because I fell out with Jetbrains over their pricing model :)

Also, in school they have some pretty serious restrictions on what they can access. And git might be a bit hard for a kid to learn.


There's a free Educational version of PyCharm (for both three major platforms): https://www.jetbrains.com/pycharm-edu/download/

All their IDEs are free for students who "have access to their student email address or a valid ISIC card" by the way: https://www.jetbrains.com/student/

Edit: link added


Thanks for that, I'll look into it.

Yes, I'm using the free community edition (2016.1 at present). Also I said "github", when doing school type exercises for a Coursera course I uploaded stuff to a gist on GitHub (https://gist.github.com/) to work on in breaks at work - just simply 20 line max programs, any text dump would be equivalent for how I was using it. PyCharm of course can integrate with git but I only use that locally.

https://repl.it/languages/Python/ helped me out, as did http://www.pythontutor.com/visualize.html.


Do you think learning git is harder than learning how to program?

No, but I think it's unnecessary noise and let's face it, git will be ancient history 10 years from now so kids should focus on learning fundamental concepts rather than a particular tool that's fashionable now.

How is git unnecessary and unfashionable noise?

What do you propose will replace the tool a decent chunk of people use to work on large software projects together?


Ten years ago everybody used SVN, it's not unreasonable to assume that git will be replaced by something else.

Git is now 11 years old. What up and coming VCS was developed last year to replace git? VCS development moves relatively slowly* and git will still be a major player in 10 years.

Though in 10 years I suspect the porcelain and workflows will have collected several new features.

* Git in fact rose in popularity unusually fast. But this was probably because it was born at the intersection of two major events - DVCS were the hot new field and wide open for new players, and the kernel's VCS crisis. I imagine that hosting the kernel on day one would provide as much experience as a decade of being a small experimental VCS. This is not a routine combination of events.


What @adrianN said. Some other version control system.

In fact, on the subject of fundamental stuff... when I first started out, version control was a drawer full of audio cassette tapes that I cycled through, overwriting old tapes with new versions! Collaborative working? The postal service.

So yeah, things move on, but they will continue to move and although git is pretty elegant, it has rough edges and a fiendish CLI interface that very few people fully understand, so I think there is plenty of room for improvement.


Git might be ancient history but version control will never disappear.

Absolutely right. Git will not last forever. We've already had had VCS, SourceSafe, Perforce, SVN...

Although it might last a long time in it's own niche. Perforce is definitely still alive and kicking in the games industry. Git might eventually return to just being the VCS of choice for the linux kernel.

Heh, I still use RCS on a semi-regular basis...

I think it's less fun to learn than programming. Which can be a deterrent for kids or anyone learning programming at the same time (which is hard enough without adding on git).

Roguelikes are an easy path into programming. For an easy start, find a well-done 7-day roguelike in your favorite language. For example, z-day is in python (http://sheep.art.pl/Z-Day). Someone learning C might like Day @ the Zoo (C - http://www.happyponyland.net/zoo.php).

There's RISC OS Pico. It's a cut-down version of RISC OS for the Raspberry Pi, without the GUI layer. It boots straight into Basic.

http://weblambdazero.blogspot.ch/2015/11/modern-micro-with-r...

It looks like this, and anyone who grew up with the BBC Micro will instantly recognise it:

    RISC OS 192MB
    ARM1176JZF-8 Processor
    Piccolo Systems SDFS
    ARM BBC BASIC VI (C) Acorn 1989
    Starting with 97040636 bytes free
    >_
That's also Acorn's structured Basic, with fast named procedures and multiline control statements, so it's actually reasonable for writing real programs in. It's pretty much COMAL. There's no structured types, unfortunately --- it's still a 1980s language --- but you get still get instant feedback that a traditional micro gave you (and the traditional Basic IDE experience, but I believe they also include the full-screen editor).

Interesting project, but I actually think BASIC is a retrograde step, even with modern tweaks. Each to their own though... as I said in my original post, it's the spark of interest that matters I think, and they can forge their own path from there.

I seem to recall that the initial plan for the OLPC was that everything was done in python, because they wanted the kids to explore and modify.

BTW, i recall Intel showing off a variant of the python interpreter being run directly from GRUB. Would have been interesting to see that ported to RPi. Also, i think there was someone working on a Python CLI that could replace bash etc.


> BTW, i recall Intel showing off a variant of the python interpreter being run directly from GRUB.

That was me: https://biosbits.org/ , presented at Pycon 2015: https://www.youtube.com/watch?v=bYQ_lq5dcvM and 2016 with networking: https://www.youtube.com/watch?v=AlkKvetGFSk

> Also, i think there was someone working on a Python CLI that could replace bash etc.

That was "xonsh" (http://xonsh.org/ , pronounced "conch"), by Anthony Scopatz, presented at PyCon 2016: https://www.youtube.com/watch?v=uaje5I22kgE


I did several years of programming in high school. Our teacher had first learned to program in BASIC on TRS-80 and wanted us to have the same first introduction, so we actually started with a gentle introduction to programming on TI-83 calculators in TI-BASIC which we did for about a month (for a year long first year course). My fun achievement was a Tic-Tac-Toe game that could play as 2 player or with an AI. It was pretty crude how I accomplished it, but it played well.

Looking back, it was a great idea, because it is one of the few ways to get the feel of retro computing and programming, along with its advantages to getting started, that is still useful and relevant. My TI-BASIC knowledge continued to be helpful into college.


His perception of the history of computing in UK schools differs to mine. It's not especially important, just seems a bit rose-tinted.

Prior to ICT - meaning Information [and] Communication Technology - there's was IT. In IT we learnt to make teletext pages, use databases (choosing whether they should be computer ones or not), did DTP (eg newspaper layouts), learnt to type, made graphs, played text-driven games.

There was no Computer Science at GCSE (perhaps it was a subject prior to that) and very few schools, none in my town, did it at 'A' level.

I started programming at primary school age copying out of an intro book that came with an Acorn Electron. AFAIR there were no opportunities during my schooling to learn actual programming, I'd have lapped that up.


That's a real shame. Maybe it was up to individual schools how much they bought into it.

I was amongst the last generation of people to take 'O' levels (ISTR that GCSEs came in two years after me?), and our school had computer science as both an 'O' and 'A' level option. Our little sixth-form BBC Micro lab (networked via 'Econet') was where us nerds and geeks hung out (although we didn't know we were nerds or geeks back then).

After I left school for many years I just assumed that things had carried on as they were. It was only years later that I learnt about ICT and the damage (IMHO) it had caused. :-(


I think everyone is correct here, but are mis-remembering the times.

My dad was a teacher. He used computers to teach industrial design, graphic design etc in a well-funded school in the 1980s. (We have a photo of me using AutoCAD, age 4, on a 286...)

In the very early 1990s he started teaching IT, but he certainly had no programming skills. Wikipedia says GCSEs were introduced in 1988, which would be the new curriculum the article refers to, with the first exams therefore in 1990. That's probably when the subjects he'd been teaching were removed from the curriculum, and teaching IT was the natural way for him to continue his career.

I fiddled with BASIC on our Acorn Archimedes, but couldn't progress -- my dad didn't know anyone he could ask for guidance, yet he knew IT teachers in many other schools. I had one book, that had come with the computer, but was stuck for what to look at next, until a chance conversation some years later.

> Maybe it was up to individual schools how much they bought into it.

And on that point -- there was some flexibility within the IT/ICT curriculum. My dad could avoid teaching databases, and the other teacher at his school could avoid teaching bitmap or vector graphics. My school (different) could teach some very basic programming, making a model automatic door open and close or a lift go up and down.

(The computer graphics work some of my dad's students did was brilliant, a couple even started very successful companies based on their ability. But it belonged in art lessons, not "computer" lessons.)


I graduated in Ohio in 99, and my junior year we had a typing class, on actual typewriters. That was the extent of my official preparation for the digital age. Luckily I was scripting in mIRC at the same time, and learning home-row isn't nothing. But that's why I'm proud our district has Chromebooks now, as I was so sure they'd have one recent college grad who spends the whole budget on iPad's because he likes his iPhone. They all have their own machine, and my son shows me new features and apps.

Thanks!!! Kudos man!

And thank you for the kudos!

"For Chromebooks" is rather misleading. It would be better titled, "For ARM-based Linux distros". The setup installation includes the following:

    Download crouton.
    Create a chroot on the local device based on Ubuntu 14.04 (Trusty Tahr).
    Install Visual Studio Code into the chroot.
    Install git into the chroot.
So it's not natively compiled for Chromebooks as a Chrome/Android app. Instead you're just installing crouton and then putting Ubuntu onto it. With all due respect to these guys, crouton has been around for some years[0]: I had it installed on my Samsung ARM Chromebook in 2012 and used it for coding.

It's also worth noting that putting your Chromebook into Developer Mode will wipe the device, so if you decide to do this, make sure all your local files are backed up first.

[0]: https://github.com/dnschneid/crouton


Yeah, I use a Chromebook as my main browsing machine and I've been so disappointed with it's capabilities. For some reason, I thought Google would make some efforts to make the ChromeOS a tool for developers on-the-go, but they've just seemed to shit on the entire lineup except for the Pixel.

Probably the last Google-backed device I'll buy.


Install a Linux distro on it?

That's what I use it for now. Thought I mentioned that, whoops.

Yeah, I just run ubuntu on it.


I don't know why you ever thought it was for developers. Clearly not having coreutils makes it a non-starter ad a development machine.

ChromeOS was always about being a thin-client. A better kiosk OS, if you will.

With that being said, I use Chrome OS for development. I have a DigitalOcean server that I SSH into using the excellent Secure Shell app, do all of my development there using tmux/vim and test in a browser tab. If you already like this workflow (some don't, I understand), then Chrome OS works very well for web development.


? The Pixel doesn't do anything that other Chromebooks can't. (But the screen is amazing). Though, with a bit of work it makes a great Linux laptop.

There were a couple of options for doing this in a way that may not have required a chroot, but the bigger issue then is: how do you install Ruby? or Python? or [whatever]?

I'd think it fairly necessary to have a full Linux environment (and ideally good package support) underneath the IDE in order to actually work with the editor. And it works quite well in practice due to the integrated terminal that's running full Ubuntu (as you've said, due to the chroot).

The comment is fair, but I've tried to explain this as clearly as I can in both the website and the installation script itself (there's a confirmation explaining exactly what will be done and what that means, although I obviously try to keep it as straightforward as I can without obscuring anything - at least not intentionally).

The native part refers to the architecture. It executes natively on ARM, rather than through some kind of emulation solution (like QEMU) that would make it untenable in practice (I've been dogfooding the scripts with this for some time while trying to polish the process).

The instructions also mention that you can just install into an existing chroot as a standard apt-get install call for anyone that has one set up already and knows what they're doing, although it should also work side-by-side.

I'll review the website in light of your comments though, to see if there's anywhere this can be made clearer!


There is some precedence for porting Javascript-written editors to Chrome - a port of Brackets as a Chrome application exists, not requiring Crouton. See Quickfire: https://chrome.google.com/webstore/detail/quickfire/mobpfffd...

I played with this several months ago, and don't currently use it. Seems like development has stopped, and a recent support comment seems to indicate that ChromeOS updates have rendered it non-working.


Seems like a more flexible solution would be to use VSCode in a tab on a Chromebook to edit code in a working directory on a another machine? For example, it could be a Raspberry Pi if you want.

> but the bigger issue then is: how do you install Ruby? or Python? or [whatever]?

The answer should be pursued through Android. Apps for ChromeOS are officially second class. Chrome the browser, a window manager and a basic file manager seems to be all ChromeOS is ever going to get. The rest should be done through Android to make your efforts future-proof


I was super excited to see this post, until I realized I've been doing what it suggests for 6 months now. I use my Pixel as my primary development machine, but it's only because of Linux. I've learned a lot though, and enjoy it.

I really hate seeing posts on Chromebook forums where some asks of they can do 'X' on a Chromebook and the answer is "Yes" but then goes on the mention crouton. It's like going on a Mac forum and saying that yes your Mac can do that if you install Windows.

Well thanks for that astroturfed testimonial!

Thanks for the assumption of malice.

That one was free, next time I'll bill ya

Accusing other users of astroturfing and shillage is not allowed on HN without evidence, and someone merely holding a different view is not evidence. So please don't do this here.

We detached this subthread from https://news.ycombinator.com/item?id=12957989 and marked it off-topic.


dang, you must realize by now that you've almost singlehandedly ruined discourse on HN, right?

People that think that kids just want to learn how to use computers not build things with them have obviously never heard of a lego.

The author says a lot of traditional software won't run on the Raspberry Pi, because it uses ARM.

Maybe that's true for proprietary software. But the Pi can run any open-source project you throw at it. I used one as an (admittedly slow) development box for a while.


Nitpicking, but there is no inherent quality about "open-source" that makes software support the Pi.

That inherent quality is the ability to compile ARM binaries from that openly-available source code.

Exactly. Because Debian is a collection of open-source software, it was able to be retargeted for ARMv6 and the Raspberry Pi, in the form of Raspbian.

Some open-source software can't work on ARM, but it's in the minority. Code in high-level languages is generally not tied to a particular processor architecture.


I wrote a simple TCP server with Boost asio, maybe 100 lines, and turned on C++11. That file took about two minutes to compile on a Raspberry Pi.

There is a moment in time when a technology is at a stage where individual amateurs or small teams can be on the cutting edge. For my Dad's generation that was homemade radios, for my generation homebrew PCs. Recently it seems like Drones and 3D printing have been at that stage where enthusiastic hobbyists pushed the technology forward.

Maybe in twenty years people in this forum will be trying to think of a way to get their children excited about hacking drones or building phone apps.


I can _so_ see that! They'll be developing iOS emulators that run in a VM inside a browser on your insect-sized cleaning drone.

But... those platforms already have Emacs...

Just lengthy article on why software should be portable. Just doesn't contain the word "portable". And also whole HN comments page doesn't contain the word "portable".

This is just some text editor called "Visual Studio Code", not Microsoft Visual Studio and its compilers, right? It doesn't include compilers, debuggers, or libraries, does it?

I'm the founder of Repl.it (https://repl.it) and our aim is to make programming more accessible. In addition to being an easy-to-use online programming environment free for everyone, we are currently focusing on classroom environments (https://repl.it/classrooms) for some of the reasons you mentioned. Many teachers come to our site because they find themselves in Classrooms where half of the students use Chromebooks which makes it really hard (impossible?) to install any native IDEs or compilers.

I'd just like to say a quick thanks for creating REPL.it. I don't personally use it, but many of my classmates do and it's a very nice environment for development within the browser.

Thank you! :)

Legal | privacy