Программист-профессионал vs программист-любитель
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.164] |
|
|
Правила раздела:
| Страницы: (17) « Первая ... 11 12 [13] 14 15 ... Последняя » все ( Перейти к последнему сообщению ) |
Программист-профессионал vs программист-любитель
|
Сообщ.
#181
,
|
|
|
|
В C++11 есть, если что. |
|
Сообщ.
#182
,
|
|
|
|
Цитата sergioK @ Wound equal ты сам имплементируешь как считаешь нужным , и hash code желательно , это аналог operator == в С++ , Я это знаю. Я и говорю. Что С++сный == сравнивает именно значения. А Javaвский == сравнивает ссылки по сути, а чтобы в Java сравнивать именно данные, то нужно юзать Equal. Да мне непонятно в том коде что такое newFoo, немонятно откуда взялось Foo. Ну так я же написал до этого, что я не о out параметрах. Добавь в функцию foo const int&, об этом я. Добавлено Цитата D_KEY @ В C++11 есть, если что. Речь на сколько я понимаю идет таки об С++03, так как заявления были про 96 год, а также речь шла не только о С++ но и о С. Добавлено Цитата sergioK @ в стек передаеться значение ссылки , какая разница С++ , т,е, push , какая ему разница кто компилил ? Это вопрос из интервью из серии "подловить " Я вот не понял эти три строчки. Можно поподробнее? |
|
Сообщ.
#183
,
|
|
|
|
Цитата Wound @ Речь на сколько я понимаю идет таки об С++03, так как заявления были про 96 год В 96 у С++ вообще стандарта не было Первый стандарт в 98 году вышел. |
|
Сообщ.
#184
,
|
|
|
|
Цитата Wound @ Да мне непонятно в том коде что такое newFoo процедура, возвращающая значение типа Foo, это не важно, не думай о ней. Цитата Wound @ немонятно откуда взялось Foo. typedef же. Цитата Wound @ Ну так я же написал до этого, что я не о out параметрах. Добавь в функцию foo const int&, об этом я. При чем тут out и const? Разговор шел про "передачу по ссылке и по значению". Так вот, "передача по ссылке" != "передаче ссылочного значения по значению", простите за тафтологию. Вот смотри: ![]() ![]() struct value { int x, y; float f; }; struct Object { value *v; }; void foo(Object o) { // это передача по ссылкке или по значению? ... } |
|
Сообщ.
#185
,
|
|
|
|
Цитата D_KEY @ В 96 у С++ вообще стандарта не было Первый стандарт в 98 году вышел. Я знаю. Почитай в общем заного о чем речь. Я не думаю что sergioK говорит именно о С++11, так как предпосылок для этого он не дает. Цитата korvin @ typedef же. ну так синтаксис typedef немного другой, сначало идет тип потом синоним, а у тебя паходу наоборот. Цитата korvin @ При чем тут out и const? Разговор шел про "передачу по ссылке и по значению". Так вот, "передача по ссылке" != "передаче ссылочного значения по значению", простите за тафтологию. Вот смотри: Все я понял что ты имеешь ввиду. Добавлено Значит я Java перепутал с чем то, или с делфями или с C#, просто помню гдето там ссылочная семантика идет. Добавлено Цитата D_KEY @ В 96 у С++ вообще стандарта не было Первый стандарт в 98 году вышел. Просто фишка в том, что он говорил эту фразу в 96 году по его словам относительно С, потом прочел в книжке тоже самое в 2002, и в 2013 повторил. Когда я у него спросил почему, он так считает, то он начал приводить все эти потоки оси и т.д. А последний стандарт вышел в 2011 году осенью, поэтому и не клеится. Иначе был бы акцент как раз таки на новый С++, а не вообще на С/С++. |
|
Сообщ.
#186
,
|
|
|
|
Цитата Wound @ ну так синтаксис typedef немного другой Да я с ним все время путаюсь. Добавлено Цитата Wound @ Значит я Java перепутал с чем то, или с делфями или с C#, просто помню гдето там ссылочная семантика идет. Она нигде не идет, кроме языков, где есть пользовательский тип "указатель". А в некоторых из тех, где нельзя, "накостылили" out-параметры. |
|
Сообщ.
#187
,
|
|
|
|
Цитата korvin @ Она нигде не идет, кроме языков, где есть пользовательский тип "указатель". А в некоторых из тех, где нельзя, "накостылили" out-параметры. Разве? Помнится мне в холиварах делфи вроде у них там смешаная семантика шла, или там также как в Java ? Значит я совсем запутался. Добавлено Нужно будет тогда просветить сей вопрос как нибудь Добавлено korvin, а ты как считаешь, нужно ли обладать базовыми знаниями С/С++ чтобы писать грамотный код на других языках? Может я один такой неправильный... Что я заметил например в Java программистах, это то, что они действительно порой не знают вещей, которые им стоило бы знать, например сколько у них какие типы занимают памяти. Както натыкался на статью на хабре, как один ныл что промудохался сколько то времени чтобы избежать out of memory, и потом сделал для себя открытие что тип boolean в Java весит 4 байта вместо одного, а у него там массив boolов был на 15к элементов. Ну хотя все это можно подчерпнуть из той же спецификации или даже книжки по Java. |
|
Сообщ.
#188
,
|
|
|
|
Цитата Wound @ Что я заметил например в Java программистах, это то, что они действительно порой не знают вещей, которые им стоило бы знать, например сколько у них какие типы занимают памяти. Както натыкался на статью на хабре, как один ныл что промудохался сколько то времени чтобы избежать out of memory, и потом сделал для себя открытие что тип boolean в Java весит 4 байта вместо одного, а у него там массив boolов был на 15к элементов. Ну хотя все это можно подчерпнуть из той же спецификации или даже книжки по Java. Т,е ты признаешь что стоит знать С, This what I am talking about . |
|
Сообщ.
#189
,
|
|
|
|
Цитата sergioK @ Т,е ты признаешь что стоит знать С, This what I am talking about . Нет конечно. Я же это нигде не писал. Знание/не знание С/С++ никак не влияет на знание или написание грамотного кода на Java и других языках. Добавлено В C - нет типа boolean, в C++ тип bool - весит 1 байт. С какого препуга зная сколько в С++ весит bool, Java программист узнает сколько он будет весить в Java ? Добавлено В данном случае его эта информация только запутает. Добавлено Более того все холивары с Java программистами и попытка привести в качестве аргумента какие то особенности ОС не особо помогают. Так как основной аргумент Java программистов состоит в том, что им не нужно знать специфику ОС, а там где надо - получается не кросплатформенный код, и такие случаи довольно редки. Кому нужна программа на Java с привязкой к одной ОС? Добавлено Да и найти нормального С/С++ программиста не такая уж и легкая задача, так как язык довольно сложный, и просто прочитать книжку - мало. Нужно еще иметь пару лет опыта работы на этом языке. А то что ты перечислил специфику ОС, потоки и т.д. в случае с С++03 и ниже не относится напрямую к С/С++, а в случае С++11 - это далеко не базовые знания. |
|
Сообщ.
#190
,
|
|
|
|
Цитата Wound @ С какого препуга зная сколько в С++ весит bool, Java программист узнает сколько он будет весить в Java ? С такого что он в принципе не слышал о наличии sizeof , И проблеме нехватке паямяти , потому что ему сказали что это не нужно , |
|
Сообщ.
#191
,
|
|
|
|
Цитата sergioK @ С такого что он в принципе не слышал о наличии sizeof , Причем тут sizeof? В книжках и в спецификации по Java не описываеться sizeof ? Да и sizeof практически не применяют работая с базовыми типами типа Int, bool, byte, и т.д. по крайней мере я еще ниразу не применял этот оператор для базовых типов. В Java аналогично. Цитата sergioK @ И проблеме нехватке паямяти , потому что ему сказали что это не нужно , Да, у них GC есть. Да и сейчас не те времена чтобы задумываться о нехватке памяти. Добавлено sergioK, в приведенном мною примере, где у чувака кончилась память, когда он юзал массив на 15 000(или даже миллионов, я не помню, помойму миллионов) элементов типа boolean скорее всего проблема не в том сколько весит bool, а в том что массивы такого объекма нецелесообразно хранить в RAM памяти, ИМХО конечно. Добавлено Вот ссылка на хабр статью, если интересно boolean — боремся за Java память… Я ошибся, он там юзал массив на 500 000 000 элементов типа boolean. По моему это маразм. Цитата Итак в моём распоряжении есть код, которому не хватает 15Gb оперативной памяти для нормального функционирования и очень длительный и дорогостоящий процесс запуска (около 5 часов), в ходе работы которого можно только сидеть со скрещенными пальцами и надеятся, что в этот раз заветные слова OutOfMemoryException не появятся в консоли удалённого сервера. |
|
Сообщ.
#192
,
|
|
|
|
Цитата Wound @ Добавлено sergioK, в приведенном мною примере, где у чувака кончилась память, когда он юзал массив на 15 000(или даже миллионов, я не помню, помойму миллионов) элементов типа boolean скорее всего проблема не в том сколько весит bool, а в том что массивы такого объекма нецелесообразно хранить в RAM памяти, ИМХО конечно. Добавлено Вот ссылка на хабр статью, если интересно boolean — боремся за Java память… Я ошибся, он там юзал массив на 500 000 000 элементов типа boolean. По моему это маразм. Цитата Итак в моём распоряжении есть код, которому не хватает 15Gb оперативной памяти для нормального функционирования и очень длительный и дорогостоящий процесс запуска (около 5 часов), в ходе работы которого можно только сидеть со скрещенными пальцами и надеятся, что в этот раз заветные слова OutOfMemoryException не появятся в консоли удалённого сервера. ![]() У меня бывало и по 40, с рамом в 2тера , |
|
Сообщ.
#193
,
|
|
|
|
Цитата sergioK @ У меня бывало и по 40, с рамом в 2тера , В Java ? Или в С/С++ ? Я, если честно, не могу себе представить когда такое нужно, да и в конце концов то можно же юзать file mapping.... Добавлено Цитата sergioK @ с рамом в 2тера , это где такие рамы стоят? У чувака тут обычненький такой себе сервачок, с неочень большим объемом рамы. |
|
Сообщ.
#194
,
|
|
|
|
Цитата это где такие рамы стоят? У чувака тут обычненький такой себе сервачок, с неочень большим объемом рамы. на MF |