Fork me on GitHub
#off-topic
<
2022-04-08
>
Stuart10:04:35

Interesting, had a job interview for a non Clojure job (and non functional programming), they mentioned I had Clojure on my github (all my personal projects are Clojure). They talked about functional programming but said they don't use it because it doesn't scale to large applications / code bases).

😆 3
not-sure-fry 7
p-himik10:04:12

About a decade ago, I heard "We don't use Git because it makes things more complicated." :D

😂 5
dgb2310:04:03

See here for a possible explanation of sweeping generalisations in tech: https://en.wikipedia.org/wiki/Cargo_cult

😆 1
oddsor11:04:43

Hearing these kinds of statements from Java-developers who haven’t once stepped outside their bubble is just as aggravating every time 😫

Wanja Hentze11:04:00

@U2FRKM4TW I mean, that's not wrong. Git is complicated! I feel like it's the best we have currently, but I yearn for something better. Perhaps https://pijul.org/ becomes a viable alternative one day.

p-himik11:04:54

"Git is complicated" [as opposed to some other SCM system] and "Git makes things more complicated" [as opposed to a complete lack of SCM] are different statements though. :) I should've made my previous statement clearer.

Martynas Maciulevičius13:04:10

Maybe it's baked into the definition. How did they define scale? What is scale? 😄 Also what does scale? I'm intrigued. If they say that something doesn't scale my first question would be "what does scale?"

😆 1
Wanja Hentze16:04:02

Very true, git may not scale to infinite org size but it scales much further than "just editing the files on the server"

adi18:04:09

This is how I teach git, except, inverted :p :)

dgb2319:04:07

I teach a basic git workflow to absolute programming beginners. You can use the tool in a very simple manner and get most of the benefits.

andy.fingerhut21:04:37

Any time a git workflow is more complicated than "create a PR on a branch, and someone reviews and merges it into main" I rely on others to work out the details. It has handled all of my uses of git that remain 🙂

😆 1
Martynas Maciulevičius10:04:25

I think I know where the problem with scalability of typed vs non-typed languages could lie. Typed languages allow to write code in a back-handed-thinking way, where you don't really need to understand what you're doing. This allows the "scalability" to kick in where you define scalability by... "throwing money at a problem". It is scalable as all you do are... boundaries. And these boundaries in every step allow you to simply merge the code later. Any code with any other code. Without much thinking. And Java still uses this to this day as it... worked: https://www.youtube.com/watch?v=aSEQfqNYNAc

Augustus14:04:09

Sanity check: is somethign wrong here? Why are these off so much:

(printf "%s\n%s\n"
  (* 1000 1000 (System/currentTimeMillis))
  (System/nanoTime))

1649427273485000000
555909724532700

isak14:04:19

> The java.lang.System.nanoTime() method returns the current value of the most precise available system timer, in nanoseconds. The value returned represents nanoseconds since some fixed but arbitrary time (in the future, so values may be negative) and provides nanosecond precision, but not necessarily nanosecond accuracy. https://www.tutorialspoint.com/java/lang/system_nanotime.htm According to that, nanotime isn't since Jan 1st 1970 like currentTimeMillis.

p-himik14:04:19

Because they're completely unrelated. From nanoTime's docstring:

* The value returned represents nanoseconds since some fixed but
* arbitrary <i>origin</i> time (perhaps in the future, so values
* may be negative).

Augustus14:04:14

I see, thank you

jumar14:04:32

Yep, that's a common mistake to rely on one versus another. Use nanoTime to measure durations. Use currentTimeMillis to get unix epoch time.

❤️ 2
💡 1
dpsutton16:04:22

I had no idea a David Nolen explanation of Tony Hoare’s CSP paper was the germination of Papers We Love. From

💯 9
genekim20:04:17

That is so freaking cool — I had no idea!!! For me, it's exhilarating to see how broad the impact of @U050B88UR is. ❤️

👍 1
genekim20:04:24

Thanks for posting that, @U11BV7MTK !

Benjamin16:04:54

are there songs about the joy of clojure?

Drew Verlee17:04:31

The hills are alive with the sound of ((((()))))'sssss.

sova-soars-the-sora17:04:12

I'm open to writing one 😅

sova-soars-the-sora17:04:29

Hard to think of good rhyming lyrics without getting too technical

sova-soars-the-sora17:04:36

and still talk about Clojure and not just LISP in general

sova-soars-the-sora17:04:03

If you guys put together some verses I will add some guitar chords and rhythm.

wilkerlucio18:04:40

the book on Data Oriented Programming https://www.manning.com/books/data-oriented-programming from @U0L91U7A8 has more of them 🙂

Yehonathan Sharvit02:04:45

The book used to have songs, but the the publisher asked me to remove them

Drew Verlee02:04:47

I object to there objection.

wilkerlucio03:04:44

@U0L91U7A8 maybe you can make them available somewhere else?

Drew Verlee03:04:15

@U3ES97LAC I have no idea how to write songs because i have no sense of what words will sound like next to each other when handled properly...

Come listen, Brother, Sister

Heed my call. A story to be sure.

I faced modern development. And feel into the tarpit.

My atomnemnt was immutable. My motivation now pure.

Hear how I found the cure. Here how I found clojure. 

💯 1
Drew Verlee03:04:45

I don't know how to do this and also not be a bit sappy.

Yehonathan Sharvit05:04:55

If someone is interested to play the song with an instrument, I will be happy to share the lyrics

sova-soars-the-sora20:04:39

I'm looking forward to putting music to these lyrics! Keep 'em coming if you think of any more 😄

adi18:04:32

Also here is a little prayer to the Demogods that I wrote and recited at a recent Clojure demo I gave. (Feel free to pinch it. May it bring you better luck than it did I.) O Lambda the Ultimate, bless we who are in this demo... That our core be functional, and our functions be pure. That our data be immutable, so we may know the value of values. That our systems be composable, so they may scale with grace. That their States only mutate in pleasantly surprising ways. That the networks and servers stay up. Well, at least through this demo. For otherwise, nothing lives, nothing evolves. In the name of the α and the β and the η... (λx.x x) (λx.x x) ; eternally

😆 6
🙏 1
jaide18:04:16

Haha thats pretty good! How do you say the last part out loud?

😀 1
borkdude18:04:53

(λx.x x) (λx.x x) ; (while true)

adi20:04:47

@U0AHJUHJN performed it in his music synthesis program. It sounds like... https://twitter.com/FnConf/status/1507361683123146755?s=20

adi20:04:10

@U04V15CAJ maybe not quite "while true", because at this point in the lambda calculus lecture we wouldn't yet have a definition for "true". Also, in Haskell class, (λx.x x) (λx.x x) is the point when the lecture pauses indefinitely because that is a legal Haskell definition for bottom :)

borkdude20:04:48

aaah make sense :)

adi20:04:50

A perfectly typesafe way to keep doing nothing until the heat death of the universe :D

adi20:04:59

I was actually surprised it worked. I thought maybe ghc will know the over-clever student's shenanigans and throw it out of the class, but no, it did not.

borkdude20:04:14

When I started with Common Lisp, I was disappointed they didn't implement numbers as Church Numerals but I didn't know much about performance then

gotta_go_fast 1
adi21:04:57

Joe Armstrong had this great line. Paraphrasing... "Performance is a solved problem. If you want performance, just wait ten years."

adi21:04:34

I think it was in "The mess we're in".

1
Martynas Maciulevičius10:04:25

I think I know where the problem with scalability of typed vs non-typed languages could lie. Typed languages allow to write code in a back-handed-thinking way, where you don't really need to understand what you're doing. This allows the "scalability" to kick in where you define scalability by... "throwing money at a problem". It is scalable as all you do are... boundaries. And these boundaries in every step allow you to simply merge the code later. Any code with any other code. Without much thinking. And Java still uses this to this day as it... worked: https://www.youtube.com/watch?v=aSEQfqNYNAc

sova-soars-the-sora17:04:03

If you guys put together some verses I will add some guitar chords and rhythm.

sova-soars-the-sora20:04:39

I'm looking forward to putting music to these lyrics! Keep 'em coming if you think of any more 😄