Anyway, node is a pretty mature platform now, if it dies, it'll die like java-the-language is dying. Very very slowly, and with parts of its platform holding out much longer than other parts. Or alternatively it'll evolve and slowly adopt things from other ecosystems.
I don't think we're at the stage where we can say that a bet on deno is definitely right, but it has a lot of interesting ideas and lots of people will be picking it up where they can.
If you're interested in the difference between node and deno, check out the talk '10 things I regret about Node' https://www.youtube.com/watch?time_continue=1&v=M3BM9TB-8yA&...
I have some answers. It's not a lost cause. Death is not likely, & I do appreciate a lot of java (cdi rocks, microprofile is doing great, performance is good, it has excellent big data tools & many serious pieces of infra are built with it). But how java can retain liveliness, over time, & how the experience & knowledge base continues, is a real challenge. Being on Android helps a lot but also it's a radically different immensely unlike the server side world, with its own elaborate platform specific architectures & libraries. There's not a lot of places java has a hold on UI/ux centered systems, outside Android, so it risks becoming too invisible.
Microsoft decided that Java death is so imminent that they are now an OpenJDK contributor, collaborate with Red-Hat on VSCode Java support, have bought jClarity and Java has first class support on Azure.
Java’s mindshare just isn’t where the exciting things in this field are happening. It’s more the domain of overengineered “big data” platforms and clunky enterprise software. Yes, SAP employs a ton of java developers I’m sure, but many devs would rather switch careers than work on anything resembling a crufty ERP.
Thus, the ecosystem stagnates, due to the dead see effect - everyone who could push it forward into new areas has no interest being anywhere near it. And stagnation is a long, drawn out death all the same. It still has a ton of momentum, and millions of outsourcing devs who only know Java, so it will be with us for a while - but make no mistake, the decline started quite a while ago.
I only see RFPs for Java based technology going up.
So while they are doing lots of nice performance improvements, there are plenty of business not so happy that their 20 year investments don't run on .NET Core, and if a rewrite is needed (e.g. WCF vs gRPC) then why not just jump into something else.
Just see the lengthy roadmap, and the considerations that not everyone was happy with "AOT" (packing everything into an exe that unzips on execution).
https://github.com/dotnet/designs/blob/main/accepted/2020/fo...
Also check the repositories from Project Reunion, it is pretty much WIP right now.
There's some good words in the grandparent about who uses Java, that I respect a lot & holds enormous truth.
I don't know anything about COBOL. But neither do any of my programmer friends. But COBOL is also far from dead, yet it might as well be to the rest of the programming world, I feel like. It has no mutual impact, it's too far removed from the regular happenings, & I'm not sure how or where dialog would open.
So yes, like, I think the Roman example is really good. Communication are getting cut off, people are stuck. Things might be good here, but the world is regressing to a pre-Romanized status, with little overland travel, unable to harvest the breadth & intelligence of the many great citizens, that Java used to be a contributing key part of.
I don't think Java is stagnant or dead, it's not so glum. Micro-profile is being wonderful. DropWizard is a very lovely quite popular scene still. But right now, Java's presence in the AP Computer Science curriculum is doing an enormous amount of heavy lifting for Java, and once that dam breaks- and it doesn't seem like there are many fitting replacements atm, with all the nice neoclassical columns & facades to make the language feel academic/computer-science-y- it's gonna be harder days for Java, & the weakness within, the being more cut off, is going to hurt.
On the contrary, even boring enterprises often don't actively use Java. Sure, lots of places do, but lots of places have either never adopted or dropped (or at least relegated to certain legacy systems) Java, especially, on the enterprise side, places that at some point became largely Microsoft shops, where even if they've since moved beyond that, they probably didn't go back to Java except maybe for any Android work.
SAP is a backwater for programmers. They're at least 20 years behind the curve.
Do you know that several JVM optimizations have been contributed by them?
I for one, rather work with SAP than dealing with npm ecosystem.
A job is more than a money maker, it's a platform for expressing yourself.
SAP wouldn't understand that though, so they hire the mediocre (to write Java, a language explicitly designed to cater to less capable programmers) to produce joyless, soulless stuff. Of course they pay well, they have big customers with no taste for good work, but plenty of money, nobody in their right mind would take on a SAP job if the money wouldn't make up for the grueling tedium.
If you think that it's either SAP or node, oh boy, thats a false dicotomy of hilarious proportions.
And BTW, I've heard that Cobol salaries are quite high too.
Yeah, ironically COBOL is more modern than C in language features, yet C seems to still be quite appreciated for a 50 years old language.
Edit: oh good to see you again pjmlp, after last week. We fell to different sides then too, but I have continually enjoyed your writing, & again, while I talk & disagree, I would also not say you are wrong. You are more than correct, in the vast amount of cases. But I would suggest that this field in particular must also be heads up looking up & about, that just a job doesn't fully describe us all.
The issue is that if you work for a company like SAP, you most likely don't have enough personal flavour to come to interesting or meaningfull solutions. If you don't have passion, be it even for correctness, you'll build mediocre things.
Germany paid SAP millions for their Covid tracking app. Reaearchers had already worked out a protocol for them, apple and google had already implemented it. All they had to do was write a simple frontend and be done.
But politicians decided that such a big and important job, needs to go to big and important companies like SAP and T-SYSTEMS, for millions of euros.
SAP tried to be cool and agile, they even forced their employees to create github profiles (something none of the had done prior).
In the end they delivered a month too late, with critical bugs. And millions of server maintenance fees.
A system that was already 90% implemented, with network requirements that can be satisfied by fiber to the home connections, or a single S3 instance.
Why? Because they used mediocre people, who didn't have enough passion to create github profiles. Because they used the least common denominator, Java, and reinvented stuff that was already implemented. And because everybody just wanted to get the job done and go home, no expression of self involved.
But hey, I heard they pay good.
Funny you should ask that. If a high school kid takes Advanced Placement (AP) Computer Science in the US (including the kids here in my neighborhood in Silicon Valley), the only language taught is Java. Kids who want my help with their programming projects or classes here in the Valley, even the undergrad CS majors at Stanford, are always going to ask about one of three languages: Python, JavaScript, or Java.
In the shadow of the Apple spaceship, the iPhone is exactly as Apple intends: an appliance for you to communicate with friends and buy things from Apple, certainly not a computer for you to program. Nobody ever asks me about Swift. If you want to program a computer--sorry, "code"--it's always and only Python, JavaScript, or Java.
Maybe I'd pick when apple removed the default install from mac os, or maybe I'd pick when browsers made it impossible to run applets, or maybe I'd pick when the major java IDEs started pushing other languages like kotlin or xtend, or maybe I'd pick the oracle acquisition (never a good thing), or maybe I'd pick the release of go - a language squarely targetting pretty much the only niche that java has left (enterprise development of servers by mixed ability teams), maybe I'd pick the point when java development felt like it became more like configuring metadata for frameworks than actually coding, or maybe I'd pick when google started showing kotlin as the default language for developing on Android rather than Java.
Here's google trends for java: https://trends.google.com/trends/explore?date=all&geo=US&q=j...
Java-the-language is not going away any time soon, but if you expect it to do anything except decline, I think the future will be disappointing.
Then do you think the likes of SAP, Adobe, Amazon, Azure, Ricoh, Gemalto, PTC, Azul,.... are going to port their golden eggs to Go now?
It is an illusion to use JVM without touching or understanding Java works.
I have seen a couple of those guys, where I get called to sort out their problems.
1. Kotlin replaced Java for Android development
2. Scala has become the primary language for some of the major tools in the data stack - spark, kafka etc
I’m sure there are other examples as well
1. Politics due to how Google screwed Sun with Android Java
2. Scala is a tiny dot on JVM world and it remains to be seen how Scala 3.0 will be taken up, specially if Python like syntax is actually adopted
Is that what you were implying ? It doesn't sound like it from the rest of the comment because you seem to disagree that Java is losing mindshare on JVM.
Having some level of POSIX compliance doesn't turn an OS into UNIX, unless you mean Windows is a UNIX as well.
Java is dying so fast than nowadays even Microsoft contributes to OpenJDK, having bought jClarity in the process.
I jumped ship to .NET after Oracle changed their licencing. I don't like them as a vendor and don't want to be tied to them.
Java will still live to a pretty ripe old age but it does feel like it's a little over the hill nowadays.
.NET Core also doesn't run in all platforms where there is a Java implementation and not everyone is happy to rewrite their .NET Framework into Core, while Microsoft is in mix of leaving again stuff behind like the ongoing discussions about CoreRT, .NET Native, Project Reunion, MAUI vs Blazor vs WPF vs Forms show.
I know of teams who have moved to Java simply to avoid the churn. Many folks prefer the boring but stable Java ecosystem.
If it's not growing explosively - it's dead.
Do I really need a "/s" here?
This is important, so I predict that over the next few years, as the 20-30 year olds of today gain more senior positions, they're going to choose python, JavaScript, kotlin, golang or rust for new projects.
For a majority of enterprise type integrations, which I would argue are the majority of software projects, Java and C# are still the only viable choices. And I don't see that changing any time soon. Go and JS haven't really touched that space despite widespread use for webapps.
If you need a big enterprise MMORPG type system with tendrils reaching across the cosmos into your stagnant data ponds, creaky AS400, and React customer facing mirage, Java is the legendary weapon. It's your only choice, your destiny.
Nice
The killer feature is that it offers nothing new or distinguishing. It looks like other JS elsewhere. It offers WebSockets via the same sort of WebSocket support you'd have in the browser. You read files via the FileReader api you'd use in the browser.
The killer feature is native developers who have an easy te embedding or writing add-ons for deno, not end of line developers.
This killer feature / mass adoption mindset is such an ugly poison. The size of a community is far down the list of considerations, a proxy only for easy consumability & fitting within current pop-culture sensibilities myths & current styles. Think different. Look for what really may matter.
I'm still happy that deno exists, experiment is good and if they ever find something that could make nodejs better, then it could be used to actually improve nodejs, which everyone will benefit from.
Yes! For example, you get fetch out of the box.
In my twitter feed the only ones talking about it are those who are asking themselves why it was so over-hyped
The adoption is basically nil.
I was just contesting the assertion of "switching in droves" by parent post. Find me a case of a nodejs community "switching in droves" to deno if you know some, or even a high impact project in nodejs currently switching to deno, if your intention is to assert that parent's assertion is correct.
My thoughts are that atm there is no reason to switch your project(s) to it and that, for the features Deno offers right now, it was indeed severely overhyped
They're pointing out that anecdotally, Deno seems to be a non-player right now. Which is pretty spot on: it's still very new, and hasn't found a critical application yet (e.g. would Node have taken off the way it did without Express? Probably not). So right now, it's an enthusiast's plaything, even if the architectural principles are much cleaner (wrt modern JS) than Node can ever become - without a rewrite so drastic it'll split the Node community like Perl 5/6 or Python 2/3, at least.
- Support for "browser" apis like fetch and ES modules.
- Security
- No NPM necessary, just import code like a browser would
- No political agenda is being pushed, they simply focus on the tech
The only thing I really miss from node is the cluster api.
I just don't see how that has anything to do with javascript development.
Yet the US, isn't alone in this. It never has been. For example, although the famous poem Whiteman Burden was about the American-Phillipine war, it was written by a British poet based on his view of British Imperialism. That legacy of colonialism lives on today throughout everywhere in the English speaking world.
As for the French, the less said about how they exploit the CFA zone countries, the better.
The Russians? Currently the leaders of European racism.
This isn't simply a topic isolated to a parochial country, far far away from the ideologically pure Old World. What occurs in the US was merely a Flashpoint.
They explicitly state that these issues are global and thus must be an issue in every country. Sure you can pick a few countries where there are big issues, since there is a lot of them. But there are also a lot of countries where it isn't a big issue. These countries, like Japan, may have other issues but not explicitly those stated.
This is definitive proof that they are pushing a specific, american political agenda where you paint with big brushes over the entire world. It's also objectively and demonstratively false. My country for example, Sweden, rather have the opposite issue of police brutality, the police basically use too little force and this creates a bunch of issues where criminality reign rampant.
Having the issue in Africa, North and South America, Europe, and Australia is enough to satisfy that. I'll have to defer to others experiences in Asia, as keeping up with 4 continents is enough for me ;)
Additionally, this ideology expresses itself in different ways per country. The issue of white supremacy in for instance Togo, is not that there are white police officers and segregated drinking fountains. It's that the French forcibly colonized the area, then set up an exploitative trade zone after WW2, and continues to prop up brutal dictatorships merely because the leaders are willing to cede economic control to France. It's that the French are forcing their language & culture on a country as part of a 'trade' agreement (to the point where the government must buy French textbooks), but there isn't any reverse requirement of cultural exchange.
White supremacy is a global issue.
Yet all global issues won't affect every country equally. Climate change may have global effects, but as the Fins famously said 'we live in the mountains, we will be the last to drown!'.
At some point, you pass the line and you become ridicolous. I think you and a lot of others have crossed that line. I feel so disconnected from your views and the people who write BLM-banners like those on nodejs.org that we could live on different planets. It is hard to even have a rational conversation because of this and for what? It has nothing to do with tech or javascript development. It's inherently stupid.
> Fins famously said 'we live in the mountains, we will be the last to drown!'
I suppose you don't think of the Finnish people? Because these guys mostly don't live in the mountains. :)
Racism is the problem in the worldwide but BLM looks like US domestic problem caused by historical, gun, police reason.
Dependency management that's much more friendlier to forks. Very often I want to patch something small in a public NPM library and point my company's private project to the fork that contains that patch, not having to wait for the maintainer to accept the PR. Publishing a separate private or public version of this is still a chore.
Typescript support. The current "building" from Typescript to JS is something that mostly works, but still feels icky and sometimes breaks down. Setting up a great debug environment in Typescript/NodeJS codebase is still a pain, and mostly I don't even bother.
I see that none of those are "killer" or seem very important, but it's enough just to try it for some small project in the future. And then, who knows? May be it'll just turn out to be better in general.
However, if you've gotten more and more annoyed with Node's legacy method of requiring modules (because it predates modern modules) and legacy method of dealing with asynchronous code (because it predates promises and async/await), then you already know why Deno might -once it's matured a bit, because it's super early days still- be worth your time.
On a technical level, they're trying to fix a bunch of mistakes made in Node. And build it on Rust which will hopefully mean less vulnerabilities.
Kinda miffed they gave up on Typescript though
What do you mean by this?
https://docs.google.com/document/d/1_WvwHl7BXUPmoiSeD8G83JmS...
It will still support TS as a first-class language for users and projects.
The joke stopped aging well after ECMAScript updated the spec for String with a padStart function, among many other improvements to the String type.
Minimally:
* module management that isn't in the code.
* lock files that are not an afterthought.
That all being said, even if it were true, I get the user experience of deno with ts-node, and the package.json and lock file support is free.