r/compsci • • 1d ago

Test of time

Hi all,

Hopefully not asking a silly question: which practical applications of CS would you highlight in the context of having passed the test of time?

This question came to my mind while talking with colleagues about the impact and longevity of TCP/IP (obviouslly with changes and improvements over time, but essentially TCP/IP still today)

In the case of programming languages, C and "LISP" come to my mind (even though nowadays they might not be so much in active use, their influence, for good or bad, can be felt everywhere)

Now that LLM is almost ubiquous in discussions, a candidate could also be Neural Networks.

I am curious also about failure stories - sometimes much more can be learned from a theory or application that proved wrong (against the initial promises)

Thanks!

0 Upvotes

7 comments sorted by

5

u/FragrantCondominium 1d ago

s now, SQL is basically undying at this point. the whole nosql wave tried to bury it and somehow it just keeps chugging along while mongo hype cycles come and go

failure wise the semantic web is a classic, tim berners-lee really thought we'd all be annotating our html with rdf triples and instead we got twitter

3

u/currentscurrents 1d ago

The big problem with the semantic web was the labor-intensive manual tagging. You had to know in advance what abstractions over the data you cared about, and manually build those abstractions into a structured format. Other knowledge graph projects like Cyc had the same problem.

What we really needed was software that could automatically learn semantics from data, but we'd have to wait another couple decades for that.

6

u/cancerouslump 1d ago

(1) learning to learn. Pushing yourself to constantly learn. Learn more languages than you need.
(2) understand how the machine actually works, down to the assembly level. Understand CPU caches, memory latency hierarchies, etc.
(3) data structures. In the end it’s all data structures and algorithms.
(4) stats. There’s a huge overlap between compsci and data science. Understanding how to evaluate the results of an experiment is a superpower.

2

u/cancerouslump 1d ago

(I riffed on your question a bit to talk about things to learn than stand the test of time. Over the course of a career, few technologies persist, but the basic skills needed endure)

2

u/pbvas 1d ago

Compilers (both theory and practice)

2

u/s32 1d ago

At a verrry high level

  • Finite automota and state machines
  • Formal languages and grammars
  • Domain-specific languages
  • Turing machines and theory
  • OS abstractions
  • Data modeling and relational modeling
  • Information theory, error correction

Each one of those could have a multi page explanation, but IMO these are the things that will never die. Non exhaustive.