# Confusing/misleading error message for a beginner

**URL:** https://discourse.julialang.org/t/confusing-misleading-error-message-for-a-beginner/91277
**Category:** New to Julia
**Tags:** dataframes, error-message, dataframesmeta
**Created:** [December 5, 2022, 8:52pm UTC](https://discourse.julialang.org/t/confusing-misleading-error-message-for-a-beginner/91277 "2022-12-05T20:52:52Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)
#### Post date: [December 5, 2022, 10:43pm UTC](https://discourse.julialang.org/t/confusing-misleading-error-message-for-a-beginner/91277/3 "2022-12-05T22:43:59Z")

</div>

> [@einar](#):
>
> The syntax is **very** readable in many cases and multiple dispatch is a fun concept - but error messages can be very hard to get clues from as a new user, it is hard to guess how to correct code

Right, I guess you learn to read the error messages over time and understand them better, but I want to point out JuliaSyntax.jl the new parser which does actually have better error messages!

I haven’t actually tried it myself, since I’m adjusted and ok enough by now with Julia’s errors, but let me know it it helps. I also see in its readme a link to:

> The paper [P2429 - Concepts Error Messages for Humans](https://wg21.tartanllama.xyz/P2429%20-%20Concepts%20Error%20Messages%20for%20Humans.pdf) is C++ centric, but has a nice review of quality error reporting in various compilers including Elm, ReasonML, Flow, D and Rust.

Julia (with or) without that package may not have the best error messages, but by far not the worst of all languages. C++ has terrible error messages at least if you use templates (which is it generic feature, and Julia is generic by default, so competing with such).

There are also other tools:

> **[GitHub - BioTurboNick/AbbreviatedStackTraces.jl](https://github.com/BioTurboNick/AbbreviatedStackTraces.jl)**
>
> Contribute to BioTurboNick/AbbreviatedStackTraces.jl development by creating an account on GitHub.

that I haven’t tried (might conflict with the other package?) and JET.jl, I’m just barely tried, and Aqua.jl and a linter also available. More to be aware of in this context?

Well and I forget:

> **[GitHub - tkf/InteractiveCodeSearch.jl: Interactively search Julia code from...](https://github.com/tkf/InteractiveCodeSearch.jl)**
>
> Interactively search Julia code from terminal. Contribute to tkf/InteractiveCodeSearch.jl development by creating an account on GitHub.

Not sure if supports VS Code too, if it does and is useful, maybe it and some of the best tools should be bundled with?

> [@einar](#):
>
> I literally used OpenAI ChatGPT today to try to figure out how to do things 😂

And how did that work for you? See my post on it and question in the off-topic category. I was asking about AI tools for writing code, but I can see such tools, even that one, helping for decoding error messages. Feel free to answer here about it and/or there. Maybe we should add a new topic about such tools to use with error messages. Or I’m happy to add a question to my post there. I kind of regret putting it under off-topic, I think AI tools are very much on-topic for Julia, or will be, and at least already relevant for other languages.

> [@einar](#):
>
> The latter seems like a hard problem to solve since there is no way to do something like `plot.{PRESS TAB}` do discover properties.

Potentially tab-completion is also an area for AI. There are already topics here about that and new possible syntax (in part to help with TAB-completion), in the internal category, and maybe elsewhere. I look forward to what’s possible with or without AI, or learning what’s maybe already possible. There is e.g. a package ObjectOriented.jl for single-dispatch OO, as in Python, but I don’t want to use a package/alternative syntax to get TAB-completion (I believe it doesn’t offer that, and I doubt someone would make a tool just for a specific package/style). Or at least I would want it for both styles (at least for the default idiomatic Julia code).

I only sort of follow the syntax posts (this is 3rd and latest proposal, tab-completion may have been discussed more in the older two posts, and there actually even one more, linked from some of them…):

> [@Fixing the Piping/Chaining Issue (Rev 3)](https://discourse.julialang.org/t/fixing-the-piping-chaining-issue-rev-3/90836/29):
>
> I really like the x.{f, g(it), h} syntax. It’s a nice solution to cases where pure functional programming is awkward, and the syntax feels quite easy to grasp. And yes, it would be awesome if using \<tab\> was as helpful as OOP languages. However, I will say that the multi-chain syntax feels inappropriate to use directly inside a text-based programming language. This kind of 2D programming seems best suited for full-fledged visual programming languages like Blender’s graph editor, LabVIEW, Micros…

---

_[View the full topic](https://discourse.julialang.org/t/confusing-misleading-error-message-for-a-beginner/91277)._
