Запитання з тегом «language-design»

Питання, що стосуються дизайну та структури мов програмування.

22
Чи нульові посилання справді погані?
Я чув, як говорилося, що включення нульових посилань у мови програмування є "помилкою в мільярд доларів". Але чому? Звичайно, вони можуть викликати NullReferenceExceptions, але що робити? Будь-який елемент мови може бути джерелом помилок при неправильному використанні. А яка альтернатива? Я думаю, замість того, щоб сказати це: Customer c = Customer.GetByLastName("Goodman"); …

14
Чому більшість мов програмування підтримують лише повернення одного значення з функції? [зачинено]
Чи є причина, чому функції в більшості (?) Мов програмування розроблені для підтримки будь-якої кількості вхідних параметрів, але лише одного зворотного значення? У більшості мов це обмеження можливо "обійти", наприклад, за допомогою використання параметрів, повернення покажчиків або шляхом визначення / повернення структур / класів. Але здається дивним, що мови програмування …

14
Чому 0 помилково?
Це питання може здатися німим, але чому для більшості мов програмування 0оцінюється значення falseта яке інше [ціле число] true? Порівняння рядків Оскільки питання видається занадто простим, я поясню себе трохи більше: по-перше, це може здатися очевидним для будь-якого програміста, але чому б не було мови програмування - насправді вона може …

6
Чому саме XML називають саме «мовою»?
Мені було цікаво, чому XML має L у своєму імені. Сам по собі XML нічого не "робить". Це просто формат зберігання даних, а не мова! Мови "роблять" речі. Те, як ви отримуєте XML, щоб "робити" речі, щоб перетворити їх на мову належним чином, - додавати xmlnsатрибути до його кореневого елемента. …

12
Мені сказали, що Винятки слід застосовувати лише у виняткових випадках. Як я можу дізнатися, чи випадок мій винятковий?
Мій конкретний випадок тут полягає в тому, що користувач може передавати рядок у додаток, програма аналізує його і присвоює структурованим об'єктам. Іноді користувач може набрати щось недійсне. Наприклад, їх дані можуть описувати людину, але вони можуть сказати, що їх вік "яблучний". Правильна поведінка в такому випадку - це повернути транзакцію …


30
Які функції ви хотіли б мати в PHP? [зачинено]
Оскільки зараз сезон відпусток і всі бажають, я задаюся питанням - які мовні функції ви хотіли б додати PHP? Мене цікавлять деякі практичні пропозиції / побажання щодо мови. Під практичним я маю на увазі: Щось, що можна зробити практично (не: "Я б хотів, щоб PHP здогадався, що означає мій код, …

11
Чи свідомі розробники Java відмовилися від RAII?
Як давній програміст C #, нещодавно я прийшов дізнатися більше про переваги придбання ресурсів - це ініціалізація (RAII). Зокрема, я виявив, що ідіома C #: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } має еквівалент С ++: { DbConnection dbConn(connStr); // do stuff with dbConn …
82 java  c#  c++  language-design 

10
Якщо null є поганим, чому сучасні мови його реалізують? [зачинено]
Я впевнений, що дизайнери таких мов, як Java або C # знали проблеми, пов'язані з наявністю нульових посилань (див. Чи справді нульові посилання погані? ). Також реалізація типу опції насправді не набагато складніша за нульові посилання. Чому вони вирішили все-таки включити його? Я впевнений, що відсутність нульових посилань сприятиме (або …

12
Чи варто використовувати генератор парсера чи слід накладати власний спеціальний лексер та код парсера?
Які конкретні переваги та недоліки кожного способу роботи над граматикою мови програмування? Чому / коли я повинен катати свою? Чому / коли я повинен використовувати генератор?

11
Чому String незмінний на Java?
Я не міг зрозуміти причину цього. Я завжди використовую клас String, як і інші розробники, але коли я змінюю його значення, створюється новий екземпляр String. Що може бути причиною незмінності класу String на Java? Я знаю, що є деякі альтернативи, такі як StringBuffer або StringBuilder. Це просто цікавість.

14
Чому ігнорується арифметичний перелив?
Ви коли-небудь намагалися підбити підсумки всіх чисел від 1 до 2 000 000 улюбленою мовою програмування? Результат легко обчислити вручну: 2 000 000 000 000, що приблизно в 900 разів перевищує максимальне значення непідписаного 32-бітного цілого числа. C # друкує -1453759936- негативне значення! І я думаю, що Java робить те …

9
Навіщо використовувати часткові класи?
Наскільки я розумію, partialключове слово не робить нічого, крім того, що дозволяє розділити клас на кілька вихідних файлів. Чи є якась причина для цього, крім організації коду? Я бачив, що він використовувався для цього в створених класах інтерфейсу. Це здається поганою причиною створення цілого ключового слова. Якщо клас досить великий, …

8
Як деякі мовні спільноти (наприклад, Ruby та Python) змогли запобігти фрагментації, тоді як інші (наприклад, Lisp чи ML) не були?
Термін "Lisp" (або "Lisp-like") - це парасолька для безлічі різних мов, таких як Common Lisp, Scheme та Arc. Існує аналогічна фрагментація в інших мовних спільнотах, як у ML. Однак і Ruby, і Python вдалося уникнути цієї долі, коли інновації відбулися більше при впровадженні (як PyPy або YARV), а не вносити …

10
Дизайн синтаксису - навіщо використовувати круглі дужки, коли не передаються аргументи?
У багатьох мовах синтаксис function_name(arg1, arg2, ...)використовується для виклику функції. Коли ми хочемо викликати функцію без будь-яких аргументів, ми повинні це зробити function_name(). Мені здається дивним, що компілятору чи інтерпретатору сценарію потрібно ()буде успішно виявити його як виклик функції. Якщо змінна, як відомо, називається, чому її не function_name;вистачить? З іншого …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.