Coding from a hammock on a tropical beach with nothing more exotic than a generator running for a few hours in the evening to keep the lights on and the beers cool in the bar (and your battery topped up). Sailing in remote parts of the Caribbean, with a little wind turbine on the boat to charge your machine (and again keep the beer cold). Hell, even trying to work from a coffee shop in England with their quaint idea of "internet" and "wifi" even in 2015.
Your laptop weighs three pounds. Take it someplace nicer than your living room!
Wouldn't he have said "you fail, that is why"?
I'm so much less productive when I try to work without internet, that I don't try. I can read, write, play games, or get off the computer and get my head right for work, during that downtime, but the idea of writing code without internet just doesn't appeal to me. We are beyond that point in terms of software complexity. Building things of value is no longer simple enough to do all on your own, a lone coder in the woods (or on the beach or on a boat).
I'm curious how many of the things you've suggested are activities you've actually done while writing code? Sounds like a Corona commercial...not really a software engineering story.
Arusi, Columbia (a tiny fishing village a 2 hour launch from the nearest town where you can get an overnight boat to a city connected to the rest of the country by a road), Tonsai Beach, Thailand, back before they had power or internet. And a couple months sailing in the San Blas islands off Panama. Parks, campsites and random comfortable boulders in the forest are pretty regular worksites, even building real shipping products with paying customers.
Even the dreaded English Coffee Shop really happened (I live there half the time and have a hard enough time getting BT to deliver internet to my house with any reliability).
I find that a good IDE removes pretty much all the Googling from my life. I know what you mean though, having written my share of Ruby and Python, where you're constantly on Google trying to remind yourself what order to pass parameters to File.Open(), and completely aswim with a 3rd party API. But Intellisense knows everything there is to know about C#, Javascript, CSS, etc. and will either tell me about it or just finish writing my line of code for me with a quick key chord.
I tend not to rely on 3rd party code for simple things I can write myself, so I don't spend as much time Googling React or Angular into submission as your average modern dev. For genuine 3rd party APIs like AWS or Stripe, you're right. It's hard to test that stuff until you're back online. They all have libraries though, and again the IDE has your back as far as implementation is concerned.
Good luck with the RV life!
http://www.expatsoftware.com/articles/uploaded_images/parrot... http://www.blogabond.com/Photos/PhotoView.aspx?imageID=8479 http://www.blogabond.com/Photos/PhotoView.aspx?imageID=992
For the more easily distracted among us, it works the other way around :)
But setting up JDK and IntelliJ|Eclipse|NetBeans typically takes five or ten minutes. After that you can use your environment everywhere and have a native experience (as far as native is possible using Java ;)).
It will be fast with or without internet, it will continue to work as-is when the company creating the IDE goes under or decides to double prices, I can use it with local tools (Git, Mercurial, JVisualVM), and my secret sauce does not end up on somebody else's server.
So again I don't see a difference between GiTHub and Codeanwyhere in that aspect.
Of course if you don't use GitHub you people by wont use us...and that's OK.
We use Gitblit. Since it is self-contained application, it (literally) takes just a few minutes to set up [1]. After that, the number of repositories, users, and repository size is only bound to technical limitations. I get the impression that GitLab is also pretty simple to install these days with the GitLab Omnibus packages.
And even if you want to use GitHub or BitBucket for your proprietary code, adding yet another company to the loop only increases the probability that your code will be stolen in e.g. a security incident.
[1] Perhaps also important: it integrates with internal authentication servers (LDAP, etc.).
Microcomputers solved the problem of portable powerful processing, so I do not see why I would defer the processing elsewhere. It isn't a problem that needs solving.
Everyone asks what the core value proposition. In a distributed cloud environment, it's developer bootstrapping, securing distributed workspaces, and moderning legacy build processes. These are capabilities that only exist when you have a shared distributed server system.
We took the kernel and created a new IDE out of it to demonstrate a couple things: 1. Environment & workspace portability 2. RESTful services on top of language tools like JDT 3. Production / development container interoperability 4. Extension framework for a cloud IDE
We haven't launched Che yet becuase the legal & branding review process at Eclipse is extensive. We hope to finally be done within 3 more months.
But we encourage everyone to check out 4.0 branch of git and then build that.
It is doing a few things: 1. Worksapces are quietly powered by environments, backed by machines which are docker or localhost. This enables each workspace to be isolated with a stack apart from others.
2. We will also demonstrate workspace portability. You can move an entire workspace and all of its tools from Che to Che, or from Che to cloud. And the environment will continue to run identically in each location.
3. We are running the full JDT and other language services inside of the machine. We wrap these with RESTful wrapper. And then it allows the browser to gain capabilities for maven, refactoring, and a variety of powerful intellisence, and it's generally the same speed as localhost.
4. You can then exec commands, debuggers, and ssh into the workspace machines.
5. We have also done a project with Red Hat to enable your workspace environments to have the same docker container structure as production. We will shortly release a plug-in for OpenShift and Kubernetes that let's projects move back and forth with limited configuration. Becuase they are both running on a common container architecture.
While we can solve workflow problems in our distributed system, such as a workflow we call continuous development, we wanted to have a fully fledged desktop IDE to demonstrate that this could have the performance and security of other types of tools. So we are working to have this installation be very fast and lightweight.
You guys are seeing the intermediate builds so it's got a lot of rough edges.
Note: Please if you are going to do some testing, try it on the 4.0 branch. The design is much better and the performance is very good. The 4.0 branch is when we started embedding the JDT services into the mini Che that runs inside of the workspace machines. git clone https://github.com/codenv/che git checkout 4.0 cd assembly-sdk mvn clean install
Collectively, we are working on a broader platform that has a goal of letting anyone anywhere make contributions without first installing software.
Orion is primarily a client-side technology. It's designed to offer a multi-page browser experience that has simple plug-in approach for customizing the client side experience.
Che is primarily a workspace server, with a focus on workspace portability and interoperability.
In fact, Che embeds Orion as the core editor, the diff editor, and some other components.
Che has a browser IDE that we have built that embeds Orion on the client side, along with adding in additional constructs that we needed for debugging, single page management in the browser, and some other items.
Also, I have yet to find a cloud IDE that has proper support for building iOS apps. Sure you can delegate the builds to some external build service, but sometimes you do need the flexibility of a local build environment for advanced debugging and working around certain issues.
Further, even if it is there, if you have bad reception, assuming a good connection is in place hurts the experience. If you design your product as "connection is needed for some things", it will be way better than "connection is always perfect".
As an example, I hate when I'm about to read a webpage opened previously on my browser, and then somehow, something triggers a refresh, I don't have good reception, and I need to wait minutes for the page. One person assumed connection will be quick and it is ok to discard my copy and wait with a blank page until the next one loads; another assumed that huge pages are ok, and putting the content last in the html is also ok, and then, I end up without the content.
As someone who isn't a web developer, the question seems ludicrous to me.
It's important to note that when you need to do offline development, you need to do offline development. A toolchain that requires an active internet connection is still fundamentally unreliable, even in 2015.
Edit: Used to work on personal projects in a previous job that included long commutes. For me it is often the best time of the day for programming: Nobody to interrupt, few distractions, a very specific start time and stop time.
Honestly this would be like saying "GitHub doesn't accept git pushes anymore, all changes to files have to be made through the Web UI".
http://www.paulgraham.com/distraction.html
Myself, I'd be glad to be disconnected. But it is hard in our world right now. Still, I try to do as much without access to internet as I could.
We in Codeanywhere are web devs, and we made Codeanywhere for us :)
Always-connected working is widespread enough that you can sell the product you sell, but pretending like it's a well-established hard requirement everyone easily meets is bullshit.