Hello, I'm sorry if this has been asked before, but is it で or が? I know you're supposed to use で for languages, but this sentence I got from class is using が。
I'm utterly confused :-(
In this case, the particle で denotes method/means ('by means of', 'with', 'using', etc.) The difference is 'speak in Japanese' vs 'speak Japanese'.
One can (speak / talk with someone / say something) well in Japanese.
One can speak Japanese well. (= One is a good Japanese speaker).
When someone says 日本語で話す, it means talking with someone, or saying something, using / by means of Japanese. The speaker usually has some concrete objective in their mind, and is concerned about whether or not one can [do it / say it / talk with them] well in Japanese.
For example, this sentence is OK:
(literally) As for tomorrow's lecture, I think I can speak well in Japanese.
However, when you're talking about whether or not someone is a good Japanese speaker in general, 日本語が上手に話せる is much more natural.
The meaning of two sentences is same. で in this case is used as the method of representing tool and が is used as a postpositional particle of the method of representing the subject.