What Typescript drama is there? It’s fantastic. It’s been an industry standard for years. In my anecdotal experience the only people that hate it are juniors who did pure JS at their bootcamp and seniors that have refused to learn anything for the last 5 years.
Which side are you? Javascript or Typescript
Submitted 1 year ago by mastermind@lemm.ee to programmer_humor@programming.dev
https://i.postimg.cc/L6Lw7xXB/20230908-082704.jpg
Comments
jpeps@lemmy.world 1 year ago
fusio@lemmy.world 1 year ago
or people used to work alone never having to go back to their code (e. g. bad consultancy jobs)
jpeps@lemmy.world 1 year ago
Even alone I find it indespensible. I find it’s mainly useful for writing code correctly the first time around.
fidodo@lemm.ee 1 year ago
TS is amazingly powerful when it comes to refactoring. When people say they don’t see how TS makes you more productive it just makes me think they never refactor their code.
beeb@lemm.ee 1 year ago
Svelte decided to ditch it because it became unpractical due to the compilation step for their library. I think for libraries it makes sense to go the jsdoc way as long as consumers can choose typescript.
marcos@lemmy.world 1 year ago
Am I the only one scratching my head trying to understand why Svelte supported it at the first place?
The TS type system is not a good match for the project.
fidodo@lemm.ee 1 year ago
I feel like there’s no typescript drama, just JavaScript drama. Things are pretty happy in the TS community. I’ve been writing js code since it literally first came out. I’m definitely no js hater. In the early days js code bases quickly turned to spaghetti code, but I genuinely think the js community has done miracles turning what was essentially a super simplistic toy language into a seriously good production quality language. I’ve seen first hand how much work has gone into it, and while most of the js community has been great with embracing change for the better, there’s always been the niche of detractors against any change that adds complexity even when it makes coding safer and more productive.
I’ve always had a love hate relationship with JavaScript, but with typescript it’s really been just straight up love. Pretty much all the trouble I have with typescript has been due to external libraries that use types lazily or incorrectly, and even then there are solutions to add safety to your own codebase. Sometimes I run into some trouble with the type system itself, but it’s pretty much always because I’m doing something really complicated that would be hard in any type system. I’ve been working with typescript for years now and my code bases are some of the most solid ones in my company. Typescript is really safe as long as you’re actually using it and not telling the compiler to ignore types through using any or making unsafe assertions.
It makes no difference to me if other people prefer JavaScript. Any important js library will get ts support anyways through definitely typed, and if a library is so sloppy it can’t be typed well then it’s not a good library to use anyways. Having people proudly announce they only want to use JavaScript is also great for hiring. It easily tips me off on who not to hire.
Knusper@feddit.de 1 year ago
I’m choosing the third side: WebAssembly
redcalcium@lemmy.institute 1 year ago
You can even compile Fortran code to wasm and run it on a web browser. Who need Javascript’s puny 64bit floating point precision when you can have Fortran’s superior 128bit floating point precision?
Static_Rocket@lemmy.world 1 year ago
Have they finally dumped the required js stub loader?
Knusper@feddit.de 1 year ago
No, but GUI frameworks can generate it for you. Same goes for DOM access, for which there’s normally only a JavaScript API.
So, you’ll likely want to read JS, when researching what events or properties you can read/write for certain HTML nodes in the DOM, but with a mature GUI framework, you should not need to write any JS.
dbilitated@aussie.zone 1 year ago
vanilla javascript? what are you, fucking Amish?
Deleted@kbin.social 1 year ago
I'd rather stay out of the frontend all together but I'd rather chop my balls off than go back to JS.
SpeziSuchtel@feddit.de 1 year ago
Plot twist: You are transgender and love working wirh JS
hblaub@programming.dev 1 year ago
TypeScript of course. The compiler often times catches mistakes in variable names, API methods, whatever. So it saves time by not having to run the whole application all the time. Also the input help is much better, when the editor knows sth is a string or a number, for example.
Blamemeta@lemm.ee 1 year ago
Typescript is great for catching long standing bugs in old legacy JS.
Theharpyeagle@lemmy.world 1 year ago
Honestly, as a mainly backend dev wanting to do more full stack, webdev is frustratingly intimidating. I keep trying to look up best practices but there’s so little in the way of consensus. “Use JQuery, no use Vue! React is better, but also React is clunky and bad. Write pure js, no don’t that’s a waste of time.” It’s all such a mess and I spend so long trying to figure out what to use. I’m trying to just pick something and stick with it, but I keep worrying that I’m not doing things the best way.
9point6@lemmy.world 1 year ago
I’d agree with you if you were saying this about 8 years ago, but IMO the post-jQuery-front-end dust has settled and the “best” (in terms of what most organisations end up choosing) hasn’t really changed in a while.
- Typescript unless you’ve got a really good reason not to.
- React if you have anything remotely complex.
- Webpack (or one of the wrappers) to bundle it up.
Sure, someone may like a React alternative, and that’s completely fine. But at the end of the day, most companies are using React because it’s basically industry standard at this point, and it’s got too much momentum behind it for that to change any time soon.
zebbedi@lemmy.world 1 year ago
Webpack… Aren’t you on the vite train?
Strawberry@lemmy.blahaj.zone 1 year ago
We must be in different organization circles because almost every frontend I’ve seen at my jobs or those of my friends at other organizations uses Angular
fidodo@lemm.ee 1 year ago
Maybe I’m just too used to it, but with next.js static site generation I find react to also work really well for simple sites too. If you’re not dealing with state, react is basically just functions that return html. IMO it’s pretty sleek for static websites since tsx let’s you do basic templating with functions.
executivechimp@discuss.tchncs.de 1 year ago
Don’t worry, none of us are doing things the best way.
MyNameIsIgglePiggle@sh.itjust.works 1 year ago
Lol yeah. Op needs to realise we are just throwing shit at the wall and waiting for the next new tool we have to learn this week
Kuresov@programming.dev 1 year ago
As a previously front-end gone full-stack gone and settled in backend/infra… don’t bother. But if you have to bother, or really, really want to 🙂, pick a relatively popular thing (e.g. Vue), and learn that, ignore the rest. By the time you come up for air the new hotness will have changed anyways, and the wheel will have been reinvented twice. It’s a moving target, just learn the fundamentals with something and you’ll be good to go.
aubertlone@lemmy.world 1 year ago
For sure don’t use jquery.
React is industry standard, but not my favorite. That being said, even my personal projects I do in react. I’m happy with my current role, but if I wanna switch down the line there’s less openings for a dev with mostly Svelte (my favorite framework) experience.
Theharpyeagle@lemmy.world 1 year ago
Right now I’m working on a personal project with Vue because it happened to be the one I was hearing most about when I started. I’ve got one project that I’m definitely gonna finish at some point started in react, so maybe I’ll try out svelte on my next project.
AVengefulAxolotl@lemmy.world 1 year ago
If you just want to try frontend, not trying to get a job there are these frameworks you should try:
- Solidjs (love it so far) for a web application so SPA with separate backends
- htmx to have a decently interactive website, it can be integrated with any webserver
- astro for generating static sites
And i think everyone should use either Typescript or JSDoc for any bigger application.
beeb@lemm.ee 1 year ago
Svelte is a happy middle ground between vue/react and SolidJS which is maybe too bleeding edge still
h_a_r_u_k_i@programming.dev 1 year ago
Wait until you meet “Platform Engineering”/DevOps. The sheer amount of CNCF projects and new tools out on a daily basis are on par with the JavaScript world.
Strawberry@lemmy.blahaj.zone 1 year ago
jQuery is obsolete and insufficient if you’re looking for an easy monolithic framework. Angular, React and Vue are all good (disclosure, I haven’t used react), just pick one and learn it well and you’ll have a good foot in the door. If you already know JavaScript and don’t want to learn typescript, Vue can be used with plain JavaScript.
SnowdenHeroOfOurTime@unilem.org 1 year ago
Where’d you get your time machine, that you obviously would’ve needed to set to 2008 to find anyone actual recommending jQuery?
severien@lemmy.world 1 year ago
It’s still the best API for imperative access to DOM.
icesentry@programming.dev 1 year ago
The main issue is that frontend is complicated and it can do a lot of very different things. Frameworks exist to solve some issues that may or may not exist in your project.
fidodo@lemm.ee 1 year ago
Best practices are pretty straight forward in the typescript community. Frankly I think all the serious professionals from the JavaScript community just went to TS so the people left over that didn’t migrate are well…
curiousaur@reddthat.com 1 year ago
React and typescript. If anyone tells you otherwise, ask them where they work.
turbodrooler@lemmy.world 1 year ago
Me: 2024 is finally going to be the year of WASM, boys!
iegod@lemm.ee 1 year ago
And then there’s me, missing flash :(
Flash and AS3 was so much fun to work in. I completely understand why the industry moved away from it but even today we have yet to fully catch up to all the media animation and programmatic features it provided all in one. RIP.
turbodrooler@lemmy.world 1 year ago
I still have a hobby website with an AS flash animation on it that I don’t have the heart to get rid of. It was so cool.
ShortFuse@lemmy.world 1 year ago
Starfield has a bunch of AS3 and Flash files. I’ve been hacking it all week.
And, uh, I use vanilla JavaScript with Typescript checking over JSDocs.
zagaberoo@lemmy.sdf.org 1 year ago
I just wish WASM could replace JS rather than merely augment it for non-DOM work.
Knusper@feddit.de 1 year ago
You can have frameworks which fully generate the JS DOM code for you, allowing you to write complete single-page applications without writing a single line of JS.
severien@lemmy.world 1 year ago
Unpopular opinion: I hope it’s going to be a flop. The limitation of having just JavaScript ensures level of interoperability which is IMHO one of the big advantages of web as an application platform. If WASM becomes successful, it will fragment the web.
turbodrooler@lemmy.world 1 year ago
I definitely feel you. Not sure WASM is the answer, but it’s still neat.
darcy@sh.itjust.works 1 year ago
typescript is a bandaid on a severed leg
JakenVeina@lemm.ee 1 year ago
More like a tourniquet and a prosthetic. It doesn’t solve the underlying problem, but it’s the best solution we’ve come up with.
fidodo@lemm.ee 1 year ago
I view it more like a powered exoskeleton around a blob fish. IMO static typing is way more valuable than strong typing and I’d take static typing only over strong typing any day if I can only choose one.
MajorHavoc@lemmy.world 1 year ago
<div>from Imgflip Meme Generator</div>
darcy@sh.itjust.works 1 year ago
image not found :(
Kuresov@programming.dev 1 year ago
Mypy is just okay. Haven’t used TS to know the dark corners there, but any type system that’s bolted on to the language is going to have dark corners in the best case.
lobut@lemmy.ca 1 year ago
I dunno, Typescript can be nice at times but it always feels like I’m bolting on something that doesn’t belong on top.
I’ll still use it for now. Not sure JSDoc is as adequate for an enterprise app for me. I know Svelte and stuff do, but I’ll wait and see.
Nerd02@lemmy.basedcount.com 1 year ago
I think there’s a positive coming from this competition, though. Apparently this infighting has re-lit the want for type annotations to be embedded in vanilla JS (ECMAScript proposal). I feel like this would be the ideal scenario: things working right out of the box without needing a compile step or additional tooling.
You can get as close as it gets to this experience by using alternative runtimes such as Deno or Bun, which have native TS support (meaning you can just execute a .ts file without having to transpile it), but of course as soon as you have to write code for a browser you are back in the middle ages.
TheCee@programming.dev 1 year ago
That’s not a positive, though.
Depending on how it pans out, it’s either not useful enough. Who the hell doesn’t use namespaces or enums. Or - as
These constructs are not in the scope of this proposal, but could be added by separate TC39 proposals.
implies - a door opener to outsource TypeScripts problem unto other peoples and not to investing into improving WebAssembly. That’s just MS being lazy and making their problems other peoples problems.
I feel like this would be the ideal scenario: things working right out of the box without needing a compile step or additional tooling.
It’s just annotations. No proposed semantics of a type system which your browser could check on its own.
Phen@lemmy.eco.br 1 year ago
Who the hell doesn’t use namespaces or enums
Uhhh, typescript devs? Enums were useful once, but typescript evolved everything else around it and these days using direct values is actually far better. And I don’t think anyone uses Namespaces other than for defining external modules.
fidodo@lemm.ee 1 year ago
I don’t see any practical use case for it as is as anyone wanting to use them would want the full TS feature set anyways, but I could see it being a good step forward for more meaningful features to be added in the future.
rockstarpirate@lemmy.world 1 year ago
Yeah it’s interesting because JS is interpreted, not compiled. The proposal allows for type annotations in the syntax but no actual interpreter consequences. On the one hand that makes sense because otherwise you’re in the territory of runtime type-checking which would be a huge performance hit and would sort of defeat the purpose of static types anyway. But that means you still have to rely on your IDE or a linter for this to be useful.
Phen@lemmy.eco.br 1 year ago
Typescript may have a million problems that make getting into it annoyingly hard and even pointless, but once it’s settled in your project and used well… Damn is it fucking good.
And I’m saying that even though I had to disable intellisense and most of those advanced features because the project I work for is too large and typescript would easily use over 20GB of RAM and get my computer to freeze.
But if you’re trying to use it like a traditional typed language, you’ll only see the bad side of it and you’ll certainly hate it.
DeriHunter@lemmy.world 1 year ago
Tell me you’re a dinosaur without telling my you’re a dinosaur
avonarret1@programming.dev 1 year ago
Telling me you have nothing to contribute without telling you have nothing to contribute.
ObsidianBlk@lemmy.world 1 year ago
My issue with typescript… and, correct me if I’m wrong… is it doesn’t exist without Javascript. Typescript needs to be compiled down into Javascript to be run. It has no stand alone interpreter (that I’m aware of) and definitely not one baked into web browsers or NodeJS (or adjacent) tools. In essence, Typescript is jank sitting on top of and trying to fix Javascript’s uber jank, simultaneously fracturing the webdev space while not offering itself as a true competitive and independent language for said space.
That’s my amateur two cents for what it’s worth.
JakenVeina@lemm.ee 1 year ago
The fact that TypeScript doesn’t attempt to obfuscate JavaScript, and just fills in the gaps, is what makes it the best solution to the problem.
It’s not a separate language, it’s Javascript tooling
fidodo@lemm.ee 1 year ago
I’ve used JavaScript since its creation. I would describe typescript as JavaScript as it should have been. I’ve always actually liked JavaScript’s simplicity, but I’ve never liked its lack of type safety. At its core, JavaScript has a tiny conceptual footprint, and that’s actually pretty refreshing compared to other very complicated languages. But it was plagued with terrible implementations and the inherent messiness of dynamic typing. I’ve watched it evolve over the years and it’s improved beyond my greatest hopes. Between the advent of transpilation, tooling, and typescript, I’m very proud of where the language has gotten to. Having made websites in the 90s and 00s, I feel like people don’t realize how much work has gone into getting the ecosystem in a much better place.
brian@programming.dev 1 year ago
I don’t think it really fractures anything considering you can call a ts package from js without knowing. The other way also works with third party typings in DefinitelyTyped.
It really just adds a bit of extra type info into js, looks like js, and transpiles into js that looks almost exactly like the input, including comments and spacing and such if you like, so there isn’t any lockin.
There isn’t any competition, it’s just an extra optional tool for the js ecosystem in my eyes.
fidodo@lemm.ee 1 year ago
The transpilation that typescript does doesn’t really have anything to do with typescript, it’s just there because typescript wants to support the latest ecmascript features, so transpilation is necessary for that, but technically you could simply strip out the type info and have another transpiler like babel handle the backwards compatibility. I think there are a few minor exceptions to that, like enums. There was even a proposal to add some typescript types to native JavaScript that would be ignored by the interpreter and just act as comments.
shasta@lemm.ee 1 year ago
I think too many people ITT are conflating Typescript with Typescript frameworks like Angular.
lily@shinobu.cloud 1 year ago
Just fyi, while they don’t help with running TS in the browser, the Bun and Deno runtimes both natively run TS without any compilation.
severien@lemmy.world 1 year ago
That’s not true, deno compiles TypeScript to JavaScript, it just does it transparently. The code still runs on v8.
madcaesar@lemmy.world 1 year ago
You are correct.
That says I would never ever EVER start a project without TS.
It’s like coding with hands vs coding with your elbow.
EarMaster@lemmy.world 1 year ago
I also don’t want to compile my C++ code myself. I’m pretty happy with letting a compiler do it’s job…
fidodo@lemm.ee 1 year ago
I really don’t get how people can feel more productive in JavaScript. With typescript the code practically writes itself. Sometimes when refactoring I’ll change a functions input and output signature and just fix compiler errors until it stops complaining, and the code just works without me having to really even think about what the code is doing.
CanadaPlus@lemmy.sdf.org 1 year ago
What we really need is a browser that runs something other than Javascript. Until then, stack of jank it is.
tram1@programming.dev 1 year ago
I’m kind of a beginner… Can someone explain why you would make/use/have a dynamically and/or weak typed language? Is it just to not write some toInteger / as u64 / try_from()? I mean the drawbacks seem to outweigh the benefits…
Potatos_are_not_friends@lemmy.world 1 year ago
I learned typescript because so many authors are using it.
I think it’s like jQuery. Learn it because you’ll have to debug someone’s code one day.
NateSwift@beehaw.org 1 year ago
I’m not on Twitter, what’s happening?
nintendiator@feddit.cl 1 year ago
HTML + CSS. No need for any of that newfangled “*script” bloatware / malware.
Psythik@lemm.ee 1 year ago
I’m on the side of NoScript.
Both are evil and need to die.
damnthefilibuster@lemmy.world 1 year ago
Fuck typescript.
TootSweet@lemmy.world 1 year ago
When I write JS:
- It’s because it has to run in a browser. (Why would I want to write JS that runs outside a browser? Rhetorical question. Don’t answer that.)
- I use no JS dependencies. Zero. None. No jQuery. No React. No VUE. No Typescript. Nothing like that. (Unless you count as “JS dependencies” a) a minifier (but not one written in JS) or b) browser builtins.)
- I don’t use any ECMA6 stuff. (Who asked for classes anyway?) Though to be fair, that’s definitely at least partially because I have yet to even really look into what’s available.
- I love callbacks and closures.
- I keep my global scope tidy, though I do store some things in the global scope. (Typically one or fewer global variables defined per JS file.)
- I don’t use prototypes. Just because I’ve never found good uses for them.
I do believe there’s a beautiful language living inside JS. It is quite pleasant to work with. But not the kind of thing I’d want to write “real software” in when there are alternatives like Go or even Python.
surge_1@lemmy.world 1 year ago
Just use Kotlin to write your JS/TS
elouboub@kbin.social 1 year ago
What's happening?
mark@programming.dev 1 year ago
I like TypeScript for its types and type-checking, but I also prefer server-side rendered pages and want to avoid having a local build step so I don’t have to wait for things to compile/transpile/etc. I have a pretty large project where I’ve gotten both worlds by just using JSDoc and only using TS for type-checking. Type checking works in VSCode and can be run separately.
kewjo@lemmy.world 1 year ago
javascript but more for philosophical reasons. when projects use typescript they always get focused on writing more scripts rather than optimizing HTML/CSS. Too many times I’ve seen overly complex scripts trying to solve what a properly arranged div and css tag have already solved.
satrunalia44@lemmy.world 1 year ago
I prefer JavaScript personally, but it’s time to acknowledge that TypeScript has won. If you want to contribute and succeed as a developer in the JS ecosystem, you need to learn TS, like it or not.
_hovi_@lemmy.world 1 year ago
If js docs are a good working replacement then I can understand wanting to avoid all the annoying issues with typescript. I haven’t used it before but it seems less flexible and more verbose, what’s other people’s experience with it? I’d have to check it out myself but for the moment typescript makes JavaScript a little more bearable.
killeronthecorner@lemmy.world 1 year ago
I wasn’t sure if this meme worked until I saw what he was eating
o11c@programming.dev 1 year ago
I haven’t managed to break into the JS-adjacent ecosystem, but tooling around Typescript is definitely a major part of the problem:
- following a basic tutorial somehow ended up spending multiple seconds just to transpile and run “Hello, World!”.
- there are at least 3 different ways of specifying the files and settings you want to use, and some of them will cause others to be ignored entirely, even though it looks like they should be used.
- embracing duck typing means many common type errors simply cannot be caught. Also that means dynamic type checks are impossible, even though JS itself supports them (admittedly with oddities, e.g. with string vs String).
- there are at least 3 incompatible ways to define and use a “module”, and it’s not clear what’s actually useful or intended to be used, or what the outputs are supposed to be for different environments.
At this point I’m seriously considering writing my own sanelanguage-to-JS transpiler or using some other one (maybe Haxe? but I’m not sure its object model allows full performance tweaking), because I’ve written literally dozens of other languages without this kind of pain.
WASM has its own problems (we shouldn’t be quick to call asm.js obsolete … also, C’s object model is not what people think it is) but that’s another story.
At this point, I’d be happy with some basic code reuse. Have a “generalized fibonacci” module taking 3 inputs, and call it 3 ways: from a web browser on the client side, as a web browser request to server (which is running nodejs), or as a nodejs command-line program. Transpiling one of the callers should not force the others to be transpiled, but if multiple of the callers need to be transpiled at once, it should not typecheck the library internals multiple times. I should also be able to choose whether to produce a “dynamic” library (which can be recompiled later without recompiling the dependencies) or a “static” one (only output a single merged file), and whether to minify.
I’m not sure the TS ecosystem is competent enough to deal with this.
asyncrosaurus@programming.dev 1 year ago
Javascript.
Because my exposure to Typescript is wading through over-engineered and bloated Angular front ends that could easily (and should) be thrown out and re-written in html/ js.
But also because I exclusively write simple shit that doesn’t have a build step for the front end, because 90% of the stuff I make gains no benefit from needlessly overly complex front ends.
Fried_out_Kombi@lemmy.world 1 year ago
Image
onlinepersona@programming.dev 1 year ago
Web development needs a whole lot of change and these kinds of fights are meaningless indeed.