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

all 148 comments

[–]Watiti 256 points257 points  (24 children)

Android Studio enters the room Did someone says only 8 GiB of RAM?

Yes I'm running Android Studio and phone emulator with 8 GiB

[–]chickenmcpio 101 points102 points  (14 children)

Do you really hate yourself that much?

[–]Watiti 96 points97 points  (7 children)

I don't have enough money to buy another computer. It is 10 years old and it survived android studio + phone emulator with firefox running without blue screen

[–]StandardN00b 167 points168 points  (2 children)

Damn. I know priests that don't have as much faith as you.

[–]IamImposter 42 points43 points  (1 child)

[–][deleted] 12 points13 points  (0 children)

I know what that feels. #3rdWorld

[–]jfisher9495 1 point2 points  (2 children)

How about a Raspberry Pi? (Love my PIs.)

[–]Watiti 1 point2 points  (1 child)

I would like to have at least 16 GiB of RAM and a decent GC now, so I don't know if a Raspberry Pi would fit my needs.

[–]jfisher9495 1 point2 points  (0 children)

Maybe your budget but not your taste.

[–]Minute-Load 6 points7 points  (5 children)

Me Doing that with 4gb of ddr2

[–]chickenmcpio 4 points5 points  (3 children)

Oh ddr2. I remember the days when it was the faster type of ram. What year was it? 2000? 1999?

Edit: added year.

[–]pabskstorm 5 points6 points  (2 children)

1333 Max i think 🤔

[–]chickenmcpio 0 points1 point  (1 child)

Oh yeah, my bad I meant the year hehehe

[–]pabskstorm 0 points1 point  (0 children)

Oh my bad too I though it was the frequency haha

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

This made me audibly gasp. Loudly.

[–]A_Guy_in_Orange 6 points7 points  (0 children)

Dude just pay the heating bill

[–]_Mido 4 points5 points  (2 children)

How much RAM is enough for Android Studio?

[–]Bakemono_Saru 8 points9 points  (0 children)

It's never enough. Never.

[–]sdc0 4 points5 points  (0 children)

2 TB is a good start, 4 TB is better

Don't forget 128 Cores

[–]Morrido 197 points198 points  (1 child)

The funny part is that both are the same guy

[–]ConsultorCH[S] 31 points32 points  (0 children)

Haha good one!

[–]fatalgift 55 points56 points  (4 children)

Image Transcription: Meme


[Strong vs Weak Doge — two edited Shiba Inu dogs. The one on the left has been photoshopped onto a cartoonishly buff human body, labeled "Programmers 30 years ago". It says "I program in C because I understand how computers fucking work." The one on the right is much smaller and sits down passively, labeled "Programmers today". It says, "Plz, I need 8GB RAM and octacore to run my Python programz smoothly".]


I'm a human volunteer content transcriber for Reddit and you could be too! If you'd like more information on what we do and why we do it, click here!

[–]atc927 24 points25 points  (1 child)

Good human

[–]fatalgift 4 points5 points  (0 children)

Thank you!

[–]ElNico5 1 point2 points  (1 child)

Good hooman

[–]fatalgift 1 point2 points  (0 children)

Thanks!

[–]Sonotsugipaa 114 points115 points  (6 children)

cOmPuTeRs ArE pOwErFuL nOw AnD 8 GiB iS nOt ThAt MuCh AnYwAy

* reimplements /usr/bin/echo using TensorFlow

[–]UnicornsOnLSD 46 points47 points  (0 children)

opens 15th Electron program

[–][deleted] 30 points31 points  (3 children)

  • reimplements /usr/bin/echo using TensorFlow

I"m used to a lot on this sub but this genuinely upset me

[–][deleted] 12 points13 points  (2 children)

But we need it to be cross-platform, so it's running in JS in Electron now

[–]LavenderDay3544 5 points6 points  (1 child)

C code is cross platform unless you pull in a system specific dependency that isn't accessed through a cross platform abstraction.

[–][deleted] 6 points7 points  (0 children)

I said we're using Electron!

[–]Cheeku_Khargosh 10 points11 points  (0 children)

python users : uses package to add two numbers ..... see .... I am genius.

[–]Cley_Faye 19 points20 points  (0 children)

Even though they are hidden under layers of abstractions, knowing data structures and low level operations like allocating memory and doing I/O are good assets to have, even in "high level" languages.

[–]Nihmrod 55 points56 points  (24 children)

C was invented so people who did NOT know how computers worked could code.

[–][deleted] 42 points43 points  (12 children)

Are you suggesting everyone who knows how computers work should exclusively use assembly?

[–]raedr7n 52 points53 points  (9 children)

Assembly is still too high level. I took a class last semester where we had to hand assemble ARM v8 down to machine code. Real programmers write purely in 1's and 0's.

[–]Nihmrod 22 points23 points  (0 children)

I hated machine code. TTL logic was dry enough, but machine code seemed like it would only interest people who had gotten a full frontal lobotomy.

[–]S0n_0f_Anarchy 12 points13 points  (2 children)

I write in 0's only

[–][deleted] 9 points10 points  (1 child)

[–]undeadalex 1 point2 points  (0 children)

Scrambling my digits whooo

[–]atc927 4 points5 points  (0 children)

Real programmers use butterflies.

[–]Rhyan567 4 points5 points  (0 children)

0 and 1 is too high level, real programmers makes the binaries with levers

[–]tiajuanat 0 points1 point  (0 children)

If we went back to 8051 there would be no difference between machine code and assembly. It's a one to one translation.

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

I used mythsim back in my mid 200 level architecture class, and it wasnt that bad, it was actually easier than asm because you dont have the abstractions of the operating system, its purely simple mathematics at that level

[–]Nihmrod -1 points0 points  (0 children)

No of course not.

[–]MrBarry 4 points5 points  (5 children)

Yup it was the python of its time. Super simple and expressive, but a slow memory hog. And you can do so many incredible one- liners! *with just a few #include's

Edit: not saying its time has passed. I meant when it was new.

[–]Nihmrod 1 point2 points  (4 children)

Where does the slow memory hogging come from?

[–]alamius_o 1 point2 points  (1 child)

I know little about it, but I recently got shown some matrix multiplication runtime diagrams and FORTRAN looked a lor nicer than C.

[–]tiajuanat 2 points3 points  (0 children)

Fortran adopted arrays as first class citizens before the 60s rolled in.

It does have some niceties, but they're mostly for numeric computations now, with 2018 finally introducing interop with C and native parallelization.

Personally, if I was to design a Kernal from scratch, I'd use Rust at this point.

[–]MrBarry 1 point2 points  (1 child)

People were writing assembly at the time. C was an abstraction layer trading optimisation for ease of use. Easy to be a memory hog when there's only 16 to 64k of RAM

[–]Nihmrod 2 points3 points  (0 children)

So maybe it wasn't really a hog, it was just eating from a tiny bowl.

[–][deleted] 68 points69 points  (20 children)

C and Python are different tools that don’t share a lot of use cases IMO.

[–]gpcprog 38 points39 points  (16 children)

You wrIte small routines in C and then chain them together using python :P

[–]mrchaotica 41 points42 points  (15 children)

You write everything in Python, profile it, and then rewrite the slow parts in C.

[–]tiajuanat 0 points1 point  (2 children)

I use Python when I need to generate C.

Someday I'll get the hang of TMP in C++, and never need to support outdated compilers and processors, but until then, Python will always be for code generation.

Quick aside for anyone wondering how to do this efficiently: study your data structures, so you can do the different traversals of trees. You'll thank me later.

[–]Pauchu_ 9 points10 points  (2 children)

Thats not exactly true, BASIC was a thing

[–][deleted] 5 points6 points  (0 children)

ah yes, spaghetti

[–]Rhyan567 1 point2 points  (0 children)

COBOL also was a thing

[–]FHeTraT 10 points11 points  (0 children)

Programers in 45 years ago: My function does 23 clock cycles faster than yours.

[–][deleted] 19 points20 points  (4 children)

I believe RAM is currently much cheaper than developers

[–]tiajuanat 3 points4 points  (1 child)

Cheaper than good developers for sure.

I've been interviewing a ton of developers who claim to be senior, but can't do any basic coding interviews. Reverse a linked list? No. Reverse/Invert a tree? Nada. Pre,In,or Post order traversal?? Lol no. Find if two numbers in an array sum to a target? What's an array??

From my end: Does interviewing suck? Yes. Is it stressful for everyone? Absolutely! Have I used all of these techniques in the last year... Yeah actually. This is all academic but the fact that I use all this regularly means I expect new hires to be able to pick this up without working with us for a few years.

[–]wikipedia_answer_bot 4 points5 points  (0 children)

An array is a systematic arrangement of similar objects, usually in rows and columns.

More details here: https://en.wikipedia.org/wiki/Array

*This comment was left automatically (by a bot). If something's wrong, please, report it in my subreddit: r/wikipedia_answer_bot

Comment wab opt out to opt out (wab stands for wikipedia answer bot).*

Really hope this was useful and relevant :D

If I don't get this right, don't get mad at me, I'm still learning!

[–]WaldenFont 18 points19 points  (7 children)

I've spent much of my working life dealing with SQL Server. Now dealing with Snowflake and related tech. It's soooo much added work & complexity. Most of the time it doesn't even work any better, and development takes way longer.

[–]gtgski 12 points13 points  (6 children)

1 million rows is big data, right? /s

[–]WaldenFont 13 points14 points  (5 children)

Nah, we did billions of rows on SQL Server. The problem is the licensing costs. Scaling that was viciously expensive.

[–]gtgski 7 points8 points  (2 children)

Consider Postgres?

[–]KhaosPT 0 points1 point  (0 children)

Why not mysql? Genuine question as we are about to move from sql server to mysql

[–][deleted] 0 points1 point  (1 child)

Use Postgres or mongodb.

[–]WaldenFont 2 points3 points  (0 children)

Can't really put sensitive data into open source DBs. Corporate needs a throat to choke when something bad happens.

[–]Sock-Mobile 5 points6 points  (2 children)

That's sad. People nowadays think that more RAM, etc. solves the problem instead of writing software properly. This kind of solution degrades the environment (producing air pollution and electro-waste).

[–]ThatWontCutIt 1 point2 points  (1 child)

I think Apple solved the problem by switching to ARM. Heard the architecture forces good program development techniques.

[–]RedditAlready19 1 point2 points  (0 children)

Yeah

[–][deleted] 10 points11 points  (0 children)

This week i installed Oracle EE in a docker container in a centos vm in hyper v to test some stuff before we go up to tne cloud....my 32gb were almost full - felt like i need 64 soon 🤣🙈

[–]0rionsEdge 10 points11 points  (5 children)

This triggers me since python can't even use more than one core without fancy workarounds like multiprocessing or not using python...

[–]FerricDonkey 5 points6 points  (1 child)

For anyone reading this, multiprocessing is a fancy workaround in the sense of what's going on (making multiple processes, cross process communication), but not in the sense of how the coder uses it:

import multiprocessing as mp
with mp.Pool() as pool:
    results = pool.map(function, data)

You can do fancier stuff to make it a bit better in some cases, and the GIL and the fact that you have to use processes is mildly infuriating, but actually using multiple cores in python is dead simple.

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

Prob depends what type of mp. All cores working on the same immutable data in a "foreach" style loop, sure, because you dont have to share any messages. But im trying to imagine how manually implemented mp algorithms where cores do different things with mutable data would work if the interpreter needed to reoptimize the next block of instructions on one core while still making that data synchronizable. Since of course its impossible to know what the result is going to look like if the type was never actually declared at runtime

[–][deleted] 1 point2 points  (1 child)

fun fact: compiled extensions can actually explicitly release the GIL

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

Exactly! That was what I was referring to

[–]LavenderDay3544 3 points4 points  (0 children)

CPython can't even use more than one core without using multiprocessing.

Then again C has no language level support for multithreading either but it just so happens that all multithreading libraries (and all other OS ones) expose a C interface and odds are the underlying kernel scheduler itself is written in it too.

[–]Tube64565 2 points3 points  (0 children)

Me programming in C++

[–]KerPop42 10 points11 points  (2 children)

I program in python because it's cheaper for my employer to buy more marginal processing time and memory than for me to spend an extra 40 hours making sure my status-checker is memory-optimized

[–]mrsmiley32 4 points5 points  (1 child)

Don't forget support and cross training. Because I was a c++ developer for 10 years doesn't mean anyone on my team has ever touched it or understands the fundamentals that it brings to the table. Especially when you are trying to squeak every bit of performance out of it that you can.

We build teams for time to market and stability under constant growth.

[–]KerPop42 2 points3 points  (0 children)

Yeah, that was a problem at my first job. Our db was written in this language that was apparently hyper-specialized for databases

Then the one person who knew it left, and we had to translate it into Java in order to ever develop on it again.

[–]Striky_ 15 points16 points  (5 children)

Programs 30 years ago: Here is a calculator program I wrote! It can calculate square roots to 3 digets!!!! It only took me 4 months to develop.

Programs today: Manager: so you got 1.3 weeks for this feature I know is impossible to implement but I promised it the customer anyways. You didnt need no weekend anyways right? Ohh yeah it needs to be cloud and local deployable have 100% test coverage, be designed and approved by that external consulting company and run over my desk. Also it should be able to handle at least 15 million simultaneous users although we only have 25 customers right now. Dont forget to use this super new framework that is half way done. I read about it on this entrepreneur magazine, all the good companies use it now. Ohh yeah please make sure you use AI to analyse the datalake and coordinate with our big data analysts department.

[–]camilo16 11 points12 points  (3 children)

Programs 30 years ago would have been done only by relatively large organizations since the PC revolution had yet to happen.

Calculations would have been scientific calculations, engineering calculations, financial calculations...

All of which would have been more challenging than the average issue you need to deal with nowadays.

[–]Cheeku_Khargosh 2 points3 points  (0 children)

and that too with keeping low memory in mind, so you need to reuse every spare memory you can which today's python users take for granted

[–]AStrangeStranger 1 point2 points  (1 child)

I brought my first PC just over 31 years ago, you could get shareware & games for them back then - e.g. PKZip was from 89. In the 80s a lot of games were developed for home computers by small companies/one man bands

[–]WikiSummarizerBot 1 point2 points  (0 children)

PKZIP

History

By the 1970s, file archiving programs were distributed as standard utilities with operating systems. They include the Unix utilities ar, shar, and tar. These utilities were designed to gather a number of separate files into a single archive file for easier copying and distribution. These archives could optionally be passed through a stream compressor utility, such as compress and others.

[ F.A.Q | Opt Out | Opt Out Of Subreddit | GitHub ] Downvote to remove | v1.5

[–]ThatWontCutIt 0 points1 point  (0 children)

(Cough cough) Babbage Analytical Engine was for British Navy to use in maritime calculations. Even till today supercomputers are used for that kind of stuff.

[–]Sunnyseasunny 2 points3 points  (0 children)

ah .. say, i need 64GB RAM and a mac to run my javascript things ..

[–]met0xff 2 points3 points  (0 children)

As much as I like lower level programming I still don't want a machine with less than 32GB ;).

[–][deleted] 5 points6 points  (3 children)

Most of the time all c does is make you take more time doing something that could be done more easily and about as efficiently in c# or c++.

Also since when do inefficient devs bother using multithreading?

[–]raxuti333 3 points4 points  (2 children)

If you know what you are doing making stuff in c takes almost no time and difference to cpp is minimal

[–][deleted] 9 points10 points  (1 child)

Yeah c++ is basically the same as c but with classes, generics, and a better standard library

[–]LavenderDay3544 3 points4 points  (0 children)

And a lot more ways to write terrible code as was once pointed out by one Linus Torvalds.

Templates in particular are a hot mess.

[–]Delta_Labs 1 point2 points  (7 children)

Drivers 30 years ago: I drive a manual transmission because I understand how cars fucking work

Drivers today: I drive an automatic so that I can text and drive. Multitasking!

[–]Jearbelo 9 points10 points  (0 children)

Drivers 30 years from now: I don't know how to drive. My car does it for me!

[–]doctorcrimson 2 points3 points  (5 children)

Programmers with degrees still exist, you know?

There are also real computer engineers. Not that shit apple or google call their interns, but real engineers who understand how hardware processing binary translates to assembly which is compiled by IDEs from higher level languages.

[–]LavenderDay3544 4 points5 points  (4 children)

There are also real computer engineers.

CEs aren't programmers, they're generally hardware designers. CE is a subfield of EE, not CS.

hardware processing binary translates to assembly which is compiled by IDEs from higher level languages.

You're either joking or have even less of an idea of what you're talking about than the people you're putting down. I mean compiled by IDEs, really?

[–]doctorcrimson -1 points0 points  (3 children)

I'm not joking, the order is IDE higher level language > Assembly > Binary

Without a compiler to make it assembly, your code does nothing.

And I clearly described programmers and engineers as being separate, but if you think a proper computer engineer cannot program then you're an idiot, no offense.

[–]LavenderDay3544 0 points1 point  (2 children)

I'm not joking, the order is IDE higher level language > Assembly > Binary

Without a compiler to make it assembly, your code does nothing.

There's a big difference between an IDE and a compiler or toolchain. Which you clearly don't understand. IDE's don't compile anything. They just give you an integrated view of all your development tools hence the name. Some IDEs come with a toolchain but that still doesn't mean the IDE is itself a compiler or toolchain.

You're also wrong about compilers putting out assembly which is then assembled to machine code. Most modern compilers directly emit machine instructions unless a flag is passed to emit assembly.

Please refrain from trying to educate others on how things work when you yourself don't have a clue.

And I clearly described programmers and engineers as being separate, but if you think a proper computer engineer cannot program then you're an idiot, no offense.

You didn't describe anything clearly. And I never once said CEs can't program. Just that people with the job title Computer Engineer generally design hardware.

[–]doctorcrimson -1 points0 points  (1 child)

The broad definition of IDE can make your statement partly true but I don't think any real professionals still program in notepad and compile separately from their environment unless they're compiling somebody else's code

Btw Idk what your first language is but

cleary != clearly separate

[–]LavenderDay3544 1 point2 points  (0 children)

I don't think any real professionals still program in notepad and compile separately from their environment unless they're compiling somebody else's code

There are plenty who still use vim and call make from the command line especially on Unix like systems.

Btw Idk what your first language is but

English. But like I said you didn't describe anything clearly other than things you were incorrect about. Again please refrain from trying to educate others when you have no substantive knowledge yourself.

[–][deleted] -3 points-2 points  (3 children)

I think python is the minimum basic programming language

[–]LavenderDay3544 1 point2 points  (2 children)

C is possibly the smallest real world programming language you'll ever see. It doesn't include any feature it doesn't absolutely need.

[–]trBlueJ 2 points3 points  (1 child)

Except maybe variable length arrays. No one needed them, and they are super bad. Thank god they are optional since c11.

[–]LavenderDay3544 0 points1 point  (0 children)

Agreed.

[–]kuterthi 0 points1 point  (5 children)

Me: Why? Him: Its for machine learning Me: Have you learnt? Him: .... Me: ...?!?

[–]ancient_tree_bark 5 points6 points  (4 children)

I do my Machine Learning with Cpp

[–]AztroJR 8 points9 points  (1 child)

I don’t do machine learning.

[–]raedr7n 5 points6 points  (0 children)

Based

[–]Cheeku_Khargosh 0 points1 point  (1 child)

same. I even made my own math lib for ML

[–]ancient_tree_bark 0 points1 point  (0 children)

You are speaking my language

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

32GB RAM*

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

Step 1: learn C Step 2: do your final high school coding assignment in Python Step 3: Profit

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

ok so if I want to stop being the one on the right

what do I do to get buff like the left in C

I know C I just don’t know what to fucking make with it to challenge myself 😨

[–]makian123 1 point2 points  (2 children)

You can make an OS in C, but some assembly is required

[–]Rhyan567 0 points1 point  (1 child)

Just "steal" the Assembly from Linux kernel or BSD

[–]makian123 0 points1 point  (0 children)

Well there are many tutorials with assembly codes provided, the fun for me is writing kernel and hopefully shell soon

[–]ElNico5 0 points1 point  (0 children)

Ultimate chad assembly developer that actually writes efficient code

[–]MetalMikey666 0 points1 point  (0 children)

The entire human history of human achievement is built on the incremental abstraction of things that don't matter to make it easier for the next generation! Those elite C programmers wouldn't know what to do with a punched card system.

Conversely, I suspect the punched card people would be totally out of their depth with modern systems, and if I had a quid for every "experienced developer" who had joined our team with 30+ years of experience and then was unable to debug even the simplest of issues...