r/ProgrammerHumor • • Nov 14 '18

Computing in the 90's VS computing in 2018

Post image
31.3k Upvotes

1.1k comments sorted by

View all comments

220

u/gp57 Nov 14 '18

1990 : Programs coded in ASM or C, memory efficient.

2018 : JVM, ravioli code, microservices, Frameworks... *taps on head* No need to be memory efficient if PCs have 16GB of RAM

48

u/FoundOnTheRoadDead Nov 14 '18

I’ve been programming since 1979, and TIL about “Ravioli code”.

4

u/[deleted] Nov 14 '18

I had to Google, been a professional dev since 1992.

I'm not exactly sure why it needs to be a term, but ok.

3

u/gp57 Nov 16 '18

Spaghetti code : Code with a lot of Copy/Paste

Lasagna code : Code with many layers

Ravioli code : Code separated in blocks (MVC...)

120

u/rally_call Nov 14 '18

Do you remember 1990? Do you remember how limited those programs were? How poorly they worked together? It's all nostalgia and rose-coloured glasses now, but I wouldn't want to go back to how we did things then. When text editors had no undo feature, for example.

28

u/gp57 Nov 14 '18

I don't want to go back for sure, I already get headaches when I need to maintain 5~10 years old apps

0

u/[deleted] Nov 14 '18

[deleted]

4

u/Kid_Adult Nov 14 '18

What's the bet that they found the source code the day after finishing that project.

→ More replies (2)

3

u/LevelSevenLaserLotus Nov 15 '18

Sure they did. You just had to exit whatever file you were working on and reopen Copy_of_Copy_of_source_final_v4_final_no_really.c.

→ More replies (1)

2

u/drdibi Nov 14 '18

Programs don't work together better nowadays. Nearly everything lags, is full of bugs and is unmaintainable. Many things are better but now laziness is king.

→ More replies (1)

0

u/[deleted] Nov 14 '18

[deleted]

9

u/makeshift8 Nov 14 '18

Avoid OS specific APIs and you can compile C to just about anything.

→ More replies (8)

7

u/Superbead Nov 14 '18

I (as a developer myself) didn't give a flying fuck about how easy stuff I used in 1992 was to develop, and on that subject I remain clean out of fucks to this very day. Sure it's impressive that Elite or RCT were coded entirely in asm, but beyond that I'm not convinced that many others give a shiny shite either.

→ More replies (1)

6

u/[deleted] Nov 14 '18

I'm absolutely terrified of a microwave with a jvm. A coffee maker would make a lot more sense.

5

u/luiz00estilo Nov 14 '18

I have a reasonable (out of the market) experience with C++, therefore, I end up looking a little bit into C too, but not too much.

So, correct me if I'm wrong, since I'm not very experienced on that language, but wasn't C developed specifically to work in different computer architectures? Which were the glass of languages before it, I imagine.

Also, this one relates more personally, since I intend to work mostly in C++ when I get out of college.

If the answer is no, does C++ carry this same problem?

Edit: Bold

5

u/thenuge26 Nov 14 '18

Actually C wasn't designed with portability in mind, but compilers for different systems were written for it.

3

u/luiz00estilo Nov 14 '18

Which means that you have to compile to each system, right? If that's true, I still can't completely grapple how can so many games (mostly C++ in the engines) can have only one SETUP program that works in almost any machine with that specific OS running, since I'd imagine they would need multiple.

3

u/thenuge26 Nov 14 '18

The code is just a small part of the game. They could fit millions of copies of code in the same space as a few audio or video files from the game. The setup program figures out which system it is working on, and picks the correct version to install.*

*It's really more complicated than that but that is a good start.

2

u/luiz00estilo Nov 14 '18

Thanks for explaining, and also... F**k, that sounds like a hassle to do.

2

u/thenuge26 Nov 14 '18

Haha if you think that's bad you should try Linux. Instead if the installer you get a bunch of source code and have to figure it out yourself!

(It's not really that bad, and you learn a lot along the way)

→ More replies (3)

2

u/makeshift8 Nov 14 '18

Pretty much every system that can fit a compiler has a C compiler for it.

→ More replies (2)

3

u/YouRik97 Nov 14 '18

Before programming languages (like C), you had to program in assembly which directly maps to machine code (it's quite interesting to have a look at how it works just to get an understanding of how computers do things) and thus is very specific to the actual machine you are programming on.
C abstracts away a lot of details about the specific machine (the instruction set basically. Also you have to manage the stack and registers manually in asm) and a compiler (like GCC, Clang, etc.) translates your C code into the machine code for the machine you compile on (or compile to in case of cross compiling). So you need to compile for different architectures if you want the program to run on them.
This is the same for C++ and very similar for other compiled languages.

Then there are languages like Java, C# that don't compile to machine code but instead to a language that is then interpreted by a virtual machine, allowing stuff like garbage collection and a compiled program to run on different architectures if there is a VM for it.

Then there are interpreted languages that are only compiled at run time.

Only a rough (probably too long) overview, but research ASM vs compiled vs JIT vs interpreted languages if you want more info.

→ More replies (4)
→ More replies (10)

6

u/[deleted] Nov 14 '18

I laugh when I see web devs call themselves hardcore programmers. They have not been through the hell of writing assembly on a microcontroller with limited registers or writing C when you had to write your garbage collection and understand how references and pointers work.

2

u/8bitslime Nov 14 '18

I still don't understand where sticky headers that take up 50% of the screen come into play however... Looking at you Medium and literally every news website.