|
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
|
# ? Aug 16, 2020 08:55 |
|
|
# ? Apr 26, 2024 21:39 |
|
is the kotlin version of gradle any better or is that still unusable i havent touched jvm dev in a few years
|
# ? Aug 16, 2020 22:46 |
|
it is still gradle, writing it in kotlin doesnt make it better.
|
# ? Aug 16, 2020 23:36 |
|
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
|
# ? Aug 17, 2020 07:48 |
|
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.
|
# ? Aug 17, 2020 08:04 |
|
[footage not found]
|
# ? Aug 17, 2020 15:02 |
|
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
|
# ? Aug 17, 2020 15:09 |
|
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. the available disk space on those servers.
|
# ? Aug 17, 2020 16:44 |
|
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
|
# ? Aug 17, 2020 17:54 |
|
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. temp file cleanup of some kind was implemented, sounds like a good vendor.
|
# ? Aug 17, 2020 18:03 |
|
Twerk from Home posted:wait, then what is Bazel? Bazel is even worse havent heard of it
|
# ? Aug 17, 2020 18:28 |
|
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.
|
# ? Aug 17, 2020 18:41 |
|
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
|
# ? Aug 17, 2020 19:27 |
|
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?
|
# ? Aug 17, 2020 19:31 |
|
bazel supports all of the languages google allows and pretends to also support other languages
|
# ? Aug 17, 2020 19:37 |
|
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.
|
# ? Aug 17, 2020 19:46 |
|
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" 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......
|
# ? Aug 17, 2020 20:05 |
|
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.
|
# ? Aug 17, 2020 20:29 |
|
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
|
# ? Aug 17, 2020 21:11 |
|
Twerk from Home posted:Gradle is the best build tool i regularly interact with, is maven really less fuss? 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
|
# ? Aug 17, 2020 21:16 |
|
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
|
# ? Aug 17, 2020 21:21 |
|
Twerk from Home posted:Gradle is the best build tool i regularly interact with, is maven really less fuss? 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
|
# ? Aug 17, 2020 21:28 |
|
Twerk from Home posted:Gradle is the best build tool i regularly interact with, is maven really less fuss? xcode build system is not executable code and therefore wins over gradle
|
# ? Aug 18, 2020 02:09 |
|
xcodebuild somehow manages to make gradle look fast even after a rewrite that was supposed to make it faster
|
# ? Aug 18, 2020 02:20 |
|
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" 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
|
# ? Aug 18, 2020 02:27 |
|
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
|
# ? Aug 18, 2020 02:35 |
|
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
|
# ? Aug 18, 2020 02:37 |
|
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
|
# ? Aug 18, 2020 02:37 |
|
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 ...
|
# ? Aug 18, 2020 07:51 |
|
footgun-on-a-rope
|
# ? Aug 18, 2020 08:18 |
|
idly wondering if people remember that before it was Xcode, Project Builder’s build system was built on top of jam
|
# ? Aug 18, 2020 08:19 |
|
eschaton posted:footgun-on-a-rope you hang yourself with it then shoot your foot or the other way around?
|
# ? Aug 18, 2020 08:29 |
|
life uh life finds a way
|
# ? Aug 18, 2020 08:54 |
|
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
|
# ? Aug 20, 2020 10:24 |
|
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
|
# ? Aug 20, 2020 10:25 |
|
what would that do
|
# ? Aug 20, 2020 18:35 |
|
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.
|
# ? Aug 20, 2020 18:43 |
|
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
|
# ? Aug 20, 2020 18:52 |
|
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"
|
# ? Aug 20, 2020 19:53 |
|
|
# ? Apr 26, 2024 21:39 |
|
RPATDO_LAMD posted:automatic duck-typing sounds like it would lead to all sorts of problems 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).
|
# ? Aug 20, 2020 19:55 |