[-] FizzyOrange@programming.dev 7 points 1 year ago

It's barely transpiled. There are a couple of features that involve actual code generation - enums and namespaces (which are almost never used), but the vast majority of it is just stripping the type annotations so the performance will be 100% identical.

It's like having "Python" and "Python with type hints" as separate languages and claiming there is a big speed difference between them.

[-] FizzyOrange@programming.dev 7 points 1 year ago

Sure but that's orthogonal to f-strings.

[-] FizzyOrange@programming.dev 7 points 1 year ago

Well, at a low level they are still basically the same. x86 still starts in 16-bit real mode. Mice still use USB 1 from the 90s.

Mostly it's just a lot faster and covered with more layers of abstraction.

[-] FizzyOrange@programming.dev 7 points 1 year ago

TL;DR, big-O ignores the constant factor. If you already know what that means you don't need to read this...

[-] FizzyOrange@programming.dev 7 points 2 years ago

Facebook and Google are the customers that use this feature.

Apparently. Does anyone know what they use it for?

[-] FizzyOrange@programming.dev 7 points 2 years ago

I feel like they could ask way more interesting questions. Probably the only really interesting thing here is people's top complaints about Rust, which is to be fair a really great list.

I would really love to see something similar for other languages. Imagine if you could see ranked pros and cons for every language!

[-] FizzyOrange@programming.dev 7 points 2 years ago

200?! I can pretty confidently say approximately nobody is anything like you 😄

[-] FizzyOrange@programming.dev 7 points 2 years ago

I don't know why you're being downvoted. It literally starts with the word OPINION in bold red caps.

[-] FizzyOrange@programming.dev 7 points 2 years ago

What language are your apps written in? Generally the best options are:

  1. Qt (C++) or PyQt (Python wrapper if you hate yourself). Old school desktop GUI. Works extremely well though.
  2. Web based, then you can pick from a gazillion frameworks, most popular is React. You generally have a Typescript based frontend and a backend in whatever language you want. The downside is you have to deal with the frontend/backend communication which can be a pain.

There's also Flutter which is pretty nice, but again you have to use Dart for the GUI so if the rest of your app is in another language you'll have some friction.

But yeah, I would say the language you want to write your "business logic" in is the biggest factor to choosing. Also if you care about exposing your app over the web.

[-] FizzyOrange@programming.dev 7 points 2 years ago

Sure there aren't many things that are universally loved. I mean I can't really think of anything that doesn't have some flaw.

But that doesn't mean everything is equal! What would you rather program with, Visual Basic or Go? PHP or Typescript? If you polled people there are obvious winners.

[-] FizzyOrange@programming.dev 7 points 2 years ago

we will soon begin building LightBurn on a new framework that will require our development team to write custom libraries for each platform we support.

[-] FizzyOrange@programming.dev 7 points 2 years ago

I've been working on some OCaml code recently. It's a quite elegant language but it has two or three big flaws that really make me not want to write it.

  1. OPAM is buggy as hell. There's one piece of OCaml software that we use at work and literally everyone that tried to build it had problems due to OPAM. One was that it couldn't find zip if you are in more than 32 groups!? I don't even want to think about the kind of code that could lead to that bug. And this is on Linux! Have you tried installing OCaml on Windows? Yeesh.

  2. Global type inference means loads of types are inferred as generics, which means you give up a lot of the utility of static typing. Yes you can add explicit types, but the code I'm working on doesn't have them. Rust was 100% right to require explicit types on functions.

  3. The syntax is pretty awful in my opinion. Yeah I guess it looks elegant and I'm sure whoever came up with it was very proud, but honestly maybe 40% of my time fighting OCaml has been spent figuring out where to place the damn brackets and semicolons. It's extremely unforgiving too. E.g. if you put an extra semicolon on a top level let where you weren't meant to it can sometimes be "valid" but it pulls the rest of the file into an inner scope, which means the compiler gives you a valid but wrong fix suggestion. Languages using curly brackets don't have this issue at all.

The lack of brackets for function calls can also make it difficult to work out what's going on because you have another operator precedence to remember. Have trouble remembering which is higher precedence out of & and ==? Well now we've thrown calling functions into the mix for you to forget too!

Finally the functional focus can lead to mega-expressions that are very hard to follow, especially when combined with the lack of brackets it can end up looking like word soup.

OCaml has a ton of really nice ideas but I'm glad it's just inspiration for better languages (e.g. Rust) rather than actually popular. I mean... it's still a million miles better than Python... But that's a low bar.

view more: ‹ prev next ›

FizzyOrange

0 post score
0 comment score
joined 3 years ago