Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I really dislike JavaScript for a number of reasons. Dart gives me more distance from it than TypeScript. Of course, I can't avoid it, but I don't have to deal with many annoyances such as which 'this' is this? Should I put 'this' into a var called 'self' to be safe? That's just one example of how JavaScript and I don't get along. I understand some people have brains that think this way, but mine doesn't


The comment reads like you used JavaScript 10 years ago. For instance, just use arrow functions and this remains untouched.


I know but that's just bizarre. One function has it's own this and another doesn't so if my arrow function gets big and I want to make it a regular function I may have to rewrite it. Ugh.

Edit: I'm thinking of cognitive load too. I like to eliminate load I don't need. Keeping track of this is not something I want to do with my life

https://drpicox.medium.com/reducing-programmers-cognitive-ov...


> so if my arrow function gets big and I want to make it a regular function I may have to rewrite it.

There's absolutely no reason to make an arrow function a regular function just because it goes past a certain number of lines.

It really seems like you should become more familiar before forming an opinion. There's valid criticism to be made, but those aren't it.


I sometimes refactor code for purely aesthetic reasons. To each his own.

http://www.synergeticapplications.com/ergonomics.htm

By the way, I feel like I'm at a bar and you're negging me


or, better yet, stop using this


What do you like about Dart over TypeScript? The type system in TypeScript is far superior to Dart's. Other than that, the languages are more-or-less the same.


Actually, I'm taking another look at TypeScript today. I liked it well enough when I last investigated it in 2016, but the code I wrote then was just a veneer over jQuery. I'm sure things have improved dramatically, which I am about to find out. Frankly, a Turing complete type system [1] seems like over-kill to me and a complication I don't need.

Still, Dart had everything I wanted in a front end language in 2013. I think JS devs were short sighted to reject it out of hand. It's a shame it never caught on by itself and not as a just a Flutter language. I read that Google is using it in Fuchsia so there is still a chance Dart will be big in the future!

[1] TypeScript and Turing Completeness: https://itnext.io/typescript-and-turing-completeness-ba8ded8...


I highly recommend TypeScript. I don't really like the JS runtime, but, purely from a language point of view, TS is my favorite.

Some cool features:

1) Type unions

interface A { a: string; }

interface B { b: string; }

type C = A | B;

const c: C = { a: 'a' };

2) Type assertions if ('a' in c) { /* compiler knows c is of type A here */ }

function isA(c: A): c is A { return 'a' in C } // compiler knows c is A if this returns true

3) Nice helper types interface A { ... }

ReadOnly<A> // Like A, but all properties are read-only

Partial<A> // Like A, but all properties are optional

Omit<A, 'someProp'> // Like A, but without 'someProp'


Interesting. I'll learn more today as I rewrite one of my Dart components into TypeScript. But I also dislike Node and Npm so I'll try Deno first.


TBH, TypeScript's type system really impressed me. It's the strongest type system of any language I regularly use (I haven't had time to unpack Rust yet, and I learned enough Haskell to decide Haskell didn't help me solve problems I had).


It’s an expressive type system, but ime it allows developers to go crazy on type interdependencies and general entanglement, so you can’t just go to the “header” and quickly figure out what your method or a return value really is, despite TS has structural typing.

E.g. look at this: https://github.com/telegraf/telegraf/blob/v4/src/telegram-ty...


That's definitely overwhelming. After reading it for 5 minutes though, there is a type called Telegram and it has a field called 'Opts' that has a lot of different fields. MakeExtra lets you take a type from 'Opts' and exclude certain parameters. Probably do something like "you can set the chat message contents, but you can't set the chat id"



Surely it's easier to stick to JavaScript The Good Parts than to introduce a whole new layer in the form of Blazor?


Blazor is not equal to JavaScript. Blazor is Microsoft's answer to React and Flutter. So far of the three, I like Blazor, but not the server version that uses SignalR to communicate with the client because it locks you in. Blazor Webassembly is awesome, but just needs a good DOM manipulation library. With Blazor Wasm on the client, I can use anything on the back end.


> I really dislike JavaScript for a number of reasons.

Might I suggest being less sensitive/that your reasons are overblown?


I don't like liver and horse radish either. Should I eat that because a lot of people like it?


Yes, let's keep using JavaScript for all eternity now. It's COBOL of this century.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: