Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
fart simpson
Jul 2, 2005

DEATH TO AMERICA
:xickos:

no because elm explicitly avoids monadic frp

Adbot
ADBOT LOVES YOU

DaTroof
Nov 16, 2000

CC LIMERICK CONTEST GRAND CHAMPION
There once was a poster named Troof
Who was getting quite long in the toof
a snake fried while eating its own tail with nothing on the side

tef
May 30, 2004

-> some l-system crap ->
why i've sold monorepos to odgenville and north haverbrook and golly did it put them on the map!

tef
May 30, 2004

-> some l-system crap ->
monorepos:

let's face it you're writing a web app or some poo poo, just mash it in together, it makes deployment a piece of piss

multiple repos:

this is good when you need to deploy components separately.


at a previous co: we had 9+ repos and deploys for the front end app, and the mapping servers

it went through a gearman server, which is for background jobs, and we used it for low latency.

it did not work

most deploys touched every shared codebase (except the mapping bit) and as a result, many commits and merges had to be synchronized before deploys
it was also easy to get to a position where a deployment would not work if someone had merged something bad

thing is, if we'd used a monorepo, it would have been easier to scale out. because of the nature of the work, it would be easier to put a web front end, and mapping backend on a single server, maybe with a shared cache between them and stick it into autoscaling groups. scaling would be pretty easy and staging setups too.

it's not that monorepos are good or bad it is just that release management gets painful the more repositories you have :shrug:

tef
May 30, 2004

-> some l-system crap ->
also lol git submodules did you just tell me to go gently caress myself

Tankakern
Jul 25, 2007

fart simpson posted:

if you mean why does anyone care about it & use it though, then it;'s because functional programming is really food and functional reactive programming is a really nice way to do ui stuff, and elm exists in a niche where it gets you most of the good parts of something like haskell + an frp library without 95% of the complexity overhead

oh, ok

so... it's a functional language you create uis in that transpiles to html/js/css?

fart simpson
Jul 2, 2005

DEATH TO AMERICA
:xickos:

Tankakern posted:

oh, ok

so... it's a functional language you create uis in that transpiles to html/js/css?

yah, specifically a pure functional reactive programming language. frp has first class support and is built into the language itself rather than being a library

CPColin
Sep 9, 2003

Big ol' smile.
Has anybody made a Nightmare on Elm Street joke yet?

Gul Banana
Nov 28, 2003

As a Millennial I posted:

in my experience you gotta load the PDBs from that very build. idk why. is it non-deterministic or something??

.net framework builds are deliberately nondeterministic yeah (it adds a timestamp)
.net core is changing this

craisins
May 17, 2004

A DRIIIIIIIIIIIIVE!

Tankakern posted:

oh, ok

so... it's a functional language you create uis in that transpiles to html/js/css?

I can't wait til some rear end in a top hat makes some dumb loving thing that transpiles into elm

TwoDice
Feb 11, 2005
Not one, two.
Grimey Drawer

FamDav posted:

facebook never used p4, they switched from svn to hg. google was using p4 well into ridiculously scaled terrority and now run their own perforce-like. amazon switched from perforce to (for a very short period of time) svn to git. microsoft stores their code on bill gates old laptop or something.

fwiw amazon does repo-per-package and actual release versioning at ~*scale*~. most every team practices trunk based development for their packages, but instead of cutting release branches or tags we cut a version set that describes the collection of artifacts, which we push through pipelines to various tests and environments.

i really enjoy the tooling but i don't see how our solution could scale down to smaller groups because of the infrastructure involved. a monorepo takes away a lot of that complexity, you just need the remote caching and distributed build support that doesn't exist in open source tooling.

versionsets are so, so awful when you have to upgrade shared libs though
when i was there our product had like a dozen different interdependent versionsets and it was a real bad time when we needed to pass changes through or upgrade stuff
especially when different things had mutually incompatible dependencies - ugh

Asymmetrikon
Oct 30, 2009

I believe you're a big dork!

craisins posted:

I can't wait til some rear end in a top hat makes some dumb loving thing that transpiles into elm

gotta have some way to get typeclasses in

FamDav
Mar 29, 2008

TwoDice posted:

versionsets are so, so awful when you have to upgrade shared libs though
when i was there our product had like a dozen different interdependent versionsets and it was a real bad time when we needed to pass changes through or upgrade stuff
especially when different things had mutually incompatible dependencies - ugh

not sure what you mean by interdependent version sets but yeah when you get hit by version set hell it can be really frustrating :(. the builders tool team is working on dependency management and vendoring this year to get away from Live (more or less the mono repo equivalent of version sets).

HappyHippo
Nov 19, 2003
Do you have an Air Miles Card?

craisins posted:

I can't wait til some rear end in a top hat makes some dumb loving thing that transpiles into elm

js to elm transpiler! all we need is a "hip" name for it

DaTroof
Nov 16, 2000

CC LIMERICK CONTEST GRAND CHAMPION
There once was a poster named Troof
Who was getting quite long in the toof

HappyHippo posted:

js to elm transpiler! all we need is a "hip" name for it

dutch coffee disease

AWWNAW
Dec 30, 2008

Asymmetrikon posted:

gotta have some way to get typeclasses in

ask me about inheriting a F# project where someone tried to turn F# into Haskell

jk don't

oh no blimp issue
Feb 23, 2011

what does f# do that they wanted it to?

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

AWWNAW posted:

ask me about inheriting a F# project where someone tried to turn F# into Haskell

jk don't

I need to see that code.

I once tried to see if I could code a Monad typeclass in Visual Basic.

Asymmetrikon
Oct 30, 2009

I believe you're a big dork!
why would you try to turn f# into haskell instead of just using haskell

Arcsech
Aug 5, 2008

Asymmetrikon posted:

why would you try to turn f# into haskell instead of just using haskell

maybe it needed to interop with some c# app/lib?

VikingofRock
Aug 24, 2008




CPColin posted:

Has anybody made a Nightmare on Elm Street joke yet?

This is the first time I've heard it, and it's good

Asymmetrikon
Oct 30, 2009

I believe you're a big dork!

Arcsech posted:

maybe it needed to interop with some c# app/lib?

yeah, probably

i can't blame them too hard, whenever i do haskell now i define the "|>" and ">>" operators to get nice piping

TwoDice
Feb 11, 2005
Not one, two.
Grimey Drawer

FamDav posted:

not sure what you mean by interdependent version sets but yeah when you get hit by version set hell it can be really frustrating :(. the builders tool team is working on dependency management and vendoring this year to get away from Live (more or less the mono repo equivalent of version sets).

idk what it's like now but we had like
subsystemA imports live
subsystemB imports live
subsystemC imports subsystemA and subsystemB so it could use them
etc

so if you wanted to use a new thing in live in C you had to pull it through A/B first

also there were multiple levels of this, not just one

JewKiller 3000
Nov 28, 2006

by Lowtax
why would you try to turn f# into haskell when f# is already a better haskell than haskell

Asymmetrikon
Oct 30, 2009

I believe you're a big dork!
clearly they don't know what makes a good haskell, or they would've just shot straight for the top and gone with idris

FamDav
Mar 29, 2008

Asymmetrikon posted:

clearly they don't know what makes a good haskell, or they would've just shot straight for the top and gone with idris

needs a web framework called loofa

TwoDice posted:

idk what it's like now but we had like
subsystemA imports live
subsystemB imports live
subsystemC imports subsystemA and subsystemB so it could use them
etc

so if you wanted to use a new thing in live in C you had to pull it through A/B first

also there were multiple levels of this, not just one

dang that's really sad and I reflexively dry gagged thinking about maintaining it. maybe there were reasons for it but that's a serious misuse of the concept.

AWWNAW
Dec 30, 2008

there's more than a few "notable figures" in the F# community that like to huff their own farts and try to port various Haskell packages to F#, throw them on NuGet and abandon them. the only one I've seen done well is the Parsec port

AWWNAW
Dec 30, 2008

i don't know poo poo about the ocaml community but willing to bet there aren't a bunch of pretentious dickwads trying to ape haskell there?

Asymmetrikon
Oct 30, 2009

I believe you're a big dork!
only OCaml i know is Coq, and it seemed fine, but I guess that's probably not representative of the whole :shrug:

Lutha Mahtin
Oct 10, 2010

Your brokebrain sin is absolved...go and shitpost no more!

i would just like to say that "jenkins" and "transpile" are p good terms

ive never used jenkins but the name sounds like a cross between a butler and a crusty old maintenance guy who deals with all the gross stuff

transpile makes me think of the other day when i went through 3 boxes of junk at home and rearranged them into 5 differently-sorted boxes of junk :v:

fritz
Jul 26, 2003

FamDav posted:

do you have any idea why bazel has been getting a lot of talk over buck when buck is literally a reimplementation of blaze? or is it just because its recently released.

we use buck to build our android stuff and it feels slow as balls

suffix
Jul 27, 2013

Wheeee!
i have not been impressed with what little i've seen of bazel

everything just seems half-assed compared to maven

TwoDice
Feb 11, 2005
Not one, two.
Grimey Drawer

FamDav posted:

needs a web framework called loofa


dang that's really sad and I reflexively dry gagged thinking about maintaining it. maybe there were reasons for it but that's a serious misuse of the concept.

yeah we were all pretty new to the infrastructure and noone near us said NO STOP DONT when we set it up

JewKiller 3000
Nov 28, 2006

by Lowtax

AWWNAW posted:

i don't know poo poo about the ocaml community but willing to bet there aren't a bunch of pretentious dickwads trying to ape haskell there?

no that's literally the best thing about the ocaml community, they managed to avoid that somehow

they're like "yes, we could rework the entire standard library to be in monadic style. no, we didn't do that, because it sucks"

Illusive Fuck Man
Jul 5, 2004
RIP John McCain feel better xoxo 💋 🙏
Taco Defender
when I was fresh out of school at a startup I had to set up our repos. i had no idea what I was doing, so it was a single git repo with a bunch of zip files containing the linux kernel source and other open source projects and patches and poo poo and a bunch of bash scripts to extract, configure, compile, then zip the result back up and commit it.

it was really bad

Notorious b.s.d.
Jan 25, 2003

by Reene

Jabor posted:

A monorepo makes some degree of sense in any environment where you control all the code, depending on how much code-reuse and integration you have between projects.

Unfortunately, it's a bit infeasible to run a dozen open-source projects as a single repository (and even if you did, you wouldn't even see any of the benefits), which then leads it to being a second-class use case at best in open-source tooling. So you typically have to put work and/or money in to the tooling yourself in order to make it actually work.

listen to this man

monorepos can be cool and good, but it's not gonna work for you, the schlub in the corner with open source tooling and like five total infrastructure developers

Notorious b.s.d.
Jan 25, 2003

by Reene

abraham linksys posted:

not really sure how this would help with my complaint

like with split repos if i make a feature I have to create a feature branch for our DAL codebase (which is shared by multiple services), a feature branch for whatever the backend service I'm changing is, and a feature branch for the frontend to that service. then i have to make sure all of these feature branches get PRs that are merged into their respective masters

then whether you're using a git submodule to pull in a dependency or an internal package registry where packages are published with semver-following versions, you still have a huge process overhead compared to "the code on master in this one repo is the code running on everything and you never have to think about it"

also local development with split repos is a loving nightmare because assuming the code on your filesystem is the code you're running everywhere (and it should be because how else would you develop features involving multiple modules), when you swap between feature branches you have to swap between branches in multiple repos and you can easily end up in a broken state because you forgot something

it sounds like the actual problem is that you have hilariously unnatural junctions between projects

defying conway's law yields unhappy results 100% of the time

the actual fix isn't a mono-repo, it's a mono-lith. consolidate your poo poo, because your "services" are too tightly coupled to actually serve anyone

Notorious b.s.d.
Jan 25, 2003

by Reene

tef posted:

let's face it you're writing a web app or some poo poo, just mash it in together, it makes deployment a piece of piss

the reason that monorepos are such a great model for a webapp is the conways law bit. organizationally, everyone who works on the webapp is likely to occasionally touch all parts of the webapp.

extracting pieces into "microservices" is likely to introduce totally unwanted overhead, simply because the provider of the service and the consumer of the service are in the same group and there's no defined interface

Shaggar
Apr 26, 2006
you can have separate repos for libraries that are used internally by the webapps for things like security but yeah webapps should be single repos.

Adbot
ADBOT LOVES YOU

Soricidus
Oct 21, 2010
freedom-hating statist shill

JewKiller 3000 posted:

no that's literally the best thing about the ocaml community, they managed to avoid that somehow

they're like "yes, we could rework the entire standard library to be in monadic style. no, we didn't do that, because it sucks"

monadic style sucks, or the ocaml standard library sucks?

(i am aware that the answer is "both", god drat that is a bad stdlib.)

  • Locked thread