hython
Coconut
hython | Coconut | |
---|---|---|
2 | 27 | |
572 | 3,951 | |
- | - | |
10.0 | 9.3 | |
almost 7 years ago | 3 days ago | |
Haskell | Python | |
GNU General Public License v3.0 only | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hython
-
Leaving Haskell Behind
This really resonates with me.
I’ve been using it in a decidedly industrial application for about 1.5 years now. I had some fairly significant experience with it prior (https://github.com/mattgreen/hython).
For the first time in a long time (20 years experience) I’ve needed to learn a significant amount of things. It’s a combo of the domain and the language. It’s rather exhilarating, and also exhausting. Could also be a lot to bite off on with a busy home life too.
Regardless, the language is brilliant. My manager exhorts me to generally write in a top-down manner a lot because Haskell’s flexibility really conveys dev intent well, so think hard about how it should read, and start from there. This is a huge mindset shift from most langs, where you can feel your brain shut off to save cycles as you type “function” over and over. It really feels like it is meant to be write-friendly. Point-free functions are wonderfully terse to write. I joke that TH is my favorite language: a type-checked macro language that lets me write almost anything I want.
And there’s the rub: even with controlled effects via monads, the syntax is still hard for me to scan and read. I don’t know if this comes eventually or what, but this feels like a function of how dense a line could be. I miss early return dearly, and understand why it isn’t a thing (except if you have a MonadZero at hand) but I know it’s a syntactic transformation that won’t make it in. I really miss the amazing Rust LSP. Haskell’s recently lost the ability to flesh out pattern matches due to Haskell internals shifting with 9.x. I still hate and screw up stacking monads. Compile times can be brutal, esp if you hit the lens library.
I really think the community is one of the strongest group of programmers I’ve already seen. I don’t want to belabor this and dwell on the big brain memes, it’s more that they think hard on this stuff and actually push forward, vs just telling each other that web frameworks are rocket science and it’s impossible to do better than what it exists.
Ultimately, Haskell fits like a glove for our domain of program analysis. Beyond that, I’d still be a bit wary. I’m still thirsty for a PL that is essentially OCaml but with a better syntax. But that’s just me.
- Dhall: A Gateway Drug to Haskell
Coconut
- Coconut: Simple, elegant, Pythonic functional programming
-
Mojo is now available on Mac
> to be part of the Python ecosystem
I'd rather use Python if I'm in the Python ecosystem. So many attempts were made in the past to make a new language compatible with the Python ecosystem (look up hylang and coconu -- https://github.com/evhub/coconut). But at the end of the day, I'd come back to Python because if there's one thing I've learnt in recent years it's this:
minimize dependencies at all costs.
- I modified and hacked away xonsh source code
- Show HN: I mirrored all the code from PyPI to GitHub
-
Leaving Haskell Behind
Have you had a look at Coconut? I don't know if it'll push all your buttons but whenever I hear someone who's reasonably content with Python but wants more FP goodies I always think of it. https://github.com/evhub/coconut . It's basically a superset of Python3 that transpiles into Python3 and is compatible with MyPy. I don't think I'd code Python w/o it ever again assuming I had the choice. The biggest negative for me is that there's no IDE support for the language last I looked, though of course you can work with the transpiler output (plain Python) in your favorite Python IDE. It might be fun to play around with, I know that I really enjoyed it but then I got spoiled by the language+tooling of Scala3, but if you don't have that option ...
- Codon: A high-performance Python compiler
-
[2022 Day 1-7] Going for 1 language per day, looking good so far
If you're looking for suggestions I want to put forward zig lang if you like C/C++ and Coconut Lang if you like Python!
- Show HN: Programming Google Flutter with Clojure
-
What is your favourite programming language? (other than Scala)
F# and also the fun, compile-to-Python, functional language called Coconut.
What are some alternatives?
Toolz - A functional standard library for Python.
fn.py - Functional programming in Python: implementation of missing features to enjoy FP
Pyrsistent - Persistent/Immutable/Functional data structures for Python
funcy - A fancy and practical functional tools
returns - Make your functions return something meaningful, typed, and safe!
effect - effect isolation in Python, to facilitate more purely functional code
CyToolz - Cython implementation of Toolz: High performance functional utilities
classes - Smart, pythonic, ad-hoc, typed polymorphism for Python
Deal - 🤝 Design by contract for Python. Write bug-free code. Add a few decorators, get static analysis and tests for free.
contracts - PyContracts is a Python package that allows to declare constraints on function parameters and return values. Contracts can be specified using Python3 annotations, or inside a docstring. PyContracts supports a basic type system, variables binding, arithmetic constraints, and has several specialized contracts and an extension API.
icontract - Design-by-contract in Python3 with informative violation messages and inheritance
contracts - An implementation of contracts for Python.