Making ASP.NET apps first-class citizens on Google Cloud Platform
cloudplatform.googleblog.com
cloudplatform.googleblog.com
I'm excited I may be able to play with C# again in the very, very near future.
Can't you just install windows as everybody else and start playing with your programming languages of choice?
That just reads as if they have a much less enthusiastic community.
They were able to toss dozens of billions at Nokia. 25 for LinkedIn. Billions for Skype after bungling MSN Messenger into the ground (which would have also served as a perfect start for a real social network, including work!). But they couldn't find 6bn for Sun?
Was it just antitrust? Or were they that clueless?
.NET is pretty solid. F# is probably the "best" language once you figure in tooling, features, performance, libraries. If they made F# a first-class VS citizen, then it'd really be hyper competitive, but I guess they're hesitant to undermine C#. I've run F# on Linux for many years now and it's been pretty good. With Rust covering the true high-perf/no-runtime scenarios, I feel like I've got things well covered.
It's probably 2nd just after Java.
Glad to see Windows VMs are now supported. Any intention to add C# drivers for the services, namely Pub/Sub?
You might want to read the article. About 1/3 of it is devoted to announcing their new .net client libraries.
> Please don't insinuate that someone hasn't read an article. "Did you even read the article? It mentions that" can be shortened to "The article mentions that."
"You might want to read the article" !== "Did you even read the article" in terms of intentional snark for which that guideline is intended.
Parent also points out that a decent chunk of the article is about the support libs,
To quote fairly early on in the article just from a quick scan (Ctrl+F "pub"):
"These libraries are in beta today, and include wrappers for Google BigQuery, Google Cloud Storage, Google Cloud Pub/Sub and Google Cloud Datastore, with more on the way"
AWS is solid but feels cluttered, I guess. GCP is just ... a breath of fresh air. And it's way cheaper than Azure (last I checked, some VMs were 1/5th the cost; our overall cost is 1/2 on GCP.)
Azure was shockingly expensive -but then again, I suspect they offer their enterprise customers discounts that may not be published.
As I .NET dev, I very much approve
That said it doesn't seem so weird to run Linux vms on Azure.
When you think of Google and deploying to the cloud, Borg and K8s come to mind. That's their expertise. Windows Server doesn't fit into that picture.
I guess it is the same with Azure and running Linux VMs there. Although a third of Azure VMs run Linux, the marketing and public awareness hasn't caught up with that reality.
I'm not the biggest fan of the ASP.NET ecosystem, but I'm becoming increasingly aware of how desperately the Java ecosystem needs genuine competition. This can only be another forcing function on other major ecosystems.
It's also the case that people have made credible points about how the windows platform actually provides better performance per price point for specific types of applications. While I found that very surprising, I think that ultimately we need to follow the data and provide similar pressure on Linux's I/O performance.
Do you mind expounding on that?
Is Java that much of a major player on the backend? I didn't think so; especially for new startups.
... Yes? Clojure and Scala are quite popular and normal. Java itself is still extremely common. Even if you end up writing your API endpoint in Node or Go, odds are you'll still end up using sidecar infrastructure that's written or maintained in Java.
The competitors are:
- Node, which simply has a hard time scaling. This gets better every year, but it is sort of in the "you do this and then commit to a larger capex" category along with Python. You can do it and many do.
- Go. Go is a funny language. It's quite good for small projects, but completely fails to scale for large projects due to issues with error handling.
- Rust. I don't think this sees wide adoption in the startup space yet, though.
- Nim. At least as cool as rust, but even more neglected.
- Haskell & OCaml: Lots of TALK but not many actual shipped products use this stack. Some pretty impressive groups do though.
Just my opinion though.
What's more, I do not think the community has "solved" for those strategies. I know google internally has one set of guidelines, but other teams and orgs do other stuff.
Quite frankly, there are many aspects of its design that ended up being sub-optimal for large codebases. Look at the profound about-face the language took on bundling as an example.
We can bandy about all we want about this, but uh... certainly as a longtime user of Kubernetes I can say, "They have found ways to deal with the language's error handling."
For a large or complex codebase, I nominate Cloud Foundry. About 1.5M SLOC of Go (1.8M LOC) in the main cloudfoundry repos[0]. Almost all new development is in Go.
There's still about 370KSLOC (470K LOC) of Ruby. Eventually most of it will be replaced, which will drive that Go codebase up a lot.
Disclosure: I work for Pivotal. Lots of my colleagues wrote most of that Go. I for one pity them, but they seem to have enjoyed it.
Pros:
* Code readability
* Concise syntax
Cons:
* Ruby doesn't perform as well as many other languages.
* There is a cultural tendency among Rails devs to rely on a large number of gems. This creates dependency hell, especially a few years down the line when some libraries are not actively maintained.
* Unicorn is not the easiest server to manage. However I have to admit that I haven't tried any alternative, there might be better servers in the Ruby world.
Rails left a bad taste on my mouth after using it for one project. Many things about Rails are wonderful, but it feels like the entire project is in shaky ground with so many dependencies. Memory usage and performance aren't nice either.
Python sounds tempting, but I want to avoid dynamic typing if possible. That rules out Node (not that I would like to work with js).
That leaves me with either Java and .NET, which have the taboo of being enterprisey.
Are those the only major players?
I don't like Ruby because it hits a sour spot for me. It used to be very cutting edge, but then stagnated. It has all the problems of a dynamic language, but nothing to really offset it. Its tooling is fairly good for assembling new projects, but not maintaining them.
I think if I went somewhere today, on the spot.
1. FSharp & C#. The .NET Core stuff is exciting. I view, "enterprisey" is just, "I have libraries for lots of things I don't want to solve like calendaring." So long as I can quickly develop and deploy code, those kind of social things are immaterial. People worry about .NET core performance even as they ship Node code, so I find that concern somewhat manufactured.
2. OCaml, in the same vein as F#, but I think this lacks a lot of ecosystem stuff so I suspect it will always be secondary.
3. Go or Rust. I could just bite the bullet and do it. It's doable, it just requires a lot of thought.
2/3) I think the communities are way too small.
So if you are in the Linux world and want to work on Back end . Then Java is your only options. You can mix in groovy/kotlin/scala to make dev less painful .Look at dropwizard and play framework the are an improvement on JSF/JSP/Spring mess.
It's a tax on success they want to impose. They want to turn Java into the same business model as their databases.
If you want to run dotnet core apps on GCP right now, you can do it by installing Cloud Foundry and the dotnet-core buildpack[0].
Of course, installing Cloud Foundry on CF is still harder than it ought to be for tire-kicking.
So we've added the dotnet-core buildpack in Pivotal Web Services, as a beta[1], looking for feedback. Please give it a go and come find us on Slack[2] in the buildpacks channel.
[0] https://github.com/cloudfoundry-community/dotnet-core-buildp... [1] https://blog.run.pivotal.io/introducing-the-net-core-buildpa... [2] https://cloudfoundry.slack.com/
Well done.
Maybe this is my chance to finally get some Stack Overflow karma...