Pytania otagowane jako language-design

Pytania dotyczące projektowania i struktury języków programowania.

22
Czy zerowe referencje są naprawdę złe?
Słyszałem, że powiedzenie, że włączenie zerowych referencji w językach programowania jest „błędem miliarda dolarów”. Ale dlaczego? Jasne, mogą powodować wyjątki NullReference, ale co z tego? Każdy element języka może być źródłem błędów, jeśli zostanie użyty nieprawidłowo. A jaka jest alternatywa? Przypuszczam, że zamiast powiedzieć to: Customer c = Customer.GetByLastName("Goodman"); // …

14
Dlaczego większość języków programowania obsługuje tylko zwracanie jednej wartości z funkcji? [Zamknięte]
Czy istnieje powód, dla którego funkcje w większości (?) Językach programowania są zaprojektowane do obsługi dowolnej liczby parametrów wejściowych, ale tylko jednej wartości zwracanej? W większości języków możliwe jest obejście tego ograniczenia, np. Poprzez użycie parametrów zewnętrznych, zwracanie wskaźników lub definiowanie / zwracanie struktur / klas. Ale wydaje się dziwne, …

14
Dlaczego 0 jest fałszem?
To pytanie może wydawać się głupie, ale dlaczego 0ewaluuje falsei jakąkolwiek inną wartość [całkowitą] trueto większość języków programowania? Porównanie ciągów Ponieważ pytanie wydaje się nieco zbyt proste, wyjaśnię się trochę bardziej: po pierwsze, może się wydawać oczywiste dla każdego programisty, ale dlaczego nie byłoby języka programowania - może być, ale …

6
Dlaczego XML jest dokładnie nazywany „językiem”?
Zastanawiam się, dlaczego XML ma literę L w nazwie. Sam w sobie XML nic nie „robi”. To tylko format przechowywania danych, a nie język! Języki „robią” rzeczy. Sposób, w jaki XML „robi” rzeczy, aby zmienić je we właściwy język, polega na dodawaniu xmlnsatrybutów do elementu głównego. Dopiero wtedy informuje środowisko, …

12
Powiedziano mi, że wyjątków należy używać tylko w wyjątkowych przypadkach. Skąd mam wiedzieć, czy moja sprawa jest wyjątkowa?
Moim szczególnym przypadkiem jest to, że użytkownik może przekazać ciąg znaków do aplikacji, aplikacja analizuje go i przypisuje do obiektów strukturalnych. Czasami użytkownik może wpisać coś nieprawidłowego. Na przykład ich wkład może opisywać osobę, ale może powiedzieć, że jej wiek to „jabłko”. Prawidłowe zachowanie w takim przypadku polega na wycofaniu …


30
Jakie funkcje chciałbyś mieć w PHP? [Zamknięte]
Ponieważ jest teraz sezon wakacyjny i wszyscy składają życzenia, zastanawiam się - jakie funkcje językowe chciałbyś dodać PHP? Interesują mnie praktyczne sugestie / życzenia dotyczące języka. Przez praktyczne rozumiem: Coś, co można praktycznie zrobić (nie: „Chciałbym, żeby PHP odgadł, co oznacza mój kod i naprawił dla mnie błędy” lub „Chciałbym, …

11
Czy twórcy oprogramowania Java świadomie porzucili RAII?
Jako długoletni programista C #, ostatnio przyjechałem, aby dowiedzieć się więcej o zaletach pozyskiwania zasobów to inicjalizacja (RAII). W szczególności odkryłem, że idiom C #: using (var dbConn = new DbConnection(connStr)) { // do stuff with dbConn } ma odpowiednik C ++: { DbConnection dbConn(connStr); // do stuff with dbConn …
82 java  c#  c++  language-design 




14
Dlaczego przepełnienie arytmetyczne jest ignorowane?
Czy kiedykolwiek próbowałeś zsumować wszystkie liczby od 1 do 2 000 000 w swoim ulubionym języku programowania? Wynik można łatwo obliczyć ręcznie: 2 000 001 000 000, czyli około 900 razy więcej niż maksymalna wartość 32-bitowej liczby całkowitej bez znaku. Drukuje się C # -1453759936- wartość ujemna! I chyba Java …

9
Dlaczego warto korzystać z klas cząstkowych?
W moim rozumieniu partialsłowo kluczowe nie pozwala na podział klasy na kilka plików źródłowych. Czy jest jakiś inny powód do tego niż organizacja kodu? Widziałem to używane w generowanych klasach interfejsu użytkownika. Wydaje się, że to zły powód, aby utworzyć całe słowo kluczowe. Jeśli klasa jest wystarczająco duża, aby wymagać …

8
W jaki sposób niektóre społeczności językowe (np. Ruby i Python) były w stanie zapobiec fragmentacji, podczas gdy inne (np. Lisp lub ML) nie były?
Termin „Lisp” (lub „Lisp-like”) jest parasolem obejmującym wiele różnych języków, takich jak Common Lisp, Scheme i Arc. Podobne rozdrobnienie występuje w innych społecznościach językowych, takich jak ML. Jednak Ruby i Python zdołali uniknąć tego losu, w którym innowacje pojawiły się częściej przy implementacji (jak PyPy lub YARV) zamiast wprowadzania zmian …

10
Projektowanie składni - po co używać nawiasów, gdy nie są przekazywane żadne argumenty?
W wielu językach function_name(arg1, arg2, ...)do wywołania funkcji służy składnia . Kiedy chcemy wywołać funkcję bez żadnych argumentów, musimy to zrobić function_name(). Dziwne wydaje mi się, że kompilator lub interpreter skryptów wymagałby ()skutecznego wykrycia go jako wywołania funkcji. Jeśli wiadomo, że zmienna jest wywoływalna, dlaczego nie function_name;wystarczy? Z drugiej strony …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.