Here’s a comparative table showing what Python, Java, and JavaScript have and don’t have in terms of features and syntax:
| Feature | Python | Java | JavaScript |
|---|---|---|---|
| Strong Typing | ✅ Yes | ✅ Yes | ❌ No (Weakly Typed) |
| Dynamic Typing | ✅ Yes | ❌ No (Statically Typed) | ✅ Yes |
| Static Typing | ❌ No (Optional with Type Hints) | ✅ Yes | ❌ No |
| Compilation | ❌ No (Interpreted) | ✅ Yes (Compiled to Bytecode) | ❌ No (Interpreted) |
| Garbage Collection | ✅ Yes | ✅ Yes | ✅ Yes |
| Object-Oriented | ✅ Yes | ✅ Yes (Strict OOP) | ✅ Yes (Prototype-based OOP) |
| Functional Programming | ✅ Yes (Supports FP) | ✅ Yes (Supports FP) | ✅ Yes (Supports FP) |
| Manual Memory Management | ❌ No | ✅ Yes (With new and delete) | ❌ No |
| Threads & Multithreading | ✅ Yes (GIL limits parallelism) | ✅ Yes (True Multithreading) | ❌ No (Uses async/non-blocking) |
| Asynchronous Programming | ✅ Yes (async/await) | ✅ Yes (Using Threads) | ✅ Yes (async/await, Promises) |
| Exception Handling | ✅ Yes (try-except) | ✅ Yes (try-catch-finally) | ✅ Yes (try-catch) |
| Multiple Inheritance | ✅ Yes (Using Mixins) | ❌ No (Only Interfaces) | ❌ No (Prototype-based) |
| Interfaces | ❌ No (Uses Duck Typing) | ✅ Yes (interface) | ❌ No (Uses Object Prototypes) |
| Operator Overloading | ✅ Yes | ❌ No | ❌ No |
| Pointers | ❌ No | ✅ Yes (Limited) | ❌ No |
| Switch-Case Statement | ❌ No | ✅ Yes | ✅ Yes (Since ES6) |
| Ternary Operator | ✅ Yes (a if cond else b) | ✅ Yes (cond ? a : b) | ✅ Yes (cond ? a : b) |
| Closures | ✅ Yes (Using lambda) | ❌ No (But supports lambdas) | ✅ Yes (Functions are closures) |
| First-Class Functions | ✅ Yes | ❌ No | ✅ Yes |
| Modules & Packages | ✅ Yes (import) | ✅ Yes (package) | ✅ Yes (import/export in ES6) |
| File Handling | ✅ Yes (open()) | ✅ Yes (Uses I/O Streams) | ✅ Yes (Using fs in Node.js) |
| Regular Expressions | ✅ Yes (re module) | ✅ Yes (Built-in) | ✅ Yes (RegExp object) |
| List Comprehensions | ✅ Yes ([x for x in range(5)]) | ❌ No | ❌ No |
| Data Structures (Built-in) | ✅ Yes (Lists, Sets, Dicts) | ❌ No (Uses Java Collections) | ✅ Yes (Arrays, Objects, Maps) |
| Lambda Functions | ✅ Yes (lambda x: x+1) | ✅ Yes ((x) -> x+1) | ✅ Yes ((x) => x+1) |
| Reflection | ✅ Yes (getattr(), setattr()) | ✅ Yes (Reflection API) | ✅ Yes (Object.keys(), typeof) |
| DOM Manipulation | ❌ No | ❌ No | ✅ Yes (document.querySelector) |
| Mobile App Development | ✅ Yes (Kivy, Flutter) | ✅ Yes (Android via Java/Kotlin) | ✅ Yes (React Native) |
| Backend Development | ✅ Yes (Django, Flask) | ✅ Yes (Spring, Hibernate) | ✅ Yes (Node.js) |
| Machine Learning Support | ✅ Yes (TensorFlow, PyTorch) | ✅ Yes (With Libraries) | ✅ Yes (TensorFlow.js) |
| Browser Support | ❌ No (Runs on Server) | ❌ No (Needs JVM) | ✅ Yes (Runs in Browser) |

