Home Backend Development Python Tutorial MSNAn Experimental Programming Language for the Bold Developer

MSNAn Experimental Programming Language for the Bold Developer

Nov 24, 2024 pm 07:54 PM

Beginnings

A few years ago, after tossing 2 draft languages, I began my personal project pinnacle. MSN2 was (and still is) what I consider to be a mock programming language, mostly due to its unconventional, deoptimized interpretation methods that can result in language integrity issues.

But then again I ask myself, why would I keep coming back to this project over the years? Why hadn't I tossed it with the other drafts in fear of developers embarrassment? I kept it because of how far I exceeded my expectations for a programming language having a single contributor, even though I'm still miles short of the vision I have.

Why another language?

Early in development, there was no real intention to release it to the public as it was merely a learning exercise, thus there's no real reason to introduce a new language. Regardless, as a functional tool and a main source of my Python studies, the benefits of building a programming language on top of Python equips us with the not only the complete capabilities of Python itself, but new features for:

  • multiprogramming
  • syntax additions
  • automation (win 10 exclusive)
  • multilingual (as of 2.0.403, Python, JavaScript, Java, C)
  • MSN2 -> JavaScript/React transpilation
  • API endpoint creation and interactions
  • Simple, lightweight containers

Because of the ease of implementing new features, it could serve as the foundation for a more community-oriented language that continuously progresses through community feedback and contributions. With these the current and future contributions, we create opportunity to:

  • Innovate programming strategies
  • Foster cross-language interoperability
  • Support flexible and customizable syntax
  • Provide pre-built utilities for natural language processing (NLP)
  • Facilitate the creation of custom libraries and plugins
  • Adapt to a wider range of development environments

and how much more...?


Capabilities

It's easy to say the language is very capable, and in certain situations, I'd argue it's more capable with less code. It’s also becoming more and more enjoyable to use as a developer as updates are released. Unfortunately its not as easy to say using the language is a cakewalk. I've released an msn2 syntax highlighting extension for VSCode, basic documentation, and many tutorials and code examples. Though it becomes difficult without auto-completion of keywords or tokens and understanding implications when writing code certain ways. These issues are addressed in the issues tab of the MSN2 repository.

Complete, Runnable Examples

(None of these examples have extra code out of frame)

  1. simplifying simple operations
    MSNAn Experimental Programming Language for the Bold Developer

  2. starting an API endpoint and querying
    MSNAn Experimental Programming Language for the Bold Developer

  3. creating a personalized macro
    MSNAn Experimental Programming Language for the Bold Developer

  4. running inline JavaScript (also possible with Java and C)

MSNAn Experimental Programming Language for the Bold Developer

  1. These examples hardly scratch the surface of MSN2, find many much much larger projects and demonstrations in the MSN2 repository

Larger Project Examples

  • Implementing C Syntax
  • Automating Excel
  • Full-Stack Application - HTML MSN2 as backend
  • Automation - Playing a random chess opening on chess.com
  • Spinning up a Simple Streamlit Container
  • My TikTok (15 projects) - Injecting MSN2 into leetcode.com
  • All large test projects

Drawbacks

The above sounds great! I'm entirely invested in making the steps to build on what I've created. But as much as I wish there weren't issues in such a large, overly complex, maintenance-demanding codebase, there are XD.

Integrity

As of MSN2 2.0.403, there are several, fixable integrity issues potentially producing incorrect results at runtime. Luckily integrity issues are temporary, but its important they're addressed quickly.

Speed

With Python as a backend, speed becomes a brutal drawback, and that's speed. Speed will always be an issue with MSN2, and unfortunately we can only make attempts to make the base language match a speed close to Python's own.

So what can we do?

  • We can offer a polyglottal approach - While we manage a slower, overhead process, this process can offer ease of launching programs in languages that are faster. MSN2 GitHub - See Multilingual Implementations
  • We can make it worth it - With Python maintaining the larger backend, MSN2 is given a unique opportunity to explore what's functionally possible from the developers side when having an extensive and flexible set of built-in integrations across languages and environments. This enables developers to more effectively coordinate extensive data pipelines, automation workflows, and large-scale systems, potentially making it easier to manage and scale projects that rely on Python’s boundless, production ready capabilities.
  • We can optimize - There are plenty of points of deoptimization during interpretation, this would be an initial source of major speed gain.
  • We can accept it - Base MSN2 will never be used for speed-dependent applications, such as those in data science, real-time analytics, high-frequency trading, and plenty of other fields. MSN2 would be used primarily for customizable program orchestration, using highly generalized functions quickly and seamlessly, allowing developers to create powerful workflows that connect various programming languages and tools. This flexibility makes it an ideal choice for managing complex, multi-language projects and automating diverse tasks without the need to switch environments or write extensive Python.

Wrapping Up

This project has been an ambitious journey, what started as a learning exercise quickly grew into a playground for exploring language design and new, creative proof of concepts. MSN2 has serves as a learning experience that continuously challenges my programming capabilities. It's far from acceptable, and much farther than perfect, but that's part of what makes it exciting - it's full of opportunities to grow and improve.

While the majority of the language is not entirely production ready, and testing hasn't reached 100% coverage, MSN2 represents the potential of unconventional thinking and freedom to experiment without the pressure of perfection. Whether it becomes a useful tool in projects or remains a personal endeavor is up to myself and the community, but its future depends on continued development, feedback and refinement. For now, I see it as a stepping stone, one with rough edges and plenty of cracks, but still solid enough to stand on.

helpful links
MSN2 on GitHub
MSN2[2.0.401] documentation
my website / portfolio

The banner of this post is unformatted, yet runnable MSN2 code incorporating inline mixes of JavaScript, Java, C, all interacting with an API endpoint spun up in the same line.

The above is the detailed content of MSNAn Experimental Programming Language for the Bold Developer. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1671
14
PHP Tutorial
1276
29
C# Tutorial
1256
24
Python vs. C  : Learning Curves and Ease of Use Python vs. C : Learning Curves and Ease of Use Apr 19, 2025 am 12:20 AM

Python is easier to learn and use, while C is more powerful but complex. 1. Python syntax is concise and suitable for beginners. Dynamic typing and automatic memory management make it easy to use, but may cause runtime errors. 2.C provides low-level control and advanced features, suitable for high-performance applications, but has a high learning threshold and requires manual memory and type safety management.

Python and Time: Making the Most of Your Study Time Python and Time: Making the Most of Your Study Time Apr 14, 2025 am 12:02 AM

To maximize the efficiency of learning Python in a limited time, you can use Python's datetime, time, and schedule modules. 1. The datetime module is used to record and plan learning time. 2. The time module helps to set study and rest time. 3. The schedule module automatically arranges weekly learning tasks.

Python vs. C  : Exploring Performance and Efficiency Python vs. C : Exploring Performance and Efficiency Apr 18, 2025 am 12:20 AM

Python is better than C in development efficiency, but C is higher in execution performance. 1. Python's concise syntax and rich libraries improve development efficiency. 2.C's compilation-type characteristics and hardware control improve execution performance. When making a choice, you need to weigh the development speed and execution efficiency based on project needs.

Learning Python: Is 2 Hours of Daily Study Sufficient? Learning Python: Is 2 Hours of Daily Study Sufficient? Apr 18, 2025 am 12:22 AM

Is it enough to learn Python for two hours a day? It depends on your goals and learning methods. 1) Develop a clear learning plan, 2) Select appropriate learning resources and methods, 3) Practice and review and consolidate hands-on practice and review and consolidate, and you can gradually master the basic knowledge and advanced functions of Python during this period.

Python vs. C  : Understanding the Key Differences Python vs. C : Understanding the Key Differences Apr 21, 2025 am 12:18 AM

Python and C each have their own advantages, and the choice should be based on project requirements. 1) Python is suitable for rapid development and data processing due to its concise syntax and dynamic typing. 2)C is suitable for high performance and system programming due to its static typing and manual memory management.

Which is part of the Python standard library: lists or arrays? Which is part of the Python standard library: lists or arrays? Apr 27, 2025 am 12:03 AM

Pythonlistsarepartofthestandardlibrary,whilearraysarenot.Listsarebuilt-in,versatile,andusedforstoringcollections,whereasarraysareprovidedbythearraymoduleandlesscommonlyusedduetolimitedfunctionality.

Python: Automation, Scripting, and Task Management Python: Automation, Scripting, and Task Management Apr 16, 2025 am 12:14 AM

Python excels in automation, scripting, and task management. 1) Automation: File backup is realized through standard libraries such as os and shutil. 2) Script writing: Use the psutil library to monitor system resources. 3) Task management: Use the schedule library to schedule tasks. Python's ease of use and rich library support makes it the preferred tool in these areas.

Python for Web Development: Key Applications Python for Web Development: Key Applications Apr 18, 2025 am 12:20 AM

Key applications of Python in web development include the use of Django and Flask frameworks, API development, data analysis and visualization, machine learning and AI, and performance optimization. 1. Django and Flask framework: Django is suitable for rapid development of complex applications, and Flask is suitable for small or highly customized projects. 2. API development: Use Flask or DjangoRESTFramework to build RESTfulAPI. 3. Data analysis and visualization: Use Python to process data and display it through the web interface. 4. Machine Learning and AI: Python is used to build intelligent web applications. 5. Performance optimization: optimized through asynchronous programming, caching and code

See all articles