this post was submitted on 08 Oct 2023
28 points (73.3% liked)

Programming

17418 readers
238 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
 

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.

(page 2) 19 comments
sorted by: hot top controversial new old
[–] lysdexic@programming.dev -4 points 1 year ago* (last edited 1 year ago) (6 children)

Specifically, do you worry that Microsoft is going to eventually do the Microsoft thing and horribly fuck it up for everyone?

I'm not sure you are aware, but Microsoft created TypeScript.

https://devblogs.microsoft.com/typescript/announcing-typescript-1-0/

Without Microsoft, TypeScript would not exist.

load more comments (6 replies)
[–] o11c@programming.dev -5 points 1 year ago (1 children)

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

[–] spartanatreyu@programming.dev 1 points 1 year ago (1 children)

This comment just seems weird no matter which angle I try to approach it from.

immature tooling ecosystem

It's over a decade old now. I wouldn't call that immature.

Looking at your linked comment...

following a basic tutorial somehow ended up spending multiple seconds just to transpile and run “Hello, World!”.

  1. Install deno
  2. Create hello.ts containing: console.log("hello world");
  3. 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.

[–] o11c@programming.dev 0 points 1 year ago (1 children)

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.

load more comments (1 replies)
load more comments
view more: ‹ prev next ›