Earlier quoted context omitted.
That has been the story of every dynamic language since forever, thankfully the whole AI focus has made JITs finally matter in CPython world as well. Personally I have learnt this lesson back in 2000's, in the age of AOLServer, Vignette, and our own Safelayer product. All based on Apache, IIS and Tcl. We were early adopters of .NET, when it was only available to MSFT Partners and never again, using scripting language…
> AI The push for Python performance and JIT compilation has little to do with AI and more to do with Python's explosion in adoption for backend server applications in the 2010s, as well as the dedication of smaller projects like PyPy that existed largely because it was possible to make them exist. The ML/AI boom helped spread Python even farther and wider, yes, but none of the core language performance improvements…
Ruby 3.4.0
241–250 of 282 posts
Re: Ruby 3.4.0
#242Earlier quoted context omitted.
Yes, but not everyone loves to have dual stack development, I surely didn't, back in the Tcl days, eventually we ask ourselves for how long.
That's not how it works in Python. The C/C++ is shipped in the form of well-established libraries like Numpy and PyTorch. Very few end users ever interact with the C/C++ parts, except for specialists with special requirements, and library contributors themselves.
As if there is nothing else to chose from regarding Python performance issues and libraries used by folks.
Not everything is fashionable AI.
Re: Ruby 3.4.0
#243Earlier quoted context omitted.
That has been the story of every dynamic language since forever, thankfully the whole AI focus has made JITs finally matter in CPython world as well. Personally I have learnt this lesson back in 2000's, in the age of AOLServer, Vignette, and our own Safelayer product. All based on Apache, IIS and Tcl. We were early adopters of .NET, when it was only available to MSFT Partners and never again, using scripting language…
HHVM has raised its head.
Re: Ruby 3.4.0
#244Earlier quoted context omitted.
1. Wondering 3.4 JIT performance vs 3.3 JIT on production rails. 2. Also wondering what upside could Ruby / Rails gain on a hypothetical Java Generational ZGC like GC? Or if current GC is even a bottleneck anywhere in most Rails applications.
There's ongoing work to allow pluggable GCs, and specifically to allow using MMTk which would be IBM's Jikes GC https://bugs.ruby-lang.org/issues/20470 https://www.mmtk.io/
So already something else from Jikes days.
Re: Ruby 3.4.0
#245Earlier quoted context omitted.
Agreed. Parser generators are a magic black box. Parsing is not too difficult, there is some actual computer science in some spots, but I think parsing should be a core complacency of a programming language to unlock full potential.
"core complacency" was an excellent typo in the context of this conversation.
Re: Ruby 3.4.0
#246Earlier quoted context omitted.
Not really a niche language. Fantastic web server development. A more flexible and powerful language than python—the metaprogramming can be ridiculously powerful (when done well)—without the nonsense of white space sensitivity. ActiveRecord is perhaps the best ORM out there. Rails has tons of functionality to get running. Overall, a pleasant and expressive language with an incredible community. Python ends up "winnin…
...but ruby is whitespace sensitive too. It's hard to notice, because rules mostly follow intuition, but there're cases when not only a missing newline, but absense or addition of a space changes resulting syntax. Currently I remember only difference in parsing unary vs binary operators, like + and *, and ternary operator ? : vs : in symbols, but there're certainly more other cases.
Re: Ruby 3.4.0
#247Earlier quoted context omitted.
What sucks about it?
Most gems with native extensions won't work. Gems that listen to filesystem changes like guard can be buggy. I recommend using Mac or Linux for Ruby on Rails development.
Re: Ruby 3.4.0
#248What does ruby do well that other languages don't? What is the niche it's trying to fill?
Re: Ruby 3.4.0
#249Earlier quoted context omitted.
Everything is an object in Python, as well. Stuff like map() is generic iteration, over any structure that exposes iteration. When it's a member function, it means that every collection has to implement map itself basically. When it's separate, the collections only need to provide the interface needed to iterate over it, and the generic map() will just use that.
> over any structure that exposes iteration Taking OOP more seriously, this kind of thing should be implemented through inheritance, interfaces, mixins, etc. Even though I've got used to it, Python has these inconsistencies that sometimes it wants to be more OOP, sometimes it wants to be more FP. Ruby has chosen OOP as its size, and implements nicely those functional operations as methods (same for Kotlin, for exampl…
So semantically it's actually closer to Python, with the only difference that, since Python doesn't have extension methods, it has to use global functions for this, while Kotlin lets you pretend that those methods are actually members. But this is pure syntactic sugar, not a semantic difference.
Re: Ruby 3.4.0
#250Earlier quoted context omitted.
Everything is an object in Python, as well. Stuff like map() is generic iteration, over any structure that exposes iteration. When it's a member function, it means that every collection has to implement map itself basically. When it's separate, the collections only need to provide the interface needed to iterate over it, and the generic map() will just use that.
Still looks much less beautiful. Python feels to me like it can't make up its mind.
FWIW you can have both in this case; you just need to make dotted method calls syntactic sugar for global function invocations.