Technology History Flashcards

(500 cards)

1
Q

Who created Python and what inspired its design?

A

Guido van Rossum created Python in the late 1980s, inspired by the ABC language’s ease of use and wanting a scripting language with exception handling and extensibility.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

When and how was the very first public release of Python made?

A

Python 0.9.0 was released in February 1991 on alt.sources, including functions, exception handling, and the core data types: list, dict, str, and file.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Why is it called “Python”?

A

Van Rossum named it after the British comedy group Monty Python, aiming for a name that was short, unique, and slightly whimsical.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What major milestone did Python 1.0 introduce?

A

Python 1.0 (January 1994) added module support, allowing code reuse across projects, and formalized the Python Standard Library.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What was Python 2.0’s biggest new feature when it arrived in October 2000?

A

Python 2.0 introduced list comprehensions (inspired by functional languages) and a full garbage collector for cyclic references.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Why was Python 3.0 released in December 2008, and what did it change?

A

To fix fundamental design flaws—most notably strings and bytes separation—breaking backward compatibility, and emphasizing Unicode by default.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What’s the “Zen of Python” and how do you view it?

A

A collection of 19 guiding principles (PEP 20) for Pythonic code (e.g., “Readability counts”). View it by running import this in the interpreter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How did Python become popular in web development?

A

Frameworks like Zope (late ’90s), Django (2005), and Flask (2010) provided rapid, secure web-app scaffolding, driving adoption among startups and enterprises.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

When did Python’s data-science boom begin, and what libraries led it?

A

Early 2000s with Numeric → NumPy (2006), SciPy (2001), then pandas (2008), matplotlib (2003), making Python the go‑to for analysis and visualization.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

How did machine learning and AI adoption explode in Python?

A

With libraries like scikit-learn (2007), TensorFlow (2015), and PyTorch (2016), Python’s simple syntax and ecosystem cemented it as the leading AI/ML language.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What role does Python play in automation and DevOps?

A

Tools like Ansible, SaltStack, and Fabric use Python for writing clear, reusable scripts to manage servers, deploy applications, and automate workflows.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How has Python’s packaging and distribution evolved?

A

From distutils to setuptools (2004), pip (2008), PyPI (2003), and modern standards (PEP 517/518) for reproducible builds and virtual environments.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What major typing enhancement arrived in Python 3.5?

A

Type hints (PEP 484) introduced optional static typing annotations, paving the way for linters, IDE support, and gradual typing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What performance-boosting tools exist for Python today?

A

Cython (compiles to C), PyPy (JIT interpreter), and Numba (JIT for numerical code) help speed up critical sections by emitting native machine code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are Python’s most common uses today?

A

Data Science & ML: analysis, modeling, deep learning

Web Backends: APIs, microservices

Scripting & Automation: sysadmin tasks, ETL

Education: teaching CS fundamentals

DevOps/Infrastructure: CI/CD pipelines, IaC

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How does Python maintain cross‑platform support?

A

The CPython interpreter abstracts OS differences, so the same .py code runs on Windows, macOS, and Linux without change.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Why is Python often chosen as a “glue language”?

A

Its simple C‑API and ctypes/cffi allow easy integration with C/C++ libraries, letting Python scripts orchestrate high‑performance components.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

How has the Python community governance evolved?

A

From BDFL (Benevolent Dictator for Life: van Rossum) to a Steering Council model (PEP 8016) in 2019 for more democratic decision‑making.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What upcoming Python trends should you watch?

A

Continued performance gains (Rust-based interpreters)

Enhanced concurrency (async improvements, GIL workarounds)

Stronger type systems (PEP 646 variadic generics)

Broader adoption in edge computing and IoT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Who invented JavaScript and why was it created?

A

Brendan Eich at Netscape invented it in 1995 (originally to add simple scripting to the browser, complementing Java applets).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What were JavaScript’s original names before “JavaScript”?

A

It started as “Mocha,” briefly became “LiveScript,” then was renamed “JavaScript” in December 1995 to ride Java’s popularity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

When did JavaScript first become publicly available?

A

December 1995, bundled in Netscape Navigator 2.0 as a way to make web pages interactive.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

How and when did JavaScript become an official standard?

A

In 1997, Netscape submitted it to ECMA International, producing ECMAScript 1 (ES1) to ensure cross‑browser consistency.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What were the major features of ECMAScript 3 (ES3)?

A

Released in December 1999, ES3 added regular expressions, better string handling, try/catch, and improved Unicode support.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
How did AJAX change JavaScript’s role in the early 2000s?
The introduction of XMLHttpRequest enabled asynchronous data loading (AJAX), powering dynamic “Web 2.0” apps like Google Maps (circa 2004).
26
What did ECMAScript 5 (ES5) introduce in 2009?
ES5 added "use strict", JSON support, array helpers (forEach, map, etc.), and Object.defineProperty for better OOP patterns.
27
Why was Google’s V8 engine important (2008)?
V8 (in Chrome) used Just‑In‑Time (JIT) compilation to dramatically speed up JS execution, inspiring modern performance optimizations.
28
When and why was Node.js created?
Ryan Dahl released Node.js in 2009—using V8 outside the browser—to build scalable server‑side applications in JavaScript.
29
What major leaps came with ES6/ES2015?
Introduced let/const, arrow functions, classes, modules, template literals, destructuring, Promise, and default parameters.
30
How has ECMAScript evolved annually since ES2015?
From ES2016 onward, small annual updates added features like async/await (ES2017), exponentiation operator (ES2016), optional chaining (ES2020), and more.
31
Which front‑end frameworks/libraries shaped JavaScript’s ecosystem?
jQuery (2006) simplified DOM manipulation AngularJS (2010) introduced MV* patterns React (2013) popularized virtual DOM & components Vue (2014) offered a progressive, flexible approach
32
What role do transpilers like Babel play?
Babel (2015) lets you write modern JS (ESNext) and transpile it back to ES5 for older browser compatibility.
33
What are the main JavaScript runtimes today?
Browser engines (V8, SpiderMonkey, JavaScriptCore) Node.js (server) Deno (secure runtime from Ryan Dahl) GraalVM’s JS, and others like Rhino (Java‑based)
34
How do module systems differ?
CommonJS (Node.js: require/module.exports) AMD (browser loaders: define) ES Modules (import/export), now standard in both browsers and Node
35
How did package management evolve?
npm launched in 2010 with Node.js Yarn (2016) and pnpm improved speed & disk usage Now the largest package registry in the world
36
What is the JavaScript event loop?
A concurrency model where callbacks, Promises, and async I/O are queued and processed in a single‑threaded loop, enabling non‑blocking behavior.
37
How did async patterns evolve?
Callbacks → Promise (ES6) → async/await (ES2017) Each step made asynchronous code easier to write and read.
38
What are modern full‑stack JS patterns?
MEAN: MongoDB, Express, Angular, Node MERN: MongoDB, Express, React, Node Jamstack: pre‑built markup + APIs + JS
39
What are cutting‑edge trends in JavaScript today?
WebAssembly integration ESNext proposals: decorators, pipeline operator Edge computing with Cloudflare Workers, Deno Deploy Growing use in IoT (Johnny-Five, Espruino)
40
Who created C and why?
Dennis Ritchie at Bell Labs in 1972, to provide a portable, efficient system‑implementation language for rewriting Unix.
41
Which languages influenced the design of C?
BCPL and B—typeless, system‑level languages—plus ALGOL’s block structure informed C’s syntax and structure.
42
What is “K&R C”?
The informal C dialect documented in “The C Programming Language” (1978) by Brian Kernighan & Dennis Ritchie; it served as the de facto standard before ANSI.
43
When and why was ANSI C standardized?
In 1989 ANSI published “ANSI X3.159-1989” (a.k.a. C89) to formalize C’s syntax, semantics, and standard library; ISO adopted it in 1990.
44
What key features did C99 add?
Inline functions, variable-length arrays, new types (long long, stdbool.h), restrict keyword, designated initializers, and the integer types.
45
What did C11 introduce?
Thread support (), atomic operations, improved Unicode (), static analysis hints (_Static_assert), plus bounds‐checking optional macros.
46
How has the C standard evolved since C11?
C18 (2018) was a bug‑fix release; C23 adds features like enhanced Unicode support, improved safety functions, and library extensions.
47
What are C’s primary domains of use today?
Operating‑system kernels, embedded systems, device drivers, compilers, high‑performance libraries, and anywhere low‑level hardware control is needed.
48
Who invented C++, and what was its original name?
Bjarne Stroustrup at Bell Labs in 1979 created “C with Classes,” renamed C++ in 1983 to signify an increment over C.
49
When did C++ become an ISO standard and what did C++98 include?
ISO standardized C++ in 1998 (C++98), specifying templates, the Standard Template Library (STL), exceptions, namespaces, and runtime type information (RTTI).
50
What major improvements came with C++11?
Move semantics, auto type deduction, lambda expressions, range‑based for loops, smart pointers (std::unique_ptr, std::shared_ptr), nullptr, and constexpr.
51
What features arrived in C++14, C++17, and C++20?
C++14: Relaxed constexpr, return type deduction C++17: Structured bindings, std::optional, filesystem library, parallel algorithms C++20: Concepts, modules, coroutines, ranges, std::span
52
What is the Standard Template Library (STL)?
A collection of generic containers (e.g., vector, map), algorithms (e.g., sort), and iterators, enabling reusable data structures and operations.
53
Where is C++ most commonly used today?
Game engines (Unreal), real‑time systems, high‑frequency trading, desktop applications (Qt), embedded software, and performance‑critical libraries.
54
How does modern “Modern C++” style differ from early C++?
Emphasizes RAII, smart pointers, constexpr, auto, range‑based loops, and avoiding raw pointers—favoring safety and expressiveness.
55
Who designed C# and when was it first released?
Anders Hejlsberg and the Microsoft .NET team; C# 1.0 shipped in 2002 as part of the .NET Framework.
56
How is C# standardized?
As ECMA-334 (2002) and ISO/IEC 23270 (2003), ensuring cross‑vendor language consistency beyond Microsoft’s implementation.
57
What did C# 2.0 introduce?
Generics, nullable types, anonymous methods, iterators (yield), and partial classes for splitting definitions across files.
58
Which key features arrived in C# 3.0?
LINQ (Language‑Integrated Query), lambda expressions, extension methods, and automatic properties—enabling functional‑style operations on collections.
59
How did C# evolve in versions 4.0 through 8.0?
4.0: dynamic typing, named/optional parameters 5.0: async/await for asynchronous programming 6.0: Expression‑bodied members, string interpolation 7.x: Tuples, pattern matching 8.0: Nullable reference types, async streams
60
What modern features came in C# 9.0 and 10.0?
9.0: record types, init‑only setters, top‑level statements 10.0: Global usings, file‑scoped namespaces, improved pattern matching
61
What are C#’s primary use cases today?
Enterprise back‑ends (ASP.NET Core), desktop apps (WPF, WinForms), game development (Unity), mobile (Xamarin/.NET MAUI), and cloud microservices.
62
Why is C# popular in the Microsoft ecosystem?
Tight integration with .NET tooling, strong IDE support (Visual Studio), a consistent framework library, and cross‑platform .NET Core/.NET 5+.
63
How do C, C++, and C# compare in terms of performance and safety?
C: Highest raw performance, manual memory management, minimal safety. C++: High performance with modern safety tools (RAII, smart pointers). C#: Managed runtime (garbage collection), lower peak performance but safer and faster development.
64
Who created Java and why?
James Gosling at Sun Microsystems in the early 1990s, to build a platform‑independent, object‑oriented language for embedded devices (originally called Oak).
65
What was Java’s original name and how did it become “Java”?
It was first named “Oak” in 1991, renamed to “Java” in 1995 (after Java coffee) due to trademark conflicts.
66
When did Java 1.0 release and what were its core features?
January 23, 1996 – introduced the Java Virtual Machine (JVM), automatic garbage collection, applets for browser scripting, and core libraries (java.lang, java.io).
67
What did Java 1.1 (February 1997) add?
Inner classes, JDBC for database connectivity, reflection API, JavaBeans conventions, improved RMI, and event model enhancements in AWT.
68
Why was the Java 2 Platform (J2SE 1.2, December 1998) significant?
It introduced the Collections Framework, Swing GUI toolkit, Java Plug‑in for browsers, and major JVM and performance improvements.
69
What were the highlights of J2SE 1.4 (February 2002)?
New I/O (NIO) for scalable file/network operations, assert keyword, exception chaining, XML processing (JAXP), and the Logging API.
70
Which major features arrived in Java 5 (J2SE 5.0, September 2004)?
Generics, metadata annotations, enhanced for loop, autoboxing/unboxing, varargs, enums, and static imports.
71
What improvements did Java 6 (December 2006) focus on?
Scripting support via javax.script, JDBC 4.0, performance and monitoring enhancements, compiler API, and JAXB/Web Services improvements.
72
What did Java 7 (July 2011) introduce?
Diamond operator (<>), try‑with‑resources, NIO.2 Path API, ForkJoinPool, switch on String, and improved exception handling with multicatch.
73
What were the landmark features of Java 8 (March 2014)?
Lambda expressions, the Stream API for functional‑style collection processing, the new Date‑Time API (java.time), and default/static methods in interfaces.
74
How did Java 9 (September 2017) evolve the platform?
Introduced the Java Platform Module System (Project Jigsaw), JShell REPL, enhanced HTTP client (incubator), and multi‑release JAR support.
75
What were the key additions in Java 10 and Java 11 (LTS, September 2018)?
Local variable type inference (var), improved G1 GC, single‑file source‑code execution, standardized HTTP client, and application class‑data sharing.
76
Which major features did Java 17 (LTS, September 2021) bring?
Sealed classes, pattern matching for switch, strong encapsulation of internal APIs, foreign‑function & memory API (incubator), and macOS/AArch64 support.
77
What is the Java Community Process (JCP)?
Established in 1998 to govern Java’s evolution via Java Specification Requests (JSRs), allowing vendor‑neutral, expert‑driven development of language and library standards.
78
How does the JVM execute Java programs?
Java source → compiled to bytecode (.class) by javac → loaded by the JVM → interpreted or JIT‑compiled to native machine code at runtime.
79
What garbage collectors does modern Java offer?
Serial, Parallel, CMS, G1 (since Java 7), ZGC (Java 11+), and Shenandoah (via OpenJDK), each balancing throughput and latency.
80
Why is Java known as “write once, run anywhere”?
Bytecode runs on any device with a compatible JVM, abstracting away OS and hardware differences for true cross‑platform portability.
81
What are Java’s main use cases today?
Enterprise back‑ends (Spring, Jakarta EE), Android app development (ART/Dalvik), big‑data frameworks (Hadoop, Spark), desktop GUIs (JavaFX), and embedded systems.
82
How has Java’s build and dependency management evolved?
From Ant (build.xml) to Maven (POM) in 2004, Gradle (2012) with its Groovy/Kotlin DSL, and now build tools integrated in IDEs and CI pipelines.
83
What future enhancements are on Java’s roadmap?
Project Loom (lightweight “fibers”), Project Valhalla (value types), Project Panama (native interop), enhanced pattern matching, and further GC and performance optimizations.
84
Who created React and why?
Jordan Walke at Facebook created React in 2013 to simplify building interactive UIs by using a virtual DOM and component‑based model.
85
What was React’s predecessor project at Facebook?
FaxJS, an internal prototype that experimented with using JavaScript to render UI declaratively before React’s public release.
86
When and how was React first open‑sourced?
React v0.3 was open‑sourced at JSConf US in May 2013 under the Apache 2.0 license, making its virtual‑DOM approach available to all.
87
What is JSX and why was it introduced?
JSX is a JavaScript syntax extension for writing HTML‑like tags inside JS. It was introduced to make UI code more readable and to colocate markup and logic.
88
Which React release first supported stateless functional components?
React 0.14 (October 2015) formalized functional components, separating them from class components.
89
What major architectural change came in React 16 (September 2017)?
The introduction of the Fiber reconciliation engine, improving responsiveness by breaking rendering work into incremental units.
90
When were React Hooks introduced and what problem do they solve?
React 16.8 (February 2019) introduced Hooks (e.g., useState, useEffect), allowing state and side effects in functional components and reducing class boilerplate.
91
What is Concurrent Mode (now “Concurrent Features”)?
A set of opt‑in features (e.g., startTransition) that let React interrupt low‑priority renders to keep the UI responsive.
92
How did React 17 (October 2020) change event handling?
React 17 refactored its event delegation system to attach listeners to the root DOM container instead of document, simplifying upgrades and embedding.
93
What did React 18 (March 2022) introduce?
Out‑of‑the‑box concurrent features, automatic batching of updates, streaming server‑side rendering with Suspense, and a new root API (createRoot).
94
What is React’s “Unidirectional Data Flow”?
Data flows down from parent to child via props; children emit events or call callbacks to request state changes, keeping data predictable.
95
Name three major libraries in the React ecosystem.
Redux for centralized state management React Router for client‑side routing Styled Components or Emotion for CSS‑in‑JS styling
96
What is Next.js and how does it relate to React?
A React framework by Vercel (2016) offering server‑side rendering, static‑site generation, API routes, and file‑based routing to build full‑stack apps.
97
What are React Server Components?
A new paradigm allowing components to run on the server, streaming HTML and data to the client without sending their JS logic.
98
How does React Native fit into the ecosystem?
Released in 2015, React Native uses React components to build native iOS and Android apps, sharing logic and UI paradigms with web React.
99
What is the role of Suspense in React?
An API for declarative data fetching and code‑splitting, letting components “suspend” rendering until data or modules are ready.
100
What future trends should you watch in React?
Wider adoption of React Server Components, deeper Concurrent Features integration, built‑in data fetching hooks (React Query integration), and edge‑first React with frameworks like Remix.
101
Who created Next.js and why?
Guillermo Rauch and the Vercel (formerly ZEIT) team created Next.js in 2016 to provide a zero‑config React framework that supports hybrid server‑side rendering (SSR) and static‑site generation (SSG).
102
When was Next.js first released and under what context?
Next.js 1.0 was open‑sourced on May 25, 2016 by ZEIT to enable easy SSR/SSG for React apps without manual build tooling.
103
What is file‑based routing in Next.js?
Any React component file placed in the /pages directory automatically becomes a route based on its filepath (e.g., /pages/about.js → /about).
104
What is getInitialProps and why was it introduced?
A legacy data‑fetching method that runs on both server and client to populate page props before initial render; replaced by more granular methods in later versions.
105
What are getStaticProps and getStaticPaths?
getStaticProps: Fetches data at build time to generate static HTML. getStaticPaths: Defines dynamic routes to pre‑render based on data at build time.
106
What is getServerSideProps?
A function that runs on the server at request time, fetching data for each incoming request to enable true SSR.
107
What is Incremental Static Regeneration (ISR)?
Allows you to update static pages after build by specifying a revalidate interval in getStaticProps, regenerating pages on the server in the background.
108
What are API Routes in Next.js?
File‑based backend endpoints placed under /pages/api/* that let you write serverless functions (e.g., /pages/api/users.js → /api/users).
109
What is Preview Mode?
A feature that bypasses static generation, enabling pages to fetch and display draft or unpublished content (often used with headless CMS previews).
110
What is the next/image component and its benefits?
An optimized component that automatically handles responsive sizing, lazy loading, and on‑the‑fly optimization via Vercel’s Image CDN.
111
What is Internationalized Routing and when was it introduced?
Built‑in i18n support added in Next.js 10, providing locale‑based routing, domain routing, and automatic locale detection for multi‑language sites.
112
What major features did Next.js 9 introduce?
getStaticProps & getServerSideProps getStaticPaths for dynamic SSG File‑based API Routes Dynamic route segments ([id].js) ISR’s early “fallback” modes
113
What features came in Next.js 10?
Image Optimization (next/image) Internationalized Routing The