MTL

Пользователь

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

MTL

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

Всем привет. 

Короче, сам айтишник по образованию (Информационная безопасность), но разработкой никогда не занимался. 

По основной специальности не пошло и стало уж больно скучно и перед НГ начал конкретно учить шарп и фреймфорки для разработки веб приложений (asp net core, entity).

За это время успел написать простой интернет магаз по шаблону MVC с razor-страничками (cshtml) и bootstrap 5, регистрацией пользователей, админкой для круда продуктов и изменением статуса заказа. Чуть позже подкручу загрузку картинок для товаров и администрирование учёток. Короче, для сносной работы полноценного приложения всё есть. Написал  докерфайл и докеркомпоус для контейнерезации проекта. Везде всё запускается при наличии докера на системе. Приложуху выложил на гит с командами в readme-файле для демонстрации работодателю.

 

Знания по шарпу для джуна +- есть.

Знаю про аллокацию памяти в кучу и в стэк, что есть реф-тайп, валью-тайп. Более менее понимаю, что такое DI и чем отличаются addscoped, addtransitent и addsingleton. Task, async, await тоже смогу объяснить. Структуры данных тоже не самое сложное. Рассказать про отличия интерфейса и абстрактного класса - тоже.

 

Высоки ли шансы быстро найти работу при такой базе, что сейчас или надо что-то ещё? 

 

Nubiroed

Пользователь

Регистрация: 01.02.2021

Сообщения: 3735

Рейтинг: 3331

Nubiroed

Регистрация: 01.02.2021

Сообщения: 3735

Рейтинг: 3331

MTL сказал(а):

Всем привет. 

Короче, сам айтишник по образованию (Информационная безопасность), но разработкой никогда не занимался. 

По основной специальности не пошло и стало уж больно скучно и перед НГ начал конкретно учить шарп и фреймфорки для разработки веб приложений (asp net core, entity).

За это время успел написать простой интернет магаз по шаблону MVC с razor-страничками (cshtml) и bootstrap 5, регистрацией пользователей, админкой для круда продуктов и изменением статуса заказа. Чуть позже подкручу загрузку картинок для товаров и администрирование учёток. Короче, для сносной работы полноценного приложения всё есть. Написал  докерфайл и докеркомпоус для контейнерезации проекта. Везде всё запускается при наличии докера на системе. Приложуху выложил на гит с командами в readme-файле для демонстрации работодателю.

 

Знания по шарпу для джуна +- есть.

Знаю про аллокацию памяти в кучу и в стэк, что есть реф-тайп, валью-тайп. Более менее понимаю, что такое DI и чем отличается addscoped, addtransitent и addsingleton. Task, async, await тоже смогу объяснить. Структуры данных тоже не самое сложное. Рассказать про отличия интерфейса и абстрактного класса - тоже.

 

Высоки ли шансы быстро найти работу при такой базе, что сейчас или надо что-то ещё? 

 

Нажмите, чтобы раскрыть...

C#, а теперь выйди и зайди нормально, с java в рукахAnimescream.png?1621090952, и выкинь эту мерзость.

А если по факту то кем ты работать то хочешьShrekWTF.png?1619500548, c# это либо пародия на java, либо недо-говно игрыKEKL.png?1616515060

BigBadaBOOM

Пользователь

Регистрация: 26.01.2014

Сообщения: 701

Рейтинг: 386

BigBadaBOOM

Регистрация: 26.01.2014

Сообщения: 701

Рейтинг: 386

Вообще база хорошая. Однако что сейчас с вакухами хз. 

Советую научиться дебажить \ подключаться к процессам итд. Это очень важный навык, ибо вкат джуна в проект обычно начинается с фикса маленьких багов.

Nubiroed сказал(а):

C#, а теперь выйди и зайди нормально, с java в рукахAnimescream.png?1621090952, и выкинь эту мерзость.

А если по факту то кем ты работать то хочешьShrekWTF.png?1619500548, c# это либо пародия на java, либо недо-говно игрыKEKL.png?1616515060

Нажмите, чтобы раскрыть...

.NET как платформа джаве за щеку дает по всем направлениям))))

ErrorInever

Пользователь

Регистрация: 04.08.2013

Сообщения: 292

Рейтинг: 129

ErrorInever

Регистрация: 04.08.2013

Сообщения: 292

Рейтинг: 129

Сходи на собеседование, либо почитай типичные вопросы на собеседовании, тогда узнаешь на сколько ты не знаешь что-то. 

MTL

Пользователь

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

MTL

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

Nubiroed сказал(а):

C#, а теперь выйди и зайди нормально, с java в рукахAnimescream.png?1621090952, и выкинь эту мерзость.

А если по факту то кем ты работать то хочешьShrekWTF.png?1619500548, c# это либо пародия на java, либо недо-говно игрыKEKL.png?1616515060

Нажмите, чтобы раскрыть...

Не согласен. Шарп имеет ряд преимуществ перед джавой. Поэтому и пал выбор в его сторону, когда выбирал между этими двумя, т.к. хотел разобраться в ООП.

Если заново бы заходил, то положил бы болт на ооп и начал вкатываться в Go, но на него вакансий до сих пор очень мало. weSmart.png?1616514285

Nubiroed

Пользователь

Регистрация: 01.02.2021

Сообщения: 3735

Рейтинг: 3331

Nubiroed

Регистрация: 01.02.2021

Сообщения: 3735

Рейтинг: 3331

BigBadaBOOM сказал(а):

Вообще база хорошая. Однако что сейчас с вакухами хз. 

Советую научиться дебажить \ подключаться к процессам итд. Это очень важный навык, ибо вкат джуна в проект обычно начинается с фикса маленьких багов.

 

.NET как платформа джаве за щеку дает по всем направлениям))))

Нажмите, чтобы раскрыть...

Ye.gif?1619500426, именно так,  все именно такpekaReally.png?1619501122. Главное помнить что .net и себе за щеку дает, и создатель .net за щеку может дать, но это все не важноPikaOMG.gif?1660474747

BigBadaBOOM

Пользователь

Регистрация: 26.01.2014

Сообщения: 701

Рейтинг: 386

BigBadaBOOM

Регистрация: 26.01.2014

Сообщения: 701

Рейтинг: 386

Nubiroed сказал(а):

Ye.gif?1619500426, именно так,  все именно такpekaReally.png?1619501122. Главное помнить что .net и себе за щеку дает, и создатель .net за щеку может дать, но это все не важноPikaOMG.gif?1660474747

Нажмите, чтобы раскрыть...

Расскажешь когда async/await завезут.

MTL

Пользователь

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

MTL

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

BigBadaBOOM сказал(а):

Вообще база хорошая. Однако что сейчас с вакухами хз. 

Советую научиться дебажить \ подключаться к процессам итд. Это очень важный навык, ибо вкат джуна в проект обычно начинается с фикса маленьких багов.

 

.NET как платформа джаве за щеку дает по всем направлениям))))

Нажмите, чтобы раскрыть...

Дебажить тоже +- могу (на visual studio code). В райдере не пробовал.

А что за процессы? Которые в Callstack'е крутятся и к ним научиться подключаться?

BigBadaBOOM

Пользователь

Регистрация: 26.01.2014

Сообщения: 701

Рейтинг: 386

BigBadaBOOM

Регистрация: 26.01.2014

Сообщения: 701

Рейтинг: 386

MTL сказал(а):

Дебажить тоже +- могу (на visual studio code). В райдере не пробовал.

А что за процессы? Которые в Callstack'е крутятся и к ним научиться подключаться?

Нажмите, чтобы раскрыть...

На работе скорее всего ты не будешь каждый раз разворачивать все сервисы, скорее всего они у тебя будут крутится в IIS или в докерах развернуты будут. Тебе нужно будет к ним коннектится и дебажить. 

Вообще код писать не сложно. Сложно вообще научиться работать. Гит там, как инфраструктура устроена, куда смотреть, как понять где проблема и тд. Советую найти чей-нибудь репо, форкнуть его, развернуть у себя и поменять функционал чего-либо, на свое усмотрение. Хорошее упражнение на работу с чужим кодом. В принципе большую часть времени джун работает с чужим кодом.

MTL

Пользователь

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

MTL

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

BigBadaBOOM сказал(а):

Расскажешь когда async/await завезут.

Нажмите, чтобы раскрыть...

Это одно из ключевых, почему я не стал в джаву вкатываться. Асинхронность слишком хороша, чтобы её игнорить во времена, когда данных много. 

BigBadaBOOM сказал(а):

На работе скорее всего ты не будешь каждый раз разворачивать все сервисы, скорее всего они у тебя будут крутится в IIS или в докерах развернуты будут. Тебе нужно будет к ним коннектится и дебажить. 

Нажмите, чтобы раскрыть...

Почитаю про то, как это делать. Спасибо. 

Laurarouge

Пользователь

Регистрация: 11.12.2016

Сообщения: 1611

Рейтинг: 816

Laurarouge

Регистрация: 11.12.2016

Сообщения: 1611

Рейтинг: 816

Nubiroed сказал(а):

C#, а теперь выйди и зайди нормально, с java в рукахAnimescream.png?1621090952, и выкинь эту мерзость.

А если по факту то кем ты работать то хочешьShrekWTF.png?1619500548, c# это либо пародия на java, либо недо-говно игрыKEKL.png?1616515060

Нажмите, чтобы раскрыть...

Пхахах, чел всерьез думает что Java лучше C# KEKW.png?1616515034

Когда указатели подвезут - позвонишь roflanLico.png?1616515069

MTL

Пользователь

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

MTL

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

Laurarouge сказал(а):

Пхахах, чел всерьез думает что Java лучше C# KEKW.png?1616515034

Когда указатели подвезут - позвонишь roflanLico.png?1616515069

Нажмите, чтобы раскрыть...

Насколько я знаю, в джаве есть указатели. Только хз, насколько они могут забустить скорость приложения. 

В шарпе реф-тайп структура (Span<Т>) может забустить перебор данных в массиве раза в 4. 

Laurarouge

Пользователь

Регистрация: 11.12.2016

Сообщения: 1611

Рейтинг: 816

Laurarouge

Регистрация: 11.12.2016

Сообщения: 1611

Рейтинг: 816

MTL сказал(а):

Насколько я знаю, в джаве есть указатели. Только хз, насколько они могут забустить скорость приложения. 

В шарпе реф-тайп структура (Span<Т>) может забустить перебор данных в массиве раза в 4. 

Нажмите, чтобы раскрыть...

Это распространенное заблуждение. В Java нет указателей, их указатели это ссылки, JVM шатает объекты по всей памяти и не может конкретно ссылаться на определенную область. Это происходит из-за говеного сборщика мусора в Джаве

OnlyAW

Пользователь

Регистрация: 08.06.2012

Сообщения: 4159

Рейтинг: 3078

OnlyAW

Регистрация: 08.06.2012

Сообщения: 4159

Рейтинг: 3078

Можно попробовать геймдев (Unity)

Тут часто много нубасов "я умею делать кубик на сцене и создавать префаб, а что там в скриптах мне пофиг гыгыгы"

На их фоне знание шарпа даже минимальное может выделить из толпы

PepeRich.png?1556510246

MTL

Пользователь

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

MTL

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

OnlyAW сказал(а):

Можно попробовать геймдев (Unity)

Тут часто много нубасов "я умею делать кубик на сцене и создавать префаб, а что там в скриптах мне пофиг гыгыгы"

На их фоне знание шарпа даже минимальное может выделить из толпы

PepeRich.png?1556510246

Нажмите, чтобы раскрыть...

Гейм дев это отдельная вселенная и залететь туда сложнее, чем в веб. Так что хз. Имхо. 

OnlyAW

Пользователь

Регистрация: 08.06.2012

Сообщения: 4159

Рейтинг: 3078

OnlyAW

Регистрация: 08.06.2012

Сообщения: 4159

Рейтинг: 3078

MTL сказал(а):

Гейм дев это отдельная вселенная и залететь туда сложнее, чем в веб. Так что хз. Имхо. 

Нажмите, чтобы раскрыть...

конкретно в юнити порог достаточно низкий для джуна

правда уже с мидла требования ничем не отличаются от других айти направлений

в целом, тем кто занимается и растет - везде найдется место

Abbaddon

Пользователь

Регистрация: 04.01.2014

Сообщения: 9086

Рейтинг: 2640

Abbaddon

Регистрация: 04.01.2014

Сообщения: 9086

Рейтинг: 2640

MTL сказал(а):

Всем привет. 

Короче, сам айтишник по образованию (Информационная безопасность), но разработкой никогда не занимался. 

По основной специальности не пошло и стало уж больно скучно и перед НГ начал конкретно учить шарп и фреймфорки для разработки веб приложений (asp net core, entity).

За это время успел написать простой интернет магаз по шаблону MVC с razor-страничками (cshtml) и bootstrap 5, регистрацией пользователей, админкой для круда продуктов и изменением статуса заказа. Чуть позже подкручу загрузку картинок для товаров и администрирование учёток. Короче, для сносной работы полноценного приложения всё есть. Написал  докерфайл и докеркомпоус для контейнерезации проекта. Везде всё запускается при наличии докера на системе. Приложуху выложил на гит с командами в readme-файле для демонстрации работодателю.

 

Знания по шарпу для джуна +- есть.

Знаю про аллокацию памяти в кучу и в стэк, что есть реф-тайп, валью-тайп. Более менее понимаю, что такое DI и чем отличается addscoped, addtransitent и addsingleton. Task, async, await тоже смогу объяснить. Структуры данных тоже не самое сложное. Рассказать про отличия интерфейса и абстрактного класса - тоже.

 

Высоки ли шансы быстро найти работу при такой базе, что сейчас или надо что-то ещё? 

 

Нажмите, чтобы раскрыть...

О, я как раз ищу C# бойца который сможет научить прогу на С# делать экспорт геометрии в нужный мне формат, возьмешься?)

DrZoidberg

Пользователь

Регистрация: 17.01.2017

Сообщения: 1373

Рейтинг: 393

Нарушения: 90

DrZoidberg

Регистрация: 17.01.2017

Сообщения: 1373

Рейтинг: 393

Нарушения: 90

Nubiroed сказал(а):

Ye.gif?1619500426, именно так,  все именно такpekaReally.png?1619501122. Главное помнить что .net и себе за щеку дает, и создатель .net за щеку может дать, но это все не важноPikaOMG.gif?1660474747

Нажмите, чтобы раскрыть...

Смайликов маловато что то. Добавь побольше, а то неубедительно. Впрочем, 1 я тебе подарил. 

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 11192

Рейтинг: 4369

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 11192

Рейтинг: 4369

Laurarouge сказал(а):

Пхахах, чел всерьез думает что Java лучше C# KEKW.png?1616515034

Когда указатели подвезут - позвонишь roflanLico.png?1616515069

Нажмите, чтобы раскрыть...

ну хз, надо ли усложнение языка и VM ради этого?

 

я думаю вряд ли

с такой философией (хочу больше контроля) вам в другие места

Jeivi

Пользователь

Регистрация: 30.03.2013

Сообщения: 2229

Рейтинг: 794

Jeivi

Регистрация: 30.03.2013

Сообщения: 2229

Рейтинг: 794

img

ну с таким портфолио ты лучше 80% вкатывальщиков ( если делал не ctrl+c , ctrl+v

MTL

Пользователь

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

MTL

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

Jeivi сказал(а):

ну с таким портфолио ты лучше 80% вкатывальщиков ( если делал не ctrl+c , ctrl+v

Нажмите, чтобы раскрыть...

Делал, но не так много, т.к. всё скопировать просто априори невозможно. Нужен свой функционал. 

YoshkinKot сказал(а):

ну хз, надо ли усложнение языка и VM ради этого?

 

я думаю вряд ли

с такой философией (хочу больше контроля) вам в другие места

Нажмите, чтобы раскрыть...

Ну, тут не про контроль, а про скорость работы. Всё-таки чем меньше GC чистит данных, тем лучше. В разумных пределах,  если говорить про высокоуровневые языки.  Ассемблерные вставки для SIMD-параллелизма точно не нужны, но от того, что  ты напишешь две строки, чтобы перебрать массив не ссылками в кучу, а ссылками в стэк, логика не будет сильно усложнена, а скорость вырастит в разы. 

pyles

Пользователь

Регистрация: 23.06.2013

Сообщения: 19341

Рейтинг: 9763

Нарушения: 45

pyles

Регистрация: 23.06.2013

Сообщения: 19341

Рейтинг: 9763

Нарушения: 45

Nubiroed сказал(а):

Ye.gif?1619500426, именно так,  все именно такpekaReally.png?1619501122. Главное помнить что .net и себе за щеку дает, и создатель .net за щеку может дать, но это все не важноPikaOMG.gif?1660474747

Нажмите, чтобы раскрыть...

почему шарпистов нет в чатак успешных 300к наносеков. зато там есть джавабояре.

заставляет задуматьсяFeelsClownMan.png?1592047348FeelsClownMan.png?1592047348

почему легаси говно мамонта написано на джава а не шарпе

единственное сейчас хайповое - это клауд платформа майкрософт.

самое смешное, что эти все вопросы гуглятся в два кликаHedgehogEat.gif?1660474388HedgehogEat.gif?1660474388

MTL сказал(а):

Делал, но не так много, т.к. всё скопировать просто априори невозможно. Нужен свой функционал. 

 

Ну, тут не про контроль, а про скорость работы. Всё-таки чем меньше GC чистит данных, тем лучше. В разумных пределах,  если говорить про высокоуровневые языки.  Ассемблерные вставки для SIMD-параллелизма точно не нужны, но от того, что  ты напишешь две строки, чтобы перебрать массив не ссылками в кучу, а ссылками в стэк, логика не будет сильно усложнена, а скорость вырастит в разы. 

Нажмите, чтобы раскрыть...

как выше написал - погугли майкрософт клауд, вроде бы хайповая тема райт науAwkward.gif?1660474166Awkward.gif?1660474166

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 11192

Рейтинг: 4369

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 11192

Рейтинг: 4369

MTL сказал(а):

Ну, тут не про контроль, а про скорость работы. Всё-таки чем меньше GC чистит данных, тем лучше. В разумных пределах,  если говорить про высокоуровневые языки.  Ассемблерные вставки для SIMD-параллелизма точно не нужны, но от того, что  ты напишешь две строки, чтобы перебрать массив не ссылками в кучу, а ссылками в стэк, логика не будет сильно усложнена, а скорость вырастит в разы. 

Нажмите, чтобы раскрыть...

ну это именно что про контроль разгон

 

ты именно что хочешь аллоцировать явно объектики в каких-то местах ради перформанса

java предоставляет тебе JVM и говорит, что она берет весь контроль за памятью, а ты только описывай очередность инструкций

 

в теории реализация JVM может быть достаточно умной, чтобы делать красивые runtime оптимизации

и все эти кэшмиссы будут не столь критичными после разогрева VM

 

короче, суммируя, если ты задумываешься о том, как у тебя конкретно лежат вещи в памяти, а не делегируешь это платформе, которая разберётся как тебе лучше в runtime, то возможно ты просто ошибся с выбором инструмента?

 

вообще идея X ⊃ Y ∴ X > Y, кажется мне не очень адекватной

 

больше фишек вполне себе может означать более сложную композиционную структуру

потому что помимо A ты должен думать еще и о том, как оно должно работать и скейлиться с B

MTL

Пользователь

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

MTL

Регистрация: 26.11.2013

Сообщения: 10042

Рейтинг: 3114

Нарушения: 45

YoshkinKot сказал(а):

ну это именно что про контроль разгон

 

ты именно что хочешь аллоцировать явно объектики в каких-то местах ради перформанса

java предоставляет тебе JVM и говорит, что она берет весь контроль за памятью, а ты только описывай очередность инструкций

 

в теории реализация JVM может быть достаточно умной, чтобы делать красивые runtime оптимизации

и все эти кэшмиссы будут не столь критичными после разогрева VM

 

короче, суммируя, если ты задумываешься о том, как у тебя конкретно лежат вещи в памяти, а не делегируешь это платформе, которая разберётся как тебе лучше в runtime, то возможно ты просто ошибся с выбором инструмента?

 

вообще идея X ⊃ Y ∴ X > Y, кажется мне не очень адекватной

 

больше фишек вполне себе может означать более сложную композиционную структуру

потому что помимо A ты должен думать еще и о том, как оно должно работать и скейлиться с B

Нажмите, чтобы раскрыть...

Повторю: я не хожу от крайности в крайность. Если я понимаю, как это примерно работает на платформе, то почему парой строк не сделать код быстрее? ну, вот на примере того же шарпа, заменить class на struct в какой-нибудь ViewModel для счёта товаров и итоговую сумму в корзине? Всего одно слово и скорость станет выше, т.к. данные будут крутиться не в куче, а в стэке, т.к. структура - value-type. 

Если уж прям совсем западло бы было всем этим заниматься и принципиально не захочу это делать, то можно уйти в питон или джс, где про это точно нет смысла думать. Хоть вот асинхронность в джсе есть, а это так же часть оптимизаций и устранения бутылочных горлышек в производительности. 

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 11192

Рейтинг: 4369

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 11192

Рейтинг: 4369

MTL сказал(а):

Если я понимаю, как это примерно работает на платформе, то почему парой строк не сделать код быстрее?

Нажмите, чтобы раскрыть...

Потому что на этой платформе этого просто нет. catloading.png?1672014589

 

А если честно, я не знаю C# чтобы за него что-то говорить, но мне не очень ясно как вы решаете проблему доступа к данным структурки без копирования. Типа как в C++ с lvalue, rvalue ссылочками? Или вы тосаете указатели? А если тосаете указатели, то как определяете корректность ссылки (в том смысле, что время жизни объекта еще не кончилось)?

 

В Java этого просто нет, и все эти вещи (укладывания объектов на стек, а не в кучу) делаются для тебя платформой в рамках оптимизаций.

Ну видит JVM что можно расположить на стеке данные — ну она это попытается сделать: бдыщь.

 

Тебе как программисту зачем об этом знать и руками управлять?

 

C# понятно зачем, он вроде как язык для взаимодействия с виндой в том числе, игры на нём пишут и т.д.

Системным и околосистемным языкам оно как бы по праву полагается разбираться с этой грудой проблем.

 

Я когда пишу на жабе, я не хочу сидеть с циркулем, как на C++, высчитывать количество происходящих в коде копирований.

Я хочу наоборот думать, что создание объектов относительно дешевая операция не требующая детального взгляда и моих рук в этом деле, пусть JVM разбирается с этим, её работа. Я не хочу из вещей выжимать максимальную производительность.

 

Просто опять таки, приведу пример: вот есть в плюсах шаблоны, которые позволяют compile time вычисления делать.

Кажись круто, почему мой любимый язык X не имеет такой крутой фичи.

 

И вот перед дизайном очередного класса, очередной либы, ты начинаешь задумывать о том: преимущественно compile time либа, либо преимущественно runtime ориентированная либа. И начинается: я не могу определиться никак, что мне больше нравится. Есть аргументы за и против как для первого, так и для второго.

 

С точки зрения разработчика языка есть один замечательный способ избежать дилеммы: выбрать что-то одно и делать и хорошо. Наложенные ограничения тебе позволят делать более конкретные утверждения про происходящее в системе, а значит где-то это позволит что-то более агрессивно оптимизировать. Ну и т.д.

 

У наложения жестких ограничений есть ряд преимуществ перед позицией: мы стараемся включить в себя больше возможностей. И преимущества эти конечно в основном на стороне разработчика платформы, языка, но с другой стороны плюс для программиста в том, что у него тоже не будет дилемм по поводу того как и что делать.