-
Notifications
You must be signed in to change notification settings - Fork 2
/
ideas.txt
67 lines (66 loc) · 3.65 KB
/
ideas.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
`50 points about Donsus`:
(1) - Donsus is a compiler
(2) - Donsus is statically typed, providing clean and efficient methods of static typing.
(3) - Donsus has no indentations as white spaces don't matter.
(4) - Donsus is a language implemented without the GIL and avoids it deliberately.
(5) - Donsus tends to be really FAST(ideas from tiny c compiler, or any other really fast compilers).
(6) - Donsus supports multi parallelism(TRUE MULTI-THREADING).
(7) - Donsus provides automatic memory management, although memory can be allocated manually as an alternative.
(8) - Donsus tends to support embedded programming and low-level interfaces.
(9) - Donsus's syntax should be relatively high-level, Python-like(NOT IDENTICIAL).
(10) - Donsus is an object-oriented language(Dr. Alan Kay articles).
(11) - Donsus implements shorthand-keyword arguments.
(12) - Donsus Should be the best option for scientific computing(Ideas can be gathered and inspired by numpy).
(13) - New types: struct(record like type)?
(14) - Donsus's functions are late-bound.
(15) - Donsus is a JIT compiler??
(16) - Donsus doesn't have any dependencies other than the c++ programming language.
(18) - Donsus's grammar is context-free(NOT PEG).
(20) - async syntax support(concurrency)
(21) - generators support
(22) - No exceptions - only error codes, similar to GO
(23) - REALLY DETAILED ERROR MESSAGES(like rust's error messages)
(24) - Cross-platform support(custom codegen or llvm?)
(25) - Add the possibility for creating a new type natively
(26) - Mathematical operations/ideas can be inherited from: https://docs.julialang.org/en/v1/manual/mathematical-operations/
While keeping the language high-level.
(27) - Vectorisation(similar to numpy arrays) (https://www.jsums.edu/robotics/files/2016/12/FECS17_Proceedings-FEC3555.pdf)
(28) - Get ideas from forth language
(29) - executing assembly code directly from the language(syntax support)
(30) - context managers(with)
(31) - decorators
(32) - DRY(dont repeat yourself) PRINCIPLE
(33) - import system
(34) - switch-case statements including break and continue statements
(35) - enums supported in syntax
(36) - typescript like interfaces
(37) - Generics types supported and generic programming supported
(38) - Deep understanding of types and consider typescript examples
(39) - unstable sorting
(40) - Advanced Regular expression support
(41) - Compilers giving warning based on this idea:(https://kodare.net/2023/02/02/names-can-be-so-much-more.html)
(42) - Realtime code verification (https://dafny.org/)
(43) - Get ideas from Mojo
(44) - Get ideas from zig
(45) - Custom Neural CPU
(46) - Support most backends
(47) - Own grammar type(dong)
(48) - cpp's closure system(calls destructor when it goes out of scope)
(49) - some of the cpp proposals
(50) - it should be able to execute c++ and c code similar to zig
(51) - using an explicit suffix to indicate the type, like rust does for example
(52) - DO NOT HAVE SUPPORT FOR IMPLICIT CONVERSIONS
(53) - STATIC ANALYSIS
(54) - POINTERS ARE COMPLICATED(https://www.ralfj.de/blog/2020/12/14/provenance.html)
(55) - NO UNDEFINED BEHAVIOUR
(56) - BigInts (v8)
(57) - ability to mutate variables with the = keyword
(58) - meta-programming(templates)
(59) - integer constants(https://en.cppreference.com/w/c/language/integer_constant)
(60) - Might add implicit conversions - only if the data won't be lessed - smaller to bigger
(61) - Keeping the implicit conversions impossible and making it explicit would be nice - only allow conversations from constants
(62) - Do not mix pointers with arrays
(63) - unified type system, comptime code, flow-sensitive typing
(64) - Untyped constants similar to go and odin
(65) - array programming
(66) - bounds checking