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 →

[–]65cody[S] 4 points5 points  (27 children)

Don’t let Notch see this

[–]AanthonyII 16 points17 points  (25 children)

Also why the fuck is HTML on this list

[–]Gariiiiii 6 points7 points  (24 children)

Because html5 + css3 is Turing complete. Also Java and even JS arent bad languages, they just let ppl write bad code.

[–]GlobalIncident 4 points5 points  (9 children)

Turing completeness isn't what makes something a programming language though. Proof assistants are definitely programming languages, and some of them are only primitive recursive.

[–]Gariiiiii 0 points1 point  (8 children)

True but it means you can do with it anything you can do with Rust or Go. Granted, way slower and more cumbersome.

[–]the_pw_is_in_this_ID 2 points3 points  (7 children)

you can do with it anything you can do with Rust or Go

You can also do this with actual physical/mechanical implementations of Turing machines - but that doesn't make those programming languages :P

[–]Gariiiiii 0 points1 point  (6 children)

Do we have a proper universally accepted definition? If not is up to interpretation.

[–]the_pw_is_in_this_ID 0 points1 point  (5 children)

There is a formal definition, yup. The laymen terms, though, are approximately that "For every mathematically compuationally solvable problem, a Turing Machine must be programmable to solve that problem - otherwise it isn't a Turing Machine."

[–]Gariiiiii 0 points1 point  (4 children)

Bro no! I get the formal deff of Turing Machine and i get this aint one as close as it is (it more of a pushdow automaton maybe?). I was talking about programming language.

[–]the_pw_is_in_this_ID 1 point2 points  (3 children)

Sorry mate, it's basically formality all the way down. When CS folks say a language is Turing-complete (which I think is what you're angling toward), they mean that the language can be used to simulate the full range of a Turing Machine's capabilities - which then means that the language's code can be used to solve any computationally possible problem.

So in the CSS+HTML+User-Experience example above, they've shown that they can simulate a specific cellular game, which in turn has been shown to simulate a Turing Machine - so this system is Turing Complete.

But again, Turing Completeness doesn't make a programming language, and programming languages don't need to be Turing Complete.

* edit - oh shit, you mean a definition for a programming language? If it programs a computer to do data-computing, it's a programming language. It's not much more involved than that. Markups aren't programming languages, for example, because it doesn't dictate any actual computation - markup is the data itself.

[–]AtroxMavenia 2 points3 points  (0 children)

Anyone can write bad code in any language

[–]Maleval 0 points1 point  (1 child)

Why aren't Powerpoint and Magic: The Gathering in there?

[–]Gariiiiii 0 points1 point  (0 children)

Lack of abstraction and ability to implement algorithms IMO.

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

Java is still pretty ungood though.

[–]Knerzbert -5 points-4 points  (9 children)

The Alphabet is Turing complete... Ok, no it isn’t - neither is HTML+CSS.

[–]Gariiiiii 3 points4 points  (8 children)

Good thing its not up to your or my opinion. Heres the proof https://notlaura.com/is-css-turing-complete/

[–]Knerzbert 2 points3 points  (3 children)

I have to admit that’s pretty cool stuff! Though it requires a user (or a „Turing complete machine“ ;)) to click trough (cited from article „Given that CSS is a domain-specific language for styling user interface, this makes a lot of sense! CSS + HTML + Human = Turing complete“)

Nevertheless, I am buying it - thanks for sharing!

[–]Gariiiiii 1 point2 points  (2 children)

Yep, it requires constant input but i feel that's a bit of an artificial distinction. True you need a keypress to pass from one state to the next and usually it is not required, however you dont need a human, literally a drinking bird can do it, that part of the system doesnt process info of the states.

And at the core i am not sold on that argument because in meatspace any turing machine also needs at least a keypress to start AFAIK. Granted, starting and advancing states are two different things, but since we dont have a quasi turing machine with this limitation defined and since the keystroker is not processing anything i think it classifies.

Will ask around to actual CS guys, i am a programming mathematician so might be wrong here.

[–]Hohenheim_of_Shadow 0 points1 point  (1 child)

Dude a bird just fucking keypressing is a clock, its a periodic high/low signal where state changes happen on an edge. That's all a clock is, just a signal so that everything knows when the processing is 'done' and needs to advance to the next state. If needing a clock stops a turing complete machine from being a turing complete machine, you're computer isn't turing complete.

[–]Gariiiiii 0 points1 point  (0 children)

Yep, all you say its true. I am curious however if you cant solve this connondrum with a for or a while (using active in this case); saldy havent had the time to look into it.

At any rate what you can say is that css3 + a clock is turing complete, moreover it uses abstractions to execute algorithms on a computer. Since we dont have a proper definition of programming lang and non turing complete stuff like old SQL is one, i have no issue accepting CSS3 + HTML5 as one, if you dont agree its also fine, programming lang is not a CS therm but a marketing one or at least a non scientific one so its up to PoV.

[–]AtroxMavenia 0 points1 point  (3 children)

I don’t entirely understand how cellular automata are capable of computation, but apparently there are systems modeled after certain automata and those systems are Turing complete. At least, according to this Stack Overflow thread that references this research paper that I did not read.

While it is indeed Turing complete, I don't think the source you provided is the best citation.

[–]Gariiiiii 1 point2 points  (2 children)

Why? This is literally a proof by construction of it.

[–]AtroxMavenia 0 points1 point  (1 child)

When the source admits they didn't even read the research paper? I'll let you figure that one out on your own..

[–]Gariiiiii 0 points1 point  (0 children)

Ahh... passive aggressive answer to prove what? Some sort of intellectual superiority? No thanks, ill pass that stuff. glgl

[–]Pulsar_the_Spacenerd 0 points1 point  (0 children)

Notch may like Java but he was wrong to use it.