Modern Programming Language Features

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/18

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 4:30 PM on 4/3/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

19 Terms

1
New cards

Modern Programming Languages Definition

  • Actively used or recently developed languages.

  • Trends: incremental improvements, multi-paradigm design.

  • Emphasis: performance, concurrency, typing.

  • Industry-driven development with open-source communities.

2
New cards

Language Timeline (1804-1948)

  • Jacquard machine (1804): programmable looms.

  • Babbage's Analytical Engine (1837): mechanical general-purpose computer.

  • Colossus (1943): electronic code-breaking.

  • ENIAC (1945): first electronic general-purpose computer.

  • Manchester Baby (1948): first stored-program computer.

3
New cards

Language Timeline (1956-1972)

  • LISP (1956): functional AI language.

  • FORTRAN (1957): scientific computing.

  • COBOL (1959): business applications.

  • BASIC (1964): beginner-friendly.

  • Pascal (1970): teaching language.

  • C (1972): systems programming.

4
New cards

Language Timeline (1983-2003)

  • C++ (1983): object-oriented C.
  • Erlang (1986): concurrent telecom.
  • Java (1995): platform-independent OO.
  • JavaScript (1995): web scripting.
  • PHP (1995): web development.
  • Ruby (1995): programmer-friendly.
  • Scratch (2002): visual education.
  • SCALA (2003): functional/OO hybrid.
5
New cards

Language Timeline (2014-2024)

  • Swift (2014): safe iOS development.
  • Hack (2014): gradual typing.
  • Q# (2017): quantum computing.
  • C++20 (2020): modern C++.
  • Carbon (2022): C++ successor.
  • Mojo (2023): Python + systems performance.
  • Fortran 2023: modernised Fortran.
  • Gleam (2024): functional on BEAM.
6
New cards

COBOL Legacy

  • As of 2020, 95% of credit/debit card swipes involve COBOL.
  • Old languages persist in critical infrastructure despite newer alternatives.
7
New cards

Swift Language (2014)

  • Developed by Apple as safer alternative to Objective-C.
  • Features: dynamic dispatch, late binding/dynamic linkage, extensible programming.
  • Used in modern iOS/macOS development.
8
New cards

Hack Language (2014)

  • Developed by Meta (Facebook).
  • Implements gradual typing: types specified for arguments, return values, class properties.
  • Combines dynamic and static typing.
9
New cards

Mojo Language (2023)

  • Developed by Swift architect, currently closed-source.
  • Goals: combine Python usability with systems performance.
  • Supports blend of Python-like and Swift/Rust-like syntax using .mojo extension.
10
New cards

Mojo Syntax Example

  • Python-like dynamic: def sub(x, y): res = x - y; return res.
  • Swift/Rust-like static: fn add(x: Int, y: Int) -> Int: let res: Int = x + y; return res.
11
New cards

Package Managers Evolution

  • Started 1993 for Linux.
  • Now standard: Maven (Java), PyPI (Python), NPM (JavaScript).
  • Challenges: tiny packages (median PyPI 16KB), 0-day exploits.
12
New cards

Language Server Protocol (LSP)

  • Protocol separating IDE functionality (syntax highlighting, autocomplete, navigation).
  • Enables single language server to support multiple IDEs.
13
New cards

Aspect-Oriented Programming (AOP)

  • Paradigm expressing cross-cutting concerns as 'aspects' separate from main code.
  • Handles logging, verification, transactions that clutter core logic.
14
New cards

AspectJ Example

  • aspect Logger { void Bank.transfer(Account from, Account to, …) { logger.info(…); } }
  • Separates logging concern from transfer logic; aspects can be composed.
15
New cards

Edge Computing

  • Distributes computation to user devices (IoT).
  • Enables return to low-level programming (C, C++, Rust) for resource-constrained devices.
  • Develops specialized data management and querying approaches.
16
New cards

AI-Assisted Programming ('Vibe Coding')

  • Copilot (Microsoft/Github): supports multiple languages (JavaScript, Python, etc.).
  • Mellum (Jetbrains): open-sourced, 'Focal Model', supports many languages.
17
New cards

Q# Quantum Language (2017)

  • Language for quantum algorithms using qubits (superposition).
  • Syntactically similar to C#/F#. Runs in Visual Studio or Jupyter Notebook.
18
New cards

Q# Example

  • operation GenerateRandomBit() : Result { use q = Qubit(); H(q); let result = M(q); Reset(q); return result; }
  • Creates 50/50 random bit using quantum superposition.
19
New cards

Modern Language Trends

  • Industry-driven, incremental improvements.
  • Multi-paradigm general-purpose design.
  • Specialized domain-specific examples (quantum, AI).
  • Emphasis on performance, concurrency, typing.

Explore top flashcards

flashcards
Semester 1 midterms science
21
Updated 108d ago
0.0(0)
flashcards
Prep Game Notes
31
Updated 435d ago
0.0(0)
flashcards
Gr 11 Bio - Evolution
54
Updated 1081d ago
0.0(0)
flashcards
SIS 342 FINAL EXAM
72
Updated 344d ago
0.0(0)
flashcards
Bio - Exam intra 1
108
Updated 550d ago
0.0(0)
flashcards
Welding Test. Airframe
35
Updated 479d ago
0.0(0)
flashcards
Semester 1 midterms science
21
Updated 108d ago
0.0(0)
flashcards
Prep Game Notes
31
Updated 435d ago
0.0(0)
flashcards
Gr 11 Bio - Evolution
54
Updated 1081d ago
0.0(0)
flashcards
SIS 342 FINAL EXAM
72
Updated 344d ago
0.0(0)
flashcards
Bio - Exam intra 1
108
Updated 550d ago
0.0(0)
flashcards
Welding Test. Airframe
35
Updated 479d ago
0.0(0)