In reality it really does not matter and the classification is somewhat arbitrary. Just think about adding it to a fruit salad. Would you do it? Then it's a fruit.
I once saw a little blurb at a sandwich shop stating that tomatoes are fruit, but if you pair them on a sandwich with jalapenos, you're getting both fruits and vegetables. I demand better scientific accuracy in restaurant marketing signs.
To add to this, vegetable is a culinary term and not a scientific term. Whereas, fruit can be both. Tomatoes are scientifically a fruit, but generally not from a culinary perspective.
I prefer to think of it as maybe don't shoehorn a shitty type checker into a dynamic language. Honestly I think people who get excited about typescript should fuck off and go write java instead.
JS is the one that's built into the browser. If JS wasn't built into the browser, it would go onto the trashbin of bad old languages that only survived because of their platform like VBA and ActionScript and .bat batch scripting. You can't compare JS to any other language because JS is the one you don't get a choice on.
The type checker is actually pretty smart and can handle a lot of weird use cases, especially in strict mode (if you mark everything as Any type, that's on you). The fact that the underlying language is very dynamic can be both good and bad. It's good because you can be flexible when you need to be, but it also won't prevent you from writing really shitty code, which lends it its reputation.
I don't know if you've ever tried writing frontends in Java, but it is terrible, especially if you want to make dynamic and accessible UIs. You don't use a power drill when you need to hammer a nail.
I hate Typescript for promising me that nobody can put cyanide on the list, but in reality it disallows ME from putting cyanide on the list, but everyone else from the outside is still allowed to do so by using the API which is plain JavaScript again
Two questions immediately come to mind. 1) Would you buy the cyanide if it was on the list. 2) Where does one casually buy cyanide? I can't imagine a case where I'd need some, but it would be handy to know if I ever did.
I know you used to be able to get it for pest control, but maybe not anymore. You could also make it the old-fashioned way with molten washing soda. It can be used to make Prussian blue, for one thing.
Obviously take all necessary precautions, especially keeping NaCN away from acids.
Botanically a vegetable is anything that is not the reproductive portion of the plant derived from a flower. A root or tuber such as for yam or potato are vegetables. Edible flowers could be considered a vegetable since the ovary has not expanded to contain seed.
Aren’t fruits subsets of vegetables? Without looking it up I thought that vegetables were the edible part of the plant and fruits are edible reproductive parts of the plant. I could be totally off on that though.
The joke is that almost everyone calls them vegetables because the botanic categorisation of parts of plants is niche jargon that is not useful in everyday life, whereas the culinary categorisation is useful, and so your shopping list correcting you is worse than unnecessary.
But that's not what TypeScript does. The joke in the meme doesn't really even make sense.
A better analogy would be you have a basket that's explicitly labeled "Fruit" and TypeScript complains if you try to put laundry detergent in it because you said it's supposed to be a basket of fruit.
This meme was clearly made by someone who doesn't use or understand TypeScript.
Well, I can't think of an English example from the top of my head, but in German the words for Pear and (light) bulb are the same. So there are some exotic use cases.
So that the mindless automaton delivering your groceries doesn't unexpectedly give you tomatoes for your sundae, in a future expansion to dish-based orders.
I've yet to create a type error that didn't correspond to me thinking about something wrong.
I swear to god, sometimes I really don't know what Typescript really wants from me. It's like some old god: you know it needs a sacrifice but the god is not telling you exactly what he wants. So you can only try and pray.
Some languages split the word "fruit" up in those two cases. In Dutch for example, the botanical definition of fruit translates to "vrucht" whereas the culinary definition translates to "fruit".
Some languages split the word "fruit" up in those two cases
I wish English did this more. There's way too many words with an overly large number of meanings.
The word "free" meaning both "freedom" and "doesn't cost money" can be confusing - some languages use "gratis" or an equivalent word for the latter definition. Sure, you can use it as a Latin loan word in English, but that's not common.
I don't like it but God help me if I try to bring up that we shouldn't use it. I understand it I just don't like how it slows everything down for in my opinion is not much gain.
As someone who is relatively new to webdev stuff, I gotta ask... what is the point of typescript? Like, is it faster than JS, does it have more functions or smth? To me it just looks like JS with extra steps and a really, REALLY cursed way to declare variables.
As a beginner you don't see the benefits as it is indeed JS with extra steps. It's not worth it for small projects and prototypes, but once you start having larger projects where you need to refactor something, you'll see the benefits.
Types help you prevent errors while writing the code instead of while running. That's a massive benefit, as it literally makes a lot of errors impossible (as long as you don't work around it) - otherwise you have to write a lot of tests to get the same guarantees, and you could always miss something by doing that.
The other benefit is that it allows other developers to understand your code very, very quickly. Types describe what your data looks like - there is nothing more important in programming than that!
When you install an NPM library and your editor gives you hints about parameter types, return types etc., that's all Typescript types at work.
After maintaining a huge JS codebase for years and finally upgrading it to TS, my life is so much easier. Refactoring is faster and less error-prone. I no longer have to manually document the parameter/return types for every function. I don't have that gnawing "oh damn, what if I missed something" feeling whenever I make changes.
Yes it's a bit more work up front but it pays dividends on larger codebases.
It helps for when you have a variable that's for numbers and you use it as a string or something else, it shouts an error. In other words, it protects you from yourself
No, it is slower than JS but it can be compiled to JS. The point of typescript is bringing static (or generally talking, predictable) types to variables, so that treating erroneously a number as a string should be more difficult. In a large codebase, it's easy to make mistakes and debugging is not instantaneous but it needs time. Typescript helps here. You write more code but it helps you out later
I don't have much experience with TS, but in other strongly typed language it goes even further than string vs number.
For example you can have two numbers Distance and TimeInSeconds and even though they are both numbers, the type system can make sure that you won't do distance+time.
It can also let you do distance/time and return Speed type.
It will prevent many logical errors even though everything is technically a number.
Typescript gives you better suggestions, red squiggles where you would get errors or bugs if you try to run it, more information about whatever it is you’re using that’s defined somewhere else, and some other neat stuff like project-wide renaming that works every time.