[-] FizzyOrange@programming.dev 4 points 3 weeks ago

This is really terrible advice. Sometimes it's better to do that, but definitely not in the example from this article.

If anyone says you should always prefer polymorphism to switches they are a bloody idiot.

[-] FizzyOrange@programming.dev 4 points 4 weeks ago

There’s no value for the higher ups in fixing it

Well there is, it's just long term value that they don't even understand.

Really you should just make fixing technical debt part of your regular job. Don't ask for permission, just do it. (Except for really big things obviously.)

[-] FizzyOrange@programming.dev 4 points 1 month ago

Would you rather build from wood or tissue paper?

What glue is better: 2 part epoxy or pritt stick?

Do you prefer soap or ash as a cleaning agent?

[-] FizzyOrange@programming.dev 4 points 1 month ago

I think those jobs are a myth. You probably get like a 20% premium for using COBOL, so if you look up the salary of a Cobol consultant in America it's going to seem like an enormous salary on an absolute scale.

But so is a C++ consultant in America or whatever. Probably not worth learning COBOL for.

Feel free to correct me if I'm wrong, but I have looked once or twice and the COBOL salaries seemed entirely normal.

[-] FizzyOrange@programming.dev 4 points 2 months ago

Why would you be interested in 6 levels of abstraction at once?

Because there aren't 6 interesting levels of abstraction. It's like talking to a child:

What are you doing?

Finances

What does that involve?

Processing money.

What kind of processing?

Summarising

What kind of summaries?

Summaries of everything

What specifically though?

Summaries

Ok so you're just displaying total balance then...

[-] FizzyOrange@programming.dev 4 points 3 months ago

Awkwardly. Pretty much generate a patch and email it as an attachment.

[-] FizzyOrange@programming.dev 4 points 4 months ago

Yeah I think RISC-V is probably still about 10 years away from being a sensible choice for a laptop. There's a load of platform stuff around things like ACPI and Device Tree that's still being decided. Also some ISA extensions that are standard on x86/ARM are either unratified or very recently ratified (e.g. Vector).

For microcontrollers it's ready now, and for server applications it's probably doable now and will be solid in a few years. Laptops & phones will be last though.

[-] FizzyOrange@programming.dev 4 points 4 months ago

You can count Ruby out immediately. Terrible language.

Also replace JavaScript with Typescript. It's strictly superior.

I don't think Go has any mature GUI libraries.

For desktop GUI your main options are:

  • Qt, via C++. Probably the best option but if you don't know C++ that's a huge barrier.
  • Qt, via Python. Reasonable but Python is quite a shit language. It's very slow and the tooling/infrastructure is absolutely abysmal. Be prepared to bang your head against the wall trying to e.g. get relative imports to work.
  • Dart/Flutter. This is quite nice but not super mature for desktop apps. Also the Dart ecosystem is very small so libraries you want may not be available.
  • Electron/Typescript. This is quite a good option. Nobody here will recommend this because nerds have a slightly weird hatred of Electron because the minimum download size is like 80MB. But normally it doesn't really matter. Especially for big apps.

For the web frontend you basically want Typescript. For the backend you can use literally any language.

I would recommend Electron for the GUI and Typescript for the web frontend and Electron GUI. It means you can use the same language everywhere and you won't need to even implement the same program twice.

If you're worried about the download size / RAM usage you can look into Tauri which uses your OS's browser engine. I've never used it though.

[-] FizzyOrange@programming.dev 4 points 6 months ago

Sounds deep, but isn't.

[-] FizzyOrange@programming.dev 4 points 6 months ago

It also does exhaustiveness checking for enums! Pyright is probably the best thing about Python.

[-] FizzyOrange@programming.dev 4 points 6 months ago

Python lets you add static type annotations to your program, so you can say "this variable should be and int or a string", and that means Pyright (a fantastic static type checker) can tell you if you screw up and forget that it might be a string.

[-] FizzyOrange@programming.dev 4 points 6 months ago

There are plenty of languages with warts at least as bad as JavaScript's. Bash, PHP, C, even relatively sane languages like Python still have huge issues like implicit variable declaration.

view more: ‹ prev next ›

FizzyOrange

joined 1 year ago