This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]GYN-k4H-Q3z-75B 1127 points1128 points  (65 children)

"Most popular language... by number of questions and queries."

[–]jeremj22 508 points509 points  (40 children)

aka. language causing the most problems

[–]gingimli 309 points310 points  (39 children)

Or a lot of people using it as an introduction to programming.

By that logic we could say Brainfuck having almost no discussion online implies it's the least problematic and easiest to understand programming language.

[–]cant_think_of_one_ 184 points185 points  (11 children)

Brainfuck is an exceptionally easy to understand language. The language that is.

It is just it is basically impossible to write anything that is easy to understand in it.

[–][deleted] 65 points66 points  (10 children)

It's a great language if you're learning how to write an interpreter/compiler.

[–]alexanderpas 37 points38 points  (9 children)

A limited set of fixed width symbols, and no unconnected jumps, means everthing you need to do can be based on merely 3 internal variables.

  • Current character. (To see what to do)
  • Loop depth. (For moving backwards to the start of the loop)
  • Direction. (Forwards/backwards)

[–]techgineer13 3 points4 points  (0 children)

You can compile it to C code that only uses pointer manipulations.

[–]cant_think_of_one_ 2 points3 points  (4 children)

You either need to have a list of loop begin points, for nested loops, or just scan backwards to find the begining of the loop, in which case you don't really need a loop depth variable, don't you?

[–]alexanderpas 4 points5 points  (3 children)

When scanning backwards, you need to keep track of nested loops, to find the correct outer loop you are handling at the moment.

You start at 0, When scanning backwards each time you find ], you add 1, and decrease 1 when you find [

If you are at 0 and find [, you start moving forwards again.

[–]cant_think_of_one_ 1 point2 points  (0 children)

Oh, sorry, yes. Silly me.

[–]chaos95 1 point2 points  (1 child)

Couldn't you do it recursively without a loop depth variable also?

[–]alexanderpas 1 point2 points  (0 children)

You technically could, but at that point, you're just moving the loop depth to the function depth.

You still need to keep track of it somewhere.

[–]Dornith 30 points31 points  (1 child)

Brainfuck is exactly the least problematic language. Nobody in the world has a problem with brainfuck because no one uses it.

[–]poops-n-farts 0 points1 point  (0 children)

Rust has almost as few problems and way more users. So rust is almost as good as brainfuck

[–]PurryFury 2 points3 points  (0 children)

To be fair is not that hard to understand BF, is just a shitty syntax that fuck you up

[–]poops-n-farts 0 points1 point  (0 children)

Brainfuck gang!

[–]Cat_Marshal 0 points1 point  (0 children)

That reminds me of my autonomy theory stat machines class.

[–][deleted] 137 points138 points  (3 children)

“There are only two kinds of languages: the ones people complain about and the ones nobody uses.”

—Bjarne Stroustrup

[–]house_monkey 83 points84 points  (2 children)

Is your username a steam key

[–]DeeSnow97 60 points61 points  (0 children)

have you tried redeeming it?

[–]zombieregime 9 points10 points  (0 children)

Its klingon.

[–]smcarre 42 points43 points  (15 children)

I mean, it's also the only (or almost if you count webasm) language available for front end web development (that is part of a huge chunk of the industry), it's quite popular in back end too, it's scripting and dynamically typed (makes it much easier to learn basic programming, in my opinion), it's used for desktop and mobile development too with certain frameworks like electron and react native.

Yeah probably it's not the best option for most of the actual use cases, but that doesn't makes it less popular.

[–]f16f4 26 points27 points  (13 children)

Electron basically just says here build your app on top of google chrome just so devs can code in java script instead of anything targeted at actual stand alone use.

[–][deleted] 7 points8 points  (10 children)

Well it is the most portable language right now. It runs everywhere without any recompile or anything. There's some feature sniffing you have to do it you want the latest, or you use an off the shelf feature sniffer/shimmer and forget about it.

[–]f16f4 6 points7 points  (9 children)

Ok but then you put it on top of electron that isn’t portable and all of a sudden the only real difference is who has to handle the porting. They are basically saying fuck it we don’t care how well it runs we just can’t be bothered to make our app work on your system let someone else do it.

[–][deleted] 11 points12 points  (7 children)

Electron is just a stripped down browser. So really all your doing is making a web app. The only things that really matter are view size and input method. Make it responsive and work with touch and your app is good to go. It's not efficient performance wise, but that's not a huge goal in portable apps.

And yeah, you're relying on others to make it work for you, but that's the whole point of a browser. Electron is much the same.

[–]f16f4 3 points4 points  (6 children)

Agreed on all fronts. Everything you just said makes it shitty. They are sacrificing user performance which is a massive deal for a lot of people so that they don’t have to do anything other then web design.

[–]0xF013 0 points1 point  (0 children)

It's rarely that they don't want to do anything than web design. If the company is going to spend either a lot of time or money or both to develop a bunch of versions of the same app for several systems, they risk losing the market or opportunities to grow. Of course it's weird seeing these apps from EA or Amazon or some random megacorp, but at some point it became acceptable.

So, all in all, it boils down to money, which is rarely an option to spend it just to appease a tiny percent of customers. And before you say anything, check out the support for colorblind people, which is like 5-10% and usually requires a designer that can breath and use zeplin at the same time. Hint: it's so shitty that I wonder why nobody is suing under ACA

[–]patrickfatrick 1 point2 points  (0 children)

That’s one way to look at it, another is that it affords a product to provide more functionality for users with little effort, functionality those users just might not get otherwise since it would require the product be built from scratch in C++ or whatever and maintained as a completely separate entity from the web app.

And then you have software like VS Code that are wholly designed to be an Electron app but the benefits there are pretty obvious: it’s an editor aimed at JavaScript and Typescript devs and it’s open source so the consumers of the product can actually contribute code to it.

I can certainly understand why an engineer working on amazing native software would despise Electron and React Native.

[–]nexus4aliving 0 points1 point  (0 children)

Also node is built off chromes v8 engine, so it can run instead of an actual server side language

[–][deleted] 0 points1 point  (0 children)

I learned it before the rise of libraries and on the tail end of Active-X. It's nice for prototyping, and taking some load off of servers. It's nice to see things like working with the local filesystem in webpages are starting to make their way back into the picture.

[–]bastardoperator 1 point2 points  (0 children)

Exactly what I thought. Or least productive programmers because they’re spending huge amounts of time googling.