Specifically, do you worry that Microsoft is going to eventually do the Microsoft thing and horribly fuck it up for everyone? I've really grown to appreciate the language itself, but I'm wary of it getting too ingrained at work only to have the rug pulled out from under us when it's become hard to back out.
Edit: not really "pulling the rug", but, you know, doing the Microsoft classic.
Maybe Im reading the vibe wrong but to me, it seems like when it comes to the programmer/sysadmin/poweruser side of Microsoft, they seem pretty good in terms of not being total shit. Their "normie" facing side though seems hella shady though. Things like ads in windows, the speculated subscription model for windows, office 365, one drive spam.
For example, things like vscode, WSL, winget, power tools, the new console app, powershell, typescript, opening up .net to native cross platform. All these things are pretty sweet and seem like something they wouldn't be interested in doing.
It almost feels like there are two Microsofts right now and they are at odds with each other. So yeah, I guess enjoy it while it lasts, but always be ready to drop them like a sack of potatoes.
Like I said in my other comment, I think people tend to lump all of MSFT's activities into the same bucket. DevDiv has always seemed pretty decent, and I am usually reminded of this comic when people talk about MSFT's "shady" activities.
Bill Gates was and still is a shady piece of shit. Microsoft is a lot better without him - but that's a low bar.
Personally what bothers me is that they're starting to treat developers as users, the same as they treat Grandpa's operating system, or Beth in accounting's office suite: make everything "easy" and "intuitive" and "helpful". I became a developer because I got tired of my computers getting in my way, so now I make them do what I want. I don't want or need an intuitive, helpful interface. If you're going to make a tool for me to use, just make the tool do that thing and that's it.
I've mostly moved on from GitHub, only using it for little pushes because the green dots look good for prospective employers.
Edit: for those if you unfamiliar with how he's been a piece of shit specifically recently: he is the primary reason why covid vaccines weren't open-sourced. Poor countries were forced to live or die based on the generosity of wealthy nations (and the infrastructure around that generosity), rather than enabling them to buy it from less expensive sources, or even make it themselves.
Not only is that just shitty on its face, let's not forget that a pandemic somewhere is a pandemic everywhere; the fact that he prolonged covid in poor countries (resulting in the death of thousands if not hundreds of thousands), he kept it from fading in wealthy countries, too (resulting in the death of thousands if not hundreds of thousands).
Gates's battle to protect "intellectual property rights" (read: take but don't give) has been a life-long thing for him, literally since childhood. His viciously selfish tactics have produced great success for him, but it's a despicable kind of success... And having "retired" and amassed more money than he could possibly spend, you'd think he could just sit back and let the rest of us get on with it, but no - that's not how his level of selfishness works - it's insatiable.
do you worry that Microsoft is going to eventually do the Microsoft thing and horribly fuck it up for everyone?
I'm not really sure what you have against Microsoft, or what "Microsoft classic" you'd be referring to...
In the last 10 years or so they pretty much moved everything C# related to Core, cross platform and open source. Even the decision making for the language is "Open source" - Microsoft is not really behaving the same as the Microsoft from 2000...
Soo, I don't really know how they could possibly fuck it up. They might add more and more features you might not like, but you could just choose to stick to an older version of the language
Chromium, Firefox, NodeJS, Deno, and Bun are all open source. I mean, sure the official name is ECMAScript not JavaScript, but unless you're talking about a technicality I'm not sure what your point is.
Everything is temporary. If we were talking about a niche language, I might worry a little bit that it could just lose momentum and die. But TS is a juggernaut. The only way typescript “dies” is if JS integrates enough of its features to make it redundant.
Besides that, if Oracle managed to allow Java to continue to grow and flourish, I have confidence that MS can do at least that well. I also think lumping all of MS’s products into the same boat is a mistake. They have been pretty good stewards of their languages for decades.
Everything is temporary except for people's opinion on Microsoft.
The company is spending a ton on supporting developers, tools, and open source projects but every time they get mentioned people just hark tired lines of past ill deeds.
I think people should in general put as little trust as possible in corporations. Ensuring your tools, language and platform are as free as possible is a good idea.
Just look at the problematic situation for VS Code extensions by Microsoft, which are non-free.
I actually drew that same Oracle comparison. They've made the occasionally bullshit effort, e.g. the API stuff with Google, but otherwise Java is just kinda Java. Fair point.
Yes, MS's standard operation is to evolve the thing until it's completely hostile to your intentions, but not explicitly enough to justify a tool change for management.
They are currently in the "devs wanted" mode, it will probably be at least a few years before they change into "fuck you, pay me" mode again.
I'd like to point out that TypeScript is a superset of JavaScript, so if anything goes wrong with it, you can just remove the type information and you'll have regular JavaScript.
I’d still have to do some refactoring in and around my classes though. There’s some syntax that is TypeScript-only, including things like extended classes.
If I take my json and add a .yaml extension it works.
If I take my c code and add a .cpp it works.
If I take my js code and add a .ts
... it doesn't work
TS branches off of the JS syntax (which is great! way better than a syntax rewrite), but TS is not a superset; it does not meet the practical or technical definition of a language superset.
Hi there! Looks like you linked to a Lemmy community using a URL instead of its name, which doesn't work well for people on different instances. Try fixing it like this: [email protected]
No, I'm glad that "now that wasm exists I can do web development in any language" isn't thing yet. The web would get even more clumsy than it already is. I'm glad that when I visit 5 links I don't have to download 10 different runtimes each time.
10 different runtimes? WASM what do you mean? It's byte-code for the browser. It's not like Flash or Java applets that required an external program to run.
Regarding "doing the Microsoft classic" whatever that means... I don't believe in judging a company by what they did in the past. They should be judged by what they actually do now and in the future. So far, they haven't done anything bad. And anyway they've been good stewards of recent products that they've taken over (GitHub for example).
As for TypeScript itself... well my opinion is language choices should always be done on a case by case basis. So far I have never personally encountered an individual case where TypeScript is the best choice. They do exist though, so I won't hold it against anyone if they choose to use it.
Ehhhh... considering what they did to the .NET stack recently (removing dotnet watch from the open source builds to bundle it with Visual Studio and only reverting due to the huge community backlash), I think at least some cautiousness would be warranted.
Its an improvement over plain js, but we say "you cant build a castle with bricks made of shit" the shit is javascript. Undefined errors are there using TS...
If it makes you feel a bit better, think of it this way: Typescript is open-sourced not to just get the public free-access to it, but also for the public to provide feedback and improvements. Without outside devs to report bugs, TS would be living [ and dying ] in its own bubble.
This is almost(tm) the same tactic Apple uses for Darwin by making use of netBSD's open source nature.
I think you’re missing the point. It’s exactly cause Microsoft created it that people get worried about it. The EEE is an actual phrase found to be used internally in Microsoft, albeit being some time ago. Though there’s no knowing whether it’s still circulating now, it’s hard to trust them to be good stewards forever.
I think you’re missing the point. It’s exactly cause Microsoft created it that people get worried about it.
I don't think there is any merit to that concern. Not only is TypeScript FLOSS, Microsoft also has an excellent track record developing high-quality programming languages and tech stacks. Take for example C#. It's been around for over two decades and if anything it's getting better by the release.
I understand the rationale behind the concern, but there is also a factor of mindlessly parroting cliches.
Without TypeScript, people would have adopted a different JS transpiler, one that isn't controlled by a monopolistic corporation with a history of extinguishing open source projects.
I'm not concerned about the Microsoft's involvement. TypeScript shows an immature tooling ecosystem even on its own merits.
I posted some of my concerns earlier, along with a basic problem challenge (that I can easily do in many other languages) that nobody managed to solve: https://programming.dev/comment/2734178
deno run hello.ts (time taken to run command: 0.037s)
[...] 3 different ways of specifying the files and settings you want to use [...]
3 incompatible ways to define and use a “module”
Yes, that tends to happen as ecosystems evolve over time. Typescript allows developers to use modern standards-compliant modules, while maintaining backwards compatibility for older code.
embracing duck typing means [...]
One of typescript's strengths is that its type system isn't all or nothing. Typescript will support duck typers, but it isn't forced or limited to that. You can add as much or as little typing as you want. In theory, this means that the language supports simple beginners up to experts creating turing-complete theorem solvers at compile time. In practice, this means a much smoother onboarding and porting experience.
Have a “generalized fibonacci” module taking 3 inputs [...]
I'm not sure if this is the basic problem challenge or the hello world example was. It seems a bit ambiguous as to what you really want, but it's easy to create a module that takes inputs and produces outputs while running on backend servers, in browsers, and in CLIs.
Obviously the actual programs are trivial. The question is, how are the tools supposed to be used?
So you say to use deno? Out of all the tutorials I found telling me what tools to use, that wasn't one of them (I really thought this "typescript" package would be the thing I was supposed to use; I just checked again on a hot cache and it was 1.7 seconds real time, 4.5 seconds cpu time, only 2.9 seconds if I pin everything to a single core). And I swear I just saw this week, people saying "seriously, don't use deno". It also doesn't seem to address the browser use case at all though.
In other languages I know, I know how to write 4 files (the fib library and 3 frontends), and compile and/or execute them separately. I know how to shove all of them into a single blob with multiple entry points selected dynamically. I know how to shove just one frontend with the library into a single executable. I know how to separately compile the library and each frontend, producing 4 separate artifacts, with the library being dynamically replaceable. I even know how to leave them as loose files and execute them directly (barring things like C). I can choose between these things all in a single codebase, since there are no hard-coded project filenames.
I learned these things because I knew I wanted the ability from previous languages I'd learned, and very quickly found how the new language's tools supported that.
I don't have that for TS (JS itself seems to be fine, since I have yet to actually need all the polyfill spam). And every time I try to find an answer, I get something that contradicts everything I read before.
That is why I say that TS is a hopelessly immature ecosystem.