Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ammonite REPL as standard REPL (for Scala 2? for Scala 3?) #109

Closed
SethTisue opened this issue Aug 27, 2021 · 2 comments
Closed

Ammonite REPL as standard REPL (for Scala 2? for Scala 3?) #109

SethTisue opened this issue Aug 27, 2021 · 2 comments

Comments

@SethTisue
Copy link
Contributor

I think this choice is debatable (and should be debated).

In Scala 2 world, although Ammonite has a substantial userbase, it is not the standard REPL and I think making it one exceeds the scala-cli's authority, as it were. Spark uses the standard REPL, books use the standard REPL, I don't think Ammonite should just be swapped in as the new default as if it were the standard. Could it be provided, but as an alternative? I think that would be wonderful.

I'm less sure what I think about Scala 3. Scala 3 is new and there's more of a chance to say what the new standard is. But if Ammonite is going to become the standard Scala 3 REPL -- if that's the decision, then it should be the decision, not just for scala-cli specifically but for the Scala 3 effort as a whole, which implies discontinuing the existing Scala 3 REPL and removing it from the lampepfl/dotty repo.

@ckipp01
Copy link
Contributor

ckipp01 commented Aug 29, 2021

In Scala 2 world, although Ammonite has a substantial userbase, it is not the standard REPL and I think making it one exceeds the scala-cli's authority, as it were. Spark uses the standard REPL, books use the standard REPL, I don't think Ammonite should just be swapped in as the new default as if it were the standard. Could it be provided, but as an alternative? I think that would be wonderful.

I brought up this same point before actually. If I understood the response correctly the intent is to use the Scala REPL by default and do exactly as you mention, have Ammonite as an alternative.

I'm less sure what I think about Scala 3. Scala 3 is new and there's more of a chance to say what the new standard is. But if Ammonite is going to become the standard Scala 3 REPL -- if that's the decision, then it should be the decision, not just for scala-cli specifically but for the Scala 3 effort as a whole, which implies discontinuing the existing Scala 3 REPL and removing it from the lampepfl/dotty repo.

My opinion would be to go the other direction and upstream anything from the Ammonite REPL that isn't in the Scala 3 REPL. I was always under the impression that much of the Scala 3 REPL was inspired from Ammonite and I was hoping that with the Scala 3 REPL, there would be no need for the Ammonite REPL. I also think it's worth noting that there are a handful of issues reported about inconsistencies with the Ammonite REPL and the Scala 3 REPL. There were also regressions introduced with the added Scala 3 support in Ammonite, none of which are currently being addressed. Some of them quite major, like this one impacting Scala 2.13 users: com-lihaoyi/Ammonite#1182.

I have a ton of respect for the Ammonite REPL pushing the boundaries, but I hope we learned from it and can upstream those changes since having it be part of the Scala 3 REPL also guarantees at least a bit of help when people are looking for it and also some attention to issues. These are extremely important, especially for newcomers. With Ammonite not really being actively maintained I'd caution against pushing it to the forefront for usage with Scala 3.

@romanowski
Copy link
Member

Scala CLI now defaults to Scala REPL, and have --amm option to run Ammonite . I think we can close this topic for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants