Earlier quoted context omitted.
You might need to say a bit more about what it is a question about if you want an answer.
"Why X ?" is a common shorthand for "What is the raison d'être of X ?"
Deno will stop using TypeScript
351–359 of 359 posts
Re: Deno will stop using TypeScript
#352Earlier quoted context omitted.
> Except, apparently, for the topic of this article. Well, Deno devs did try to use TypeScript, and just ran into some challenges, and decided to throw the baby out with the bath water. I've seen this a lot in my 30yrs exp.: some developer/team runs into problems, gets frustrated, gives up, and decides the best decision is to remove some important piece rather than solve the actual problems. The reason Deno is giving…
You're a dogmatic true believer, and it's rarely worth arguing with dogmatic true believers. Just notice that you threw everyone that disagrees with you (or rather, that comprehends a wider range of circumstances than you do) under the bus as "not worth [our] salt". That was not the right thing to say. And you dismiss my reply (including the part where I point out that the website we are on was first developed in a L…
And about me knowing Deno did want to, and did attempt to use TypeScript: the way I know that is because I read the article, lol. Apparently you did not.
Re: Deno will stop using TypeScript
#353Earlier quoted context omitted.
You're a dogmatic true believer, and it's rarely worth arguing with dogmatic true believers. Just notice that you threw everyone that disagrees with you (or rather, that comprehends a wider range of circumstances than you do) under the bus as "not worth [our] salt". That was not the right thing to say. And you dismiss my reply (including the part where I point out that the website we are on was first developed in a L…
In the above discussion I focused on the technologies, programming languages, and the core of the technical issue. You seem to focus on personalities, feelings, and emotions. To each his own, I guess. And about me knowing Deno did want to, and did attempt to use TypeScript: the way I know that is because I read the article, lol. Apparently you did not.
The facts are that they started with TypeScript and moved away (for a particular internal component). The interpretation of that as wanting to use it and failing is yours. You could just as well see it as having made a mistake and then realizing it. But all of these interpretations, by those of us who didn't have to make the choice and weren't there when it was made, aren't very helpful.
Re: Deno will stop using TypeScript
#354Earlier quoted context omitted.
In the above discussion I focused on the technologies, programming languages, and the core of the technical issue. You seem to focus on personalities, feelings, and emotions. To each his own, I guess. And about me knowing Deno did want to, and did attempt to use TypeScript: the way I know that is because I read the article, lol. Apparently you did not.
I did read the article, and also the design doc which I linked in my top-level comment. The facts are that they started with TypeScript and moved away (for a particular internal component). The interpretation of that as wanting to use it and failing is yours. You could just as well see it as having made a mistake and then realizing it. But all of these interpretations , by those of us who didn't have to make the choi…
Re: Deno will stop using TypeScript
#355Earlier quoted context omitted.
Let's say you have a method that takes a thing : function doSomething(thing) { ... } How many different possible representations of a 'thing' do you have? A json object? A class object with behaviors? A database id? Some sort of natural key like a SKU? A URL? Is it a metric or imperial thing? You need integration-level tests around every method call to ensure that caller and callee agree what kind of 'thing' represen…
>> How many different possible representations of a 'thing' do you have? A json object? Why would you design a function in such a way that one of the arguments can represent so many different things? The problem here has nothing to do with testing. The problem is that the function itself is poorly designed. If anything, the difficulty of writing a test for such a function would in itself be an indication that the fun…
Re: Deno will stop using TypeScript
#356Earlier quoted context omitted.
You know what, that would already be better than most type systems. Firstly, they'd be written in the same language that you are coding in, not a weird, half baked type language, that adds visual noise to your code. Secondly, they'd have much more power to define meaningful and useful behaviour rather than being restricted to talk about correct behaviour via types. Thirdly, they'd run when you wanted the tests to run…
That's an interesting take. To some degree, I think I agreeing with you. I write a lot of Purescript and a lot of Clojure. Purescript, being basically a Haskell variant, is about closing down every last little part of the system into types. You _do_ pick up a lot of visual noise for this (like `liftEffect` ugh...). Whereas Clojure, is the polar opposite. It's about keeping the system open, using large chunks of data,…
It's quite obvious that there are downsides to types that most developers are missing - because most developers seem to feel that they get massive benefit from types, but empirical studies seem to show that if there really are benefits, they are not massive.
I see the downsides in a few ways - they open up another avenue for 'architecture astronauting', they are not in fact accurate representations of the real world in many situations - you're dealing with files, or messages coming in from the network which are not typed, and even when they are (e.g. databases), they can change under your code while you're running. That's not to mention the points I made above around usually being an entirely different, hobbled language that gets sprinkled through your source code. Types encourage people to build ridiculous code generation pipelines during build time, and builds getting larger and flakier are about the worst thing in the world for fast iteration. I find the Smalltalk approach of coding in a live image really interesting, and I worry that obsession with types are closing off that kind of future. There's also the fact that your language, and particularly your type system constrains what code you write - like a programming version of Sapir Whorf, and most type systems are bad at expressing very high levels of abstraction. Scala had to invent a documentation tool that hid the real types of things because the type signature of higher order functions like map and reduce were scaring people.
I was interested in your opinion of Spec, because I'm aware of it and find it interesting, but I don't do a lot of Clojure so I haven't really used it practically. I liked that it aimed to address more than just verification - schemas, object generation for property testing, these things are all closely related to the general concept.
I think your ideas about a middle ground type system seem very interesting.
I saw recently that there's a version of Nim 'DrNim' that incorporates the Z3 theorem prover which allows you to assert and prove much more interesting things than typical type systems. It sounds fascinating.
Re: Deno will stop using TypeScript
#357Earlier quoted context omitted.
I never throw inputs of random types to my functions. Actually that could be a good idea, some fuzzying at the public API level could catch some bugs and attacks. But not at unit test level. If a function expects an integer argument I test it with integer values. That in Node, Ruby, Python and Elixir. I never saw anybody doing something different. Well, if we wanted to enforce types we could use any static typed lang…
If a function expects an integer argument I test it with integer values. Metric or imperial integers? Your unit tests failed to prevent this $300 million blunder: https://www.wired.com/2010/11/1110mars-climate-observer-repo... But more commonly what is going to happen is that someone (two years from now) is going to change a 'person' parameter from legacy SSN to database id and some users are going to get "you don't…
Re: Deno will stop using TypeScript
#358Earlier quoted context omitted.
Lisp is large, important, and also not statically typed. It's worked out ok for Lisp programmers. JS itself isn't strongly typed and is the most successful and important language in the world (probably in the history of programming), so that's two game-changers that don't require static typing.
Lisp is important for its intellectual contributions, not for its use in large production systems.
Re: Deno will stop using TypeScript
#359Earlier quoted context omitted.
There are efforts to provide faster compilation times: - https://github.com/evanw/esbuild - awesome, I use it for most of my ts projects - https://swc-project.github.io/ - also awesome, but has some bugs
Esbuild is cool, but if it doesn’t check the types then using Typescript is a bit pointless in the first place. Guess a combination of esbuild during development, and tsc during commit would be the best of both worlds.