├── CONTRIBUTING ├── LICENSE ├── README.md ├── carbon-lang.md ├── mojo-lang.md └── roc-lang.md /CONTRIBUTING: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Welcome contributions to the New Programming Languages Showcase repository! To ensure that all contributions are valuable and consistent, please follow these guidelines when submitting changes: 4 | 5 | ## Adding a New Programming Language 6 | 7 | To add a new programming language to the repository, please follow these steps: 8 | 9 | - Follow the format specified in the README.md file. 10 | - Provide accurate and up-to-date information. 11 | - Use proper grammar and spelling. 12 | - Include references when necessary. 13 | 14 | ## How to Contribute 15 | 16 | To contribute to this repository, follow these steps: 17 | 18 | 1. Fork this repository. 19 | 2. Create a new branch for your changes. 20 | 3. Make your changes and commit them to your branch. 21 | 4. Submit a pull request. 22 | 23 | After receiving your pull request, we will review your changes and merge them if they meet our requirements. 24 | 25 | Thank you for your interest in contributing to NewLingo! 26 | We appreciate your contributions to this repository! 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 multikitty 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # New Programming Languages Showcase 2 | 3 | This repository is a collection of information and resources on various new programming languages. Here, you can find descriptions, development details, advantages, usage examples, successful applications, and future prospects of these languages. Hope that this repository will be a helpful resource for developers looking to explore new programming languages. 4 | 5 | 6 | ## Contributing 7 | 8 | Welcome contributions from everyone! If you know about a new programming language that should be included in this repository, please feel free to open an issue or submit a pull request. Please make sure your contributions follow the [Contribution Guidelines](https://github.com/multikitty/New-Programming-Languages-Showcase/blob/master/CONTRIBUTING.md). 9 | 10 | 11 | ## Table of Contents 12 | - [List of Programming Languages](#list-of-programming-languages) 13 | - [Contributing](#contributing) 14 | - [License](#license) 15 | 16 | 17 | ## List of Programming Languages 18 | 19 | Currently, the following programming languages are included in this repository: 20 | 21 | - [Mojo](https://github.com/multikitty/New-Programming-Languages-Showcase/blob/main/mojo-lang.md) 22 | - [Roc](https://github.com/multikitty/New-Programming-Languages-Showcase/blob/main/roc-lang.md) 23 | - [Carbon](https://github.com/multikitty/New-Programming-Languages-Showcase/blob/main/carbon-lang.md) 24 | 25 | Please feel free to contribute to this list by submitting a pull request! 26 | 27 | 28 | ## Thanks to Contributors 29 | 30 | ![Alt](https://repobeats.axiom.co/api/embed/ec25841d67de318634b1337eb7962c1f300ac5d5.svg "Repobeats analytics image") 31 | 32 | 33 | 34 | 35 | 36 | 37 | ## License 38 | 39 | This repository is licensed under [MIT License](https://github.com/multikitty/New-Programming-Languages-Showcase/blob/master/LICENSE). 40 | -------------------------------------------------------------------------------- /carbon-lang.md: -------------------------------------------------------------------------------- 1 | # Carbon (Programming Language) 2 | 3 | ### Description 4 | 5 | Carbon is a statically typed systems programming language developed by Google, designed to improve upon C++ by offering a safer and more expressive syntax, enhanced tooling, and reduced maintenance burdens. It is interoperable with existing C++ code, allowing developers to gradually integrate Carbon into their C++ projects. 6 | 7 | ### Developed By 8 | 9 | Carbon was introduced by Chandler Carruth, a principal software engineer at Google, during the 2022 CppNorth conference. The development of Carbon has been supported by contributions from a broader programming community, reflecting a collaborative effort to address the challenges faced in systems programming. 10 | 11 | ### Developed In 12 | 13 | Primarily developed in the United States by engineers at Google, Carbon is an open-source project, enabling developers from around the world to contribute to its evolution. 14 | 15 | ### Brief History 16 | 17 | Carbon was publicly announced in July 2022 as an experimental language aimed at addressing the complexities and maintenance challenges associated with large C++ codebases. The need for a modern programming language that could provide improved features and ease of use led to Carbon's creation. Although still in its early stages, Carbon has garnered attention and input from a large programming community, which continues to shape its development. 18 | 19 | ### Use Cases 20 | 21 | - **Systems Programming**: Carbon is intended for systems-level programming, where performance and low-level memory management are essential. 22 | - **High-Performance Applications**: Similar to C++, Carbon is suitable for applications requiring high performance, such as gaming engines, real-time systems, and scientific computing. 23 | - **Interoperability with C++**: Carbon allows developers to replace C++ code incrementally while maintaining existing codebases, facilitating a smoother transition. 24 | 25 | ### Advantages 26 | 27 | The advantages of Carbon include: 28 | - **Improved Syntax and Safety**: Carbon offers a more expressive syntax that enhances code readability and safety. 29 | - **Memory Safety**: The language incorporates features that promote memory safety, reducing the likelihood of common programming errors. 30 | - **Tooling and Ecosystem**: Carbon benefits from a growing ecosystem of tools designed to enhance developer productivity. 31 | - **Interoperability with C++**: The ability to work alongside existing C++ codebases allows for gradual adoption. 32 | 33 | ### Future Outlook 34 | 35 | The future of Carbon hinges on its adoption by the C++ programming community. If it continues to evolve as planned, Carbon could emerge as a strong alternative to C++ for systems programming and high-performance applications. However, as it is still experimental, its widespread acceptance remains to be seen. 36 | 37 | ### How To Learn 38 | 39 | - **Official Documentation**: Start with the official Carbon Language documentation to understand the language's syntax, features, and design principles. The documentation is available [here](https://docs.carbon-lang.dev). 40 | - **GitHub Repository**: Explore the Carbon Language GitHub repository to access the source code, build instructions, and community resources. The repository can be found [here](https://github.com/carbon-language/carbon-lang). 41 | - **Announcement Video**: Watch the announcement video from CppNorth to gain insights into the goals and motivations behind the Carbon Language project. 42 | - **Community Involvement**: Engage with the Carbon Language community through forums, discussions, and mailing lists to share experiences, ask questions, and learn from other developers. 43 | - **Experimentation**: Practice coding in Carbon by utilizing the Carbon Explorer prototype interpreter, which allows running isolated examples and provides detailed analyses of the language's semantic model and abstract machine. 44 | - **Compiler and Toolchain**: As the Carbon Language project progresses, focus on developing the Carbon toolchain to support Carbon ↔ C++ interoperability. This will enable you to compile Carbon code and integrate it with existing C++ projects. 45 | - **Roadmap and Updates**: Follow the Carbon Language roadmap to stay informed about the project's progress, milestones, and future plans. Regular updates will help you track the language's evolution and plan your learning journey accordingly. 46 | -------------------------------------------------------------------------------- /mojo-lang.md: -------------------------------------------------------------------------------- 1 | # Mojo (programming language) 2 | 3 | 4 | ### Description: 5 | 6 | Mojo is a programming language developed by Modular Inc., initially released internally in September 2022. It was created to address the complexities of programming across the entire stack in the field of machine learning and artificial intelligence (AI). The language offers innovative and scalable features, including powerful compile-time metaprogramming, adaptive compilation techniques, and caching throughout the compilation flow. Mojo aims to target accelerators and heterogeneous systems commonly used in AI, making it uniquely suited for this field. 7 | 8 | ### Developed by: 9 | 10 | Mojo was developed by Modular Inc., a company founded by Chris Lattner, the original architect of the Swift programming language, and Tim Davis, an ML thought leader at Google. The founders' expertise and vision have contributed to Mojo's development. 11 | 12 | ### Developed in: 13 | 14 | An initial build of Mojo was introduced by Modular Inc. in September 2022. Since then, it has undergone further development to become a viable and innovative programming language. 15 | 16 | ### Sponsored by: 17 | 18 | Mojo leverages the Multi-Level Intermediate Representation (MLIR) compiler framework to power its advanced compilation features. MLIR, initially started at Google and continued at Modular, has been widely adopted in the machine learning accelerator community for its ability to build domain-specific compilers. 19 | 20 | ### Brief History: 21 | 22 | Mojo's history is rooted in the challenges of AI and machine learning programming. The founders of Modular Inc. recognized the need for a new programming language as they encountered complexities while unifying AI infrastructure. They found existing languages lacking in support for modern chip architectures and accelerators. This realization led to the development of Mojo, with a focus on providing a powerful and unified solution for AI workloads. 23 | 24 | ### Advantages: 25 | 26 | Mojo offers several advantages over Python, a dominant language in the AI and machine learning fields. It provides compatibility with the Python ecosystem while introducing features for high-performance and low-level programming. Its hybrid type system allows developers to choose between static and dynamic typing for optimal control and predictability. Additionally, Mojo incorporates concepts like the borrow checker from Rust, enhancing memory safety. 27 | 28 | ### Use Cases: 29 | 30 | Mojo's syntax and features are exemplified through the use of keywords like "fn" for creating typed, compiled functions and "struct" for memory-optimized alternatives to classes. The language's compatibility with Project Jupyter and its ability to call existing Python code demonstrate its versatility and ease of adoption within the Python ecosystem. 31 | Mojo's development progress is evident in its accessibility. It became accessible through browsers in May 2023 and is available locally on Linux systems since September 2023. These milestones reflect the language's evolution and readiness for use. 32 | 33 | ### Future Outlook: 34 | 35 | Modular Inc. has ambitious goals for Mojo's future. These include achieving full compatibility with the Python ecosystem and further enhancing its systems programming capabilities. Mojo is positioned to simplify the complexities of AI and machine learning programming while maintaining compatibility with existing Python code, ensuring a smooth transition for developers. 36 | 37 | ### How to Learn: 38 | 39 | For those interested in learning Mojo, its compatibility with Project Jupyter provides a familiar environment for experimentation and development. Developers can gradually migrate code from Python to Mojo while benefiting from Mojo's performance and low-level control. Mojo aims to offer a unified language that builds upon Python's strengths while addressing its limitations, creating a more robust and efficient programming experience for AI and systems-level development. 40 | [Check out the Mojo programming manual](https://docs.modular.com/mojo/programming-manual.html) 41 | -------------------------------------------------------------------------------- /roc-lang.md: -------------------------------------------------------------------------------- 1 | # Roc (programming language) 2 | 3 | ### Description: 4 | 5 | Roc is a functional, compile-to-binary programming language that introduces a new layer of abstraction into the technology stack. The language offers a statically typed system to simplify refactoring, build low-level applications and support embedded systems. It also offers some key capabilities associated with functional programming, such as isolation of code and separation of behavior and data. 6 | 7 | ### Developed by: 8 | 9 | Roc was spearheaded by Richard Feldman, who made major contributions to Elm. Richard Feldman took on the task of creating Roc programming language for NoRedInk, working full-time on the project. The language already has 12,660 commits, bringing in experienced contributors to the project. 10 | 11 | ### Developed in: 12 | 13 | The Roc programming language is still in development and not yet ready for a 0.1 release. ROC, short for Revolutionary Object-oriented C, has a fascinating history that traces back to its origins in the early 2000s. Spearheaded by a group of visionary developers, ROC aimed to bring a fresh perspective to the programming world. Over the years, it has undergone significant transformations, with key influencers shaping its trajectory. 14 | 15 | ### Sponsored by: 16 | 17 | The Roc programming language is sponsored by the Roc Programming Language Foundation, a nonprofit charity that pays open-source contributors to develop Roc. Corporate sponsors of Roc include Vendr, RWX, Tweede golf, ohne-makler, and Decem. Additionally, individuals and organizations can donate to Roc's development through GitHub Sponsors and Liberapay, with all donations going through the Roc Programming Language Foundation. 18 | 19 | ### Brief History: 20 | 21 | The Roc programming language is a functional, compile-to-binary language that was developed with the goal of creating a fast, friendly, and functional language for building fast and running fast. It was inspired by the Elm programming language, which has a fantastic language design. The Roc language was spearheaded by Richard Feldman, who made major contributions to its development. 22 | 23 | ### Advantages: 24 | 25 | The Roc programming language has several advantages, including: 26 | - **Ease of testing**: Roc allows developers to pull out different elements and test each function separately, making it easier to pinpoint problem areas and perfect one-off functionality. 27 | - **Readability**: Roc is a functional coding language that many developers find aesthetically pleasing. Its straightforward syntax prioritizes readability and ease of use, making it accessible to beginners. 28 | - **Performance**: Roc is generally faster than dynamic or gradual languages, and its programs should have almost strictly less runtime overhead than equivalent programs written in other languages. Benchmark testing has shown that Roc is as fast as C++ and faster than Go. 29 | - **Safety**: Roc offers built-in protections to keep amateur programmers from making mistakes that could damage their computers. It is also a memory-safe language with automatic memory management, which reduces the risk of memory-related errors. 30 | - **Versatility**: Roc's fusion of object-oriented programming and reactivity equips developers to work on diverse projects. It is targeted for use as a low-level language, making it suitable for backend applications. 31 | 32 | Overall, Roc's simplicity, readability, performance, safety, and versatility make it a promising language for developers to consider. 33 | 34 | ### Use Cases: 35 | 36 | The Roc programming language is still in development, and its use cases are not yet fully established. However, based on its design and features, some potential use cases for Roc include: 37 | - **Backend development**: Roc is targeted for use as a low-level language, making it suitable for backend applications. 38 | - **Memory-safe programming**: Roc offers built-in protections to keep amateur programmers from making mistakes that could damage their computers. It is also a memory-safe language with automatic memory management, which reduces the risk of memory-related errors. 39 | - **Performance**: Roc is generally faster than dynamic or gradual languages, and its programs should have almost strictly less runtime overhead than equivalent programs written in other languages. 40 | - **Versatility**: Roc's fusion of object-oriented programming and reactivity equips developers to work on diverse projects. 41 | - **Testing**: Roc allows developers to pull out different elements and test each function separately, making it easier to pinpoint problem areas and perfect one-off functionality. 42 | - **Developing new languages**: Roc's creator, Richard Feldman, has mentioned that the development of programming languages in general has not kept up with the rapid pace of technology. Roc's design and features may help in the development of new languages that cater to the needs of modern software development. 43 | 44 | As Roc continues to develop and gain traction, its use cases may expand and become more clearly defined. 45 | 46 | ### Future Outlook: 47 | 48 | The future outlook of the Roc programming language appears promising, with ongoing development and growing community involvement. Some key points from the search results include: 49 | - **Funding and Development**: The development of Roc is being funded, and the language is actively being developed, with a growing number of contributors and core developers. 50 | - **Simplicity and Readability**: Roc prioritizes simplicity and readability, offering an accessible entry point for beginners and equipping developers to work on diverse projects. 51 | - **Versatility and Safety**: The language's fusion of object-oriented programming and reactivity, along with its built-in protections and memory safety, make it suitable for various applications and contribute to a safer programming experience. 52 | - **Performance and Testing**: Roc's focus on performance and ease of testing, including the ability to pull out different elements and test each function separately, positions it as a language with potential for a wide range of use cases. 53 | - **Community and Involvement**: The language has a growing community of developers, and individuals are encouraged to get involved in its development. 54 | 55 | In summary, the future outlook for Roc is characterized by ongoing development, a focus on simplicity, versatility, and safety, as well as a growing community of developers and contributors. As the language continues to evolve, it may offer a compelling option for various programming tasks and projects. 56 | 57 | ### How to Learn: 58 | 59 | To learn the Roc programming language, you can follow these steps: 60 | - **Explore the Roc GitHub repository**: Visit the [Roc GitHub repository](https://github.com/roc-lang/roc) to learn more about the language, its development, and its community. 61 | - **Read tutorials and guides**: There are several tutorials and guides available online that can help you understand the basics of Roc. For example, the [Roc Programming Language Foundation's tutorial](https://www.roc-lang.org/tutorial) covers how to build Roc applications, write tests, and use the REPL (Read-Eval-Print Loop). Another guide provides an overview of Roc's basics, advanced features, and practical applications. 62 | - **Learn from existing resources**: While there may not be a comprehensive list of resources available yet, you can start by learning from existing resources like the Roc Programming Language Foundation's tutorial and the guide on CodeAvail. 63 | - **Join the Roc community**: Engage with the Roc community on platforms like Zulip Chat to ask questions, seek clarification, and get support from experienced developers. 64 | - **Practice and experiment**: As you learn Roc, try writing your own applications and experimenting with different features and concepts. This will help you gain hands-on experience and deepen your understanding of the language. 65 | 66 | Remember that learning a programming language is a continuous process, and it's essential to embrace challenges, seek out resources, and enjoy the journey of becoming proficient in Roc programming. 67 | --------------------------------------------------------------------------------