Is anyone coding on a Chromebook here?

I want to do programming workshops and I'm wondering what laptops to provide to my students.

MacBook Pro are too expansive and I didn't use Windows since 10+ years.

I started to wonder: what about Chromebooks?

My results so far: not perfect but a lot of potential, Chromebooks can do more than you think.

You can do a lot in the browser

And what's better for teaching than a zero-setup environment?

Then you can install any Android app

You may have heard Apple saying that Chromebook are bad because you can do nothing offline.

This is completly wrong now that Chromebook can run any Android app published on Google Play.

For example I needed a chat app and a clipboard manager, I just had to install Telegram for Android and Clipper for Android

Read: Install Android apps on your Chromebook

Then you have Linux native app

As explained by the official documentation

Crostini is the umbrella term for making Linux application support easy to use and integrating well with Chrome OS. It largely focuses on getting you a Terminal with a container with easy access to install whatever developer-focused tools you might want.

Setup here => Set up Linux (Beta) on your Chromebook

I was able to install

Visual Studio Code https://code.visualstudio.com/download

Android Studio 3.6 https://developer.android.com/studio/preview

I could install everything java related with https://sdkman.io/

I could install node, python, ...

IntelliJ IDEA community edition for Kotlin development

Update: I would not recommend doing Android programming on a Chromebook for now. You can install Android Studio yes. But to actually program on it, you will be asked to wipe your chromebook and install the insecure developer mode. Don't do it. Wait.

What's not so great

Slow builds?

It matter less when you are learning programming, you are not typically compiling huge projects.

But still Chromebook are not exactly powerful.

Buy the best Chromebook you can find if you intend to use them for development.

Speaking of which: the best Chromebooks seem to be US only. I had troubles finding them in Europe.

Or maybe we can delegate the build process to an external server with much more power?

Edit: that looks doable in fact.

buildfoundation / mainframer Tool for remote builds. Sync project to remote machine, execute command, sync back. Mainframer A tool that executes a command on a remote machine while syncing files back and forth The process is known as remote execution (in general) and remote build (in particular cases). Mainframer helps to move heavy operations (like compiling the source code) from a personal computer to a dedicated machine. This way you, as a developer can use your machine for changing the source code or browsing the documentation without constant freezes and hearing jet engine-like sounds caused by the build process The execution itself is not limited and can be applied to actions like encoding audio and video, batch processing and more. It works via pushing files to the remote machine, executing the command there and pulling results to the local machine. $ mainframer ./gradlew build Sync local → remote machine... :build BUILD SUCCESSFUL Sync remote → local machine... $ java -jar build/libs/sample.jar This program was built on … View on GitHub

Adambl4 / mirakle Gradle plugin to move build process to remote machine. Mirakle A Gradle plugin that allows you to move build process from a local machine to a remote one. Compatible with Gradle 4.0+. Works seamlessly with IntelliJ IDEA and Android Studio. Why Remote machine supposed to be much performant than you working machine Also having a sufficient network bandwidth or small amount of data that your build produce, you gain build speed boost. How it differs from Mainframer Mirakle is designed specially for Gradle build system. It works as seamless as possible. Once plugin installed, you workflow will not be different at all. (It's a good thing to prank your colleague. Imagine his surprise when one day he get several times faster build time.) Setup Put this into USER_HOME/.gradle/init.d/mirakle_init.gradle initscript { repositories { jcenter() } dependencies { classpath " com.instamotor:mirakle:1.3.4 " } } apply plugin : Mirakle rootProject { mirakle { host " your_remote_machine " } } Setup local… View on GitHub

Or just plain old ssh , git and rsync .

But most importantly, documentation sucks right now, if it's available at all. You have a weird variant of Debian installed, you don't really know what works, what doesn't. Not a lot of people are using a Chromebook for development either, so you feel a bit on your own.~

Update: I have found the kind of documentation and community I wish I had when I started.

Others

Linux apps look ugly right now

I wish there was a way to automatically setup a Chromebook for development purpose, like I'm doing on macOS with http://dotfiles.github.io/

Update: