-
Notifications
You must be signed in to change notification settings - Fork 1
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
Design discussion #4
Comments
@CSDUMMI said "But what is wrong with my project? What is the right idea git has?" Your project seems very nice to make CLI apps but git is pluggable. You can shadow commands, add commands, put in aliases and probably more. All without touching the code of git. In fact git itself is implemented as a bunch of stand alone programs. This is what I want to do with p. |
I read your p.py and saw that you filter from the |
Well no, because that would make it much more cumbersome to add a command. And I use that data on the entire file system to find executables that I p calls so I need that anyway. |
Good, another question: |
I don't think so. There doesn't seem to be much use for it at this point and it can make it harder to port to another language which is the plan. |
Of which language are you thinking? |
Just a question on the side: I'm trying to write the Documentation/UserGuide.md installation part, |
Re languages: C# and Java are the two big missing ones. It's more complex for Java because not everyone uses maven. But go, kotlin, CMake, C configure/make, etc would be needed for MVP I think. |
Re OS: I've only used it on macOS but it should be the same on linux. But it's missing parts like installing the python tool chain via brew (and installing brew!) so it's not complete there either. |
#4 (comment) |
Yes. When it's totally clear what the functionality should do it makes sense to rewrite the prototype in some native language so binaries can be shipped without the massive dependency that python3 is. |
And in which language do you think p should be rewritten? |
A
|
Re language: don't know. http://roscidus.com/blog/blog/2014/06/06/python-to-ocaml-retrospective/ makes a strong case for OCAML, but things have changed since then so I'd have to reevaluate. |
Three options for the language issue: First optionWe could leverage the architecture of p and differentiate between parts of p, ConThis also means that programmers, that only know one or two languages The second optionWe could also split p into three parts (and possibly more):
Each one of them can choose different languages, Third optionWe fix p and all parts of p to a single |
I think option 2 is what I'm talking about, except that "p config" is a part of "p core". As for many repositories, well.. let's not go crazy. If a language can be supported by a 5 line .ini file then it makes sense to have a separate repo for it. |
I don't think every language should be supported in a 5 line file of whatever format. $ p config install <language-package> # Download and install language support package
$ p config remove <language-package> # Uninstall and remove language support package This includes defining a package format and that should be able to handle even |
I want to make another argument for using different languages in p-core and p-config.
For these jobs, you don't need a very high level But p-config is totally different, it needs to:
I wouldn't want to do that in a low level language, like C. ConclusionThat's why I'd use different languages in p-core and p-config, |
Well, if we go with OCaml, that's a super HIGH level language, but that also produces very fast native code. It's just that I am more used to python so will prefer that for a prototype. |
I don't want to change to another language yet, but I think that p-core can be better optimized, |
I think we should honestly think about using C for p-core. |
C++, not C necessarily, but I think a fast and low level language would be able to do what p-core needs to do. |
I tried to rewrite some part of p in C++ on the rewrite_C branch. I've got to say it is very complex and that we have to mix C and C++ stdlib. |
Yea, C/C++ is worse than one imagines. I used to be a C++ programmer for 9 years. Those were dark days. |
I now made an attempt at writing p in Haskell and though simplified somethings, it seems |
Summary of the rewrite of p in HaskellI wrote a simplified p-core version in Haskell. To conclude I think Haskell has better support for third-party libraries and in general Haskell is better than C++, but probably a little more complicated than Python. |
Moved from pypa/pip#4768 (comment)
The text was updated successfully, but these errors were encountered: