ವಾಸ್ತುಶಿಲ್ಪ ನಿರ್ಧಾರ ದಾಖಲೆ: Rust ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ
ನಿರ್ಧಾರ ಸಂಖ್ಯೆ: AR-001
ನಿರ್ಧಾರದ ಶೀರ್ಷಿಕೆ: Rust ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಅಳವಡಿಕೆ
ದಿನಾಂಕ: ಡಿಸೆಂಬರ್ 1, 2021
ಸ್ಥಿತಿ: ಸ್ವೀಕೃತ
ಸಮಸ್ಯೆಯ ಹೇಳಿಕೆ
ನಾವು ತಂತ್ರಾಂಶ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಾ ಹೋದಂತೆ, ಸಂಭಾವ್ಯ ಭದ್ರತಾ ದುರ್ಬಲತೆಗಳನ್ನು ತಗ್ಗಿಸುವುದು ಮತ್ತು ರನ್ಟೈಮ್ ದೋಷಗಳನ್ನು ತಡೆಯುವುದು ಹೆಚ್ಚೆಚ್ಚು ಸವಾಲಿನದ್ದಾಗುತ್ತಿದೆ ಎಂದು ನಾವು ಗಮನಿಸಿದ್ದೇವೆ. C ಮತ್ತು C++ ನಂತಹ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳೊಂದಿಗೆ, ಬಫರ್ ಓವರ್ಫ್ಲೋಗಳು, ಮೆಮೊರಿ ಸೋರಿಕೆಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ಗಳ ಕ್ರ್ಯಾಶ್ಗೆ ಕಾರಣವಾಗುವ ಅನಿರ್ದಿಷ್ಟ ವರ್ತನೆಯಂತಹ ಸಮಸ್ಯೆಗಳನ್ನು ನಾವು ಇನ್ನೂ ಅನುಭವಿಸುತ್ತಿದ್ದೇವೆ. ಮೆಮೊರಿ ಸುರಕ್ಷತೆಯ ಖಾತರಿಗಳನ್ನು ಒದಗಿಸುವ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆ-ನಿರ್ಣಾಯಕ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಬೆಂಬಲಿಸುವಷ್ಟು ದಕ್ಷವಾಗಿರುವ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ ನಮಗೆ ಬೇಕು.
ಪರಿಗಣನೆಗಳು
ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಹಲವಾರು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಅವುಗಳಲ್ಲಿ, Rust ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯು ತನ್ನ ವಿಶಿಷ್ಟ ವಿನ್ಯಾಸ ವೈಶಿಷ್ಟ್ಯಗಳಿಂದ ಡೆವಲಪರ್ಗಳ ಸಮುದಾಯದಿಂದ ಗಮನಾರ್ಹ ಗಮನ ಸೆಳೆದಿದೆ. ಪರಿಗಣನೆಗಳು ಇವುಗಳನ್ನು ಒಳಗೊಂಡಿವೆ;
ಮೆಮೊರಿ ಸುರಕ್ಷತೆ ಮತ್ತು ಭದ್ರತೆ
ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ದಕ್ಷತೆ
ಸಮುದಾಯ ಬೆಂಬಲ ಮತ್ತು ಅಳವಡಿಕೆ
ಕಲಿಕೆಯ ರೇಖೆ
ಸಾಧನಗಳು ಮತ್ತು ಪರಿಸರ ವ್ಯವಸ್ಥೆ
ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ತಂತ್ರಾಂಶ ವ್ಯವಸ್ಥೆಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆ.
ನಿರ್ಬಂಧಗಳು
ಹೊಸ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಲು ಡೆವಲಪರ್ಗಳಿಗೆ ಮರುತರಬೇತಿ ನೀಡಬೇಕಾಗುತ್ತದೆ, ಇದಕ್ಕೆ ಸಮಯ ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳು ಬೇಕು. ಭಾಷೆಯನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅಭಿವೃದ್ಧಿ ಕೆಲಸದ ಹರಿವಿಗೆ ಏಕೀಕರಿಸುವುದು ಸವಾಲಾಗಬಹುದು. ನಾವು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವ್ಯವಸ್ಥೆಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕು ಮತ್ತು ನಿರಂತರತೆಯನ್ನು ಕಾಪಾಡಲು ಮುರಿಯುವ ಬದಲಾವಣೆಗಳನ್ನು ತಪ್ಪಿಸಬೇಕು.
ಅನುಷ್ಠಾನ
ನಮ್ಮ ಅಭಿವೃದ್ಧಿ ತಂಡವು Rust ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯನ್ನು ಕಲಿಯಲು ಮತ್ತು ಪರಿಚಿತವಾಗಲು ತರಬೇತಿ ಪಡೆಯುತ್ತದೆ.
ನಮ್ಮ ಅಭಿವೃದ್ಧಿ ಉದ್ದೇಶಗಳಿಗೆ ಅದರ ಹೊಂದಾಣಿಕೆ ಮತ್ತು ಸೂಕ್ತತೆಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ನಾವು ಪ್ರಾಯೋಗಿಕ ಆಧಾರದ ಮೇಲೆ Rust ಬಳಸಿ ಹೊಸ ಯೋಜನೆಯನ್ನು ರಚಿಸುತ್ತೇವೆ.
C ಮತ್ತು C++ ನಲ್ಲಿ ಬರೆದ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವ್ಯವಸ್ಥೆಗಳನ್ನು ನಾವು ಕ್ರಮೇಣ Rust ಗೆ ವಲಸೆ ಮಾಡುತ್ತೇವೆ.
ನಮ್ಮ ಅಭಿವೃದ್ಧಿ ಕೆಲಸದ ಹರಿವನ್ನು ವರ್ಧಿಸಬಲ್ಲ ಲಭ್ಯವಿರುವ ಸಾಧನಗಳು ಮತ್ತು ಗ್ರಂಥಾಲಯಗಳನ್ನು ಅನ್ವೇಷಿಸಲು ನಾವು Rust ಸಮುದಾಯದೊಂದಿಗೆ ಸಹಯೋಗ ಮಾಡುತ್ತೇವೆ.
ನಾವು Rust ನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ ಅದನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯೊಂದಿಗೆ ನಿಯಮಿತವಾಗಿ ಹೋಲಿಸುತ್ತೇವೆ.
ತರಬೇತಿ, ಏಕೀಕರಣದ ವೆಚ್ಚಗಳು ಮತ್ತು Rust ಬಳಸುವುದರ ಸಂಭಾವ್ಯ ಪ್ರಯೋಜನಗಳನ್ನು ಸಮತೋಲನಗೊಳಿಸುವ ದೀರ್ಘಕಾಲೀನ ವಿಧಾನವನ್ನು ನಾವು ಅಳವಡಿಸಿಕೊಳ್ಳುತ್ತೇವೆ.
ತಾರ್ಕಿಕತೆ
ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ದಕ್ಷತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳುತ್ತಲೇ ಮೆಮೊರಿ ಸುರಕ್ಷತೆ ಮತ್ತು ಭದ್ರತೆಯ ಖಾತರಿಗಳನ್ನು ಒದಗಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಿದ ಅದರ ವಿಶಿಷ್ಟ ವೈಶಿಷ್ಟ್ಯಗಳ ಕಾರಣದಿಂದ ನಾವು Rust ಅನ್ನು ಅಳವಡಿಸಿಕೊಂಡಿದ್ದೇವೆ. Rust ನ ದೃಢವಾದ ಟೈಪ್ ವ್ಯವಸ್ಥೆ, ಬಾರೋ ಚೆಕರ್ ಮತ್ತು ಮೆಮೊರಿ ಸುರಕ್ಷತೆ ಪರಿಕಲ್ಪನೆಗಳು ಕಾರ್ಯಕ್ಷಮತೆ-ನಿರ್ಣಾಯಕ ಮತ್ತು ಸುರಕ್ಷತೆ-ನಿರ್ಣಾಯಕ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಅದನ್ನು ಬಹಳ ಸೂಕ್ತವಾಗಿಸುತ್ತವೆ. ಇದಲ್ಲದೆ, Rust ಡೆವಲಪರ್ಗಳ ಗಮನಾರ್ಹ ಸಮುದಾಯವನ್ನು ಹೊಂದಿದ್ದು, ನಮ್ಮ ಅಭಿವೃದ್ಧಿ ಕೆಲಸದ ಹರಿವನ್ನು ಬೆಂಬಲಿಸುವ ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ಸಾಧನಗಳು, ಗ್ರಂಥಾಲಯಗಳು ಮತ್ತು ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ನಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. Rust ಕಲಿಕೆಯ ರೇಖೆಯೊಂದಿಗೆ ಬರುತ್ತದೆಯಾದರೂ, Rust ಅಳವಡಿಕೆಯ ಪ್ರಯೋಜನಗಳು ವೆಚ್ಚಗಳಿಗಿಂತ ಹೆಚ್ಚು ಮತ್ತು ನಿರಂತರ ಬೆಳವಣಿಗೆ ಹಾಗೂ ನಾವೀನ್ಯತೆಗೆ ಅತ್ಯುತ್ತಮ ಅವಕಾಶವನ್ನು ಒದಗಿಸುತ್ತವೆ ಎಂದು ನಾವು ನಂಬುತ್ತೇವೆ.
ಪರಿಣಾಮಗಳು
Rust ಅಳವಡಿಕೆಗೆ ಡೆವಲಪರ್ಗಳಿಗೆ ತರಬೇತಿ ನೀಡಲು ಮತ್ತು ಭಾಷೆಯನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅಭಿವೃದ್ಧಿ ಕೆಲಸದ ಹರಿವಿಗೆ ಏಕೀಕರಿಸಲು ಸಮಯ ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳಲ್ಲಿ ಗಣನೀಯ ಹೂಡಿಕೆ ಬೇಕಾಗುತ್ತದೆ.
Rust ಅಳವಡಿಕೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವ್ಯವಸ್ಥೆಗಳೊಂದಿಗೆ ಸ್ವಲ್ಪ ಮಟ್ಟಿನ ಹೊಂದಾಣಿಕೆ ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡಬಹುದು, ಇದಕ್ಕೆ ಮರುರಚನೆ ಮತ್ತು ಮಾರ್ಪಾಡುಗಳು ಬೇಕಾಗುತ್ತವೆ.
Rust ಅಳವಡಿಕೆಯು ರೋಮಾಂಚಕ ಯೋಜನೆಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಬಯಸುವ Rust ಡೆವಲಪರ್ಗಳನ್ನು ಆಕರ್ಷಿಸುವ ಮೂಲಕ ನಮ್ಮ ಯೋಜನೆಗೆ ಕೊಡುಗೆ ನೀಡಬಲ್ಲ ಡೆವಲಪರ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹೆಚ್ಚಿಸಬಹುದು.
ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಭಾಷೆಗಳಿಗೆ ಹೋಲಿಸಿದರೆ ಈ ಅಳವಡಿಕೆಯು ಸುಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆ, ದಕ್ಷತೆ ಮತ್ತು ಸುರಕ್ಷತೆಗೆ ಕಾರಣವಾಗಬಹುದು.
ಕೊನೆಯದಾಗಿ, Rust ಅಳವಡಿಕೆಯು ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಭದ್ರತಾ ದುರ್ಬಲತೆಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಸಂಭಾವ್ಯ ಪ್ರಯೋಜನದೊಂದಿಗೆ ಬರುತ್ತದೆ.