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.
 
  • Post
  • Reply
Soricidus
Oct 21, 2010
freedom-hating statist shill

Shaggar posted:

switch to maven. gradle is a terrible pile of poo poo by and for the dumbest possible people

oh id love to. I regularly write poms for third party stuff so I can touch it without endangering my mental health

unfortunately this particular case has a ridiculously convoluted build, and reimplementing it in a sane way would have required spending even more time staring at gradle soup to figure out what the gently caress it’s doing

Adbot
ADBOT LOVES YOU

animist
Aug 28, 2018
is the kotlin version of gradle any better or is that still unusable

i havent touched jvm dev in a few years

necrotic
Aug 2, 2005
I owe my brother big time for this!
it is still gradle, writing it in kotlin doesnt make it better.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
yeah the only benefit you get is that your ide will sorta know what type "it" is when you're doing a map, and you get some autocomplete on parts of the DSL (not sure how it works with gradle plugins)

and with ide I mean intellij of course, im not sure how well any of that will work outside of there

NihilCredo
Jun 6, 2011

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

Another neat benefit of the Kotlin version is that you can define your configuration as a set of Kotlin data classes and you can then share those classes between the build / test scripts that write them and the application code that reads them.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
[footage not found]

champagne posting
Apr 5, 2006

YOU ARE A BRAIN
IN A BUNKER

today I tried to do something that could be a loop, but in clojure with recursion, and let me tell you the recur is the biggest foot gun i've ever attempted to use

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


terrible programming: looks like the vendor never considered that someone might use a session to download hundreds of thousands of items and didn't bother implementing any temp file cleanup except on session shutdown.

:rip: the available disk space on those servers.

Twerk from Home
Jan 17, 2009

This avatar brought to you by the 'save our dead gay forums' foundation.

Shaggar posted:

switch to maven. gradle is a terrible pile of poo poo by and for the dumbest possible people

wait, then what is Bazel? Bazel is even worse

cool av
Mar 2, 2013

Powerful Two-Hander posted:

terrible programming: looks like the vendor never considered that someone might use a session to download hundreds of thousands of items and didn't bother implementing any temp file cleanup except on session shutdown.

:rip: the available disk space on those servers.

temp file cleanup of some kind was implemented, sounds like a good vendor.

Shaggar
Apr 26, 2006

Twerk from Home posted:

wait, then what is Bazel? Bazel is even worse

havent heard of it

FlapYoJacks
Feb 12, 2009
Probation
Can't post for 4 hours!

Shaggar posted:

havent heard of it

Think of the worst possible thing you could do for a build system?

Was it: Run a java session which uses /dev/shm to control your build system? With build breaking bugs/changes every time they update? That's what Bazel is.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
I had a colleague (type: never saw something new he didn't like) demo bazel a while ago. after the demo someone asked "so why should we use this instead of maven"

answer: because it's new

gonadic io
Feb 16, 2011

>>=
Doesn't it have better support for non-jvm langs and specifically mixed lang ecosystems? Or am I thinking of one of the other dozen newish build tools?

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
bazel supports all of the languages google allows and pretends to also support other languages

FlapYoJacks
Feb 12, 2009
Probation
Can't post for 4 hours!

Plorkyeran posted:

bazel supports all of the languages google allows and pretends to also support other languages

Which is funny because google also created mender which is actually good and does support a ton of different languages and doesn't require java to run.

It also works easily when cross-compiling.

Twerk from Home
Jan 17, 2009

This avatar brought to you by the 'save our dead gay forums' foundation.

Sagacity posted:

I had a colleague (type: never saw something new he didn't like) demo bazel a while ago. after the demo someone asked "so why should we use this instead of maven"

answer: because it's new

Gradle is the best build tool i regularly interact with, is maven really less fuss?

of course, the other build tools i deal with are xcode and webpack, so......

SAVE-LISP-AND-DIE
Nov 4, 2010

Boiled Water posted:

today I tried to do something that could be a loop, but in clojure with recursion, and let me tell you the recur is the biggest foot gun i've ever attempted to use

it's pretty fine when you get the knack for it? but usually some sort of reduce is easier. You can bale out of a reduce early with the "reduced" function.

DrPossum
May 15, 2004

i am not a surgeon

Boiled Water posted:

today I tried to do something that could be a loop, but in clojure with recursion, and let me tell you the recur is the biggest foot gun i've ever attempted to use

How does it shoot you? In my experience it either works as expected or just fails telling you that you didn't say the magic words right

DrPossum
May 15, 2004

i am not a surgeon

Twerk from Home posted:

Gradle is the best build tool i regularly interact with, is maven really less fuss?

of course, the other build tools i deal with are xcode and webpack, so......

Maven is less fuss if you don't have bespoke things you want to do, then you run into either having to google whatever little configuration parameter you need or digging up the right plugin, possibly of questionable origin, and then googling all the little configuration parameters you need

I use gradle for a lot of stuff and it's not so bad if you avoid the foot-shooty parts and don't need some huge directed graph of conditional build branches

champagne posting
Apr 5, 2006

YOU ARE A BRAIN
IN A BUNKER

DrPossum posted:

How does it shoot you? In my experience it either works as expected or just fails telling you that you didn't say the magic words right

its the latter part where I went on a wild foot chase

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Twerk from Home posted:

Gradle is the best build tool i regularly interact with, is maven really less fuss?
as with all software, the answer is "it depends". but the main difference is that maven is declarative only whereas Gradle allows actual programming in your build script (used to be in groovy which is completely terrible, its now kotlin which is definitely an improvement).

being able to write code in your build script invariably means you'll end up with an unmaintainable monstrosity the likes of which would scare lovecraft

additionally there's a good chance your ide won't be able to properly parse your project structure and you'll be in yet another world of pain trying to determine if the problem lies within gradle, the ide or your lovely build scripting

features like excluding dependencies are considered new and exciting

it's trying to be a build tool for all sorts of languages, including c++, which leads to complexity that you probably won't care about but is infused in all steps of your build

other than that is fine I guess. maven just works, otoh. it's also bad in a number of ways (trying to write your own plugin and getting it unit tested is a fun example of that) but it's extremely needs suiting and pretty simple. doing stuff in your own bespoke way is tricky enough that it's usually much better to just adapt your build so it works in the maven way, and the net result is that maven projects are all very similar and easy to understand

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Twerk from Home posted:

Gradle is the best build tool i regularly interact with, is maven really less fuss?

of course, the other build tools i deal with are xcode and webpack, so......

xcode build system is not executable code and therefore wins over gradle

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
xcodebuild somehow manages to make gradle look fast even after a rewrite that was supposed to make it faster

Pie Colony
Dec 8, 2006
I AM SUCH A FUCKUP THAT I CAN'T EVEN POST IN AN E/N THREAD I STARTED

Sagacity posted:

I had a colleague (type: never saw something new he didn't like) demo bazel a while ago. after the demo someone asked "so why should we use this instead of maven"

answer: because it's new

i've seen it adopted because remote caching of build artifacts can cut down build times significantly. but this (and it's versatility) only matters if your project is "complex" enough

Twerk from Home
Jan 17, 2009

This avatar brought to you by the 'save our dead gay forums' foundation.

Plorkyeran posted:

xcodebuild somehow manages to make gradle look fast even after a rewrite that was supposed to make it faster

we are still on the legacy build system of course so we don’t even get the new speed. hell, a lot of our obj c is running with reference counting disabled and doing manual memory management

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Twerk from Home posted:

we are still on the legacy build system of course so we don’t even get the new speed. hell, a lot of our obj c is running with reference counting disabled and doing manual memory management

whenever I open some objc project and mash "build" it's alarming how quickly it compiles

DrPossum
May 15, 2004

i am not a surgeon

Twerk from Home posted:

we are still on the legacy build system of course so we don’t even get the new speed. hell, a lot of our obj c is running with reference counting disabled and doing manual memory management

this is what I come here for

Soricidus
Oct 21, 2010
freedom-hating statist shill

Twerk from Home posted:

Gradle is the best build tool i regularly interact with, is maven really less fuss?

gradle is like perl. you can use it to write sensible things that are easy to maintain, but ...

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?
footgun-on-a-rope

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?
idly wondering if people remember that before it was Xcode, Project Builder’s build system was built on top of jam

champagne posting
Apr 5, 2006

YOU ARE A BRAIN
IN A BUNKER

eschaton posted:

footgun-on-a-rope

you hang yourself with it then shoot your foot or the other way around?

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?
life

uh

life finds a way

distortion park
Apr 25, 2011


Tagged types are nicer to work with 99% of the time but it would be cool if c# and friends had a "structural cast" operator

distortion park
Apr 25, 2011


Having thought about that for more than 20 seconds that's actually a terrible idea, definitely belongs itt. Maybe for f# record types it could work but not for full on classes

Bloody
Mar 3, 2013

what would that do

distortion park
Apr 25, 2011


Bloody posted:

what would that do

say you have two records with the same shape but different names (or if one is a subset of the other). instead of manually mapping the fields across you could just treat one as the other using a special operator. like in typescript but explicit.

DELETE CASCADE
Oct 25, 2017

i haven't washed my penis since i jerked it to a phtotograph of george w. bush in 2003
idk about f# but the object system in ocaml works the way you are describing. the term for this is nominal subtyping vs structural subtyping. in the ocaml object system, you can define a class with some methods, and you can give it a name, but that name is not the type. the actual type is something like <object with method x, method y, method z, ...> where the ... is meaningful and stands for "maybe some other methods as well, don't know don't care". so if you write a function that takes an object, calls method x on it with no arguments, and treats the result as an integer, the input type for this function is <obj x : unit -> int, ...> and so you can pass in any object that meets this signature, regardless of its class. the actual implementation here is based on row types

RPATDO_LAMD
Mar 22, 2013

🐘🪠🍆
automatic duck-typing sounds like it would lead to all sorts of problems
if you have two separate types, CustomerID and InvoiceID, that are both backed by a simple int, how do you get the type checker to enforce "the ID argument to this function must be of type CustomerID"

Adbot
ADBOT LOVES YOU

Phobeste
Apr 9, 2006

never, like, count out Touchdown Tom, man

RPATDO_LAMD posted:

automatic duck-typing sounds like it would lead to all sorts of problems
if you have two separate types, CustomerID and InvoiceID, that are both backed by a simple int, how do you get the type checker to enforce "the ID argument to this function must be of type CustomerID"

type aliases for things that have the same machine storage but aren't actually directly comparable. duck typing goes for objects usually, PODs often don't count (I believe).

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply