Skip to content
DevMeme
2707 of 7435
The Bloat of a 'Blank Project': 1991 vs. 2021
TechHistory Post #2991, on Apr 19, 2021 in TG

The Bloat of a 'Blank Project': 1991 vs. 2021

Why is this TechHistory meme funny?

Level 1: When Blank Isn’t Blank

Imagine you have a blank sheet of paper in front of you to draw a picture. In the old days (like the top picture from 1991), a blank project was just like that blank paper – nothing on it except maybe a title at the top. You could start drawing (coding) right away with your single pencil and eraser. Now imagine today’s scenario (the bottom picture, 2021): you ask for a blank sheet, and instead you get a big art kit dropped on your desk. The paper comes with pre-drawn boxes on it, and around it are dozens of crayons, markers, rulers, and stencils, plus a little instruction booklet that says “Here’s how to find your colors (press this, click that).” It’s as if someone assumed you were eventually going to draw a full detailed comic book and gave you all the tools upfront. It’s helpful if you really do need all that – you can make something very fancy – but it can also feel overwhelming for a simple doodle. This meme is funny because it’s pointing out that something called “blank” today isn’t truly empty at all. The old blank was just you and the basics; the new “blank” comes with a whole workshop of stuff. It’s like wanting to play with one toy and having an entire toy store dumped in your room! The feeling is a mix of wow, cool and uhh, that’s a bit much, which is exactly why developers find this contrast amusing.

Level 2: From QuickBASIC to JetBrains

Let’s break down what’s happening in each panel, and why it looks so different. In 1991, the “Blank Project” screenshot is from an old-school IDE (Integrated Development Environment) that resembles Microsoft QuickBASIC. QuickBASIC was a simple editor and compiler for the BASIC programming language. The interface is text-based (that bright blue background with menus at the top) because early PCs often ran in DOS or very simple graphical modes. IDE_Minimalism was not a trend back then – it was a necessity! Computers had very limited power. A typical PC in 1991 might have had a 16 MHz CPU and 2-4 MB of RAM. An environment like QuickBASIC had to be extremely lightweight. So what do we see?

  • Minimal UI: Just a menu bar with items like File, Edit, Run, Debug. There’s a status bar at the bottom showing handy function keys (e.g., F5=Run, F8=Step). This hints that even though it was simple, you could still run your code and step through it to debug – core features of an IDE, just without fancy graphics.
  • Blank editing area: The big empty blue rectangle is literally where you’d type your code. At this point, it’s completely empty – a true blank project. No code has been written, and importantly, the IDE hasn’t created any extra files or folders on disk. If you hit “New Project” (or equivalent) in 1991, you’d likely just get an Untitled file ready for you to start typing BASIC code.
  • No external dependencies: In that era, most programs were either self-contained or used a few standard libraries that came with the language. When you started a blank project, you didn’t have an Internet full of packages to download. In fact, there was probably no network connection at all. So a blank project didn’t need any build scripts or dependency declarations. You might just write something as straightforward as PRINT "Hello, World!" and hit F5 to run it. The compiled program (if you chose to make an EXE) would include whatever it needed from the BASIC runtime, but the developer didn’t have to manage that explicitly for a simple program.

Now fast-forward to 2021. The bottom panel is a modern JetBrains IDE (most likely IntelliJ IDEA or its cousin Android Studio). The text “Blank Project in 2021” and the visible UI elements give us clues: there’s mention of Gradle (that’s a build automation system), and a bunch of folders like manifests, java, res, plus hints like “Search Everywhere: Double Shift”. This is characteristic of starting a new Android app project in Android Studio (which is based on JetBrains IntelliJ). Let’s unpack the elements:

  • Project structure out-of-the-box: On the left, the IDE is showing the Project Explorer with a hierarchy of folders. Even though we (the developer) haven’t written anything yet, the IDE has already created a whole directory structure. For an Android app, this typically includes a manifest file (which describes app metadata), a java or kotlin folder for source code, a res folder for resources (like images and layout XMLs), and Gradle build scripts. The meme specifically shows a section named “Gradle Scripts” – these are configuration files (build.gradle files) that define how to build the project and what dependencies to pull in. So, unlike 1991 where “new project” meant one blank file, in 2021 “new project” means the IDE has generated perhaps dozens of files and lines of code for you.
  • Dependencies and build tools: Gradle is prominently mentioned because modern projects manage libraries through such tools. For example, a blank Android project will include Gradle instructions to include the Android SDK libraries, support libraries, testing frameworks, etc. This means from the very start, your project is “dependent” on external modules that Gradle will fetch (often from the internet) for you. In 1991, there was no equivalent concept – you either had the library on your machine or you didn’t, and there wasn’t an automated way to include code from elsewhere on a blank project.
  • Feature-rich IDE interface: Notice all the panels, icons, and text in the 2021 IDE screenshot. There’s a lot going on: top toolbars with run configurations, a navigation bar, and the center showing tips (“Go to File: Ctrl+Shift+N”, etc.) because the environment is so powerful and complex that it provides keyboard shortcuts for navigation and encourages you to use search to find files or actions. Modern IDEs come with integrated code search, refactoring tools, intelligent code completion, debuggers, UI designers, version control integration (Git), and more. All these features make the interface more crowded compared to the spartan QuickBASIC window. The “Search Everywhere” hint implies you can press double Shift to search for any file or command in the project, which is super useful when projects have many files – something unimaginable in the QuickBASIC days for a small program.
  • Performance and overhead: Starting a blank project in 2021 might trigger a lot of background activity. For instance, Android Studio will run a “Gradle sync” to set up the project, which can take a while as it possibly downloads dependencies and sets up the build. The IDE might also begin “indexing” all the files (even the ones it just created) to provide fast search and code intelligence. This can use significant CPU and memory. In contrast, starting QuickBASIC was almost instant and the memory footprint was tiny by today’s standards (the whole program and any code you wrote had to fit in maybe a few megabytes). Modern IDEs can easily consume hundreds of megabytes or even a few gigabytes of RAM, just sitting idle with a blank project open.

So, what’s the big difference? A lot of it comes down to how much automation and support the environment provides. The 1991 approach is manual but straightforward – you get a blank canvas and you, the programmer, will write every piece of the program yourself, including deciding on any structure or extra files. The 2021 approach is automatic and structured – the IDE assumes the type of project (say, a Java app or Android app) and creates a standardized scaffold. That scaffold is there to help you follow best practices (e.g., separation of code and resources, ready-made configuration for builds and tests) from the very beginning. It’s extremely helpful for large or complex applications because it sets you up with the correct architecture. But for someone expecting “blank means blank,” it feels like overkill. There’s even a bit of cultural adjustment: a newcomer in 2021 might actually find comfort in the IDE providing so much guidance (“Look at all these hints and files, I know where to put my code and resources”), whereas an old-timer might feel a bit constrained or bewildered (“Why do I need five folders and two build scripts just to print Hello World?”).

To put it plainly, the meme contrasts legacy vs modern developer experiences. It’s illustrating how an empty starting point in programming has transformed from something very simple to something very elaborate. This isn’t to say one is strictly better than the other – they reflect the eras they come from. In 1991, you might spend a lot of time setting up things by hand (because the tools couldn’t do it for you), but you also had total control and a clear view of what’s there (since nothing extra was hidden behind the scenes). In 2021, a lot is done for you (which saves time in big projects and enforces consistency), but it means even the simplest project comes with a lot of baggage from the start. The humor and frustration captured here is something like, “for all the advancements in tooling, sometimes we yearn for the simplicity of the past.”

Let’s compare the two scenarios side by side for clarity:

Blank Project 1991 (QuickBASIC) Blank Project 2021 (Modern IDE)
Environment Setup: Runs on MS-DOS, entire IDE fits on a floppy disk or two. Opens instantly. Environment Setup: Runs on Windows/Mac/Linux, IDE installer is hundreds of MB (or more). May take a while to launch and initialize.
Starting Point: One empty file in an editor. No files on disk until you decide to save/write code. Starting Point: Multiple files and folders auto-generated (e.g., src directories, config files, build scripts, resource folders) the moment the project is created.
Dependencies: None by default except the language’s runtime (which is built-in). You might add code by literally typing or copying it in. Dependencies: Several are included or referenced right away. Build tools like Gradle will pull in standard libraries (internet connectivity assumed). The project template might include links to external frameworks (for example, a blank Android app includes the Android SDK libraries).
Features of the IDE: Basic text editing, syntax highlighting (maybe minimal), run and debug via function keys. All actions are visible in simple menus. Features of the IDE: Advanced editing with IntelliSense (code autocomplete), on-the-fly error checking, graphical designers, integrated debugger, Git integration, etc. So many features that the IDE provides search shortcuts to navigate them (like “Search Everywhere”).
Memory/CPU usage: Tiny footprint. The whole program and your code run in a few MB of RAM. Even a large BASIC program is limited by the system constraints (which were low). Memory/CPU usage: Heavy. The IDE might use a few hundred MB of RAM just idling. Background tasks (indexing, syncing) can spike CPU. Essentially, the tool uses resources equivalent to an entire OS from the ’90s just to get started.
Developer Experience: You focus on writing code immediately. You manually manage structure and any additional files. Simpler, but you have to do more by yourself. Developer Experience: You often spend time understanding or configuring the generated setup first. You can start coding, but the environment encourages a particular structure. There’s guidance and automation, which helps in the long run, but introduces complexity upfront.

This table highlights the Modern vs Legacy gap in tooling. A junior developer who started coding in recent years might be used to the 2021 style – it’s normal that creating a new app means some waiting and lots of files appearing. Concepts like “project scaffolding” and “dependency management” are taught as part of starting with frameworks (e.g., you learn that to start a web app you run a generator that produces a bunch of boilerplate). On the other hand, someone who learned with older systems (or low-level languages in a simple editor) often emphasizes understanding every part of the codebase, and might be shocked at how much is pre-made in a template. Tooling frustration can occur for both: new folks might be overwhelmed by the complexity, and old folks might be frustrated by the lack of simplicity.

In conclusion for this level: the meme isn’t just about aesthetics (blue screen vs dark theme), it’s about how a “blank project” in name can be such a different reality across generations of tech. By explaining the elements (QuickBASIC’s barebones setup vs JetBrains’ feature-rich setup), we see clearly what changed and why developers find it funny. It’s essentially a nod to TechHistory: if you know how things were, you can’t help but chuckle at how they are now. And if you didn’t know the past, well, now you can appreciate why some colleagues joke about “back in my day, we started from scratch with just an editor and our wits”. The meme exaggerates to make a point, but it’s grounded in truth about the evolution of IDEs and text editors over time.

Level 3: The Bloat of Progress

In the early ’90s, a blank project truly meant an almost zero-overhead start. The meme’s top panel (QuickBASIC circa 1991) shows a cobalt-blue text-mode IDE with nothing but a blinking cursor – a stark contrast to the bottom panel’s JetBrains IDE (2021) awash with sidebars, auto-generated files, and dependency managers. This humorously highlights software bloat and over-engineering in modern tooling. Tech nostalgia hits hard here: back then you could fit your entire development environment on a couple of floppy disks, whereas today a “minimal” project can pull in hundreds of megabytes of frameworks and libraries before you’ve even written a line of code. It’s a classic case of “Hello World” inflation: what was once a single-file exercise in BASIC has become a multi-folder scaffold with build scripts (build.gradle), configuration files, and boilerplate code.

Why does this happen? Over 30 years, our industry’s idea of a blank project evolved. In 1991, hardware limitations enforced simplicity – you had 640 KB of memory (if you were lucky) and no space for fluff. An IDE like QuickBASIC (the blue-screen editor in the meme) had to be lean and efficient. It provided just enough to write and run code, reflecting a time when integrated development environments were minimalistic by necessity. Jump to 2021, and hardware (per Moore’s Law) is thousands of times more powerful. Paradoxically, as machines grew stronger, software grew even more complex (cue Wirth’s law: software bloat is a constant that outpaces hardware gains). Modern IDEs like IntelliJ IDEA or Android Studio (shown in the bottom panel) take advantage of abundant resources to include every conceivable feature: code completion, real-time error checking, GUI designers, version control integration, test runners, you name it. The result? A “blank” project template that’s anything but blank. It’s pre-loaded with structure and tools to handle eventual complexity – whether you need them or not at the start. This is a form of over-engineering baked right into our tools. The meme exaggerates this contrast for comedic effect, but any senior developer will recall a simpler past and chuckle (or groan) at how a modern “hello world” feels like using a sledgehammer to crack a nut.

There’s shared pain and laughter in this for experienced devs. We’ve collectively seen “tooling frustration” grow over the years: remember when an IDE booted instantly? Now a blank project might trigger a Gradle synchronization or index thousands of files. The bottom image explicitly shows hints like “Search Everywhere: Double Shift” – a tongue-in-cheek indicator that modern IDEs are so feature-rich and packed with panels that you literally need a search function to navigate them. (In the top image’s world, you didn’t need a global search for IDE features – there were only a handful of menus and you pretty much knew what everything did.) The left sidebar in 2021’s IDE lists things like Gradle Scripts, External Libraries, and multiple nested folders for an app, even though no real code has been written yet. Seasoned developers recognize this scenario: you create a new project and are immediately staring at a scaffolding overkill – dozens of files and directories (manifest, MainActivity.java or .kt, resources, test stubs, build files) all auto-generated. It’s simultaneously impressive and absurd. The humor comes from that modern vs legacy dissonance: the 1991 setup looks primitive but focused, while the 2021 setup looks powerful but overwhelming.

Ironically, this complexity arose from good intentions. We introduced robust frameworks and dependency management to solve real problems (like modularity, reuse, scale). Over time, however, the default “starter kit” grew bulky. A blank project in 2021 tries to anticipate everything a developer might eventually need – unit tests, UI resources, configuration management – front-loading the project with structure. It’s convenient in a large enterprise setting or when building a serious app, but it can feel ridiculously heavy for a toy example. This industry pattern – tools accumulating features upon features – is often satirized as the “rocket ship for a bicycle ride” problem. Everyone knows a simple text editor or a lightweight scripting language could achieve a small task with less fuss, yet here we are, opening a full-featured IDE that spends minutes indexing just so we can maybe print “Hello, World.” The meme resonates because it’s too real: Modern tooling can feel like having to drive a bulldozer to plant a flower. Developers share these stories of “blank” projects taking ages to load or requiring a cascade of updates and package downloads at creation. It’s a tongue-in-cheek critique of our own practices: as an engineer, you appreciate the power and convenience of these new tools, but you also sometimes miss the days when starting a project meant… just starting to code immediately.

On a deeper level, this comparison hints at how developer experience has changed. In 1991, programming often meant being close to the machine and its limits – you managed memory, you manually included any library code (if at all), and the environment offered very little hand-holding beyond basic editing and a run button. Today, programming means standing on the shoulders of giant frameworks: the environment holds your hand by default, setting up a lot of ceremony from the get-go. It’s a shift from a minimalist philosophy to one of batteries-included. The meme’s humor taps into the collective astonishment and slight exasperation at how something as conceptually simple as an empty program has become ceremonious. Seasoned devs might joke that we’ve traded the immediacy of coding for high initial overhead – a sly reference to how big companies and modern practices sometimes complicate even trivial tasks ("Why do I need a containerized microservice just to say hello?!").

In summary, the top image (1991) represents spartan simplicity and directness – a nostalgia trigger for many in the TechHistory crowd – while the bottom image (2021) represents sophisticated complexity and the reality of SoftwareBloat. The meme is funny because it’s true: progress has given us amazing tools and IDEs that can do so much automatically, yet it’s hard not to reminisce about the era when blank meant blank. As the saying goes in developer humor circles, “Modern problems require modern solutions,” but sometimes those solutions come with an entire truckload of extras from day one. The over-engineering of a “blank” project is a perfect comedic example of how far we’ve come – for better or worse – in the evolution of programming tools.

Description

A two-panel comparison meme that highlights the increasing complexity of software development. The top panel, labeled 'Blank Project In 1991', shows a screenshot of a classic blue-screen, text-based IDE, likely Borland's Turbo C++ or Pascal. The main editing window is completely empty, representing a truly blank start. The interface is minimalist, with simple menu options like 'File', 'Edit', 'Run'. The bottom panel, labeled 'Blank Project in 2021', shows a modern, dark-themed IDE, resembling Android Studio or IntelliJ IDEA. In stark contrast, the 'blank' project is anything but empty; the file explorer on the left is populated with a deep hierarchy of dozens of auto-generated files and folders. This includes build scripts (Gradle), configuration files (.gitignore, proguard-rules.pro), and extensive directory structures for source code, resources, and multiple types of tests. The meme humorously critiques the massive amount of boilerplate, configuration, and dependency management overhead that is now standard before a developer writes a single line of application code

Comments

155
Anonymous ★ Top Pick In 1991, your first compile error was your own typo. In 2021, your first compile error is a transitive dependency conflict from the boilerplate
  1. Anonymous ★ Top Pick

    In 1991, your first compile error was your own typo. In 2021, your first compile error is a transitive dependency conflict from the boilerplate

  2. Anonymous

    1991: New project hands you an empty .bas file; 2021: New project fires up Gradle, indexes 700 transitive deps, and quietly warns there’s already a log4j CVE in your HelloWorld

  3. Anonymous

    Back in '91, we complained about having to write our own linked lists. Now we spend three days configuring the toolchain before we can write 'Hello World' - and somehow we've convinced ourselves this is progress because at least the semicolons are automatically inserted

  4. Anonymous

    In 1991, 'blank project' meant you could start coding immediately. In 2021, 'blank project' means you've only run the scaffolding tool and now have 47 configuration files, 300MB of node_modules, and still haven't written a single line of business logic. Progress is when your 'Hello World' requires a CI/CD pipeline, three linters, a bundler, a transpiler, and a 12-step build process - but hey, at least it's type-safe and tree-shakeable

  5. Anonymous

    1991 blank project: one cursor, zero regrets. 2021: npm init spawns a dependency graph deeper than your call stack on prod OOM

  6. Anonymous

    In 1991 you pressed Run; in 2021 Run first builds the build system, resolves 1,200 transitive deps, and then reminds you there’s no main() yet

  7. Anonymous

    Blank project in ’91: a cursor. Blank project in 2021: a monorepo, Dockerfile, k8s YAMLs, a Gradle wrapper, and your first CVE before Hello World

  8. @ANTICHRISTUS_REX 5y

    OMG, The Antediluvian Era ❤️!!

  9. @LastStranger 5y

    Android)

  10. @sashakity 5y

    i mean its still achievable, just use a text editor and a terminal. i honestly prefer that way

    1. Deleted Account 5y

      cabal new wil still generate a shitload of files

      1. @sashakity 5y

        what's cabal new?

        1. Deleted Account 5y

          a command to setup a haskell project

          1. @sashakity 5y

            that's not what i'm talking about though

  11. @sashakity 5y

    im talking about editing a file or two with a text editor, and compiling it with like make or something

    1. Deleted Account 5y

      yeah that's pretty much only possible in c/c++ nowadays

      1. @sashakity 5y

        are you sure about that? lol

        1. Deleted Account 5y

          i mean, you can compile rust projects with rustc and haskell onse with ghc, and java or whatever ones with javac, but name a person who actually does that

          1. @sashakity 5y

            i do, on the rare occasion i work with java

            1. Deleted Account 5y

              idk about java much, maybe it may make sense there

              1. @sashakity 5y

                i dont really see any reason to do anything else

                1. Deleted Account 5y

                  your build system may automatically find and install the deps you need, run test and benchmarks for you

                  1. @sashakity 5y

                    that just sounds like a bunch of stuff that i dont really have control over then

                    1. Deleted Account 5y

                      depends on the actual build system

                      1. Deleted Account 5y

                        for example: cmake sucks, it's unexpressive ugly blah blah blah, i use make for my c++

                        1. Deleted Account 5y

                          rusts cargo is good bc it lets me manage my deps mostly how i want, and you don't fight against it all the time, so i use it

                      2. @sashakity 5y

                        true but i prefer having a minimalist codebase

                        1. @sashakity 5y

                          and its a bit hard to achieve this when theres a bunch of automated stuff going on

                          1. Deleted Account 5y

                            yeah that's true, but you don't have to have a complete full hardcore setup most ow the time, just source tree and the build tree

                            1. @sashakity 5y

                              im not sure what you mean by full hardcore

                              1. Deleted Account 5y

                                writing every single test, every single benchmark, every single piece of doc, using all linters, sanitizers, all that

                                1. @sashakity 5y

                                  why not just write code

                                  1. Deleted Account 5y

                                    bc literally noone cares about your code without docs, bc tests give you validation that you've written actually good code, and brnchmarks will test the speed of your code (if that's important to you)

                                    1. @sashakity 5y

                                      so you're telling me that build systems can automatically figure out what your end goal is, and design bug tests, and performance tests?

                                      1. Deleted Account 5y

                                        no, they don't write tests, but they automate them

                                        1. @sashakity 5y

                                          so they automate automation? that sounds complicated

                                          1. Deleted Account 5y

                                            and how's are they automating automation?

                                            1. @sashakity 5y

                                              they detect where your tests are and run them? idk

                                              1. Deleted Account 5y

                                                but where's the "automating automation" part?

                                        2. Deleted Account 5y

                                          you still have to write tests, but you can expect them to execute them automatically

                  2. Deleted Account 5y

                    (that's why all the empty folders are there)

          2. Deleted Account 5y

            and it's much easier to just add the deps to your dep file and go :!cargo run or whatever than to install everything yourself

  12. @SuperiorProgramming 5y

    C/C++ vs Android(Java/Kotlin)

  13. @nuntikov 5y

    Mmmm maven)))

  14. @sashakity 5y

    also i don't think a build system can automatically write documentation

    1. Deleted Account 5y

      it can assrmble it from comments n code

      1. @sashakity 5y

        but you're still writing it

        1. Deleted Account 5y

          yes, but not in latex or markdown, but in comments to my code, and the doc program thing will automatically hook up the types involved and add links for easy navigation, assemble the whole thing into a nice conceivabe structure

          1. @sashakity 5y

            i see this as only being useful if your code is too big

            1. Deleted Account 5y

              what's "too big" anyway?

              1. @sashakity 5y

                when it's so big that you have trouble traversing the code by yourself

                1. Deleted Account 5y

                  well, you don't write the docs for yourself, but for the users of your lib

                  1. Deleted Account 5y

                    and docs are needed always

                  2. @sashakity 5y

                    it's not too hard to type out what your code does

                    1. Deleted Account 5y

                      mine for me? yes. Your for you? maybe yes, idk. Mine to you or your to me is a 100% no.

  15. @sashakity 5y

    im trying to figure out how it's different then just putting the name of a test script after make run or something

  16. @sashakity 5y

    you're making it sound like it's some insane effort

    1. Deleted Account 5y

      i mean, writing what each function dos is easy, but linking it all together is an O(n!) task

      1. @sashakity 5y

        do you mean linking it together as in typing it in the same document

        1. Deleted Account 5y

          as in you do json_type parse_file(path_type); and linking the json_type to the json_type struct documentation, and the same for path_type respectively

          1. Deleted Account 5y

            so you don't have to search for it for hours

          2. @sashakity 5y

            you write your docs in json??

  17. @sashakity 5y

    what??

    1. Deleted Account 5y

      oh nvm, misunderstood the wording

  18. @sashakity 5y

    then what are you on about lmao

  19. @sashakity 5y

    if it's some haskell stuff, i have no experience with that

    1. Deleted Account 5y

      this before is just the simplest c example

      1. @sashakity 5y

        ohhhhh i see

  20. @sashakity 5y

    why would you need to link to other parts of the document?

    1. Deleted Account 5y

      so you don't have to search for them?

      1. @sashakity 5y

        couldnt you just look at the document?

        1. Deleted Account 5y

          you can, but it gets hard when your doc is more than 10 functions

          1. Deleted Account 5y

            and like 3 structs

            1. Deleted Account 5y

              it gets messy fast

          2. @sashakity 5y

            that's just one page

            1. Deleted Account 5y

              if you write a decent doc that'll be 7 pages easily

              1. @sashakity 5y

                so decent = bloated?

                1. Deleted Account 5y

                  decent doc, not decent code

                  1. @sashakity 5y

                    i think there's an argument to be made that manually writing documentation encourages simpler code then

            2. Deleted Account 5y

              your numbers

              1. @sashakity 5y

                oh no no, yours. because i'm talking about how your numbers would look like as code comments

                1. Deleted Account 5y

                  i mean that you are the one who said that 10 funcs is 1 page

                  1. @sashakity 5y

                    and you're the one who thinks it's reasonable to make a 7 page long block comment

                2. Deleted Account 5y

                  yes, and they actually do look like that, pages long comments explaining the programmers intent for this function

                  1. @sashakity 5y

                    what having a build system does to a mf

                    1. Deleted Account 5y

                      i mean, again, i still do use make for my c++ projects

  21. @sashakity 5y

    like

  22. @sashakity 5y

    if i made a doc that took up 7 pages just for 10 functions i'd either be writing incredibly large and ridiculous functions, or trying to reach a word count

    1. Deleted Account 5y

      like you don't want a doc for mmap() being just this function will map a file into process's memory

      1. Deleted Account 5y

        that's an example of bad doc

        1. Deleted Account 5y

          now go look at the actual mmap() doc

          1. Deleted Account 5y

            it's big, bc it documents function's behaviour in detail

      2. @sashakity 5y

        so it should take a page?

        1. Deleted Account 5y

          well, in mmap's case it's more like 6-7 pages

          1. @sashakity 5y

            that's comical

            1. Deleted Account 5y

              https://www.man7.org/linux/man-pages/man2/mmap.2.html

  23. @sashakity 5y

    if it does that many different things why is it 1 function?

    1. Deleted Account 5y

      it does only one that thing, but you can't write anything using only that information

      1. @sashakity 5y

        also, by the way, we were originally talking about build systems writing these based on code comments, right?

        1. Deleted Account 5y

          yeah

          1. @sashakity 5y

            7 page long comments?

            1. Deleted Account 5y

              are split up into multiple blocks

              1. @sashakity 5y

                you're missing the point, wading through multiple blocks of comments totaling, even 1 page! just to get to some code is ridiculous

                1. Deleted Account 5y

                  it's a whole lot better than getting to the coe right away and guessing wtf that function actually does

                  1. Deleted Account 5y

                    bc the author didn't document the code properly

                    1. Deleted Account 5y

                      what it does on an invalid input? what errors an it emmit? what's the return type? what do i feed it to make it work?

                      1. Deleted Account 5y

                        you just can't fit all that in like a half page

                  2. @sashakity 5y

                    just look at the documentation while scrolling through it lol

                    1. Deleted Account 5y

                      if your doc style is 10 funcs per page the doc is pretty useless

                      1. @sashakity 5y

                        it doesn't have to be 10 functions per page

  24. @sashakity 5y

    i would rather avoid doing that

  25. @sashakity 5y

    what i'm saying is, it's better to write those looong comments in a separate document

  26. @sashakity 5y

    that's why they call it the documentation

    1. Deleted Account 5y

      do you do it like that? is it easy to maintain like that?

      1. @sashakity 5y

        yup!

  27. @sashakity 5y

    not the commentation

  28. @sashakity 5y

    when i even write documentation lol

    1. Deleted Account 5y

      that's the key phrase

      1. @sashakity 5y

        for what lock?

        1. Deleted Account 5y

          for the lock of your understanding of documentation

          1. @sashakity 5y

            at least my code isn't 90% block comments

            1. Deleted Account 5y

              i'm pretty sure it's 0% comments

              1. @sashakity 5y

                at the very least, i make one liners that say what's going on at that particular moment, when it's not abundantly clear

                1. Deleted Account 5y

                  that's not enough.

                  1. Deleted Account 5y

                    come back a year after, you will see

                    1. Deleted Account 5y

                      and regret

                  2. @sashakity 5y

                    that's why i said "at the very least" you bird brain

                    1. Deleted Account 5y

                      you put them at the wrong place then

                      1. @sashakity 5y

                        so why shouldn't i put them there?

                        1. Deleted Account 5y

                          ?????????????

        2. Deleted Account 5y

          also, do you use any linter?

          1. @sashakity 5y

            the compiler is enough.

            1. Deleted Account 5y

              it's not most of the time

  29. @sashakity 5y

    to keep the code maintainable

  30. @sashakity 5y

    lets say i'm writing something in php

    1. Deleted Account 5y

      let's rather not.

  31. @sashakity 5y

    why should i put 7 page block comments before functions?

  32. @sashakity 5y

    php is already confusing enough

  33. @sashakity 5y

    comments should deobfuscate the code

  34. @sashakity 5y

    not make it harder to navigate

    1. Deleted Account 5y

      MITIGATIONS INCOMING, THESE ARE LEGIT DISADVANTAGES OF THE COMMENT BLOCK METHOD, but 1) you can fold them away if you don't need them 2) you can use the gotodefinition features of your editor to navigate, conents won't help nor make it harder

      1. @sashakity 5y

        i prefer not to use an IDE

        1. Deleted Account 5y

          i don't use an ide, vim has 1 natively and 2 through a language plugin

  35. @sashakity 5y

    plus, i find it kind of ridiculous to fold away something you dont want to look at

    1. Deleted Account 5y

      well, if you actually don't want to look at that

      1. Deleted Account 5y

        again, you want to look at the useful doc

        1. @sashakity 5y

          yeah i could be a normal person and have the documentation open in another window, and look at code in the window i have code in

  36. @sashakity 5y

    its sweeping it under the rug, lol

  37. @sashakity 5y

    i do not understand how block comments have an advantage over this method

    1. Deleted Account 5y

      for me it's bc you look through your function doc every time when you edit it, and never forget to edit it when you edit the function, the doc generator can assemble it into a nice concievable structure, and that the doc generator will auto-generate half of the doc for me

      1. @sashakity 5y

        what kinds of things do you make anyway

        1. Deleted Account 5y

          i'm making a safe vulkan wrapper for rust rn

          1. @sashakity 5y

            nice

          2. Deleted Account 5y

            before that i did an opengl renderer in c++ and that's an example on how not to do things

  38. @sashakity 5y

    im interested

Use J and K for navigation