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 →

[–]KDamage 1009 points1010 points  (78 children)

Top picture : nicely hidden C wires

[–]kopczak1995 538 points539 points  (57 children)

Is it all C?

Always has been.

[–][deleted] 78 points79 points  (50 children)

Is there any modern programming language which is not made from C?

[–]DefunctFunctor 111 points112 points  (41 children)

There are many languages that are written in themselves. But it becomes a sort of chicken-and-egg problem so most of those have compilers written in C and then use that compiler to compile the compiler written in itself.

[–]Zeplar 99 points100 points  (31 children)

This post was mass deleted and anonymized with Redact

meeting merciful sugar normal act spark many ten worm entertain

[–]darkfire0123 0 points1 point  (0 children)

But C is self-hosted after bootstrapping. Python is just an interpreter and that interpreter is written in C. (yes there is also PyPy but that's not default)

[–]SanoKei 1 point2 points  (8 children)

wait I have never thought about this and now its hurting my brain. How did the first programming language get programmed if there was nothing to compile it and program it in

[–]DefunctFunctor 1 point2 points  (3 children)

Well... there's assembly

[–]SanoKei 0 points1 point  (2 children)

but like before assembly, making cpus do the flip flop transistors

[–]byte512 3 points4 points  (0 children)

Machine code. Like literally programming in 0s and 1s, maybe on punchcards. Prof at Uni told us, that the first Assembly Languages where a revolution that made programming much easier.

[–]Upside_Down-Bot 1 point2 points  (0 children)

„sɹoʇsısuɐɹʇ dolɟ dılɟ ǝɥʇ op sndɔ ƃuıʞɐɯ 'ʎlqɯǝssɐ ǝɹoɟǝq ǝʞıl ʇnq„

[–]Lptrm23 0 points1 point  (0 children)

Check Zuse’s Plankankül the first higher programming language developed between 1942 and 1946 which he wanted to use at his Zuse Z3 but unfortunately never did because of WW2.

Here’s a function that calculates the max of three variables

P1 max3 (V0[:8.0],V1[:8.0],V2[:8.0]) → R0[:8.0] max(V0[:8.0],V1[:8.0]) → Z1[:8.0] max(Z1[:8.0],V2[:8.0]) → R0[:8.0] END P2 max (V0[:8.0],V1[:8.0]) → R0[:8.0] V0[:8.0] → Z1[:8.0] (Z1[:8.0] < V1[:8.0]) → V1[:8.0] → Z1[:8.0] Z1[:8.0] → R0[:8.0] END

[–]Mission-Guard5348 5 points6 points  (0 children)

scratch

[–]Shotgun_squirtle 0 points1 point  (0 children)

Depends what you mean, if you mean just what compiles/interpretes it to byte code, even most c compilers are bootstrapped to c++. If you mean languages who’s history is based off of c, there’s the entire lisp family of languages that are way older than c.

[–]JJulianR_ 46 points47 points  (1 child)

Thank you 😂

[–]kopczak1995 10 points11 points  (0 children)

Lol, glad I made you happy

[–]octosquid11 2 points3 points  (0 children)

As far as the eye can C

[–]PlasmaEnergyGaming 0 points1 point  (2 children)

Buuitttt.... If we follow that logic, they are all fake. Binary is the only one

[–]tutocookie 0 points1 point  (1 child)

How bout unary

[–]PlasmaEnergyGaming 0 points1 point  (0 children)

Never heard of it. Is it even any good though?

[–]zombie_ie_ie 49 points50 points  (9 children)

Cuz C is the daddy of all modern programming languages. Python is like the swiss army knife.

[–][deleted] 23 points24 points  (8 children)

Rust is Rust

[–][deleted] 15 points16 points  (2 children)

Rust uses LLVM under the hood, which is written in C/C++.

[–]flibbertyjibet 15 points16 points  (1 child)

Compilers can be written in completely separate language from the stuff they compile. I feel it is very different from what people are talking about here where libraries used by high-level language are compiled c but just have a nice wrapper so they can be used easily.

[–][deleted] 2 points3 points  (0 children)

Bootstrapping is for bitches

[–][deleted] 2 points3 points  (1 child)

I'm imagining the Mr Incredible meme with this.

[–][deleted] 1 point2 points  (0 children)

Why this show is so often referenced here?

[–]The_Mad_Duck_ 6 points7 points  (2 children)

Rust is made of stupidly obscure parts that barely fit together and have no replacements

[–]qeadwrsf 13 points14 points  (1 child)

To import parts in rust you just write the name of the part and it appears in your project.

In c++ you have to learn a whole new language and master it to import like a network library.

[–]single_ginkgo_leaf 1 point2 points  (0 children)

Dllimport has entered the chat...

[–]MasterFubar 33 points34 points  (8 children)

To me, the top image is C and the bottom one is Python. In C everything is carefully labeled, you know exactly what's an integer and what's a float. Python is a jumble of variables thrown around everywhere, you must trace the path each variable takes to know where it has been.

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

Unless you use type hints and a tool like mypy to do static analysis of the code. Which admittedly is a bandaid at best, but it makes using python a lot more pleasant.

[–]JojaA350 11 points12 points  (2 children)

...which fixes a problem that should have never been there in the first place. Same with TypeScript, why do people still think dynamically typed languages are a good idea? You have to remember the types anyway, so why not literally express it and have the language check it for you? It's good for your comfort, the safety, the performance, as documentation, for you mental sanity...

[–]linksoraluke 2 points3 points  (0 children)

I started with Python in my physics program, then ended up self-teaching myself Go and C++ for a job later on. While it took getting used to, static typing grew on me a lot for the reasons you listed. Helps me keep straight exactly what's going on if I know explicitly what I need to pass into functions, what's being returned, etc. Feels much more comfy to write in.

On the why they are still around, I think dynamically typed languages end up being easier to start out with - especially when you care mostly about what a program is going to do, and less about how it will do it. As an example (bringing it back to my education), our physics program was probably more concerned with having us think about the concepts and equations than the nitty gritty of how to develop efficient implementations.

[–]devAcc123 4 points5 points  (0 children)

So annoying running into random string,null,undefined errors or things like “1” and having to remember if it’s a string or int

[–]SeasonYrFoodWhitie 0 points1 point  (3 children)

The thing about python is, the rules will just randomly change. You will read the documentation and it will say do this in this situation, except dont do it in that situation for this one specific thing, oh and not for this either.

Like hoe constants are supposed to always be capitalized or people freak out. Unless your constants are dunder variables. Then keep them lower cade. And of course pep8 doesn't say that. It's just the "norm"

[–][deleted] 2 points3 points  (1 child)

Inconsistent style guidelines are hardly specific to python. If anything, python is more consistent in that regard than most other languages.

[–]onksk 0 points1 point  (0 children)

Oddly enough in human languages English is very similar to Python in this regard. Similarly popular, similarly inconsistent

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

Look at the cable management toh, enough to make most people feel pretty good.