Project

General

Profile

Actions

Feature #18055

open

Introduce

Added by shalokshalom (Matthias Schuster) about 2 months ago. Updated about 2 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:104727]

Description

Currently, autoload provides the ability to load libraries on the fly, also called lazy loading, in order to avoid huge startup times.

This has some disadvantages, who already lead nearly to its discontinuation

I suggest a proposal, that solves both these issues.

introduce

I imagine this keyword, respectively method behaves like require at the top of the file and does act like autoload within a definition.

We can also introduce exceptions for cases like the above linked threads.

Its also a nice guideline, and easy to remember.

Summary: introduce can always behave predictable, optimal, and even work fine without the programmer knowing about its implementation.

Similar issues:

Actions #1

Updated by shalokshalom (Matthias Schuster) about 2 months ago

  • Description updated (diff)

Updated by matz (Yukihiro Matsumoto) about 2 months ago

Can you explain how introduce solves the issue? How it is better than require and autoload?

Matz.

Updated by shalokshalom (Matthias Schuster) about 2 months ago

Hi Matz!

I see value in it, since it gives us one unified way, to call libraries:

Where ever you do it, when ever you do it, it is always the most optimal choice.

Currently, users shy away from using autoload, since its riddled with use cases, in which it can bite your back.

introduce always uses the most optimal way.

This gives a nice 'wrapper' around autoload and require, that lets us use always the most optimal of the two.

It can encourage, to load libraries only, when they are really used, and by that, increasing the start-up performance.

I hope this can help :)

Actions

Also available in: Atom PDF