Replies: 11 comments 1 reply
-
Hi! What company do you work at (if any)? How many engineers in the org? (approx is fine) Which com-lihaoyi projects? What you like about the projects you use?
What don't you like, either about the projects you use or the projects you don't? (confusing APIs, docs, missing functionality, etc.) Not looking to complain about excellent libraries... If I had a magic wand I would somehow do the following.. uPickle
|
Beta Was this translation helpful? Give feedback.
-
What company do you work at (if any)?consulting and tooling software at Maniland China How many engineers in the org? (approx is fine)1, myself Which com-lihaoyi projects?
What you like about the projects you use?simple, easy API design What don't you like, either about the projects you use or the projects you don't? (confusing APIs, docs, missing functionality, etc.)In fact, I had not used any scala libraries anymore, but Java ones. Since I chose to stay with scala2.12 and focus on what to do instead of what to use or how to to do, stability and compatability is what I prefer most. |
Beta Was this translation helpful? Give feedback.
-
What company do you work at? --- Objektwerks |
Beta Was this translation helpful? Give feedback.
-
What company do you work at (if any)?Soaringmeteo (non-profit organization) How many engineers in the org? (approx is fine)1-5 Which com-lihaoyi projects?os-lib, requests. What you like about the projects you use?No ceremony to set up. Add the dependency to your build and use them. Cherry on the cake: you usually don’t need much imports as well because package names are short and simple ( What don't you like, either about the projects you use or the projects you don't? (confusing APIs, docs, missing functionality, etc.)
|
Beta Was this translation helpful? Give feedback.
-
What company do you work at (if any)? / How many engineers in the org? (approx is fine) Just responding for myself (OSS), however, I've seen com-lihaoyi libs used at every company I've worked at over the last ...decade? Generally I've seen them used for glue code and scripts. Which com-lihaoyi projects?
What you like about the projects you use? Generally I love the straight-forward practically it of the libraries in this ecosystem. There is no better way to do bash-like scripting stuff than with os-lib. Its simple and gives great confidence. (I wrote a blog post on it!) Mill deserves much wider usage. I love the fact that you can learn it in a weekend, that it is straight up Scala, and has a highly regular structure. Also writing plugins / contrib extensions for Mill is a joyful experience. The source code is also impressively readable, and I have occasionally worked out how to do stuff by delving into it. (I'm using it in this video because it was far more convenient than the alternatives!) I used to use uTest extensively too, but I had to switch because I was a very early Scala 3 (pre-release) adopter. uTest wasn't there yet so I had to move and haven't quite bothered myself to go back. But I did love it. It was a breath of fresh air after the DSL heavy libs like ScalaTest and Specs2. These days, uTest has MUnit as competition in that space, but one thing uTest can do that MUnit can't (I think...) is hierarchically nested test - I used to use that a lot. What don't you like, either about the projects you use or the projects you don't? (confusing APIs, docs, missing functionality, etc.) I used to use uPickle (a few years ago!) but stopped because I found the encoding choices unexpected. Maybe it has moved on, but things like encoding My only grumble with Mill (which again, is generally awesome) is the CLI experience. Again, perhaps some of this has been addressed, but there are/were a few footguns that sometimes I could only solve by asking people on Discord. Some examples:
Hope that helps. I really appreciate the existence of this ecosystem. |
Beta Was this translation helpful? Give feedback.
-
What company do you work at (if any)? How many engineers in the org? (approx is fine) Which com-lihaoyi projects? What you like about the projects you use?
What don't you like, either about the projects you use or the projects you don't? (confusing APIs, docs, missing functionality, etc.)
{
"name": "space between root and bracket",
"selector" : "$ ['a']",
"document" : {"a": "ab"},
"result": [ "ab" ]
}, |
Beta Was this translation helpful? Give feedback.
-
What company do you work at (if any)? How many engineers in the org? (approx is fine) Which com-lihaoyi projects? What you like about the projects you use? What don't you like, either about the projects you use or the projects you don't? (confusing APIs, docs, missing functionality, etc.) Having said that, we are more than happy with using li-hayoi libs for any kind of scripting and automation. Feel free to message me anywhere (X, Discord, LinkedIn, email) if you need more details. |
Beta Was this translation helpful? Give feedback.
-
What company do you work at (if any)? How many engineers in the org? (approx is fine) ~ 30 Which com-lihaoyi projects? Ammonite is used to provide the shell environment for our internal tools. os-lib, requests, upickle. Both are used primarily in operational support tooling. In particular Ammonite. What you like about the projects you use? Ammonite is easy to extend and embed. Which is probably why Ammonite appears to be a critical component of various spark shells: almond ; spark connect shell ; one other I forgot. The other libraries are also appreciated for their ease of use. The stuff that should be easy is easy. Approachable. What don't you like, either about the projects you use or the projects you don't? (confusing APIs, docs, missing functionality, etc.) Ammonite has the challenge of requiring a precise set of version requirements. This seems to be inherit in integrating with the scala compiler. Seems like the scala compiler should be providing more functionality here to make this less fragile. |
Beta Was this translation helpful? Give feedback.
-
What company do you work at (if any)? |
Beta Was this translation helpful? Give feedback.
-
What company do you work at (if any)?Glean.ai How many engineers in the org? (approx is fine)<10 Which com-lihaoyi projects?Mill - new Scala projects are built with this, and I plan to migrate the old Sbt projects to Mill as well What do you like about the projects you use?I'll give some backstory first:I read your book and became acquainted with Mill there, I also read your blog post describing why Mill instead of Sbt, and then I thought "maybe I can build the next project with Mill". I have already used Maven, Gradle and Sbt (I hate them all). Mill seemed promising but it still didn't do what I wanted by default; but you promised the code was straightforward, so I downloaded the source and read it, and... that's when I really started going crazy with your libraries. Your code is actually readable, right level of cleverness, and so when something needs to be changed, I can do it! I feel like I own the codebase, instead of the codebase owning me (heh) Anyway with that backstory out of the way...All your projects -> your focus on conciseness, readability, clarity, it's great. Your documentation is pretty good, covers the base use cases, and because your source code can actually be read, the source code provides the rest of the documentation. I also like that you include the rationale for every project, this really helps to understand what niche it's trying to cover. Mill -> does what I want it to do, easy to learn, defaults make sense. Sbt's default extremely-nested Java-style source folders irk me, and Mill does nothing of that. The build file is actual Scala, I can ctrl+click to go to definitions. It's great, and I can teach it, and it works. Requests -> best for helping Python devs to move over to Scala, and to show them that Scala can be used "as a better Python" uPickle -> fast, straightforward, actually works, and you patched the biggest drawback I found (the whole Option[T] deserialization giving a list on Json instead of a null or empty field). JSON is a lightweight format, and I want to use it as such, and this library does just that. os-lib -> can't write scripts without this! Beautiful and simple! scalaSQL -> the project vision seemed very promising, the source code is clear, tests are well organized. Gives me hope that it'll be a good replacement for both Slick (does too many things) and ScalikeJDBC (does too few things) What don't you like, either about the projects you use or the projects you don't? (confusing APIs, docs, missing functionality, etc.)Mill -> IntelliJ support is rough (this is on JetBrains, I think they'll come to it if adoption continues to increase) I'll send you an email. Thanks for all you've done for the Scala community and ecosystem! |
Beta Was this translation helpful? Give feedback.
-
Hi all! I wanted to try and gather some feedback from the com-lihaoyi user base on how they are using these tools and libraries. If you use any of the com-lihaoyi projects (Mill, Ammonite, Cask, uPickle, os-lib, ...), could you please respond with:
What company do you work at (if any)?
How many engineers in the org? (approx is fine)
Which com-lihaoyi projects?
What you like about the projects you use?
What don't you like, either about the projects you use or the projects you don't? (confusing APIs, docs, missing functionality, etc.)
OPTIONAL: If you're open to chat, drop an email to [email protected] and I can reach out with more questions and discussions offline.
I'm trying to get a better sense of the mood of the community using the com-lihaoyi projects, and learn about how they fit into the larger Scala and software engineering ecosystem. So if you have a moment please reply and let us know how things are going, and drop me an email if you are OK with me reaching out with more questions :)
Beta Was this translation helpful? Give feedback.
All reactions