It already happened a few times in the history of computing that the level of abstraction the majority of us work on has been raised.
There are, a...
For further actions, you may consider blocking this person and/or reporting abuse
A nice discussion I would love to have over a coffee! This is something I've been thinking about for many years. Everything will slowly move on the Cloud sooner or later, and it's a matter of time when our OS's will become cloud based. The devices we will use to access the cloud computer will act like a portal or a "shell" device. If something goes wrong with that device - no problem - access everything as it originally was on another device. This is how the future will look like, at least, this is how I imagine it to be. Good read :)
I don't see myself ever running anything less than a full Linux installation on my computer. Growing up outside of tech hubs, useful internet access is more scarce than oil in this world. And, I assure you that internet providers will keep it that way.
However, what I would like to see is a seamless experience where I, for example, boot up my cheap laptop at a coffee shop, work on something, and then have access to all that work on my home workstation. This can already be achieved but not seamlessly (Git, Docker, etc.)
Then I guess you didn't hear about the projects that Google, Facebook, and even SpaceX are all working on. The achievement of a true WWW is closer than we might think, whatever ISPs want/say. In the next decade or so Internet connection will not be the problem anymore, even if you are in the middle of the desert or the ocean. Now whether the offline system is from Microsoft, Linux based, or Apple, it doesn't matter, so you can still have your full-OS if you want. But most people don't care about a full OS, or a Linux based OS, they simply want to use their working tools / productivity apps / entertainment products etc.. and continue going with their life. They only want a simple workable environment, and something that works seamlessly everywhere / anywhere. The best way this can be achieved is if the system is cloud based.
Those projects by Google, Facebook and that Elon guy are all nice but if history is a teacher, it will be plagued by artificial throttles and pricing schemes that will continue to prevent the expansion of the cloud.
Think about how nobody has access to real cell phone service (at least in the US) since all service providers have artificial throttles and data limits. Remember, back when the internet wasn't quite as fast? We could, at least, use it endlessly. Once we it reached a speed that was truly useful, service providers capitalized on it and nullified the progress that was made.
Yeah, you have a great point here. I guess living in Europe has its own benefits on some things - sometimes. I don't know, I guess I have high hopes about things getting better on a global scale. Who knows, maybe one day in the future. But as you say, right now with all the limitations this is highly unlikely to happen anytime soon.
I agree with the overall sentiment of the post. In terms of making our software unique by connecting our business logic together, that logic has to be stored somewhere (e.g. the cloud). In the context of current tooling offered by AWS et al, we already have the tools to make our business logic connected through cloud functions, serverless, etc.
AWS has some great functionality. It's sad there is little alternative to Amazon in that space.
I also think we need better tooling to develop directly in the cloud.
Also, we need new runtimes that get rid of all the baggage of running directly on the OS.
What Cloudflare is doing is a super interesting step in that direction: blog.cloudflare.com/serverless-per...
Nicely written, I enjoyed reading it!
You really pointed out a change that I observe for a couple of years now in our company: We try to have all our dev, test, int and prod environments in the cloud, try to use terminal servers whenever possible, store data (even business critical) in the cloud (OneDrive, Azure, Google Drive, you name it, people use it) and try to get our customers on board (our ERP system runs on Azure).
Like you mentioned, we in germany aren't fully trusting cloud providers.
There is this one joke at the office:
Which basically means we are not able to operate if Azure servers are down!
At the beginning everyone was suspicious and investigated every bit of change.
Today it is exactly like you said: People don't care about it anymore!
When we developer have to setup our maschines for a new project and it takes more than an hour, we get upset. So we constantly search for alternatives to speed up the process and the concerns vanish.
I've taken the habit of running all development tools on Docker. My current work computer doesn't have Node or the JDK installed. I just spin up the containers. Once I'm done working on a project, I can remove the entire development environment from my computer with a few simple commands on Docker.
The real beauty of it comes when a new developer joins the team. They just have to clone the repositories and build the docker images locally. We have a team using Mac OS, Windows and Linux all to develop the same group of applications which are each containerized with Docker.
This is indeed a really nice way of setting up the dev environment independent of the OS and a smart way to get new colleagues up to speed within no time :)
Thank you, I enjoyed reading your perspective!
I just wanted to comment on this:
Can't agree more:
Usually on a Macbook, you'll tell your OS to download a browser, then, in the terminal of the OS set up your development environment (IDE, toolchain, etc).
I recently got a Pixelbook, and there is a switch of that relation - it is subtle but fundamental. The operating system is literally the browser: ChromeOS! So, as a developer, you want a terminal? Allright, your browser, the OS, will download and launch a container with a terminal! 🤯
TIL about OCCI - thanks Daniel :)
This looks to be heading in the right direction, along with commercial competition from the likes of Terraform, to providing a common cloud infrastructure API, with aspirations to move 'up the stack' and manage PaaS and SaaS, maybe FaaS deployment - good!
I'm also interested in the ongoing process of decoupling and standardizing the API used by that all important business logic: we've gone from libc + targeted binaries, via virtual machine APIs (JVM, CLR) and interpreted/JIT (Python, Ruby, ECMAscript), into containers (Docker, Solaris Containers, OpenVZ, BSD jail, ...), and Serverless/FaaS (AWS Lambda, Azure FaaS, Google Functions, Cloudflare Workers) where we can finally stop thinking about machines and OSes. Right now there are significant API differences across vendors (they need their lock in!) but I'm hoping this will resolve into a portable Serverless API. Early adopters can choose their vendor or use abstraction layers such as serverless.com/ although this provides a low common denominator ATM.
Sorry but this view that we (developers or people) don't care where our data is and where our tools are is terrible for privacy and convenience.
1) if development and tools move to the cloud, well now you have to have internet to write even a single line of code. What if the internet is slow? Too bad. What if the provider is down, under attack (GitHub faces these almost every quarter)? Too bad.
2) All our data is moving to the cloud recently with no regard for encryption or privacy and we've been eating that up because "oh we love new things" but now we're understanding just how much data these big companies have gathered about us and how they're using it to influence us.
In a free market, there will always be winners and losers and if the last 20-40+ years have shown anything, it is that companies get too big to be held accountable.
We simply cannot hand the keys over for the building blocks of software (tools) to the cloud.
Testing, sure. Development, there better be an offline alternative at the very least.
I agree that development and some testing environments must be available offline. The internet will not be reliable enough to truly live on the cloud within our lifetime (or ever). And, yea, not only do companies abuse our data but the bigger the company, the more developers placing security risks near your data.
Sounds well but doesn't work.
So, yeap, it's nice to have on early but then you project grew enough your definitely want to control and own it.
Have you been following AWS re:invent? Any takes on anything they've said or announced?
Not really. Looking forward to a nice summary on dev.to :)
However, AWS and friends taking over control is what I would like us to prevent. What I have seen so far, serverless is great but we need to go a step further than only wrapping existing tools in another layer I think.
My OS in cloud. Not acceptable for years, a nice debate though.
The Dark language is doing awesome things in this direction:
medium.com/darklang/how-dark-deplo...