5 ms·
This is neat. Who is making the most interesting (and realistically viable, ie not just a research lang) language in this space? Eg, for me (! no language wars
by unshavedyak 3y ago
This is neat. Who is making the most interesting (and realistically viable, ie not just a research lang) language in this space? Eg, for me (! no language wars intended.. oof) there is:
1. Rust for if i want something C++-esque. Rich stdlib & crates, i love it. My primary language for everything.
2. Zig for if i need C. Interesting language, but i can't speak from personal experience. Seems to be gaining a lot of traction, makes nice choices, feature rich in the right places, etc.
3. ??? for when i want Python.
I'm asking about #3. Who (if anyone?) is making an attempt at "new and better Python"?
.. and yes i know, all these languages i mentioned, including Python, are not dead, are loved by millions, and are all very productive. My statements are not implying that they are anything but amazing. Please don't yell at me :)
- cassiogo 3y agohttps://nim-lang.org/ https://nim-lang.org/ for #3 probably
- modernerd 3y agoMojo is one to keep an eye on for #3. https://docs.modular.com/mojo/ https://docs.modular.com/mojo/
- deleted 3y ago[deleted]
- rookderby 3y agoFor #3, I think Python is working on making a better python. I have some 'lingua franca' projects at work. Python projects are easy to hand off and the the iterations are getting faster. Most of these projects are currently in python 3.9, but i'm looking forward to the speed increases that 3.11 will bring.
- mbb70 3y agoAgreed, much like Java turned out to be the next evolution of Java. Python is the the 'good enough at everything + huge ecosystem' language that you can't replace no matter how much cooler the concurrency paradigm.
- NoboruWataya 3y agoDefinitely agree that Java has come a long way recently and not at all looking to start a language war, but I think that at the very least Java should share its "next evolution of Java" podium with Kotlin.
- adgjlsfhk1 3y agoIMO Java is still at least 5 years behind C#. It's hard for me to take Java seriously without project Valhalla.
- pjmlp 3y agoJust like .NET Native AOT is quite some years behind GraalVM, OpenJ9, having high profile real time bare metal runtimes like PTC and Aicas have been selling for 20 years with deployment in battlefield scenarios, being used in the biggest mobile OS platform. As someone working on a polyglot delivery agency, many UNIX shops still don't take .NET seriously, given how many key libraries are still stuck in VS/Windows workflows or not yet ported from .NET Framework. It is more than just Java vs C#, the several JVM implementations and CLR also matter. Note that even Microsoft takes Java seriously enough to have their own Java distribution, after the Sun/Microsoft drama, and any major Azure product deployment also requires day 1 support for Java.
- oblio 3y ago99.99% of companies only use OpenJDK derived JDKs, though.
- pjmlp 3y agoSure if we forget ART isn't really derived from OpenJDK, and there are plenty of Java implementations beyond 0.01%, in business for the last 30 years.
- neonsunset 3y agoThis is unlikely, since Native AOT is not exactly a separate flavour, it builds right on the same compiler optimizations, sans those that are possible with JIT only. In addition, years of development is a bad, bad proxy for the results. .NET had been changing very slowly up until it went the .NET Framework -> .NET Core -> .NET OSS route. Since then, the last 4 years have brought more (performance and feature) changes than the previous 10+. With .NET 8, I highly doubt JVM implementations would have superiority (with Dynamic PGO being enabled by default closing one of the avenues where HotSpot used to have an advantage), except maybe in certain niche scenarios. Also, Java can no longer be compared to C# directly (because they are not equal in features, or even levels of abstractions you can go as of now). A fair comparison would be Kotlin for higher level and Go for lower level scenarios.
- k__ 3y agoI had the impression, the Python people have basically given up and ported everything remotely performance demanding to C/C++.
- biorach 3y agoGiven up? That was the plan all along.
- fuzztester 3y agoPython was never supposed or planned to be a high performance language, at least not comparable to C or C++, AFAIK.
- bandrami 3y agoPython moves too fast and breaks things too often, though. It's why I went back to Perl.
- rich_sasha 3y agoThere are many vying for Python's space but no clear winner. I think because actually Python is good at many very different areas, and improving one usually makes something else worse. Attempting to list some "better Pythons" by area, and the catches: - golang for web: seems good and simple but also less dynamic - Julia for scientific programming: Julia users are convinced it's better but converts are not queuing up. Also the story outside scientific programming is less convincing. Almost all ML/AI research is written in Python - glue language / generic file wrangling... Not sure if there is a clear contestant! - (shamelessly stolen from sibling comments) nim as a like for like faster/better replacement: faster and seemingly quite (still less) dynamic, but smaller ecosystem and unclear governance - currently one man and his GitHub login. Incidentally, I think this "second best at everything" meme-fact is part of its success. There is a huge pool of people using Python for one purpose, who, confronted with a new need, can also use Python, even if it's not the best tool for the job. It integrates easily with whatever else is written in Python, and it's one less language to learn. This is IMHO where complaints like "why people use Python for X when it sucks" miss the point.
- pjmlp 3y ago> Julia users are convinced it's better but converts are not queuing up. There are enough of them, even if HN isn't paying attention, https://juliahub.com/case-studies/ https://juliahub.com/case-studies/
- di4na 3y agoFor Glue, Janet is probably the biggest one right now. I am working on something, but it will take a long time.
- rich_sasha 3y agoI remember looking at Janet and quite liking it, clean neat and small. ...but then, I'm heavily invested into Python and it wasn't clear to me where Janet is materially better, for system scripting-type of issues. What am I missing? I'm not saying Python is some pinnacle of language design. I'm learning Rust, because it's very obvious how it fills gaps that Python cannot cover. What's that gap for Janet?
- BasedInfra 3y agoMojo for when you want python. https://www.modular.com/mojo https://www.modular.com/mojo
- packetlost 3y agoHonestly, I just want a hard fork of CPython with a few different design decisions and cleaning up of stdlib to support them: * Attributes are no longer dynamic, __slots__-like behavior for everything by default * GIL no more * Base off of Pypy for JIT speed * Real lambdas (I like how Lobster does this) * Maybe make type annotations required (but with inference) Python's syntax is so close to nearly perfect (if you don't mind tab-delimited code, I've gotten used to it) I think it would go over better than people fear. If you do what you can to make the core language fast enough, C extension stop being as relevant. Right now, the Python ecosystem is absolutely held back by the FFI hell that it's stuck in.
- rich_sasha 3y agoRight - and you'll wipe out somewhere around 60-90% of the users. The vast ecosystem will largely not be compatible and unless you're very lucky, most will not be compatible with your fork. Language withers. As I said in the other comment, the compromise on everything is what makes it tick... I don't like all of it either, but I like a language that has top class support for ML, database connectivity, web programming, file wrangling, task orchestration and web scraping all in one. And even some poor but workable parallelization.
- packetlost 3y agoRetaining the community isn't necessarily a goal, the syntax is the thing I'd want to keep. Bringing over as much of the community as reasonable without compromising on other things, I think, is still a fairly worthy goal.
- rich_sasha 3y agoOf course goals can vary, for many, myself included, the fact that for most things you can _imagine_ there is a quality package on PyPI is a major draw of the language. I probably wouldn't use a fork that is 2x as fast and has 10% of the package coverage.
- amon22 3y ago
- 38 3y agoI would say Go is a good option for #3. its quite different, AKA braces instead of spaces, but its basically Python in regard to ease of use and big standard library. also it has the benefit is strong typing, but types can also be assumed in many places: hello := 9 world := "world"
- throwmeout123 3y agoNo. Way too few abstractions in go.
- synergy20 3y ago3 doesn't exist,if I have to pick one maybe nim 4. crystal for ruby
- m-hilgendorf 3y agoFor 3 I think it's Typescript and Dart. There's also stanza (1) which is a lot like Python but it's not being used outside of one startup (disclaimer: I used to work there). Ultimately I think optional typing on top of a garbage collected language is the answer. (1) https://lbstanza.org/ https://lbstanza.org/
- thewataccount 3y agoHonestly I think the best explanation for python is for when you want something "quick and dirty". Between the less verbose syntax, and the library support - it's incredibly difficult to beat if you measure time to POC. For many, many applications like cli scripts, webservers, datamanipulation, etc. C/CPP/Rust/Go are inarguably slower to get to POC, and have a higher learning curve. The network effect is incredibly strong as well with the library support. That said it'll be dirty. Might not be super fast, and it might not have all of the compile-time checking. I think the big thing is that this "quick and dirty" solution is "good enough" for a lot of people. And if it isn't, that's when you start moving things to rust/go/etc.
- pjmlp 3y ago> Honestly I think the best explanation for python is for when you want something "quick and dirty". That would be Perl actually.
- throwmeout123 3y agoScala 3 could be a great “new python” but it has too many community and governance issues, and also the haskalator people which has been nothing but a scourge for the lang. Let’s hope they dont also destroy rust.
- xwowsersx 3y agoNim for #3, I think. I've found Nim to be an incredibly productive language. I was able to write very performant and readable code after just a couple of hours of reading the docs and looking at some tutorials. If the community and ecosystem grows larger, I could see building something large and non-trivial with Nim.
- deleted 3y ago[deleted]
- elcritch 3y agoAgreed! There's a couple of fairly large projects in Nim: https://nimbus.team/ https://nimbus.team/ (https://github.com/status-im/nimbus-eth2 https://github.com/status-im/nimbus-eth2) or https://github.com/zedeus/nitter https://github.com/zedeus/nitter Though there's still friction points I've been happy seeing the ecosystem grow lately. The compiler has seen a lot of bug fixes lately too which helps.
- xwowsersx 3y agoOh nice, didn't know nitter was built with Nim, that's awesome
- etra0 3y agoI really wanted to like Nim, but its async story is not that great (no multithreaded runtime AFAIK, no channels) and albeit justifiable, I don't like the way it treats imports. I think Crystal and Go are better in the async space. I thought I'd have more troubles with the case insensitivity thing, but it turns out, it wasn't a big issue at all, and UFCS is great.
- xwowsersx 3y agoAh, good to know. I hadn't checked out the async story in Nim at all.
- lolinder 3y agoPython-the-language is fine, but any time I see people explain why they chose Python for a project it usually boils down to Python having an extremely large ecosystem of libraries to choose from. This means that any new-and-better Python would need to be take the Scala/Kotlin route by running on the same VM in order to take advantage of the existing ecosystem, but my understanding is that (unlike the JVM) the Python VM has no published API and therefore doesn't present a stable compilation target for any language other than Python. This leaves Python in a space similar to JavaScript, where there isn't a really solid way to build a successor.