Who's gonna win? A huge enterprise solution for data processing or grep+awk?

In other news, Kibana and Elasticsearch are totally slow and suck some giant ass.

@newt You don't even need grep, if you're using awk. Also, compiled regexes are gonna beat awk in speed.

@tfb @newt For speed or generality I'd rather opt for Python.

Awk's advantage is it's simplicity, and the special-purposefulness (pattern-action structure). Unfortunately it doesn't support things like named/recursive patterns, but that's oftside the scope. And I'm not even sure putting as much of the expressivity into the pattern language is a good idea.

I was wondering if it's possible to use say Guile to quickly parse complex texts, the conclusion: 1) I don't know/remember Scheme well enough, and 2) it (unlike CL for example) doesn't offer general imperative/iterative constructs (!) to quickly translate the code from other languages into it, and forces you to recast everything as recursive calls. It can make sense ideologically. But also it's unlikely to be useful for quick and dirty solutions.

@amiloradovsky @tfb @newt I use Ruby as Awk++. I use Ruby with GNU Parallel to utilize multi cores and multi computers.

@veer66 @tfb @newt Parallel is written in Perl…
I used to run commands on clusters with Parallel+SSH, then discovered (a.k.a. clush), and don't have a need for Parallel per se.

IDK anything about Ruby, but AFAIK it is direct descendant of Perl and inherits all the disadvantages of shell scripts. Like the values are equated with their serialization, roughly speaking, everything is a string.
I'd rank Python higher than Ruby.

@amiloradovsky @tfb @newt @veer66 Ruby does not have stringly types, it's serious about its types and everything is an object. It is not very Perly, it's more like a Python that looks like a Perl, with less enforced namespacing and a community that likes to Monkeypatch All The Things.
@amiloradovsky @tfb @newt @veer66 I moved to Python for the stricter module system and more disciplined community, but I miss Ruby's syntax, which makes it so easy to compose neat abstractions, whereas in Python everything looks rather clumsy and ceremonial.

Of course the flexibility of Ruby's abstractions means you end up with the LISP Curse, where every library is a language you need to learn and there tends to be ETOOMUCHMAGIC going on. It's no surprise corporations favor Python.
@amiloradovsky @tfb @newt @veer66 I wonder. Clojure is a LISP and has all these freedoms of abstraction, yet the enterprise (well, some) seems to like it. What's the secret? Cultural practices?
@clacke I guess because Clojure community is like a religion, which share the same taught. Most of Clojure libraries that I checked are very uniform.

While I usually see programmers introduce their different creative ways to use list comprehension in Python.

@amiloradovsky @tfb @newt

@veer66 @tfb @clacke @newt Uniformity is not always good though. I do agree that one should stick to the conventions if there are no strong reasons to do otherwise, but there are reasons sometimes. Generally reducing developers to a least common denominator is a bad practice, for the developers themselves first and foremost.

@amiloradovsky LCD sounds like an enterprise. If I were a manager, I'd even choose Go.

@tfb @clacke @newt
Follow

@veer66 @tfb @clacke @newt Not sure about enterprises, but Go's popularity will probably decline as soon as Google stops pumping money into it. The language itself is a PoS and won't survive on it's own.

@amiloradovsky @tfb @newt @veer66 I haven't used it myself, but judging by what people say who choose go and stick with it, and how influential they are, I think your prediction is wrong.

Given the limitations in the spec and that they've managed to stick to them, isn't go pretty much done and in maintenance mode after the latest GC latency improvements?

@clacke @tfb @newt @veer66 Well, actors also not always believe in what they say, or are too naive to competently assess how much true is what they tell. I don't see a reason why anyone who's into programming languages and compilers would promote Go, other than dishonesty sponsored by Google et al. Either way, this is not a language I'd voluntarily pick.

@amiloradovsky @tfb @newt @veer66 People who are into languages and compilers don't promote Go. They promote Rust, Haskell, D and various Lisps and Lisplikes, and the purpose of Go is to protect your organization and products from them by scaring them away.
@clacke Fortunately, Go to JS compiler is not yet popular. So I still can ruin organizations.

@amiloradovsky @tfb @newt

@clacke
I'm entirely ignorant. Please tell me Go vs Rust. I've been feeling like I have to pick up Rust.
@amiloradovsky @tfb @newt @veer66

@veer66
Well. This is going to sound dumb in this thread, but the answer is: a tree farm! :-)
Personally, I don't really need anything right now. I want to write a couple of little things, but bash and python will suffice with QT. I'll be 60 in a couple of weeks and just like to keep up a bit to exercise the grey cells. (very gray at this point)

@amiloradovsky @tfb @clacke @newt

@gemlog

> exercise the grey cells

My friend told me that Rust works so well on this purpose.

@amiloradovsky @tfb @clacke @newt

@veer66
Probably the ocaml influence. My brain has never worked right for like lisp, guile w/e.
@amiloradovsky @tfb @clacke @newt

@veer66
I need a goal though. Maybe the pinephone has some rust. I have to look.
@amiloradovsky @tfb @clacke @newt

@gemlog I saw a blog post about Rust and Flutter on Raspberry Pi this morning. I suppose it works on Pinephone too.
@gemlog @clacke @amiloradovsky @tfb @veer66 go is basically java except no VM and less features. Rust is C but designed by ocaml people and with no runtime.

@veer66 Go also claims to encourage CSP but since it doesn't actually isolate goroutines in any way, it's really easy to accidentally share data between them that isn't protected by a mutex and have things break. You still really have to go out of your way to make sure you're not fucking things up.

@lunch I agree. I found coding in Erlang is much easier than in Go, when I need concurrency. In Go, I usually fail to avoid pitfalls.

@newt
Go doesn't much resemble Java at all. It's more the lovechild of Modula and C plus a very good GC. It doesn't do inheritance-plus-overriding which is what Java is all about.
@amiloradovsky @clacke @gemlog @veer66

@tfb @amiloradovsky @clacke @gemlog @veer66 I was referring to its niche, not to the language design. I mean, Rust doesn't resemble C either.

@newt
I'm currently using Go as a runtime to host a civilized language, so the story checks out.

@amiloradovsky @clacke @gemlog @veer66

@newt Last time, my friend talked to me about D was in 2003. @clacke @amiloradovsky @tfb
@veer66 @amiloradovsky @tfb @newt The D community is larger than ever and the language is under active development.

It's still gaining core features and gained a borrow checker last year to make the gc-less mode more useful.

It has three actively developed compilers and as of last year (gcc 9.1) the gcc-based one is part of gcc proper.
@amiloradovsky @tfb @newt @veer66 I am the only person still promoting Tcl and I do it half seriously, half tongue-in-cheek. 😁

@clacke @tfb @newt @veer66 I'm not a fan of it, but the mismatch between it's visibility and actual usage is noticeable.

@Parnikkapore @clacke @tfb @newt @veer66 I don't watch it, to me it seems like a fake Lisp (shell pretending to be Lisp), but it is used in some decent projects, mostly for building and configuring purposes.

@clacke
Tcl is very widely used in electrical engineering, so it's not going anywhere
@amiloradovsky @newt @veer66

@clacke
Go is very nearly in maintenance mode, most likely. Though generics might keep them busy for a while.
@amiloradovsky @newt @veer66

@clacke Go 2.X may be yet another Perl 6, and they might keep releasing Go 1.XYZ? @tfb @amiloradovsky @newt

@clacke @amiloradovsky @newt @veer66 They're currently debating super important things like using square brackets instead of parens 🤦‍♂️

@brettgilio @veer66 @tfb @clacke @newt Controversial? "Go is bad" is as controversial as "human rights abuse is bad".

@amiloradovsky @veer66 @tfb @clacke @newt HA! I was speaking ironically, no worries. Though, unfortunately, there are staunch defenders of Go.

@brettgilio I keep being a Go defender, although I stopped coding in Go since 2013. 😅 @amiloradovsky @tfb @clacke @newt
@amiloradovsky After learning Ruby, I cannot defend QBasic anymore. 🤦

@tfb @clacke @brettgilio @newt

@amiloradovsky @veer66 @tfb @clacke @newt This is probably true. Having used it enough, people are eventually going to realize its shitty tooling and culture make it completely untenable on larger projects. There's a huge number of people out there that use it exclusively because it scratches some itches with Python and "oh google made it so it must be good", despite almost everything else out there being leagues better.

Sign in to participate in the conversation
Functional Café

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!