По моим наблюдениям, у них глобальная проблема… эээ… как бы сказать, в общем, ноги кривоватые, увы. Заметная их часть как будто бы с детства на лошади скакать учится.
Вообще странный вопрос: если «программист на Java» — это тот, кто программирует на Java, ему ничего не нужно, кроме знания языка Java. Но при этом речь идёт, конечно, о чистом кодерстве — написании программы по спецификации (собственно, программировании).
Если же человек решает какую-либо задачу — всё зависит от задачи. Мне в практике не попадались задачи, где нужны матан, дискретка или дифуры. Другим — возможно, и попадались. А третьим нужна билогия, четвёртым экономика, пятым физика. Так что с тем же успехом можно спросить: «нужна ли программисту химия/русский язык/психология». Зависит от места работы :)
Вывод один — человек умный :)
По сути считывание-установка — это просто перегруженная операция =.
В С++ есть определённый дефект: нельзя простым способом с помощью перегруженной операции указать один алгоритм для считывания, а другой — для присваивания, считывают объект или присваивают. Можно проблему решить с помощью прокси-объектов, но это сложно. А вот пропертис — разумное решение.
Да, присвоить можно всё, что хочешь. Там, где я читал об этой идее, утверждалось, что не так уж и часто нужно ограничивать присваивание — чаще нужно как-то отреагировать на сам факт присваивания, а возможность это сделать у нас есть.
В С++ можно сэмулировать почти что полноценные properties, но это довольно хитрая методика, и применять её направо и налево я бы не стал.
Допустим, нам нужно написать геттер-сеттер на объект класса T. Создаётся новый класс TProxy, для которого есть перегруженный оператор = и операция приведения к типу Т. Далее это всё описывается таким образом, чтобы при попытке присваивания объекту вызывался оператор = (вот он наш сеттер), а при попытке считывания — приведение к типу (вот геттер).
Т.е. в принципе это всё работает, но на каждом шагу эту методику использовать слишком сложно.
Я бы сказал, что в данном случае как раз глагольный подход некрасив. Давайте сведём к очевидному.
x = 15;
лучше, чем
set(x, 15);
Если бы это было не так, мы бы все и писали — set(x, 15)
Если я хочу присвоить некое значение некому полю, почему синтаксис должен отличаться от «x = 15»? Нам говорят, что это нарушает инкапсуляцию и предлагают гет/сет. Но ведь авторы и Делфи, и C# явно тоже не любят гет-сет — и неслучайно ведь не любят, и неслучайно придумали properties? Или будете говорить, что это всё ненужные выдумки?
Так вот, если уж в используемом языке нет properties я думаю, что как раз запись o.Age(10) стоит стилистически посередине между o.Age = 10 и o.setAge(10).
Вообще говоря, это отчасти корректно. Если фирма производит продукт для своих сограждан, она не может драть с них больше, чем у них есть. Соответственно, в небогатом обществе много не заработаешь (и много не заплатишь). Если же фирма работает на экспорт, ситуация иная, но там могут возникать свои тонкости. Тут конкурентами становятся ещё более бедные страны, которые могут позволить себе произвести ещё более дешёвый продукт.
Я в принципе слабо верю в процветание ограниченного круга работ в непроцветающем в целом обществе (в российских условиях слегка выделяются недра, но не будем о грустном).
Но поговорим о другом. Вы оцениваете потолок в 100-120 тыс. Допустим. А получать хотите, скажем, 150-200. Желание вполне понятное, у кого же его нет :) Давайте рассуждать с точки зрения обычного спроса-предложения. Указанная цифра суть равновесная цена, по которой работодатель готов вас купить. Если вы будете ерепениться, он купит за эти деньги другого. Соответственно, единственный выход выйти за классические спрос-предложение — это стать монополистом и диктовать условия. То есть предложить работодателю то, чего он жаждет и при этом то, чего ему больше никто не предложит.
Например, вы можете освоить КОБОЛ и найти фирму, вся деятельность которой зависит от древнего ПО, написанного на КОБОЛе. Если ей спец такого профиля нужен — заплатят :)
Но в целом, мне кажется, чудес не бывает — и всё уже зависит, конечно, от ваших способностей и пронырливости (читай — умения себя подать-продать). Есть ещё, конечно, такая штука: надо, чтобы фирма была богатая и могла себе позволить столько платить, сколько вы хотите. А найдётся ли в таком деньго-ориентированном бизнесе интересная для вас, креативная работа — вот вопрос.
Вообще говоря, если не ошибаюсь, он едва ли не единолично написал первую версию Microsoft Basic, да и в коде MS DOS есть его личное участие. Может, он и не такой упорный кодер как Линус, но тоже умеет :)
Это в идеале. Например, стандарт библиотеки STL — указывать для каждой функции возможную асимптотическую сложность в документации — так пока и не стал повсеместным.
Представьте ситуацию, когда я пишу
for i = 1 to 100000 do a[i].field = i; next i
а потом оказывается, что при за присваиванием скрывается хитрая функция, которая всё тормозит. Обидно :(
А главное — поди сообрази.
Насколько понимаю, даже это неверно: Лаборатория Теслы находится в штате Нью-Йорк, но никак не в городе Нью-Йорк Сити. Соответственно, обращение к «мэрии Нью-Йорка» неточное.
Если совсем конкретно говорить: деревня Shoreham в городке Brookhaven, регион Long Island, штат New York.
Вот я как раз говорю о складе характера. Для вас университет — это «резиновая женщина» и «косвенный продукт», а для меня предприятие — это ремесленничество и вытёсывание табуреток.
Есть такая штука — research, причём на интересующие меня лично темы (а не темы, интересующие фирму со своими денежными делами). Вот мне этим любопытно заниматься и всё тут. Подобные занятия были в качестве хобби у многих людей прошлого времени (юриста Ферма или чиновника Лейбница, например), а теперь за них кое-где платят. Так почему бы не воспользоваться?
Вопрос странный — с тем же успехом можно спросить, чем работа в Самсунге лучше работы в университете.
Университетская карьера — такая же карьера, как и все остальные, но она имеет свою специфику, и гораздо лучше подходит людям с определённым складом характера и взглядами на жизнь. Вот и всё, если кратко.
Насколько мне известно — имущество у добросовестного приобретателя действительно могут изъять в пользу законного владельца. В случае с крупными покупками (квартира) можно вроде как оформить страховку на такой случай, и не прогореть.
Но как бы то ни было, штука в том, что у такого приобретателя отобрать имущество могут (в случае с пиратскими программами — невелика потеря), но ведь дело против него открыть нельзя? Вот в чём штука.
Т.е. имея чеки, я могу, как минимум, не беспокоиться о своей шкуре, ибо максимум, что я потеряю — это упомянутые диски.
Раз пошла такая замечательная дискуссия…
Вот вопрос, который меня всегда волновал:
покупаю диск (пусть будет с музыкой, так проще, или с фильмом) в одном из многочисленных полуподвальчиков за 70 рублей. Я толком не разбираюсь — где что легальное, где нелегальное — я не юрист и не товаровед. Но магазин законный, чек мне выбили. Далее ко мне придираются органы: мол, у меня пиратская продукция. А я им — помилуйте, купил в официальном магазине, вот чек — какие КО МНЕ могут быть претензии?
Если же человек решает какую-либо задачу — всё зависит от задачи. Мне в практике не попадались задачи, где нужны матан, дискретка или дифуры. Другим — возможно, и попадались. А третьим нужна билогия, четвёртым экономика, пятым физика. Так что с тем же успехом можно спросить: «нужна ли программисту химия/русский язык/психология». Зависит от места работы :)
Вывод один — человек умный :)
По сути считывание-установка — это просто перегруженная операция =.
В С++ есть определённый дефект: нельзя простым способом с помощью перегруженной операции указать один алгоритм для считывания, а другой — для присваивания, считывают объект или присваивают. Можно проблему решить с помощью прокси-объектов, но это сложно. А вот пропертис — разумное решение.
В С++ можно сэмулировать почти что полноценные properties, но это довольно хитрая методика, и применять её направо и налево я бы не стал.
Допустим, нам нужно написать геттер-сеттер на объект класса T. Создаётся новый класс TProxy, для которого есть перегруженный оператор = и операция приведения к типу Т. Далее это всё описывается таким образом, чтобы при попытке присваивания объекту вызывался оператор = (вот он наш сеттер), а при попытке считывания — приведение к типу (вот геттер).
Т.е. в принципе это всё работает, но на каждом шагу эту методику использовать слишком сложно.
Вот ещё один (я его тоже всерьёз рассматриваю):
int Age() { return age; }
int& rAge() { return age; }
Тогда можно писать
o.rAge() = 10;
При этом у нас всё равно rAge() — полноценная функция, в её теле можно следать какие-либо внутренние действия.
x = 15;
лучше, чем
set(x, 15);
Если бы это было не так, мы бы все и писали — set(x, 15)
Если я хочу присвоить некое значение некому полю, почему синтаксис должен отличаться от «x = 15»? Нам говорят, что это нарушает инкапсуляцию и предлагают гет/сет. Но ведь авторы и Делфи, и C# явно тоже не любят гет-сет — и неслучайно ведь не любят, и неслучайно придумали properties? Или будете говорить, что это всё ненужные выдумки?
Так вот, если уж в используемом языке нет properties я думаю, что как раз запись o.Age(10) стоит стилистически посередине между o.Age = 10 и o.setAge(10).
Я в принципе слабо верю в процветание ограниченного круга работ в непроцветающем в целом обществе (в российских условиях слегка выделяются недра, но не будем о грустном).
Но поговорим о другом. Вы оцениваете потолок в 100-120 тыс. Допустим. А получать хотите, скажем, 150-200. Желание вполне понятное, у кого же его нет :) Давайте рассуждать с точки зрения обычного спроса-предложения. Указанная цифра суть равновесная цена, по которой работодатель готов вас купить. Если вы будете ерепениться, он купит за эти деньги другого. Соответственно, единственный выход выйти за классические спрос-предложение — это стать монополистом и диктовать условия. То есть предложить работодателю то, чего он жаждет и при этом то, чего ему больше никто не предложит.
Например, вы можете освоить КОБОЛ и найти фирму, вся деятельность которой зависит от древнего ПО, написанного на КОБОЛе. Если ей спец такого профиля нужен — заплатят :)
Но в целом, мне кажется, чудес не бывает — и всё уже зависит, конечно, от ваших способностей и пронырливости (читай — умения себя подать-продать). Есть ещё, конечно, такая штука: надо, чтобы фирма была богатая и могла себе позволить столько платить, сколько вы хотите. А найдётся ли в таком деньго-ориентированном бизнесе интересная для вас, креативная работа — вот вопрос.
Представьте ситуацию, когда я пишу
for i = 1 to 100000 do a[i].field = i; next i
а потом оказывается, что при за присваиванием скрывается хитрая функция, которая всё тормозит. Обидно :(
А главное — поди сообрази.
private: int age;
public: void Age(int newage) { age = newage; }
int Age() { return age; }
Записи вида o.Age(10); и a = o.Age() всё же выглядят не так уродско, как гет/сет.
Если совсем конкретно говорить: деревня Shoreham в городке Brookhaven, регион Long Island, штат New York.
Гм, не хочу показаться узколобым… но кто-нибудь из присутствующих реально пользуется этим контентом на постоянной (или хотя бы изредка) основе?
Есть такая штука — research, причём на интересующие меня лично темы (а не темы, интересующие фирму со своими денежными делами). Вот мне этим любопытно заниматься и всё тут. Подобные занятия были в качестве хобби у многих людей прошлого времени (юриста Ферма или чиновника Лейбница, например), а теперь за них кое-где платят. Так почему бы не воспользоваться?
Университетская карьера — такая же карьера, как и все остальные, но она имеет свою специфику, и гораздо лучше подходит людям с определённым складом характера и взглядами на жизнь. Вот и всё, если кратко.
Но как бы то ни было, штука в том, что у такого приобретателя отобрать имущество могут (в случае с пиратскими программами — невелика потеря), но ведь дело против него открыть нельзя? Вот в чём штука.
Т.е. имея чеки, я могу, как минимум, не беспокоиться о своей шкуре, ибо максимум, что я потеряю — это упомянутые диски.
Вот вопрос, который меня всегда волновал:
покупаю диск (пусть будет с музыкой, так проще, или с фильмом) в одном из многочисленных полуподвальчиков за 70 рублей. Я толком не разбираюсь — где что легальное, где нелегальное — я не юрист и не товаровед. Но магазин законный, чек мне выбили. Далее ко мне придираются органы: мол, у меня пиратская продукция. А я им — помилуйте, купил в официальном магазине, вот чек — какие КО МНЕ могут быть претензии?