Skip to content
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

Why are there 20 seperate Python implmentations?! #1527

Open
sancarn opened this issue Nov 8, 2023 · 5 comments
Open

Why are there 20 seperate Python implmentations?! #1527

sancarn opened this issue Nov 8, 2023 · 5 comments

Comments

@sancarn
Copy link

sancarn commented Nov 8, 2023

I understand that different implementations clearly look different, but in my opinion that doesn't belong in this repo, unless it's under a py folder for all python examples.

In a similar vein there are 3 C samples:

But then only 1 C++ sample:

Are we really expecting different implementations for every different way someone can possibly render "Hello world" onto the screen in their chosen language? If so we should probably make this clear in the readme / repo description.

@sivakumar-mahalingam
Copy link

Python Implementations:

Pygame, PyQt4, PyQt5, PySide2, PySimpleGUI, kivy, libavg, wxPython, tkinter are not separate implementations of Python, but rather libraries/frameworks. And Python has two major versions, Python 2 and Python 3.

HTTPpy, manim, flask, django, bottle, blender, fastapi, panther, cherrypy are frameworks built on top of Python for specific purposes like web development, GUI, etc.

C Implementations:

CGI, Pebble, C are not implementations of the C language, they are samples or projects written in the C language. C itself is a language, and there are no different "implementations" of C in the way Python has implementations like CPython, Jython, etc.

@sancarn
Copy link
Author

sancarn commented Jan 13, 2024

are not separate implementations of Python, but rather libraries/frameworks

Not sure if this is a rebuttle? This actualyl hits the nail on the head of my point. If they were seperate implementations of >Python< (or the programming language itself) that would be okay. But they're different implementations using different libraries. That doesn't belong here, imo. There are millions of libraries out there, are we anticipating an implementation for all libraries of all languages?

In my opinion Hello-world this repo should be used for comparing how to do "hello world" programs in different languages. Thus we should have 1 implementation for each language, and they should be comparable implementations.

i.e.

  • Hello world to console
    • Implementation in C
    • Implementation in C++
    • Implementation in Python
    • Implementation in Ruby
    • ...
  • Hello world to win32 form
    • Implementation in C
    • Implementation in C++
    • Implementation in Python
    • Implementation in Ruby
    • ...
  • Hello world to canvas
    • Implementation in C
    • Implementation in C++
    • Implementation in Python
    • Implementation in Ruby
    • ...

etc. For what it's worth I think having implementations in Py2 and Py3 is at least acceptable

@MrBrain295
Copy link
Collaborator

I think there needs to be qualifications for what can be accepted. I opened issue #1494 to discuss this.

@chenyuchenlijingshuo
Copy link

The presence of multiple Python implementations and different samples in various languages can be attributed to several reasons.
For the multiple Python implementations like Python 2 and Python 3, the evolution of the language led to the coexistence of these versions for a period as developers migrated from one to the other. Different libraries and frameworks such as Pygame, PyQt4/5, PySide2, PySimpleGUI, etc., serve specific purposes and user needs. For example, some are focused on graphical user interfaces, while others are for game development or data visualization. Each of these implementations offers unique features and capabilities that might be required by different projects.
As for the multiple C and C++ samples, it could be that developers wanted to showcase different techniques or libraries within these languages. While it might seem excessive at first glance, having multiple examples can be beneficial for learners who want to explore different approaches and understand the versatility of a particular language.
However, it can be confusing and perhaps a better organization within the repository would be helpful. Having a dedicated folder for each language and subfolders for different implementations or examples could make it more clear and easier to navigate. This would also address the concern about the repo not being clear on the expectations regarding multiple implementations. Adding a detailed description in the README or repo description about the purpose of having multiple examples and how to navigate them would also be useful for users.

@sancarn
Copy link
Author

sancarn commented Nov 3, 2024

@chenyuchenlijingshuo please don't spout chatGPT copy pasta here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants