Задача как с точки А попасть в точку B или как слезть c .NET

Pantigalt
Уже с Приветом
Posts: 802
Joined: 24 Jan 2007 07:32
Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Pantigalt »

Сделал исследование по Node.js.
Судя по всему в вакансиях сильная завязка на разработку серверов для веба, в меньшей степени десктопные приложения.
Да безусловно модная интересная платформа, с большими возможностями по расширению за счет библиотек написанных на других языках.
Наверное из некоторых минусов не очень кросс-платформенная (как то криво поддерживается Windows).
Я точки зрения удобства - безусловно оно есть, даже по сравнению с C#.
Разные IDE пытаются внедрить ибо это модно, есть даже плагин для Visual Studio 2013.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Medium-rare »

Pantigalt wrote:Я сам на Android ничего не писал поэтому советовался c теми кто хоть немного пробовал.
Из того что я услышал сформировалось такое мнение что качество программ на андроиде оставляет желать лучшего и это сильно влияет на само отношение к платформе. Так как это разработка под мобильные устройства то ничего сложного и интересного не попишешь, могу ошибаться.
Вам то что? Важен напор, который от индустрии, то ж работы. Им надо придумывть всё больше интересных штук для этой платформы. А вы хоть с ай- хоть с вин- фоном будьте. :)
Если это не так буду рад услышать мнения по поводу разработки под Android.
Некоторые монстры софта недавно заметили долю Андроида. Ждите Офис, одним словом, на Андроид.
Из технологий как я понимаю тут вариантов 2 - Java и С++.
Ну, нельзя совсем без Жабы, чтобы с ним работать. Активити надо научиться рисовать, а то, чтобы тестировать свой код, ну и ваще. Если C++, это всё кастомные устройства и хитрые штуки, которые на сегодняшний день платформа Андроид сама не делает. Там, где нет готовых решений. Там, где интересно.

Хотя вру, в чисто силиконовой компании просто всё эмулировали под Windows, частично под Linux, теоретически можно было без Жабы, но то мешало работе. Там в команде ответственный чувак прикручивал уже код к девайсу. Но то официально. Было проще самому в андроидном билде (Изучите Android Open Source Project) всё сбилдить, включая host process, где C/C++ тот самый, наш, местного производства, и запустить. Девайсы выдавали как только спросишь, rooted.
... and even then it's rare that you'll be going there...
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Задача как с точки А попасть в точку B или как слезть c

Post by M. Ridcully »

Pantigalt wrote:Анальность от возраста тоже зависит.
В моей текущей компании в моей группе (С++ разработок) народ не сильно молодой и не старый, в среднем 32 года. Атмосфера вполне демократичная.
Вот это неприятие чужого мнения свойственно людям старой закалки, я таких встречал.
Качество C++ кода от возраста сильно зависит, это факт. По моему опыту - чем люди старше, тем всё-таки код лучше. Точнее, помогает не сколько даже возраст, сколько наличие семьи / детей / желание поскорее сделать задачу, именно то что нужно (но не больше!), попроще, и подубовей что-ли. YAGNI и крайняя скупость в средствах - это наше всё в C++.

А вот если много молодых да энергичных, вот тогда возникают синглтоны / темплейты / мета-чёрте-что и героическое решение проблем, которых нет.
Мир Украине. Свободу России.
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Medium-rare »

M. Ridcully wrote: А вот если много молодых да энергичных, вот тогда возникают темплейты
Степанов был слишком молод тогда. А то бы не брался за чортову STL. :-p
... and even then it's rare that you'll be going there...
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Задача как с точки А попасть в точку B или как слезть c

Post by M. Ridcully »

Да ладно, STL канает.
Я имел в виду безумие вроде MPL, Spirit и прочие извращения а-ля Александреску.
Мир Украине. Свободу России.
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Medium-rare »

Александреску и вовсе практик, он FB компилятор PHP с коммандой, вроде, делает.
Просто человек докапывается до сути (как там у вас... анальный), и потому может учить других сложным вещам, если те хотят внимать.
... and even then it's rare that you'll be going there...
Pantigalt
Уже с Приветом
Posts: 802
Joined: 24 Jan 2007 07:32
Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Pantigalt »

Medium-rare wrote:Александреску и вовсе практик, он FB компилятор PHP с коммандой, вроде, делает.
Просто человек докапывается до сути (как там у вас... анальный), и потому может учить других сложным вещам, если те хотят внимать.
Мне у него в книге понравилась глава про аллокаторы, просто и понятно расписано.
А про хвостовые рекурсии с шаблонами так вообще похвально.
В книгах кроме рецептов должны быть новые идеи которые позволили бы с разных сторон посмотреть на одну и ту же проблему.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Задача как с точки А попасть в точку B или как слезть c

Post by M. Ridcully »

Pantigalt wrote:В книгах кроме рецептов должны быть новые идеи которые позволили бы с разных сторон посмотреть на одну и ту же проблему.
Да кто бы сомневался...
Просто эта идея - template metaprogramming - is pushing templates beyond their natural limits.
Если что-то можно делать, это ещё не значит, что это нужно делать.

Был у меня опыт 2х проектов, где требовался парсинг, причём с небольшим нитервалом. В первый раз попробовал использовать Spirit. Оно конечно в конце-концов заработало, но тем не менее во второй раз решил не выёживаться и сделать по-простому - с дополнительно стадией парсинга / кодогенерации. Так вот, во второй раз было в разы проще и приятней.
Мир Украине. Свободу России.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Мальчик-Одуванчик »

Pantigalt wrote:
Medium-rare wrote:Александреску и вовсе практик, он FB компилятор PHP с коммандой, вроде, делает.
Просто человек докапывается до сути (как там у вас... анальный), и потому может учить других сложным вещам, если те хотят внимать.
Мне у него в книге понравилась глава про аллокаторы, просто и понятно расписано.
А про хвостовые рекурсии с шаблонами так вообще похвально.
В книгах кроме рецептов должны быть новые идеи которые позволили бы с разных сторон посмотреть на одну и ту же проблему.
Одна из лучших книг по программированию на плюсах.
И по доходчивости и по глубине проработки материала.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Мальчик-Одуванчик »

M. Ridcully wrote:
Pantigalt wrote:В книгах кроме рецептов должны быть новые идеи которые позволили бы с разных сторон посмотреть на одну и ту же проблему.
Да кто бы сомневался...
Просто эта идея - template metaprogramming - is pushing templates beyond their natural limits.
Если что-то можно делать, это ещё не значит, что это нужно делать.
Когда нужно экономить память то без метапрограммирования бывает и не обойтись.
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Задача как с точки А попасть в точку B или как слезть c

Post by M. Ridcully »

Мальчик-Одуванчик wrote: Когда нужно экономить память то без метапрограммирования бывает и не обойтись.
Чтобы вот так прям "не обойтись" - такого просто не может быть.
Любое метапрограммирование в-принципе может быть заменено дополнительной стадией явного парсинга / кодогенерации. И зачастую явная стадия будет проще и естественнее.

Как ни крути, но метапрограммирование - это из серии "голь на выдумки хитра". Взяли некую некую технологию (шаблоны), изначально для этого не преднезначенную, и научились использовать в новом качестве. В этом ничего плохого нет, разумеется, скорее наоборот. Но то, что происходит "натягивание совы на глобус" - это факт.
Мир Украине. Свободу России.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Мальчик-Одуванчик »

M. Ridcully wrote:
Мальчик-Одуванчик wrote: Когда нужно экономить память то без метапрограммирования бывает и не обойтись.
Чтобы вот так прям "не обойтись" - такого просто не может быть.
Любое метапрограммирование в-принципе может быть заменено дополнительной стадией явного парсинга / кодогенерации. И зачастую явная стадия будет проще и естественнее.

Как ни крути, но метапрограммирование - это из серии "голь на выдумки хитра". Взяли некую некую технологию (шаблоны), изначально для этого не преднезначенную, и научились использовать в новом качестве. В этом ничего плохого нет, разумеется, скорее наоборот. Но то, что происходит "натягивание совы на глобус" - это факт.
За счет замены динамического полиморфизма статическим - реальная экономия памяти.
И потом, целочисленные значения шаблонных параметров не занимают оперативной памяти.
Ну и потом, метапрограммирование по сути и есть встроенный в язык парсер с кодогенератором. Плюс возможность создания своего доменного языка на его основе.
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Задача как с точки А попасть в точку B или как слезть c

Post by M. Ridcully »

Я не совсем понял, о чём вы. Возможно, мы под метапрограммированием немного разные вещи понимаем.
А имел в виду compile-time computations, DSLs, etc.
Полезность шаблонов вообще я нисколько не отрицаю, конечно.
Мир Украине. Свободу России.
Berlaga
Уже с Приветом
Posts: 1008
Joined: 24 Mar 2010 21:14
Location: SFBA

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Berlaga »

M. Ridcully wrote:
Мальчик-Одуванчик wrote: Когда нужно экономить память то без метапрограммирования бывает и не обойтись.
Чтобы вот так прям "не обойтись" - такого просто не может быть.
Любое метапрограммирование в-принципе может быть заменено дополнительной стадией явного парсинга / кодогенерации. И зачастую явная стадия будет проще и естественнее.
+1. Мальчик-Одуванчик неправ по форме.
Но по сути... Имхо, количество нагенеренного (или написанного руками) кода, который придется поддерживать - может свести всю естественность к такому гемору, что недостатки шаблонов померкнут.
Michael Caine
Posts: 1
Joined: 25 Oct 2014 04:49
Location: SFBA

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Michael Caine »

Я бы не сбрасывал со счетов C#. Сам сейчас в бэй эрии, работаю по специальности и приходит много приглашений на собеседования по дотнету. На дайсе .NET вакансий действительно меньше чем по джаве, но и дотнетных девелоперов тоже не найти, поэтому спрос есть. 100 тысяч платить будут, врядли будут платить меньше этого.
Но асп.нет действительно не в фаворе, нужно знать ASP.NET MVC и плюсом кучу джаваскриптовых фреймворков типа ангулярки или бэкбона. Тогда работа сама найдется.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Мальчик-Одуванчик »

В качестве примера могу привести QT, своей надстройкой расширяющий плюсы, особенно в плане асинхронного взаимодействия.
Собственно, небольшая, но прекрасно продуманная метавставка взаимодействия обьектов посредством посылки сигналов на слоты, сделала этот продукт весьма и весьма востребованным.
Другой пример - огрубленные вычисления по таблично заданным функциям. Сама таблица расчитывается во время компиляции в зависимости от типа выхлопа(тип микроконтроллера, такт частота, ..).
А если заглянуть в потроха ATL, то легко обнаруживается "чудесатый самотык" Коплина (CRTP) как основа ("и источник, и составная часть") библиотеки.
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Medium-rare »

Мальчик-Одуванчик wrote:В качестве примера могу привести QT, своей надстройкой расширяющий плюсы, особенно в плане асинхронного взаимодействия.
Есть также мнение, что концепция signal/slot и была ранее известна, и внедрена не только в Qt. Но Qt имплементация хорошая, и кроссплатформенная. И если Гуглом сейчас искать, то почти все линке про неё, хотя.
... and even then it's rare that you'll be going there...
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Мальчик-Одуванчик »

Medium-rare wrote:
Мальчик-Одуванчик wrote:В качестве примера могу привести QT, своей надстройкой расширяющий плюсы, особенно в плане асинхронного взаимодействия.
Есть также мнение, что концепция signal/slot и была ранее известна, и внедрена не только в Qt. Но Qt имплементация хорошая, и кроссплатформенная. И если Гуглом сейчас искать, то почти все линке про неё, хотя.
QT привел в качестве метаязыка над плюсами, где, к примеру, конструкции работы с сигналами статически компилируются в С++ код, освобождая
программиста от этой рутины. Описанные метаязыком свойства класса, так же привязываются к его соответствующим функциям-членам.
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Задача как с точки А попасть в точку B или как слезть c

Post by M. Ridcully »

Berlaga wrote:Имхо, количество нагенеренного (или написанного руками) кода, который придется поддерживать - может свести всю естественность к такому гемору, что недостатки шаблонов померкнут.
А зачем это нагенерённый-то код поддерживать?
Паресер и генератор - да, придётся поддерживать. Но ведь и основанный на шаблонном метапрограммировании код поддерживать надо, разве нет?
Мир Украине. Свободу России.
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Задача как с точки А попасть в точку B или как слезть c

Post by Medium-rare »

M. Ridcully wrote: А зачем это нагенерённый-то код поддерживать?
Мы его не чек-иним. Это такие же промежуточные файлы в билде, как объектные файлы.
moc_*.cpp, *.obj - kinds of intermediate build files, usually generated in some build directory, not with the source code.

moc_real.cpp:

Code: Select all

/****************************************************************************
** Meta object code from reading C++ file 'real.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.3.0)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
... and even then it's rare that you'll be going there...

Return to “Работа и Карьера в IT”