-
-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🕴️ Write a draft for Mission Statement of The One Programming Language🕴️ #30
Comments
Mission Statement of a big project as GCC: Mission Statement of similar projects: |
F# is a mature, open source, cross-platform, functional-first programming language. It empowers users and organizations to tackle complex computing problems with simple, maintainable and robust code.
|
Mission Statement of Python:
|
Hey John, If possible, write this yourself. Finally, we get help from translators to improve the text. And so, I am looking forward to see your PR. Mission Statement of The One Programming Language
A draft summary from whole of the projectWhat does this means? A tool to write command-line software.
Similar to what we learned in university from Programming session.
And now, Why they should choose One and not C? So developers can write/develop programs easily This is first step of project. ================== At the next step, we want to release a framework for web. In general, you need to learn at least 3-4 languages or more tools to create a website. Some draft and messages between my recent inboxThis is just to get a basic idea of what you can say and how you think: The ease of our language in the library will be determined at runtime, and this is not a matter of the first stage. It's why a person does not use C and comes here to use One. because it's really nice with many needed features. Some of the features we have can bring Python comfort to C. We want to help developers to write less bugs and more useful programs.Did you say C? It does not have a package manager at all. A very necessary tool is the package manager. So that others can manage libraries more easily. Next we need to keep runtime library functions to work in Windows, Linux, macOS as well. In the next step, it will be determined when you can design the site using the same language. Languages like Python and PHP are good. We need to keep some features of script language in a compiler / system language. Developers need to be able to create secure executable files / output from the program source. For example: PHP is a good language, but it's not clear. Why not clean? unlink(): remove a file
fopen(): open a file to read/write/append
file_put_contents(): open a file to write/append
file_get_contents(): open a file to read See function names, they are really bad. Why deleting a file is not related to other function names. What we want to design is: These examples do not end here and continue. This is what I wrote two years ago: Maybe the reasons I mentioned are enough for a good language. But we do not want to produce a good product. We have to make something great. I'm not going to make anything for myself. It's supposed to be something that helps others. So I should not be alone. Maybe you have ideas that we can take into and make a better product. I end my message with a sentence from a businessman: Fall in love with your customers' problems. Do not love your product. |
@BaseMax may I help in writing a draft ? |
Or, may I help with some other issues right now ? |
Hello again |
For example this sample. main {
names = ['Hamza', 'Max', 'John']
for name in names {
println('Hello, $name')
}
} |
For example: We not should allow null, and need to keep null safety and check all null values at compile step. C does not. |
Data TypeThe data type must be precisely determinable.
For example:
The If you want to develop system-level program and want to work with ASCII char. you can use Auto Data TypeDid you see one syntax:
if you want, you can cast to float64:
|
Function return valueAnother point: we need ability to return multi values and variables in a single function. (Go has this feature as well) i8, i16, u8 funcName {
return -10, 1000, 5
} or funcName : i8, i16, u8 {
return -10, 1000, 5
} More clear: funcName(arg1, arg2, arg3) : i8, i16, u8 {
return -10, 1000, 5
} |
OOP? yes or no?What do you think? I not think too much to deep features of OOP. You can define a function public easily:
|
GCGC? I think RUST method is good for compiler languages. Check this for Rust gc: https://stackoverflow.com/questions/32677420/what-does-rust-have-instead-of-a-garbage-collector If you want more technically article about Rust gc: https://manishearth.github.io/blog/2021/04/05/a-tour-of-safe-tracing-gc-designs-in-rust/
https://www.reddit.com/r/rust/comments/b742vu/if_rust_has_no_garbage_collector_how_does_it/
Both expert user and new user? Good idea. Yes, in most case that can easily free after ending that block. golang have |
Multi ThreadWe also want this. C++ have good functionality in this case. nice and clean syntax. (Not completely)
And finally |
One Programming Language
Definition & FeaturesA programming language should be easy, fun to learn, and rich in terms of features and funcionalies. Those are exactly the requirements that we are trying to acheive in One programming language project. Consequently, One programming language is
In a nutshell
|
Thanks Kotbi.
What do you means by
We are a compiler so we will not have an interpreter I think. Just to make clear: We going to generate an object-code and binary and finally an executable file. so it's not a virtual machine or byte-code like JVM/java. And we generate binary file such as C, Go, Rust, etc. |
Just to make clear above paragraphs: For example, interpreter-like languages such as Python and PHP or Javascript, TypeScript... have some very good features some things missed at C. |
It’s aimI'm a programmer myself and see problems some things others face but they do not try to change.
We want to provide a new tool to write programs easier and better.
"One language" will be a compiler.
The compiler means the ability to convert your human read-able source to machine code (object code) and finally an executable file. And I do not have to share source code. and If I share Interpreter means you need source code to run that. And interpreters parse and check source code at runtime. (read every character of your input file) But compilers generate machine code at compile time. and at run-time, this just will execute and not need to parse or check something.
You can create a Python unable to create a directly machine code. (I aware this days python can generate Maybe you use another project called Cython and this can convert python to C and finally create
Yes, interpreters have some features something missed at compilers.
so we have:
Also, We want to develop a new solution to design and create websites without learning many languages.
Yes. But maybe we provide some internal libraries, But without the external library. Currently, if you want to create a website, you have to learn HTML, CSS, JS, etc. Just 3 different languages for the front-end, Still you need more for the back-end part.
I do not mean design, I talk about programming. so the front-end and the back-end. We just want to help other developers to create the fast and maintainable programs in an easy way. |
The situation and the difference we'll make
"THE SITUATION OF THE MARKET AND THE CHANGES THAT OUR LANGUAGE WILL CREATE." The main purpose is to keep one language for the most need of the programmers. I mean "One" word.
You can if it's useful, But I know it's not possible to use one tool for everything. For example, we not useful for android and mobile applications right now.
Yes sure.
Yup
I want to add: Developers will able to write fast programs in less time and will need less time in the future to develop or maintain their programs. In the first step, we only focus on the system and compiling the program to the executable files. The ability to create a website is our second plan.
|
DESIGN AND DEVELOPMENT GOALSI am not sure what's different from this subject to above.
|
FEATURES OF THE LANGUAGE
But our project is still at the alpha version and all features are currently not stable and ready. We did some different versions of compilers, But right now we are rewriting the whole beginning Since we have to keep the project clean. |
our next topic is "DESIGN DECISIONS"I not sure what I have to say. :)
If we go deeper, this will be long. We can talk about everything. For example, In One language you can define the data type of variable, and also you can leave it. Since the compiler can auto-detect data-type of your value. |
"run-time system choice"At runtime, we do not have NULL and our language is null-safety. About run-time, currently, we will use Glibc and programmers allow to use and link this. Because all of the computer library needs this. (pthread, libcurl, libopenssl, mysql/mariadb database, etc) At old: we generated C-intermediate code and used a C compiler to generate an executable file in the background of the compiler. But Currently, At first step of the project, we use LLVM as the back-end of the compiler. so we are able to generate object-file and executable files for every OS and architecture. And so, One compiled programs are mostly optimized with great performance. |
LIBRARYThe topic we are going to write now is "LIBRARY"
We will have a module/package store to list all of One package and users able to see a list of popular and most downloaded packages, most used packages, recently updated packages, etc. Everyone allow to create and publish a package, we will have a check team to review all packages. But we will flag great and useful libraries.
Yes, we need to support third-party libraries step by step, and adding these, and design an intermediate interface to connect to the main library. For example, we need to use databases. e.g: MySQL/MariaDB |
Interoperabilitydirect C interface |
supported platforms
In order of priority:
Yes, but not now. |
You can also see my notes here. THE MISSION STATEMENT OF THE ONE PROGRAMMING LANGUAGETHE SITUATION OF THE MARKET AND THE CHANGES THAT OUR LANGUAGE WILL CREATE. IT’S AIMsolving problems that every programmer face. providing a new tool to write programs in an easier and better way. developing a new solution to design and to create websites without learning many languages. our main purpose is to provide one language for every need of the programmers. DESIGN AND DEVELOPMENT GOALS
FEATURES OF THE LANGUAGEThe project is still at alpha version. DESIGN DECISIONS
RUN-TIME SYSTEM CHOICEAt runtime, we do not have NULL and our language is null-safety. So you can make sure everything works at runtime, Since you passed so many errors at compile step :) About run-time, currently, we will use Glibc and programmers allow to use and link this. Because all of the computer library needs this. (pthread, libcurl, libopenssl, mysql/mariadb database, etc) But We have plan to also able to generate executable file without needing to C library (Glibc), We did this before and able to do this. At old: we generated C-intermediate code and used a C compiler to generate an executable file in the background of the compiler. But Currently, At first step of the project, we use LLVM as the back-end of the compiler. so we are able to generate object-file and executable files for every OS and architecture. And so, One compiled programs are mostly optimized with great performance. LIBRARYWe will have a module/package store to list all of One package and users able to see a list of popular and most downloaded packages, most used packages, recently updated packages, etc. Everyone allow to create and publish a package, we will have a check team to review all packages. But we will flag great and useful libraries. So when a package flagged by our team, we will support and manage bugs and probably issues. We will support third-part libraries in future. INTEROPERABILITY
SUPPORTED PLATFORMS
|
Syntax suggestion from a friend, dear Amin:
|
One Programming Language
Definition & FeaturesA programming language should be easy, fun to learn, and rich in terms of features and functionalities. Those are exactly the requirements that we are trying to achieve in the One programming language project. Consequently, One programming language is
In a nutshell
|
Here is the final version of the Mission Statement. THE MISSION STATEMENT of the One LanguageOne Language for allIn today’s world, there are so many programming languages, and each of them is used for different purposes. If you need executable programs, scripts, and websites for your project, to be able to do all these operations, you need more than 3 different languages. The One language will be a game-changer because it is not focused on any specific area, it’s a multi-purpose language. It will serve all your needs, and become your only need. OUR AIMThe One language project aims at reducing the time needed for writing, developing, or maintaining programs. During the process of writing codes, every programmer faces some common problems but they do not think of solving these problems but they try to get used to them. We, the One language developing team, want to put an end to this. Our aim is to solve all these problems and to present you a smooth developing experience. The One Language aims to provide you a new tool to write programs in an easier and better way. Developing a brand-new solution to the design and creation processes of websites, without the need of learning different languages is one of our intentions. In short, the main purpose of One Language is to provide programmers a single language for all of their needs and also making their lives easier. DESIGN AND DEVELOPMENT GOALSThe One Language development team is planning to reach the aims of the project by achieving these goals:
FEATURES OF THE LANGUAGEThe project is still in Alpha. TO BE UPDATED. DESIGN DECISIONS
RUN-TIME SYSTEM CHOICEAt runtime, One doesn’t have NULL, and the language supports null safety. So you can make sure everything works at runtime, as you have already passed so many errors at compiling step. Currently, we use Glibc, and programmers are allowed to use and link it, because all of the libraries need Glibc. (pthread, libcurl, libopenssl, mysql/mariadb database, etc.) Yet, we are also planning to be able to generate executable files without the need for C library (Glibc). We tried this before, and we were able to do it. LIBRARYThe One language will have a module/package marketplace to list all of the packages compatible with One, and users will be able to see the lists of packages such as the most popular, the most downloaded, or recently updated packages. Everyone will be allowed to create and publish packages. We will have a quality control team to review all packages, and we will flag the great and useful ones. If your package is flagged by our team, you will have our support to manage the bugs and probably the issues. Support for third-party libraries is also among our future plans. INTEROPERABILITY
SUPPORTED PLATFORMS
|
MISSION STATEMENT “One offers a unique design experience for programmers around the world, by providing creative, ingenious, and innovative solutions, it’s time for One programming language for all!” VISION STATEMENT “Compile and Unite with One Language” ONE The best cost-efficient, fast and reliable language did not exist until now, with One language it is undeniable that you will reduce the cost of building software creatively and innovatively! PURPOSE The One Language aims to introduce the ultimate solution to your time and cost barriers to achieve your goals faster efficiently and creatively. DESIGN AND DEVELOPMENT GOALS The One Language development team is on its way to achieving the following:
FEATURES OF THE LANGUAGE The project is still in the Alpha phase. And to be updated DESIGN DECISIONS Modules referable to each other and dependable on other modules RUN-TIME SYSTEM CHOICE At runtime, ONE doesn’t NULL, and the language supports null safety. So, you can make sure everything works at runtime, as you have already passed so many errors in compiling step. LIBRARY The One Language will have a module/package marketplace to list all the packages compatible with One, and users will be able to see the lists of packages such as the most popular, the most downloaded, or recently updated packages. INTEROPERABILITY Direct C Interface SUPPORTED PLATFORMS Linux |
HI
We are in early stage and need help of everyone, so please come on and help to each other and write mission statement for the project.
https://github.com/One-Language/One/blob/master/MISSION_STATEMENT.md
I am looking forward to see some PR for this file.
The text was updated successfully, but these errors were encountered: