Ну не скажите, пишется на чем угодно Мы на 3-ем курсе группой из 4-рех человек писали компилятор (разбор лексем, построение дерева разбора) паскаля на Delphi. Код компилировался в асм для процессоров i8080.
Гораздо сложнее придумать хороший синтаксис, в котором не было неоднозначностей и т.д., и который хорошо бы интерпритировался. Да, написание компиляторы для С++ — не тривиальное дело, к примеру один коммерческий компилятор проходит код два и более раз!
А вообще умные дядьки от С++ (Герб Саттер кажется), дают один простой совет: Не кидайте исключения в конструкторах классов. Т.е. конструктор должен выполнять минимальные действия по созданию и инициализации объекта. Если нужно выполнять какие-то более сложные действия, лучше иметь отдельный метод для этого. Собственно создавать «недоношенный объект».
Конечно же в Java все не так, там если что gc сам подчистит.
Нет, проблемы огромные и RAII здесь не причем.
Объект считается созданным полностью тогда, когда отработал его конструктор. Деструктор объекта вызывается только в том случае, когда объект полностью создан.
Итого, если объект создан на стеке, то при исключении в конструкторе, деструктор вызван не будет. И если вы выделяли какие-то ресурсы в конструкторе, а потом произошло исключение, то деструктор вызван не будет, следовательно произойдет утечка ресурсов.
Если объект был создан на куче, то возникает проблема не только с вызовом деструктора, но и с освобождением памяти.
Ответ — никак. Память неявно должен высвобождать компилятор, на деле он этого не делает.
В Embedded отсутствует placement new как класс, а глобальный оператор new перегружен, потому что аллокаторы стандартной библиотеки не подходят до случая embedded (к примеру если дело происходит в ядре).
> 2) «Недоношенный» обьект — когда после вызова конструктора по-прежнему необходима допололнительная > инициализация… в виде вызовов init(), start(), polulate(...) Это всё Гнилой код.
Скажите это программистам на С++ (а как же эксепшены в конструкторах?), или программистам на Embedded C++ (что такое конструктор? :-D) и они вам скажут, насколько вы заблуждаетесь.
Ну почему там такой маааааленький тач скрин? Это ж как надо будет мучатся, в виду отсутствия большенства функциональных клавиш. Да и дизайн, как всегда подгулял…
> По кредитам мало кто покупал товары произведенные в России, все больше Западную бытовую технику и автомобили. И если мы сократим их потребление будет только лучше для нашей экономики.
Не согласен. Меньше бытовой техники было куплено — снижается ее объем производства. Снижается объем производства — снижается объем потребляемого сырья. Снижается объем потребляемого сырья — снижаются доходы стран экспортеров этого сырья, т. е. нас с вами в том числе.
IT тоже страдает. Потому как проекты будут сворачиватся, или будет урезатся фиансирование, потому что уж очень много стартапов сейчас живет на деньги венчурных капиталистов…
А ведь неправда. На лицо двойные стандарты. Знаете почему? Потому как те топики, которые подпадают под фильтр хабраадминистрации — очень избирательны. В топике стимуса — не было жестоких оскорблений, не было причин его удалять, кроме того, что он вынес ссор из избы и хотел придать это все огласке.
Если же вы удалили этот топик, то почему бы вам не поступить так и с другими? Например «Корректура не в духе» удалить вы так и не удосужились, хотя там засвеченные конфиденциальные данные человека и он был представлен в негативном свете. Также о премии рунета и о вконтакте… Почему этот топик до сих пор существует? Там же одна зависть просматривается.
Согласен с вами. Только карму понижать хабраадминистрации не нужно. Со своей стороны вы можете сделать только одно — не создавать хабру дополнительные причины для трафика. И поверьте, ваша продуктивность возрастет!
После первого такого эпизода, я решил не писать статьи, теперь не хочется комментировать, и нужно не так часто читать :)
А ТурбоМилк себя плохо повели, но они ведь «информационные архитекторы», видимо им можно…
Я немножко не об этом говорю. Понятное дело, что професиональная студия, такая как TurboMilk, для своего функционирования должна иметь определенный штат. Бухгалтера, HR менеджера и т. д., арендовать помещение и все это окупать иконками :)
Понятное дело, что все уже придумано до нас, всмысле есть отличные идеи, которые не грех переосмыслить.
Просто я к тому, что ненужно пояснять свои высокие цены, словами о том, что «Дизайнерам нужно придумать метафоры для 5 маленьких иконок, определиться со стилем и нарисовать эти иконки». Все просто у вас есть бренд, клиенты, и вы можете себе позволить работать по этим сценам :)
Не переходите на личности пожалуйста, вас читать неприятно.
Вы правильный привели пример, и сами же себе противоречите. Ведь если бы иконка и ее легенда была бы отрисована и придумана с нуля — то это достойно мегапрофи в областях, что вы назвали. Здесь же основной концепт был заимствован, что автоматически перечеркивает все нужные качества, что вы назвали.
Было ведь сказано, что цена в 500 у. е. за иконку включает в себя время, которое тратят люди на осмысление, придумывания концепции иконки. Здесь же концепция явно заимствованная. Даже если такое переосмысление стоило дизайнеру мегаусилий, но люди со стороны видят схожесть, то уж простите, кто-то явно недоделал свою работу до конца.
Гораздо сложнее придумать хороший синтаксис, в котором не было неоднозначностей и т.д., и который хорошо бы интерпритировался. Да, написание компиляторы для С++ — не тривиальное дело, к примеру один коммерческий компилятор проходит код два и более раз!
А вообще умные дядьки от С++ (Герб Саттер кажется), дают один простой совет: Не кидайте исключения в конструкторах классов. Т.е. конструктор должен выполнять минимальные действия по созданию и инициализации объекта. Если нужно выполнять какие-то более сложные действия, лучше иметь отдельный метод для этого. Собственно создавать «недоношенный объект».
Конечно же в Java все не так, там если что gc сам подчистит.
Объект считается созданным полностью тогда, когда отработал его конструктор. Деструктор объекта вызывается только в том случае, когда объект полностью создан.
Итого, если объект создан на стеке, то при исключении в конструкторе, деструктор вызван не будет. И если вы выделяли какие-то ресурсы в конструкторе, а потом произошло исключение, то деструктор вызван не будет, следовательно произойдет утечка ресурсов.
Если объект был создан на куче, то возникает проблема не только с вызовом деструктора, но и с освобождением памяти.
try {
MyType *myObj = new MyType(); // исключение
catch(...)
{
// обработали исключение
}
// чему будет равен myObj и как его тут удалить?
Ответ — никак. Память неявно должен высвобождать компилятор, на деле он этого не делает.
В Embedded отсутствует placement new как класс, а глобальный оператор new перегружен, потому что аллокаторы стандартной библиотеки не подходят до случая embedded (к примеру если дело происходит в ядре).
Скажите это программистам на С++ (а как же эксепшены в конструкторах?), или программистам на Embedded C++ (что такое конструктор? :-D) и они вам скажут, насколько вы заблуждаетесь.
Не согласен. Меньше бытовой техники было куплено — снижается ее объем производства. Снижается объем производства — снижается объем потребляемого сырья. Снижается объем потребляемого сырья — снижаются доходы стран экспортеров этого сырья, т. е. нас с вами в том числе.
IT тоже страдает. Потому как проекты будут сворачиватся, или будет урезатся фиансирование, потому что уж очень много стартапов сейчас живет на деньги венчурных капиталистов…
Если же вы удалили этот топик, то почему бы вам не поступить так и с другими? Например «Корректура не в духе» удалить вы так и не удосужились, хотя там засвеченные конфиденциальные данные человека и он был представлен в негативном свете. Также о премии рунета и о вконтакте… Почему этот топик до сих пор существует? Там же одна зависть просматривается.
После первого такого эпизода, я решил не писать статьи, теперь не хочется комментировать, и нужно не так часто читать :)
А ТурбоМилк себя плохо повели, но они ведь «информационные архитекторы», видимо им можно…
Только у нас не Япония, и суда по делу хабраубийства не будет…
Понятное дело, что все уже придумано до нас, всмысле есть отличные идеи, которые не грех переосмыслить.
Просто я к тому, что ненужно пояснять свои высокие цены, словами о том, что «Дизайнерам нужно придумать метафоры для 5 маленьких иконок, определиться со стилем и нарисовать эти иконки». Все просто у вас есть бренд, клиенты, и вы можете себе позволить работать по этим сценам :)
Вы правильный привели пример, и сами же себе противоречите. Ведь если бы иконка и ее легенда была бы отрисована и придумана с нуля — то это достойно мегапрофи в областях, что вы назвали. Здесь же основной концепт был заимствован, что автоматически перечеркивает все нужные качества, что вы назвали.
Было ведь сказано, что цена в 500 у. е. за иконку включает в себя время, которое тратят люди на осмысление, придумывания концепции иконки. Здесь же концепция явно заимствованная. Даже если такое переосмысление стоило дизайнеру мегаусилий, но люди со стороны видят схожесть, то уж простите, кто-то явно недоделал свою работу до конца.