Programming language agnosticism is the only way to move forward in life

26 pointsposted 2 days ago
by amano-kenji

Item id: 45632180

16 Comments

austin-cheney

a day ago

I feel the same way about OOP. When OOP was invented in the 70s and then popularized in C++ it solved real problems of scaling software with critical memory limitations. Now it’s just code style. It’s now excess unnecessary code to provide a familiar architecture that really gets in the way.

I just want to solve my software problems with portable solutions without excess decoration and vanity. My career has shown me the more code decorations a developer requires to deliver an application the more they are concerned about themselves and their own needs as opposed to the software problem/solution.

skydhash

a day ago

One of the things I'm learning away from is "magic". Magic methods, reflection, and configuration with code (JS world, Gradle). Especially when such magic is powering conventions. The only exception is lisp macro as it's mostly code that produce code with a simple mechanism: quoting.

IDEs are places you'll find such magic. To write a simple mobile app, you'll need GBs of SDK because they couldn't bother coming up with a simple solution first.

austin-cheney

a day ago

Yeah, I just like simple light weight code editors that open quickly. Notepad++ is super old, but its still incredibly popular and maintains a faithful following. VS Code is super popular because it tries to not be an IDE like the actual Microsoft Visual Studio IDE. Its also why I never liked Eclipse, because it just feels really slow.

At any rate, I was thinking about what I wrote earlier. Why is it that there is a direct correlation between code vanity and self-orientation?

I think the answer is anxiety. Some people cannot start from a clean slate. There is too much uncertainty in making original decisions. They just need a little bit of guidance and some people need so much guidance it feels like copy/paste. The more fearful or cowardly a person becomes the more fear avoidance becomes the paramount concern. At the extreme end, like layers of frameworks super-imposed upon each other in JavaScript land, the more autistic it feels to me. At the extreme end nothing matters more than immediate comfort from already known patterns, and everything else becomes a holy war.

skydhash

a day ago

You don't even have to start from a clean slate. There's a lot of materials that outline design choices and their impact. I believe it's mostly not applying YAGNI. They come up with the kitchen sink, and then proceeds to have breaking changes shortly as they always make a mistake somewhere. And then you have people cargo-culting the sink and piling more on top of it.

Complex problems exists, but any complex solution I've seen is something that tries to solve many problems at once.

0xCE0

a day ago

Computer executes only one programming language: its own machine code. Everything else is just people's own mess of how to convert something that usually resembles English to this machine code.

fuzzfactor

a day ago

Sometimes all I log in for is to upvote the underdog.

I hope people are not dismayed because because they know different microprocessors actually do require different machine code. They've got to look deeper than that :\

As an ex-CEO myself I do appreciate a good executive overview without getting into every little bit & byte ;)

Fortunately it was good to learn from a time when you could expect every dissimilar device to have its own unique higher-level language so you wouldn't have to do any assembly code.

This time I want people to think about what it was like when no choices appeared to be on the horizon yet.

For a while there, without a mainframe, you weren't going to have any choice of language anyway. Most of the time not even then. For early microprocessor devices (like scientific instruments), the language was part of the "firmware" in ROM. Except they didn't call it firmware yet because it was permanent and that's a lot more solid than merely firm. Everything burned into ROM at the factory really did need to reach a level of completion requiring no further updates, of course. To be worth money to begin with. That was table stakes too.

For the foreseeable future. It wasn't supposed to bother you that there were no choices of language.

Not like there was only one mandated language that everyone must adhere to all the time.

Just the opposite, you never knew what kind of syntax and logic chain you might need to get involved with before you could get a new device to fall in line.

You, the programmer, were expected to be agnostic from the get-go so you could program all kinds of equipment using whatever language each manufacturer had come up with.

Hardware can be hard, and at the beginning it was completely incapable of being agnostic itself because the demands were so great.

You were expected to be able to sit down, power up [0] and begin programming, using a particular hardware's single inbuilt language along with the reference manual for syntax, no IDE or anything.

The device as a whole was programmable in whatever language it was supplied with. Otherwise not at all.

Some people were fine only learning how to program one series of hardware device, others could program just about anything that came along. It takes all kinds.

Even if it's a high-level language, if it's the only thing you've got to work with it's by nature the "machine's code", with some of the same strengths and limitations of the unique machinecode that underlies different processor architectures when you have no choice there. If you do zoom in.

[0] No booting involved for the ones that ran from ROM, basically just initialization.

sky2224

a day ago

In my case, I use Lisp because I'm trying to cause a Racket.

frou_dh

a day ago

Certain domains are a lot more wide open than others though. If you want to develop a command-line program that does something with files and possibly the network, then many many languages are suitable. If you want to develop a proper desktop GUI application (using mature design/layout tooling, naturally) then the field of suitable languages is cut down massively, and trying to shoehorn one in is indeed inadvisable.

hshdhdhehd

14 hours ago

Why not both? For work or commerce, best tool. But have a passion project in your beloved language.

codegladiator

9 hours ago

Each passion project should be built in the language most suitable for that project, not based on love.

Bolwin

a day ago

> Are you trying to have fun with programming languages? Or, are you trying to get things done quickly in programming languages? Speed is infinitely more important than fun.

I mean what if I am trying to have fun?

I'm only half joking. For work, your philosophy is correct. But at home, it's fine to give up a little convenience if you have more fun with a different language.

moomoo11

a day ago

The only people who obsess over languages are the core contributors (1%) or the guy who has been a mid level senior for 20 years and kind of stopped growing/learning years ago (95%)

Everyone else is the SWE turned entrepreneur who doesn’t give a fuck and just wants fastest ROI. Aka using a hammer instead of a saw to put in a nail.

hshdhdhehd

13 hours ago

Im i. the P95 perpetual mid levellers, but I also dont obsess about PL (but would avoid for example a PHP or VB6 job) but yeah Go, Node, C#, Java, python, whatever!

amano-kenji

a day ago

Initial speed matters, but sustainable speed matters as well. Your choice should be based on initial speed and sustainable speed.

Initial speed matters more, but sustainable speed can't be ignored.

moomoo11

a day ago

Right, that's why I always suggest anyone doing "actual" product work to use something like node-TS and Go.

node-TS for insane developer productivity (hella libraries, who really gives a fuck about NPM issues? just patch and move on) and ability to scale easily (95% of CRUD IO workloads for most companies). Need computational horsepower? Use Go for that thing, compile binary, call binary from node..

Honestly, just that alone is able to scale to millions of users and is super easy to maintain (granted the code is architected well). 95% of companies aren't really doing anything crazy, and 99% of companies are not unicorns.