2021-10-20 (Wed) 04:37:17
Lain isn’t life, or, “The sad state of /g/’s”
This post is mostly about lainchan, but to a large extent is also applies to 4chan /g/ and various /tech/ or /lambda/ type boards all over the alt chan universe.
For those of you who aren’t familiar, lainchan ( https://lainchan.org ) is an imageboard which focuses on cyberpunk and computer-themed topics. Lainchan is ostensibly named after the 1990s surrealist-anime television series “Serial Experiments Lain”, in which Lain Iwakura, a teen girl in suburban Japan, spends her nights exploring ‘the Wired’, the show’s version of the internet. the whole series has a fever dream like aesthetic to it and is the source of many memes.
In my opinion, the politics of lainchan’s users are far better than their alt chan peers, however, one should really take their technical advice with a grain of salt. The preponderance of lainchan users seem to be 25-40 year old millennials who came of age during the 2000s “golden era” of 4chan. This can be seen by the fact that lainchan is rife with arcane references to Gibsonian cyberpunk novels, 1990s anime, ‘hackers’, and disgraced free software guru/activist Richard Stallman.
Many, if not most of the denizens of /g/, /λ/, /tech/ etc. boards on lainchan and across the chaniverse are clearly hobbyist programmers. This is not a slight, but just a note that it is apparent that the /g/ demographic clearly consists of hobbyist linux power users, and autodidacts who’s knowledge of programming clearly comes from self perpetuated /g/ memes and reading blogposts and essays by people like Richard Stallman and Paul Graham. Occasionally, you do get someone who does know what they are talking about, but the minute one person suggests that using a mainstream IDE might be a good idea, they get shouted down by a hundred people who are positively outraged that anyone might suggest that using something other than emacs/vim is ok.
Much of the technical advice is odd, incomplete, or (in some cases, very) dated in the sense that it is based on trends that were hot anywhere from 5 to 20 years ago. In the late 2000s and early 2010s, functional programming was extolled as a solution to the problems of concurrency and the breakdown of Moore’s law. Peak functional programming mania was probably reached in the mid 2010s with languages like Scala, Clojure, and others reaching their zenith in popularity. Functional programming languages (including more esoteric ones like Haskell, which never really achieved mainstream acceptance) are frequently memed on tech boards. In the years since, mainstream programming has moved on. Functional programming techniques have been incorporated into “mainstream” programming languages, and have been for a while now. Java has had lambda expressions since Java 8, released in 2014 (in addition to things like the streams api). C# has had LINQ, a construct similar to Haskell’s monads for a while now too. Meanwhile, the hip silicon valley crowd has moved away from functional programming languages in favor of nu-“low level” languages like Golang and Rust.
A lot of their takes are, to put it simply, ““Boomer”” or just plain meme advice. Many of these people are either chronically unemployed amateurs or stuck mentally in some year between 1995 and 2013.
While /g/ boards have a lot to say about learning to code by using 1980s computer science textbooks from MIT SICP meme, they have little to say about anything even remotely relevant to basic knowledge that any CS undergraduate degree worth its salt would cover, let alone anything advanced. Even something as basic as using a SQL or relational database is controversial, with many users weighing in to say that they either don’t know SQL, or that you should use a flat file, or use a graph database.
Let’s consider a “basic” undergraduate CS degree. Any undergraduate degree in CS would probably cover:
<CS Discrete Math/Structures
<Basic Math (calculus, linear algebra, probability/statistics, etc.)
<Basic Physics (mechanics, electricity and magnetism at a first or second year level)
<Hardward Architecture/Computer Organization
<Database Systems Design
<Programming Language Theory
<Theoretical Computer Science
Out of these, tech boards mostly talk about basic programming (usually a Lisp dialect or C), and to the extent they cover anything else, its in the form of spamming textbooks about x84 assembler, data structures, compilers, or Tannenbaum’s operating systems book, which I guarantee you, vanishingly few anons are actually reading.
In short, do not listen to these pseuds or any advice they give. They will not lift a finger to help you when you take their meme advice and run into some esoteric error while writing your app in xyzMonadmemelang, or cgi scripts with C and Perl and store your data in a csv file, because they’re mostly still learning themselves (or have stopped learning long ago), and are simply regurgitating meme advice that they themselves haven’t even bothered to take yet. 95% of them know less than an average 19 year old computer science undergrad. These are the wannabes of development. To the extent that there are some actual devs who know what they are talking about among them, they typically get shouted or memed down by the NEET masses.
Here’s a bunch of shit tech boards never talk about (but should):
<Distributed Systems Programming
<Computer Hardware design, including digital logic.
<How to read/make digital and non digital circuit diagrams, digital circuit design.
<Software Architecture, architectural patterns
<Enterprise Integration patterns
<Unit and Integration Testing
<Devops, automated deployments
<Software Quality, Cyclomatic complexity
<OO and non OO software quality metrics (including Fowler’s ‘design smells’ and Chidamber and Kemerer’s OO metrics).
<Mobile Dev (iOS/Android)
<How to actually optimally use “basic” programming languages like Java/C#, best practices, design patterns
<UX/UI and GUI design
<Software development methodologies, project management, and Software Engineering in general
<SQL, relational database design and normalization, CAP theorem
<Advanced SQL, SQL query and database optimization, sharding strategies, replication.
<The importance of logging, metrics, observability
>AI/ML in a non illiterate way, literally anything technical that isn’t talking about either muh singularity or muh silicon valley journo overhype.
>Literally anything other than apple good vs apple bad
>Literally anything other than Lisp/SICP memes and people trying to teach themselves C
>Literally anything in that undergrad CS curriculum above
Category: /g/ - Computer Programming