Skip to content

Latest commit

 

History

History
674 lines (582 loc) · 16.3 KB

File metadata and controls

674 lines (582 loc) · 16.3 KB

Noviq - Feature Implementation Priorities

Priority 1: Critical Core Features (Foundation)

  • Variable reassignment (mutable variables)
  • Constants (immutable by default with const keyword)
  • Arithmetic operators (+, -, *, /, %, **)
  • Comparison operators (==, !=, <, >, <=, >=)
  • Logical operators (and, or, not)
  • if statement
  • else statement
  • else if / elif statement
  • while loop
  • for loop (C-style: for i = 0; i < 10; i++)
  • break statement
  • continue statement
  • Function declarations
  • Function parameters
  • Return statements
  • Array literals ([1, 2, 3])
  • Array indexing (arr[0])
  • Object literals ({key: value})
  • String concatenation with + operator
  • Integer type (separate from float)
  • Type inference improvements
  • input() - Read from stdin
  • len() - Length of collection
  • type() - Get type of value

Priority 2: Essential Language Features

  • String slicing (string[start:end])
  • String indexing (string[0])
  • String length function
  • String methods (upper, lower, trim, split, join, replace)
  • Array length
  • Array methods (push, pop, shift, unshift)
  • Array slicing (arr[1:3])
  • Object methods (keys, values, entries)
  • Dot notation (obj.key)
  • Bracket notation (obj["key"])
  • for-in loop (iterate over collections)
  • Loop with range (for i in 0..10)
  • Default parameter values
  • Anonymous functions/lambdas
  • Closures
  • Recursive functions
  • Type annotations (optional static typing)
  • Compound assignment (+=, -=, *=, /=, %=)
  • Short-circuit evaluation
  • Ternary operator (condition ? true_val : false_val)
  • try-catch blocks
  • throw statements
  • Error wrapping
  • Stack traces
  • Multi-line comments (/* */)
  • range() - Generate range
  • str() - Convert to string
  • assert() - Runtime assertion

Priority 3: Standard Library Basics

  • io - Input/Output operations
  • fs - File system operations
  • Reading from stdin
  • Writing to stdout
  • Writing to stderr
  • File reading (text and binary)
  • File writing (text and binary)
  • read() - Read file
  • write() - Write to file
  • open() - Open file handle
  • close() - Close file handle
  • Math module (sin, cos, tan, sqrt, abs, etc.)
  • Random number generation
  • time - Time and date handling
  • JSON parsing and generation
  • path - Path manipulation
  • env - Environment variables
  • typeof() - Type checking
  • isinstance() - Instance checking
  • map() - Transform collection
  • filter() - Filter collection
  • reduce() - Reduce collection

Priority 4: Advanced Data Structures & Control Flow

  • Array methods (map, filter, reduce, forEach)
  • Array methods (find, findIndex, includes, indexOf)
  • Array methods (sort, reverse, join)
  • Multi-dimensional arrays
  • Object spreading
  • Object destructuring
  • Nested objects
  • JSON serialization/deserialization
  • Set creation
  • Set operations (add, remove, has)
  • Set operations (union, intersection, difference)
  • Fixed-size tuples
  • Tuple unpacking
  • Switch/match statement
  • Pattern matching
  • Array concatenation
  • Array spreading/unpacking
  • Negative indexing (arr[-1])
  • Dynamic keys
  • Property existence checking
  • Property deletion
  • for-of loop (iterate over values)
  • Loop with step (for i in 0..10 step 2)
  • enumerate() - Index and value pairs
  • zip() - Combine iterables
  • sum() - Sum numbers
  • min() - Find minimum
  • max() - Find maximum
  • sorted() - Sort collection
  • reversed() - Reverse collection

Priority 5: Module System & Package Management

  • import statements
  • export statements
  • Module paths
  • Relative imports
  • Absolute imports
  • Selective imports (import {x, y} from module)
  • Import aliases (import x as y)
  • Package manifest file (package.nvq, Noviq.toml)
  • Dependency specification
  • Version constraints
  • Package installation
  • Local packages
  • Dependency resolution
  • Lock files
  • Package manager CLI
  • Package search
  • Package info

Priority 6: Functions & OOP Foundations

  • Arrow functions
  • Higher-order functions
  • Rest parameters (...args)
  • Early return
  • Nested functions
  • Variadic functions
  • Class declarations
  • Class constructors
  • Instance methods
  • Static methods
  • Instance variables/properties
  • Class variables/static properties
  • Private members
  • Public members
  • Getters and setters
  • Single inheritance
  • Method overriding
  • Super keyword
  • Interface implementation
  • Function types/signatures

Priority 7: String & Numeric Enhancements

  • Multi-line strings (""" or similar)
  • Raw strings (no escape processing)
  • String contains/search
  • Regular expressions
  • String formatting (printf-style)
  • Template literals (backticks with ${})
  • Hexadecimal literals (0x...)
  • Binary literals (0b...)
  • Octal literals (0o...)
  • Scientific notation (1e6, 2.5e-3)
  • Increment/decrement (++, --)
  • Bitwise operators (&, |, ^, ~, <<, >>)
  • Number formatting functions
  • Infinity and NaN handling
  • BigInt support for large numbers
  • String encoding/decoding (UTF-8, UTF-16)
  • Unicode normalization
  • Character type functions (is_alpha, is_digit, etc.)

Priority 8: Advanced Error Handling & Testing

  • Custom error types
  • finally blocks
  • catch with type filtering
  • Result/Option types (Rust-style)
  • Error propagation operator (?)
  • Panic vs recoverable errors
  • Assertions
  • Debug assertions
  • Unit testing framework
  • Test assertions
  • Test fixtures
  • Mocking
  • Test coverage
  • Benchmark framework
  • Integration tests

Priority 9: Developer Tools & IDE Support

  • REPL (Read-Eval-Print Loop)
  • Language Server Protocol (LSP)
  • Syntax highlighting definitions
  • Code formatter
  • Linter
  • Code completion
  • Go to definition
  • Find references
  • Rename symbol
  • Documentation comments (///)
  • Documentation generator
  • API documentation
  • Colored error output
  • Error codes
  • Suggestions for fixes
  • Similar name suggestions
  • Context in errors
  • VSCode extension
  • Photon watch mode
  • Photon project scaffolding

Priority 10: Advanced OOP & Functional Programming

  • Abstract classes
  • Protected members
  • Property decorators
  • Multiple inheritance
  • Traits/Mixins
  • Protocols
  • Operator overloading
  • Method chaining
  • Reflection/introspection
  • Type checking at runtime
  • Function composition
  • Partial application
  • Currying
  • Tail call optimization
  • Generator functions
  • Async functions
  • Function overloading
  • Function decorators/annotations
  • Pure function markers
  • Memoization

Priority 11: Additional I/O & Data Formats

  • File appending
  • Buffered IO
  • Stream reading/writing
  • CSV reading/writing
  • CSV handling
  • YAML support
  • TOML support
  • XML parsing
  • XML/HTML parsing
  • INI file support
  • String manipulation functions
  • String formatting
  • format() - Format string
  • join() - Join strings
  • split() - Split string
  • replace() - Replace in string
  • chars() - Get characters
  • bytes() - Get bytes

Priority 12: Concurrency & Async

  • Threads
  • Thread pools
  • Mutexes/locks
  • Channels (message passing)
  • Async/await
  • Promises/Futures
  • Coroutines
  • Green threads
  • Race condition detection
  • Deadlock detection

Priority 13: Network & Web

  • HTTP client
  • HTTP server
  • WebSocket support
  • TCP sockets
  • UDP sockets
  • DNS resolution
  • URL parsing
  • REST API helpers

Priority 14: Database Support

  • SQLite support
  • PostgreSQL driver
  • MySQL driver
  • MongoDB driver
  • Redis client
  • ORM framework
  • Query builder
  • Migrations
  • Connection pooling

Priority 15: Compiler Optimizations

  • Bytecode compilation
  • JIT compilation
  • Constant folding
  • Dead code elimination
  • Inline expansion
  • Loop unrolling
  • Tail call optimization
  • Type checking
  • Dead code detection
  • Unused variable detection
  • Unreachable code detection
  • Incremental compilation
  • Parallel compilation

Priority 16: Advanced Language Features

  • List comprehensions
  • Dict comprehensions
  • Set comprehensions
  • Generator expressions
  • With statement (context managers)
  • Using statement (resource cleanup)
  • Guard statement
  • Defer statement
  • Array comprehensions
  • Typed arrays
  • Pipeline operator (|>)
  • Composition operator (>>)
  • Elvis operator (?:)
  • Safe navigation operator (?.)
  • Null coalescing operator (??)
  • Spread operator (...)
  • Range operator (..)
  • Exclusive range operator (..<)
  • In operator (value in collection)
  • Is operator (type checking)
  • As operator (type casting)

Priority 17: Type System Enhancements

  • Type casting/conversion functions
  • Null/None type explicit handling
  • Undefined vs Null distinction
  • Variable shadowing
  • Destructuring assignment
  • Truthiness/falsiness rules
  • Strict equality vs loose equality
  • Optional chaining operator (?.)
  • Type aliases
  • Union types
  • Intersection types
  • Generics/parametric polymorphism
  • Variance (covariance, contravariance)
  • istype() - Type validation
  • convert() - Type conversion

Priority 18: Memory Management

  • Garbage collection
  • Reference counting
  • Memory pools
  • Stack vs heap allocation
  • Smart pointers
  • Weak references
  • Memory leak detection
  • RAII (Resource Acquisition Is Initialization)

Priority 19: Debugging & Profiling

  • Debugger protocol
  • Breakpoints
  • Step through execution
  • Variable inspection
  • Stack trace inspection
  • Memory profiling
  • CPU profiling
  • Logging framework
  • Trace logging
  • Hot reloading
  • Time-travel debugging

Priority 20: Additional Built-in Functions

  • all() - Check all true
  • any() - Check any true
  • eval() - Evaluate code string
  • exec() - Execute code
  • compile() - Compile code
  • help() - Interactive help
  • dir() - List attributes
  • id() - Object identity
  • hash() - Hash value
  • repr() - String representation
  • Named tuples
  • Object freezing/sealing

Priority 21: Additional Module System Features

  • Wildcard imports
  • Re-exports
  • Module initialization
  • Circular dependency handling
  • Dynamic imports
  • Lazy loading
  • Module versioning

Priority 22: Advanced Package Management

  • Package registry
  • Package publishing
  • Git dependencies
  • Virtual environments
  • Package scripts
  • Dev dependencies vs runtime dependencies
  • Package outdated check
  • Package update
  • Package audit (security)
  • Package licenses

Priority 23: Tooling Extensions

  • Photon dependency management
  • Build profiles
  • Custom build scripts
  • Parallel builds
  • Incremental builds
  • Build caching
  • Build artifacts management
  • Quick fixes
  • Refactoring tools
  • Code snippets
  • Tutorial generator
  • Example runner
  • Playground/sandbox
  • Documentation search
  • Version documentation

Priority 24: IDE Integration Expansion

  • IntelliJ plugin
  • Vim/Neovim plugin
  • Emacs mode
  • Sublime Text package
  • Atom package
  • WebStorm integration

Priority 25: CI/CD & DevOps

  • GitHub Actions workflows
  • GitLab CI templates
  • Jenkins integration
  • Travis CI support
  • CircleCI config
  • Docker images
  • Pre-commit hooks
  • Code coverage reporting

Priority 26: Security Features

  • Sandboxing
  • Capability-based security
  • Safe/unsafe code distinction
  • Input validation
  • SQL injection prevention
  • XSS prevention
  • CSRF protection
  • Cryptography module
  • Secure random numbers
  • Password hashing
  • Token generation
  • Resource limits
  • Execution timeout
  • Stack size limits
  • Memory limits

Priority 27: Performance Features

  • Lazy evaluation
  • Copy-on-write
  • String interning
  • Object pooling
  • Zero-cost abstractions
  • SIMD support
  • GPU computation
  • Parallel algorithms
  • Native code compilation
  • AOT compilation
  • Cross-compilation
  • Link-time optimization
  • Profile-guided optimization
  • Escape analysis
  • Bounds check elimination
  • Common subexpression elimination

Priority 28: Additional Platform Support

  • FreeBSD support
  • OpenBSD support
  • Android support
  • iOS support
  • WebAssembly target
  • x86 (32-bit)
  • RISC-V

Priority 29: Internationalization

  • Unicode support (full)
  • Locale handling
  • Message translation
  • Number formatting by locale
  • Date/time formatting by locale
  • Currency formatting
  • Text collation
  • Bidirectional text
  • Right-to-left languages

Priority 30: Metaprogramming

  • Macros
  • Compile-time evaluation
  • Code generation
  • Reflection API
  • Annotations/decorators
  • Attribute macros
  • Procedural macros
  • AST manipulation
  • Custom DSLs

Priority 31: FFI (Foreign Function Interface)

  • C FFI
  • Rust FFI
  • Python interop
  • JavaScript interop
  • Call external libraries
  • Expose Noviq functions to C
  • Shared library loading
  • System call interface

Priority 32: Advanced Loop Features

  • Loop labels
  • do-while loop
  • until loop
  • Loop else clause
  • Infinite loop construct

Priority 33: Advanced Function Features

  • Multiple return values
  • Named return values
  • Function inlining hints
  • Virtual methods
  • Builder pattern support

Priority 34: Additional Comments & Literals

  • Markdown in doc comments
  • TODO/FIXME/NOTE markers
  • Comment directives
  • Regular expression literals
  • Date/time literals
  • Binary data literals

Priority 35: Advanced Type System

  • Extension methods
  • Implicit conversions
  • Explicit conversions
  • Higher-kinded types

Priority 36: Advanced Static Analysis

  • Code formatting
  • Linting
  • Cyclomatic complexity
  • Code smell detection

Priority 37: Additional Data Formats

  • MessagePack
  • Protocol Buffers

Priority 38: Advanced Testing

  • Property-based testing
  • Snapshot testing

Priority 39: Additional Core Modules

  • os - Operating system interface
  • sys - System-specific parameters
  • process - Process management
  • collections - Additional data structures

Priority 40: Quality of Life Improvements

  • Fast compilation
  • Helpful warnings
  • Clear documentation
  • Good examples
  • Beginner-friendly
  • Consistent syntax
  • Minimal boilerplate
  • Interactive tutorials
  • Migration guides
  • Changelog
  • Error explanation
  • Help URLs in errors

Priority 41: Community Features

  • Official package registry
  • Package discovery
  • Code examples repository
  • Snippet sharing
  • Playground website
  • Community forum
  • Discord/Slack
  • Stack Overflow tag
  • Awesome-noviq list
  • Newsletter
  • Blog
  • Podcast
  • Conference/meetups

Priority 42: Advanced Memory Management

  • Manual memory management
  • Move semantics
  • Borrow checker
  • Lifetime annotations

Priority 43: Experimental Features

  • Dependent types
  • Linear types
  • Effect system
  • Algebraic effects
  • Ownership types
  • Session types
  • Gradual typing
  • Structural typing
  • Row polymorphism
  • Kind system

Priority 44: Additional Conditional Features

  • Guard clauses
  • Inline if expressions

Already Implemented ✓

  • Single-line comments (#)
  • String literals
  • Number literals
  • Boolean literals
  • Photon build tool (basic)
  • Linux support
  • macOS support
  • Windows support
  • x86_64
  • ARM64 (aarch64)

Not Planned (Won't Add Official Support)

  • ARM (32-bit)
  • MIPS
  • PowerPC