Julia: Improved first-time experience

Created on 31 Jan 2020  路  4Comments  路  Source: JuliaLang/julia

The base language could provide simple constructs to improve the first-time experience:

  1. Import Foo as Bar syntax (ImportMacros.jl)
  2. Default fields in structs (Parameters.jl)
  3. More flexible test utilities (TestSetExtension.jl)
  4. Removal of undef keyword in Matrix{Float64}(undef, 3, 3)

I am advising a student who struggled with the undef business that we are used to as more experienced users. He also missed the import VeryLongModuleName as VLMN syntax that is quite natural for people coming from Python. Would it be possible to consider these improvements in next major releases? I understand that some of these issues are already being tracked on GitHub, but I couldn't find a single issue collecting them.

Most helpful comment

The first two items are on my punch list of quality of life improvements. If you know anyone who has the skills and time to implement them, that would be helpful. There's been discussion of doing a quality of life release and maybe these will get more attention then. In the meantime, the same people who fix compiler bugs, performance issues, scope gripes, and fight compile time latency are the same people who would be implementing these features.

Regarding 3, overhauling the Test stdlib is also a project that I've long had on my ever-expanding todo list, but it's a lot of work and every piece of API we take on is a permanent burden. You'll note that TestSetExtensions is on version 2.0.0, so it's gone through at least one round of breaking API changes which wouldn't be possible if it was a standard library.

Removal of undef is not going to happen. It was discussed and decided. If you don't like it, use zeros(T, dims...) and you'll get zero-initialized arrays.

All 4 comments

I understand that some of these issues are already being tracked on GitHub, but I couldn't find a single issue collecting them.

Why do we need to collect issues? I think the separate issues are good enough. (1. #1255, 2. #10146, 3. https://github.com/JuliaLang/julia/issues?q=is%3Aopen+is%3Aissue+label%3Atestsystem, 4. multiple issues and was discussed at length before 1.0).

The only issue that is not clear to me based on the many previous discussions is the undef issue. The other issues seem quite popular with various likes from the community.

What is the situation with undef? Some people commented on slack that the removal of undef is possible and seen with good eyes.

See #24595 and issues linked to in there, e.g. #30603

The first two items are on my punch list of quality of life improvements. If you know anyone who has the skills and time to implement them, that would be helpful. There's been discussion of doing a quality of life release and maybe these will get more attention then. In the meantime, the same people who fix compiler bugs, performance issues, scope gripes, and fight compile time latency are the same people who would be implementing these features.

Regarding 3, overhauling the Test stdlib is also a project that I've long had on my ever-expanding todo list, but it's a lot of work and every piece of API we take on is a permanent burden. You'll note that TestSetExtensions is on version 2.0.0, so it's gone through at least one round of breaking API changes which wouldn't be possible if it was a standard library.

Removal of undef is not going to happen. It was discussed and decided. If you don't like it, use zeros(T, dims...) and you'll get zero-initialized arrays.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

wilburtownsend picture wilburtownsend  路  3Comments

musm picture musm  路  3Comments

dpsanders picture dpsanders  路  3Comments

felixrehren picture felixrehren  路  3Comments

yurivish picture yurivish  路  3Comments